- 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