Hi guys,
I have a question which may or may not be a defect, but I need some input
first.
If you run with unionDefaultGraph==true and you have the following type of
query:
SELECT ?o
FROM <graphUri1>
FROM NAMED <graphUri2>
WHERE { ?s <somePredicate> ?o }
I would expect the pattern to match triples in both graphUri1 and
graphUri2. Currently, TDB/ARQ does not do this, but only picks matches
from graphUri1. Given that unionDefaultGraph=true should merge all named
graphs into the default graph, this is surprising. To elaborate a bit, we
found that the following query
SELECT ?o
FROM NAMED <graphUri2>
WHERE { ?s <somePredicate> ?o }
does pick results from graphUri2 (when run with unionDefaultGraph==true).
Also, when we execute the following query:
SELECT ?o
FROM <graphUri1>
FROM NAMED <graphUri2>
WHERE { graph ?g { ?s <somePredicate> ?o } }
then tdb seems to pick results from graphUri2 which is as expected.
We were thinking that explicit FROM/FROM NAMED clauses simply ignores the
unionDefaultGraph=true switch which could then explain the behavior of the
first query above, but it doesn't explain the one of the second query.
Feedback on this is welcome.
thanks,
Simon