Reiterating my comments from the issue report for completeness of this thread
The in-memory dataset does not honour FROM clauses by design (though I don't know the reasons for that design decision) Using the GRAPH keyword is a more reliable and portable way to write such queries e.g. SELECT ?s ?p ?o WHERE { GRAPH <urn:graph> { ?s ?p ?o } } Rob On 09/02/2016 19:25, "Todd Schiller" <todd.schil...@gmail.com> wrote: >I'm trying to query a named graph in an in-memory dataset using SPARQL. >What is the correct way to refer to the named graph in the FROM clause? >Enclosing the graph's name (a URN) in braces isn't working for me (see >reproduction below). > >I suspect it has something to do with how the in-memory dataset resolves >the FROM clause (cf. >https://jena.apache.org/tutorials/sparql_datasets.html)? >I don't have problems when using a TDB-backed dataset. > >Tracking as: https://issues.apache.org/jira/browse/JENA-1135 > >Thanks, >Todd > >======= Jena 3.0.1 > >import org.apache.jena.query.*; >import org.apache.jena.rdf.model.*; >import org.apache.jena.vocabulary.RDFS; > >public class GraphTest { > public static void main(String [] args) { > Dataset data = DatasetFactory.create(); > > Model model = ModelFactory.createDefaultModel(); > model.getResource("urn:foo").addLiteral(RDFS.label, "foobar"); > data.addNamedModel("urn:graph", model); > > String sparql = "SELECT ?s ?p ?o FROM <urn:graph> WHERE { ?s ?p ?o >}"; > ResultSet results = QueryExecutionFactory.create(sparql, >data).execSelect(); > int cnt = 0; > while (results.hasNext()) { > cnt++; > results.next(); > } > > // should both print 1 > System.out.println("# results: " + cnt); // prints 0 > System.out.println("Model size: " + >data.getNamedModel("urn:graph").size()); // prints 1 > } >}