Re: Enumeration in RDF?

See below.

> 
> Garret Wilson wrote:
> > 
> > 
> > Dan Brickley wrote:
> > 
> >> * Art.Barstow@nokia.com <Art.Barstow@nokia.com> [2003-09-15 11:49-0400]
> >>
> >>> Do the latest RDF specs define a way to do enumeration
> >>> (e.g. a Bag may contain only 4 strings)?  If so, please
> >>> send me the pointer.
> >>
> >>
> >>
> >> http://www.w3.org/TR/rdf-schema/#ch_collectionvocab

> >> The rdf:List collections mechanism allows the members of a list to be 
> >> enumeated in a way that makes it clear the whole list has been
> >> represented.
> > 
> > 
> > But as one can always add an infinite number of rdf:first properties to 
> > any rdf:List resource (see your citation about), does this really help 
> > ensure that nothing more is added to a list---or even, as you put it, 
> > "makes it clear the whole list has been represented?"
> 
> While the RDF semantics do not define this (because they don't deal in 
> cardinalities), it is sensible to interpret rdf:first and rdf:rest to 
> have a cardinality of one. (I don't know whether OWL actually specifies 
> this.)

Good idea!

We can define owl:List, owl:first and owl:rest such that:

owl:List rdfs:subClassOf  rdf:List

owl:first rdfs:subPropertyOf  rdf:first
owl:rest rdfs:subPropertyOf  rdf:rest

owl:first rdfs:domain owl:List
owl:rest rdfs:domain owl:List

(The cardinality constraints can be represented as follows:)
<owl:Class rdf:about="&owl;List">
  <rdfs:comment>....</rdfs:comment>
  <owl:subClassOf rdf:resource="&rdf;List" /> 
  <rdfs:subClassOf>
      <owl:Restriction owl:maxCardinality="1">
          <owl:onProperty rdf:resource="&owl;first" /> 
      </owl:Restriction>
  </rdfs:subClassOf>
  <rdfs:subClassOf>
      <owl:Restriction owl:maxCardinality="1">
          <owl:onProperty rdf:resource="&owl;rest" /> 
      </owl:Restriction>
  </rdfs:subClassOf>
</owl:Class>

Any missing?


Yuzhong Qu


> If you assume this, then given two triples,
> 
>      foo:xxx   rdf:first   foo:abc
>      foo:xxx   rdf:first   foo:def
> 
> you can conclude that foo:abc and foo:def are the same thing, because a 
> list can have only one first element.
> 
> If you *know* that foo:abc and foo:def aren't the same (e.g. through 
> owl:differentIndividualFrom, or what it was), then you have arrived at a 
> contradiction.
> 
> I.e., with rdf:List, you know that there cannot be additional rdf:first 
> or rdf:rest triples "somewhere out there" that change the elements of 
> the list. If there are additional rdf:first triples, then either there 
> are two different nodes for the same resource, or someone has stated a 
> contradiction.
> 
> Cheers,
> - Benja
> 
> 
> 

Received on Tuesday, 16 September 2003 21:54:30 UTC