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