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

Reply via email to