开发者

Jena Sparql and construct

开发者 https://www.devze.com 2023-01-02 13:47 出处:网络
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 pr

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",     quer开发者_高级运维y);
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

0

精彩评论

暂无评论...
验证码 换一张
取 消