- 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