Collections (Re: Misleading note about extensibiity of Collection syntax)

Graham Klyne wrote:
> 
> I agree -- I think a parser's behaviour should be completely defined by
> -rdf-syntax-, and not dependent of knowledge of
> rdf-schema.  Schema-awareness should be a separate issue.

By the way, I never liked the notion of RDF container,
because :
- it was introduced as a part of the syntax
- it implies an infinite number of properties (rdf#_n)

Here are some ideas about that:

rdf:Bag
-------
Indeed a useful construct. But since order does not matter in bags, why using rdf:_n properties.
I'd rather have :
 a class  rdfs:Container  with no syntactical influence
 a property  rdf:li  with rdfs:Container as its domain, to link a container to its items

rdf:Alt
-------
That one is a high level concept - higher than Bag or Seq IMHO: it implies a "choice", but *who* has to choose and *why* ? This is a concern of the application, not of the language.
Anyway, the main feature of that construct is to allow the expression of a *default* element in a container (curently the rdf:_1 item). We could add
 a property  rdf:default  with rdfs:Container as its domain, to point to the default value.
                          it could even be a subproperty of rdf:li.

rdf:Seq
-------
Another useful construct, since it is the only way to put an order in RDF.
Anyway, as mentioned above, I don't quite like the idea of an infinite number of properties.
I think reification could achieve it much more elegantly :

 [rdf:Seq] <--(rdf:type)-- [someSeq] --(rdf:li)--> [Item1]
                               |           |
                               |       (rdf:rank)--> "1"
                               |
                               \-------(rdf:li)--> [Item2]
                                           |
                                       (rdf:rank)--> "2"

So there should be
 a property  rdf:rank  with rdf:Statement as its domain.
Those reified statements and their rdf:rank properties should be generated by the parser when needed,
which implies some meta-language feature to request it. For example, a tag rdf:OrderedDescription to be used instead of rdf:Description when the order of the properties matter.

An advantage is that order could be put in any RDF structure, not only containers.
Eg:

<rdf:Descritpion about="people:john" xmlns:ps="http://schemas.org/people/">
  <rdf:type rdf:resource="http://schemas.org/people/Man"/>
  <ps:firstName> John </ps:firstName>
  <ps:lastName>  Smith </ps:lastName>
  <ps:birthDate> 1/1/1970 </ps:birthDate>
</rdf:Description>
<rdf:OrderedDescription about="people:john">
  <ps:daughter rdf:resource="people:mary"/>
  <ps:son      rdf:resource="people:paul"/>
  <ps:daughter rdf:resource="people:lucy"/>
</rdf:OrderedDescription>
<rdf:OrderedDescription about="people:john">
  <ps:likes> Eating chocolate </ps:likes>
  <ps:likes> Watching movies </ps:likes>
  <ps:likes> Playing tennis </ps:likes>
</rdf:OrderedDescription>

Whe would have a resource people:john with 10 properties, in which 3 children are ordered (supposedly by age) and 3 "likes" are ordered (supposedly by preference).

 any comments welcome

  Pierre-Antoine

--- Quid quid Latine dictum sit, altum viditur
    Whatever is said in Latin sounds important.

Received on Tuesday, 8 August 2000 05:02:35 UTC