- 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