- From: Birte Glimm <birte.glimm@comlab.ox.ac.uk>
- Date: Wed, 26 May 2010 11:50:03 +0100
- To: Axel Polleres <axel.polleres@deri.org>
- Cc: Olivier Corby <Olivier.Corby@sophia.inria.fr>, SPARQL Working Group <public-rdf-dawg@w3.org>
Axel, I also tried you examples to test my understanding and I come to the same results that you have (not that this gives a guarantee the we get it right ;-) ). Birte On 25 May 2010 13:37, Axel Polleres <axel.polleres@deri.org> wrote: > 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: > > g1: > a p b > a q p > > q1: >> select ?x ?y where { >> ?x p ?y OPTIONAL { ?y q ?z} >> filter( ! exists {?y q ?z }) > > > would return {?x/a ?y/b}, whereas > > q2: >> 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 > > g2: > a p b > b q p > > in reverse, q1 would return {} and q2 would return {?x/a ?y/b}, yes? > > Axel > > > > > 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 >> >> > > > -- Dr. Birte Glimm, Room 306 Computing Laboratory Parks Road Oxford OX1 3QD United Kingdom +44 (0)1865 283529
Received on Wednesday, 26 May 2010 10:50:38 UTC