- From: james anderson <james@dydra.com>
- Date: Fri, 17 Jun 2016 01:58:01 +0000
- To: public-sparql-dev@w3.org
good morning; > On 2016-06-17, at 01:11, Peter F. Patel-Schneider <pfpschneider@gmail.com> wrote: > >> […] > > OOPS. In my attempt to make an easy example I forgot that I needed to > worry about which variables can be reported back. I also should avoid other > known problems with EXISTS (like using an in-scope variable as a SELECT > variable). > > One fix is to go to something like > SELECT ?x WHERE { > ?x :a ?y . > FILTER EXISTS { > SELECT ?z WHERE { ?z ?w ?v . FILTER sameTerm(?x,?y) } > } > } > where evaluating the inner SELECT logically first results in no solutions > because ?x and ?y are unbound. given this form: Input: 1 SELECT ?x WHERE { 2 ?x a ?y . 3 FILTER EXISTS { 4 SELECT ?z WHERE { ?z ?w ?v . FILTER sameTerm(?x,?y) } 5 } 6 } Algebra structure: 1 (base <http://example/base/> 2 (project (?x) 3 (filter (exists 4 (project (?z) 5 (filter (sameTerm ?x ?y) 6 (bgp (triple ?z ?w ?v))))) 7 (bgp (triple ?x <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?y))))) why would the result change were the project evaluated logically later? best regards, from berlin, --- james anderson | james@dydra.com | http://dydra.com
Received on Friday, 17 June 2016 01:58:32 UTC