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