Andy-- Is that warning something I need to fix in TIM, or is it coming from the query machinery (and therefore something that is probably beyond me for the moment)?
--- A. Soroka The University of Virginia Library > On Jul 7, 2016, at 8:32 AM, Andy Seaborne <a...@apache.org> wrote: > > Hi, > > > DatasetFactory.create(); > > Union graph doesn't yet work on general datasets consistently. > > It works for TDB and for TxnMem (also known as TIM) - in the latter case the > warning from the OpExecutor comes out but it's wrong. > > Andy > > On 05/07/16 17:15, François-Paul Servant wrote: >> Hi, >> >> I'm trying to query the named graphs of a TDB dataset using >> <urn:x-arq:UnionGraph>, but I must be missing something. Is there something >> special to do in order to use <urn:x-arq:UnionGraph> as a graph name in a >> query? >> >> Here is what I'm trying (this test uses a memory dataset: only works with >> 3.1.1-SNAPSHOT. Normally, I use TDB) >> >> TIA, >> >> fps >> >> package sometests; >> >> import static org.junit.Assert.*; >> >> import org.apache.jena.query.Dataset; >> import org.apache.jena.query.DatasetFactory; >> import org.apache.jena.query.Query; >> import org.apache.jena.query.QueryExecution; >> import org.apache.jena.query.QueryExecutionFactory; >> import org.apache.jena.query.QueryFactory; >> import org.apache.jena.query.QuerySolution; >> import org.apache.jena.query.ResultSet; >> import org.apache.jena.rdf.model.Model; >> import org.apache.jena.rdf.model.ModelFactory; >> import org.junit.Test; >> >> public class UnionGraphTest { >> >> @Test public final void test() { >> Model m = ModelFactory.createDefaultModel(); >> m.add( >> m.createResource("http://ex.com/s"), >> m.createProperty("http://ex.com/p"), >> m.createResource("http://ex.com/o")); >> Dataset ds = DatasetFactory.create(); >> ds.addNamedModel("http://ex.com/g", m); >> >> // query using the named graph: return some results >> doIt(ds, "http://ex.com/g"); >> // same query, using urn:x-arq:UnionGraph, doens't return any result >> doIt(ds, "urn:x-arq:UnionGraph"); >> } >> >> private void doIt(Dataset ds, String graphName) { >> String queryString = "SELECT * WHERE { GRAPH <" + graphName + "> {?s ?p >> ?o} }"; >> Query q = QueryFactory.create(queryString) ; >> QueryExecution qexec = QueryExecutionFactory.create(q, ds); >> ResultSet rs = qexec.execSelect(); >> assertTrue(rs.hasNext()); >> for (;rs.hasNext();) { >> QuerySolution sol = rs.next(); >> System.out.println(sol); >> } >> } >> } >> >