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

At 11:14 AM 8/8/00 +0200, Pierre-Antoine CHAMPIN wrote:
>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

I agree.  It might even be called rdf:Bag (i.e. syntax-compatible with the 
current spec).


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

I don't agree here.  I think the term "choice" is unfortunate.  To me, it 
simple implies a union type.  I would be happy with rdf:Alt and rdf:li, in 
syntax and model.

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

I agree with this bit.


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

Hmmm, interesting.  I'm not so sure about invoking reification in this 
way.  I'll think about it some more.  Meanwhile, here are two other approaches:

(1) For an ordered list, I would be content to see "_1", "_2", etc. in the 
syntax (rather than implied by the subject container class and rdf:li).

(2) Use a LISP-like approach:

     [<Cons>] --head--> [Item1]
     [      ]
     [      ] --tail--> [<Cons>] --head--> [Item2]
                        [      ]
                        [      ] --tail--> etc.

     The sequence would be terminated by a Cons without a tail.

#g
--

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

------------
Graham Klyne
(GK@ACM.ORG)

Received on Tuesday, 8 August 2000 09:47:21 UTC