- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Tue, 08 Nov 2005 13:51:20 +0000
- To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
> http://lists.w3.org/Archives/Public/public-swbp-wg/2005Nov/0036
Some thoughts:
David notes that support for transitive closure is an alternative approach for
told bNodes. Support for transitive closure isn't necessary if it is declared
outside the query but I think the community expectation will be syntax in the
query itself.
I tried generalizing this to property regular expressions (PRE's) with * + ?
() {N,M} operators plus / for path traversal and | for alternative choicies.
(These path expressions are different from cwm's which name nodes IIUC) This
is not implemented completely yet but the syntax worked out (the one oddball
case is a trailing "?" because it can start variables - greedy tokenization
does the right thing because qnames must have a ":" in them and there is an
explicit path traversal operator).
Examples:
Lists:
{ ?someList rdf:rest*/rdf:first ?item . }
Hierarchies:
{ ?A rdfs:subClassOf+ ?B }
{ ?x rdf:type/rdfs:subClassOf* ?t }
{ ?book dc10:title|dc11:title ?title }
I guess simple * is a bit odd but:
{ ?A :p* ?B }
would include the no-property path from ?A to ?B so always be true if ?A can
be bound.
(Not proposing it for this WG.)
Andy
Received on Tuesday, 8 November 2005 13:53:58 UTC