I'm playing with Blazegraph (2.1.5) and Jena Fuseki (3.10.0). First I insert two triples with the following query:
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
insert data {
<http://s> <http://untyped> 'abc' .
<http://s> <http://typed> 'abc'^^xsd:string .
}
The triples have objects with the same string value, but one of them is untyped, and another is types as xsd:string
.
Then I execute the following query:
select * where { ?s ?p 'abc' }
Jena Fuseki finds both triples, while Blazegraph only finds the 'untyped' one.
The same happens if I specifically ask for a typed version:
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
select * where { ?s ?p 'abc'^^xsd:string }
Jena Fuseki again finds both triples, while Blazegraph only finds the 'typed' one.
The behavior is clearly different.
Here are my questions:
- What behavior (just one of them, or both) is consistent with the SparQL 1.1 specification?
- If Jena Fuseki behavior is the only consistent with the specification, is it possible to configure Blazegraph to behave like Fuseki?
- If Blazegraph behavior is the 'correct' one, is there a way to find both triples without using a
UNION
orFILTER
?