- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Tue, 07 Jun 2005 18:42:58 +0100
- To: Danny Ayers <danny.ayers@gmail.com>
- Cc: public-rdf-dawg-comments@w3.org
Danny Ayers wrote: > Good morning, > > A post over on redland-dev [1] brought my attention to the current > postponed status of the question of accessing Collections/containers > (even though there appears to be some coverage for Collections in the > draft..?). As and when the issue returns from postponement, I'd like > the following to be taken into consideration. > > It's the containers side this post concerns. rdfs:member [1] provides a way to access containers: WHERE { ?x rdf:type rdf:Bag . ?x rdfs:member ?y } One of the reasons for postponing is that it that it isn't completely clear it requires query language support. Inference may solve the problem. A similar approach may work with ":listMember" property [2] [1] http://www.w3.org/TR/rdf-schema/#ch_member [2] http://lists.w3.org/Archives/Public/public-rdf-dawg/2005JanMar/0079.html > I can totally understand > avoiding putting anything in place to cover the user-expected > semantics of containers, as opposed to what RDF Semantics covers. So > preservation of the order of an rdf:Seq probably doesn't have a place > in the spec. But to retain some utility, the current behaviour of > Redland seems to work. > > Example - an RSS feed contains: > > <channel rdf:about="http://www.xml.com/xml/news.rss"> > <title>XML.com</title> > <items> > <rdf:Seq> > <rdf:li resource="http://xml.com/pub/2000/08/09/xslt/xslt.html" /> > ... > ... > ... > <item rdf:about="http://xml.com/pub/2000/08/09/xslt/xslt.html"> > <title>Processing Inclusions with XSLT</title> > ... > > Given a query: > > SELECT ?name, ?title, ?x, ?y WHERE > { > ?channel rdf:type rss:channel . > ?channel rss:title ?name . > ?channel rss:items ?x . > ?x ?y ?item . > ?item rdf:type rss:item . > ?item rss:title ?title . > } > > This will return: > ?name = "XML.com" > ? title = "Processing Inclusions with XSLT" > > ?x is bound a bnode, y is bound to a resource of the form rdf:_9. > > This kind of access provides the necessary connectivity, and I'd > suggest would do for at least a provisional approach for the spec, > with the proviso that the actual binding of ?y remains unspecified. > > I don't know if there a precedent for deprecation by proxy, but it > wouldn't seem unreasonable to me to include a note saying "RDF > implementors intending to use SPARQL should avoid using containers in > their designs". > > Cheers, > Danny. > > [1] http://lists.gnomehack.com/pipermail/redland-dev/2005-June/000961.html The example query there is old SPARQL syntax - at the time there was no ORDER BY. The real issue there is that results are not ordered. They can be now: SELECT ?name ?title WHERE { ?channel rdf:type rss:channel ; rss:title ?name ; rss:items ?x . ?x rdf:type rdf:Seq ; ?y ?item . ?item rdf:type rss:item ; rss:title ?title . } ORDER BY ?y which removes the other triples properties (here, like the ?x rdf:type rdf:Seq) because of the item match. Andy
Received on Tuesday, 7 June 2005 17:43:12 UTC