Re: indication of intended meaning for EXISTS from SPARQL specifications

On 12/02/18 15:18, Peter F. Patel-Schneider wrote:
>>> This matches up directly with the stated intent of EXISTS from [11]
>>>
>>> "The NOT EXISTS filter expression tests whether a graph pattern does not match
>>> the dataset"
>> The rest of the sentence says:
>>
>> """
>> given the values of variables in the group graph pattern in which the filter
>> occurs.
>> """
>>
>> which is where the replacement-substitution comes from (yes, it has some
>> issues as identified by the CG).
> 
> You seem to think that the added "given the values of variables in the group
> graph pattern in which the filter occurs" in Section 8.1.1 of [11] leads
> towards the replacement-substitution interpretation of NOT EXISTS in SPARQL
> 1.1.  I view this addition as undercutting the replacement-substitution
> interpretation.
> 
> Here is the full wording of the beginning of that section, which is the
> introduction of NOT EXISTS in the specification:

<theQuote>

> 8.1.1 Testing For the Absence of a Pattern
> 
> The NOT EXISTS filter expression tests whether a graph pattern does not
> match the dataset, given the values of variables in the group graph pattern
> in which the filter occurs. It does not generate any additional bindings.
> 
</theQuote>

> So, given values for some variables (those in the enclosing group graph
> pattern), the described meaning of NOT EXISTS is to test whether a graph
> pattern (its argument) does not match the dataset.

the additional phrase "given the variables of the current row." FILTER 
is taking the current row into consideration.  The match-given text is 
to me quite clear and especially when the whole document is considered; 
do you have some suggested wording that you find better?

The intention is a FILTER operation that is "match with current row and 
pattern" and the way that happens defined later.

Substitute is the mechanism. The better mechanism is to not substitute 
but to make the (var, value) binding available. c.f SQL correlated 
sub-query.

It is a correlated subquery, not an anti-join (which is style of MINUS). 
These different ways to achieve negation is why the WG settled on two 
features.

     Andy

Received on Wednesday, 14 February 2018 18:14:43 UTC