- From: Fred Zemke <fred.zemke@oracle.com>
- Date: Tue, 20 Jun 2006 12:36:54 -0700
- To: public-rdf-dawg@w3.org
1. Dataset: <a> <b> <c1>. <a> <b> <c2> . query: SELECT ?x WHERE { ?x <b> _:a } I believe the solution sequence must contain one row and not two (because there is only one mapping ?x -> <a> and the number of ways that _:a can match is immaterial.) 2. Same dataset; query SELECT ?x ? y WHERE { ?x <b> ?y } result must have two solutions. This is no doubt obvious; it is just proposed for completeness to contrast with #1. 3. Dataset: <s> <v1> <o1> . <s> <v2> <o2> . query: SELECT ?x WHERE { ?x <v1> _:a . ?x <v2> _:a FILTER (isIRI (?x)) } no solution, because it is not possible to match _:a to a single node of the dataset and still satisfy both triple patterns. 3. Same dataset, slightly revised query: SELECT ?x WHERE { ?x <v1> _:a . FILTER (isIRI (?x)) ?x <v2> _:a } Now there is one solution, ?x -> <s>, because the first triple pattern can be satisfied by mapping _:a to <o1> and the second triple pattern can be satisfied by mapping _:a to <o2>. Since the triple patterns are separted by a FILTER they are not in the same BlockOfTriples and the blank node identifier _:a does not need to map to the same thing. 4. same dataset with this query: SELECT ?x WHERE { { ?x <v1> _:a } { ?x <v2> _:a } } Again, there is one solution, because the two triple patterns are not in a single BlockOfTriples. 5. any dataset, query: SELECT ?X ?Y WHERE { } the point being, what is the solution sequence of an empty pattern? 6. dataset: <a> <v1> <n1> . <b> <v2> <n2> . <a> <v3> <c> . <a> <v3> <d> . query: SELECT ?x ?y WHERE { { ?x <v1> <n1> } UNION { ?x <v2> <n2> } OPTIONAL { ?x <v3> ?y } } 7. query: PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?src ?name FROM NAMED <http://example.org/alice> FROM NAMED <http://example.org/alice> WHERE { GRAPH ?src { ?x foaf:name ?name } } the point being, what happens if a graph is named twice? does it cause duplicate solutions or not? Fred
Received on Tuesday, 20 June 2006 19:37:19 UTC