proposed change to errata-query-8

errata-query-8 suggests that variables that occur only in embedded EXISTS
should not be processed by substitute.

According to the example in Section 8.3.3

PREFIX : <http://example.com/>
SELECT * WHERE {
        ?x :p ?n
        FILTER NOT EXISTS {
                ?x :q ?m .
                FILTER(?n = ?m)
        }
}

variables in embedded FILTERS are to be substituted, so the exclusion is
only going to be for variables in EXISTS inside inner FILTERS, as in

PREFIX : <http://example.com/>
SELECT * WHERE {
        ?x :p ?n
        FILTER NOT EXISTS {
                ?x :q ?m .
                FILTER EXISTS{ ?n :s ?m }
        }
}

where the substitution is not done for the inner ?n but is done for the
inner ?m.

This difference in treatment does not appear to have any rationale.  There
is also no discussion of this case in the supporting discussion at
https://gist.github.com/kasei/2543d93652016e0bb860

This part of the erratum should be removed.

Peter F. Patel-Schneider
Nuance Communications

Received on Thursday, 23 June 2016 22:10:39 UTC