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

>>> 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>.

That's right.

> 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.

Right and there are 2 OWL test cases to illustrate the point
http://www.w3.org/2002/03owlt/I5.5/Manifest001#test
http://www.w3.org/2002/03owlt/I5.5/Manifest002#test

> 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.

That's a very good point; we tested that given

:L rdf:first :a; rdf:rest :B. :B rdf:first :b; rdf:rest rdf:nil.
:M rdf:first :c; rdf:rest :C. :C rdf:first :d; rdf:rest rdf:nil.
:a owl:sameAs :c.
:b owl:sameAs :d.

we could OWL Full entail

:L owl:sameAs :M.

(and it was the case)


--
Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/

Received on Monday, 10 November 2003 18:51:31 UTC