- From: Jonathan Borden <jborden@mediaone.net>
- Date: Sun, 4 Feb 2001 10:12:32 -0500
- To: "McBride, Brian" <bwm@hplb.hpl.hp.com>
- Cc: "RDF interest group" <www-rdf-interest@w3.org>
Brian, > > > > <rdf:Seq rdf:ID="foo"> > > <rdfx:member>bar</rdfx:member> > > <rdfx:member>baz</rdfx:member> > > </rdf:Seq> > > > > can be addressed as: > > > > #foo/1 > > #foo/2 > > If there was an RDF graph representation of the above, > e.g. in statement form: > > { (foo, rdf:type, rdf:Seq), > (foo, rdfx:member, "bar"), > (foo, rdfx:member, "baz") > } > > an application which wanted to convert this to RDF XML > wouldn't know in which order to write the > members. Something more is needed to capture the > ordering in the graph. > Right. First assume that rdfx:member is a synonym for rdf:li, then the statements produced are: [foo rdf:type rdf:Seq] [foo rdf:_1 "bar"] [foo rdf:_2 "baz"] or as a child sequence: [foo /1 "bar"] [foo /2 "baz"] there are other possibilities to generate XPaths (where full XPointer is a superset of XPath) e.g. [foo rdfx:member[1] "bar"] [foo rdfx:member[2] "baz"] one might then encode the fact that XXX xpointer isa rdf:member by statements such as [foo/1 rdf:type rdfx:member] [foo/2 rdf:type rdfx:member] or even [foo/rdfx:member[1] rdf:type rdfx:member] [foo/rdfx:member[2] rdf:type rdfx:member] the point being that through use of an XPointer as the fragment id part of a URI, collections can be implemented. Another reason to introduce XPointer into RDF is that any so-called anonymous node can be named as a child sequence or full xpointer. Furthmore the concept of a range allows an entire sequence to be expressed as foo/0 ... foo/A Jonathan Borden The Open Healthcare Group http://www.openhealth.org
Received on Sunday, 4 February 2001 10:09:56 UTC