Re: updated draft

On 04/02/2017 09:08 AM, james anderson wrote:
> good evening;
> 
>> On 2017-04-02, at 14:40, Peter F. Patel-Schneider <pfpschneider@gmail.com> wrote:
>>
>> On 04/02/2017 05:31 AM, james anderson wrote:
>>> good afternoon;
>>>> […]
>>>>
>>>> Do you think that there is not even consensus  on the "problematic
>>>> situations”?
>>>
>>> correct.
>>> i have maintained, from the start, that some of the purported issues follow from a misconception and are not entailed by the recommendation.
>>>
>>>> I changed the abstract so that it does not say that there is
>>>> consensus on the solution.
>>>>
>>>> Here is what I am seeing for the abstract.
>>>>
>>>>
>>>>
>>>> Abstract
>>>>
>>>> A number of issues with the SPARQL EXISTS feature have been identified. This
>>>> document records community consensus within the SPARQL Maintenance (EXISTS)
>>>> Community Group on problematic situations with respect to SPARQL EXISTS and
>>>> contains two proposals for improvement, one that emphasizes maintaining some
>>>> form of compatibility and one that emphasizes producing a simple solution that
>>>> fits well into the rest of SPARQL.
>>>
>>> that restatement better articulates an incremental process.
>>> it does not change the view that some of the recorded issues are chimeric.
>>> i continue to maintain, the only true issue is #1.
>>>
>>> best regards, from berlin,
>>
>> Somehow I was unaware that you did not agree that the examples that I put
>> forward are problematic.
> 
> i have been presenting that position for months.
> it is unfortunate, that i did not present it adequately, that it was understood.
> 
>>
>> So you do not agree, for example, that that it is problematic that according
>> to the SPARQL specification that the running the query
>>
>> SELECT ?x WHERE {
>>    ?x :p :d .
>>    FILTER EXISTS { ?x :q :b . } }
>>
>> against the graph
>>
>> _:c :p :d .
>> :e :q :b .
>>
>> produces a result set containing a query solution that maps ?x to _:c?
>>
>> peter
> 
> it would be problematic were the recommendation to require an implementation to produce that result.
> the recommendation does not require that.
> i do understand that various interpretations of the recommendation lead one to believe that it implies that result.
> those interpretations are flawed.
> 
> best regards, from berlin,
> 
> 
> 
> ---
> james anderson | james@dydra.com | http://dydra.com

Are you saying that the SPARQL specification at
https://www.w3.org/TR/sparql11-query/ does not require this result?   My
understanding is that it does.


My understanding is that, assuming that joins of empty BGPs are removed
everywhere, the SPARQL specification translates the above query into

Project( ToList(Filter( exists ( BGP(?x :q :b) ) , BGP(?x :p :d) ) ) ,
  { ?x } )

This expression is evaluated on the graph by first evaluating BGP(?x :p :d),
resulting in the singleton multiset of solutions {{ {(?x,_:c)} }}.  Then the
exists substitution is performed for the solution {(?x,_:c)}, resulting in
BGP(_:c :q :b), whose subsequent evalution results in the multiset of
solutions {{ {} }}, i.e., a multiset containing the empty solution.

Because the result is not the empty multiset, the filter does not filter out
the solution {(?x,_:c)}.  So the result of the Filter expression is the
singleton multiset of solutions {{ {(?x,_:c)} }}, and then the result of the
entire query is the unordered list of solutions [ {(?x,_:c)} ].

What is wrong with this analysis?

peter

Received on Sunday, 2 April 2017 17:37:41 UTC