On 06/17/2016 11:55 AM, Gregory Williams wrote:
> On Jun 17, 2016, at 11:38 AM, Peter F. Patel-Schneider 
> <pfpschnei...@gmail.com> wrote:
>>
>> To argue otherwise is to argue that some current implementations have made
>> unfounded assumptions about EXISTS that don't conform to the correct
>> clarification of the specification and thus should be changed.  Instead the
>> argument has to be that it is necessary to change the SPARQL spec in a way
>> that delegitimizes some current implementations that are currently
>> legitimate and legitimizes other current implementations that are currently
>> illegitimate.  My hope is that this latter argument will be made
>> successfully!
> 
> Peter,
> 
> Are you aware of systems that follow the spec text for substitute() that you 
> discuss? I’d be interested in knowing if (and to what extent) this is an 
> actual compatibility problem between existing implementations.
> 
> thanks,
> .greg

According to https://scirate.com/arxiv/1606.01441, Virtuoso Open Source
Edition 7 does.  One example from there is

SELECT ?parent
WHERE { ?parent :country :j
  FILTER ( EXISTS { SELECT ?child
    WHERE { ?child :parent ?parent }})}

On
  :a :country :j .
  :a :parent :b .
  :b :country :j .
  :b :parent :c .
  :c :parent :d .
  :c :country :k .
Virtuoso returns
  { { (parent :b) } }
indicating that it is evaluating the subquery with ?parent replaced by :a and
:b separately as directed by the definition of substitute.

I have not verified this directly.

peter

Reply via email to