CONSTRUCT is an alternative SPARQL result clause to SELECT. Instead of returning a table of result values, CONSTRUCT returns an RDF graph. For instance, running this query in the following Java code produces an HttpException: 406 Unacceptable. But if instead of the CONSTRUCT block, I choose SELECT ?x, it's just fine. Does Jena support CONSTRUCT, and if so, how? Both queries are acceptable to the DBpedia endpoint.
PREFIX : <http://dbpedia.org/resource/>
PREFIX onto: <http://dbpedia.org/ontology/>
CONSTRUCT {
:France onto:anthem ?x
}
WHERE
{
:France onto:anthem ?x .
}
Query query = QueryFactory.create("the query goes here");
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query);
ResultSet results = qexec.execSelect();
ResultSetFormatter.out(System.out, results, query);
Jena supports CONSTRUCT, but to get the result you need to call a different method, because execSelect and ResultSet are only for SELECT queries. Use this instead:
Model results = qexec.execConstruct();
results.write(System.out, "TURTLE");
Model is Jena's interface for accessing RDF graphs, see the javadocs for details.
ResultSetFormatter.out(System.out, results, query) cannot find symbol and identifier expected error occurs at this point
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With