W3C home > Mailing lists > Public > www-rdf-interest@w3.org > February 2001

RE: Containers

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>
Message-ID: <000001c08ebc$e5929a80$0201a8c0@ne.mediaone.net>
> >
> > <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

	foo/0 ... foo/A

Jonathan Borden
The Open Healthcare Group
Received on Sunday, 4 February 2001 10:09:56 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:07:34 UTC