- From: Enrico Franconi <franconi@inf.unibz.it>
- Date: Mon, 17 Jul 2006 23:11:40 +0200
- To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
On 17 Jul 2006, at 22:59, Enrico Franconi wrote: >>> SELECT ?X >>> WHERE { ?X rdf:type Worker . >>> ?X :hasFriend ?Y . >>> ?Y rdf:type Employee . >>> ?Y :hasFriend ?Z . >>> ?Z rdf:type Manager } # note ?vars > > My above answer makes sense only if all the variables in the query > are distinguished (SELECT *). However, in your example only ?X is a > disinguished variable (SELECT ?X), and therefore YES, the correct > answer should be, and is, {?X/Paul}, since the non-distinguished > variables ?Y and ?Z are interpreted existentially. Given my later statement: On 17 Jul 2006, at 23:07, Enrico Franconi wrote: > Also note that in SPARQL the variables in a basic graph pattern are > all distinguished; the role of non-distinguished variables is > played by the bnodes. the only way to write in SPARQL the above query when you intend ?X to be the only distinguished variable is: SELECT ?X WHERE { ?X rdf:type Worker . ?X :hasFriend _:Y . _:Y rdf:type Employee . _:Y :hasFriend _:Z . _:Z rdf:type Manager } cheers --e.
Received on Monday, 17 July 2006 21:11:52 UTC