Re: exists

I would assume that existing bindings should prevail in an exists
pattern... i.e. before computing the filter, you replace all variables with all existing (non-null) bindings...
do you see any problem with that?

just thinking out loud... would that also work with unbounds from optionals?
seems not to be a problem... e.g.

let't assume graph:

 a p b
 a q p

> select ?x ?y where {
> ?x p ?y OPTIONAL { ?y q ?z}
> filter( ! exists {?y q ?z })

would return {?x/a ?y/b}, whereas

> select ?x ?y where {
> ?x p ?y OPTIONAL { ?y q ?z}
> filter( ! exists {?v q ?z FILTER(?y != ?v) })

would return the empty solution set {}

on graph

 a p b
 b q p

in reverse, q1 would return {} and q2 would return  {?x/a ?y/b}, yes?



On 25 May 2010, at 12:44, Olivier Corby wrote:

> What is the scope of variables in nested exists pattern?
> For example, is the inner ?x the same as the outer ?x
> select * where {
> ?x p ?y
> filter(! exists {?y q ?z
>                         filter(! exists {?x r ?z})
>                       })
> }
> Olivier

Received on Tuesday, 25 May 2010 12:38:13 UTC