- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Wed, 15 Mar 2017 12:24:50 -0700
- To: Andy Seaborne <andy@apache.org>, public-sparql-exists@w3.org
On 03/15/2017 08:45 AM, Andy Seaborne wrote: > > > On 10/03/17 18:36, Peter F. Patel-Schneider wrote: >> while correctly leaving legal things like >> >> SELECT ?a WHERE { >> FILTER EXISTS { SELECT ?b WHERE { BIND ( ex:a AS ?a ) ?a ex:q ?b . } } >> ?a ex:p ?b . >> } >> >> However, the evaluation rules for EXISTS break down. > > I don't understand the point here - could you expand on this example please? > > Andy Hmm. Maybe there is no problem here. I was trying to turn a pre-binding problem into an EXISTS problem. Consider SELECT ?b WHERE { BIND ( ex:a AS ?a ) ?a ex:q ?b . } with ?b pre-bound. The translation ends up as a projection, and PrjMap is not defined on projection. However a subselect wraps the projection inside a ToMultiSet. So, sorry, not a problem with EXISTS, just one with pre-binding. However, Project does show up in other places, so maybe there is still a bit of a problem. The solution is, I think, to change to For any algebra expression X, define the Variable Remapping PrjMap(X): PrjMap(X) = replace all project operations with PrjMap(P,PV) for each projection in X. peter
Received on Wednesday, 15 March 2017 19:25:25 UTC