W3C home > Mailing lists > Public > www-rdf-interest@w3.org > November 2003

Re: What is the most common type of collection or container?

From: Patrick Stickler <patrick.stickler@nokia.com>
Date: Tue, 11 Nov 2003 12:35:34 +0200
To: ext Sandro Hawke <sandro@w3.org>
Cc: ext Graham Klyne <GK@ninebynine.org>, <jimbobbs@hotmail.com>, <www-rdf-interest@w3.org>
Message-ID: <BBD68816.4C45%patrick.stickler@nokia.com>

On 2003-11-10 21:45, "ext Sandro Hawke" <sandro@w3.org> wrote:

> 
>>> I tend to use the collection syntax, because they're "closed"
>> 
>> This is actually a claim that has been bugging me for some time. From what
>> I can see, unless you manage the source of every statement, such that you
>> can differentiate between one assertion and another based on their source
>> (and thereby, authority, trustworthiness, etc.), the best you can do is
>> identify a conflict in the definition of a collection, but you'd not be able
>> to resolve it. You'd e.g. have multiple assertions for rdf:first or rdf:next
>> and even though you know they can't all be right, you wouldn't know *which*
>> was right.
>> 
>> RDF Lists aren't really "closed" (i.e. immutable).
> 
> I think you're misunderstanding the intended semantics of lists, which
> are that rdf:first and rdf:rest are owl:FunctionalProperties.  That
> means if two different true sources say the third item in a list is
> <a> and <b> respectively, you can conclude that <a> owl:sameAs <b>.
> 
> Unfortunately, its not stated anywhere in the specs that rdf:first and
> rdf:rest *are* owl:FunctionalProperties (as far as I know) -- I think
> it kind of fell through the layering cracks between RDF Core and
> WebOnt.  (RDF Core didnt want to get into talking about things like
> FunctionalProperty, and WebOnt didn't want to be redefining RDF Core's
> terms [much].)  But I fully expect systems to assume it.

Well....err.. if it's not in the specs, then I'm not *misunderstanding*
anything. I'm simply ignorant of implicit presumptions in the
minds of others. And your "(as far as I know)" qualification suggests
that the minds of others are not fully transparent regarding this
issue...

I would also argue that if the assertions that rdf:first and rdf:rest
are owl:FunctionalProperties are not made in any RDF or OWL standards
document, that I can challenge any application that employs such
assertions as making unfounded presumptions about the nature of RDF
lists and "misbehaving".

If it's not licensed by the formally defined and standards based
semantics of RDF or OWL, it's non-conformant behavior.

I appreciate the sensitivity to "camping on someone elses lawn" and
why the OWL WG might hesitate to make such assertions, but I don't recall
there being any technical problem with OWL restraining the semantics
of RDF terms in such a fashion.

> I also expect systems to assume that two things with the same
> rdf:first and rdf:rest as each other are the same thing.  (I don't
> know how to express this fact in OWL, or if it's possible.)  From a
> programming perspective, this makes RDF Lists like interned constants
> lists, not like arrays or mutable lists.

Well, the reality is that even if rdf:first and rdf:rest are
treated as owl:FunctionalProperties that still does not preclude
a single rdf:List blank node from having multiple rdf:rest or
rdf:first property values defined -- and even if an OWL reasoner
equates the list nodes, if there are elsewhere assertions which
assert inequality, such as through differentFrom assertions or
class disjunction, you can still end up with contradictions in
your graph, which cannot be resolved without going back to the
sources of the assertions and deciding which mutually exlusive
sources you want to chose, to avoid those contradictions.

Oh well, time and practice will tell if RDF lists are the right
way to model collections...

I didn't intend, nor want to get into a long drawn out debate about
RDF lists... I simply felt the need to point out that things do not
appear to me to be as cut and dry as many seem to think.

Patrick
Received on Tuesday, 11 November 2003 05:37:57 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:03 GMT