| Question asked
|
The paper mentions that variables are repl … The paper mentions that variables are replaced by constants from filter expressions, but depending on the system, the two forms of the query may mean different things. As an example, consider:
SELECT ?s WHERE {
?s <test:p> ?o .
FILTER(?o = "true"^^xsd:boolean)
}
According to SPARQL, the '=' operator here checks for _boolean_ equality if ?o is bound to an xsd:boolean literal. Therefore, if ?o binds to "1"^^xsd:boolean (non-canonical but valid lexical representation), FILTER "passes". However, with variable replacement, the query would become:
SELECT ?s WHERE {
?s <test:p> "true"^^xsd:boolean .
}
Depending on the system, this may not be equivalent (although it could be). Does DARQ account for this? it could be). Does DARQ account for this?
|