- From: Andy Seaborne <andy@apache.org>
- Date: Sat, 16 Apr 2016 10:55:43 +0100
- To: public-sparql-dev@w3.org
On 16/04/16 07:23, Michael Schmidt wrote: > Dear community, > > we’ve got a question regarding the semantics of FILTER NOT IN (inspired > by > http://www.w3.org/2001/sw/DataAccess/tests/data-r2/syntax-sparql1/manifest#sparql11-not-in-02), > which boils down to literal equality issues. I don't see that test in that manifest. Also, > syntax-sparql1 Those are syntax tests, not evaluation tests. In that manifest, all tests are "#syntax-...." > > Look at the following example: > > - Data: <http://s> <http://p> "a” . > - Query: > > SELECT * WHERE { > ?s ?p ?o > FILTER (?o NOT IN (1)) > } > > According to the standard ("The |NOT IN| operator is equivalent to the > SPARQL expression: (lhs != expression1) && (lhs != expression2) && …)”) > this query is equivalent to: > > SELECT * WHERE { > ?s ?p ?o > FILTER (?o!=1) > } > > Further, the standard says "The test is done with "!=" operator, which > tests for not the same value, as determined by the operator mapping > <https://www.w3.org/TR/sparql11-query/#OperatorMapping>.”, where the > operator mapping section defines no explicit rule for comparing plain > literals to numerics (but delegates to various casting/substitution > rules defined in XPath standards) . > > My questions now are: > - What is the expected result of “a”!=1? And why — which of the rules in > the operator mapping table would apply here (if any?). The expected > result of sparql11-not-in-02 indicates that this neq comparison should > evaluate to true rather than error, but I actually do not see why. There is no implicit casting in SPARQL. If there is no mapping then it is a evaluation error. (specific engines may do better - for example the value space of strings and the value space of integers don't overlap so the answer is "false") > - Would the result be different in the context of RDF1.1, where wecwould > compare “a”^^xsd:string!=1 instead? No. > > Thanks in advance for any help, > Michael > Andy PS You may be interested in the community work to maintain the RDF 1.1 and SPARQL 1.1 tests: https://www.w3.org/community/rdf-tests/ https://github.com/w3c/rdf-tests
Received on Saturday, 16 April 2016 09:56:14 UTC