- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Fri, 17 Jun 2016 04:16:50 -0700
- To: james anderson <james@dydra.com>
- Cc: public-sparql-dev@w3.org
> On 17 Jun 2016, at 03:58, james anderson <james@dydra.com> wrote: > > good morning; > >> On 2016-06-17, at 01:11, Peter F. Patel-Schneider <pfpschneider@gmail.com> wrote: >> [...] > 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 Evaluating the project first results in an empty solution sequence because x and y are unbound. Evaluating the project after an exists substitution will result in a solution sequence with a solution mapping binding z for each triple in the active graph if x and y were bound to the same term. peter
Received on Friday, 17 June 2016 11:17:22 UTC