CONSTRUCT
是SELECT
的备用SPARQL结果子句。 CONSTRUCT
不返回结果值表,而是返回RDF图。例如,在以下Java代码中运行此查询会生成HttpException: 406 Unacceptable
。但是,如果不是CONSTRUCT
块,我选择SELECT ?x
,就可以了。 Jena是否支持CONSTRUCT
,如果支持,怎么做?这两个查询都可以被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);
答案 0 :(得分:11)
Jena支持CONSTRUCT
,但要获得结果,您需要调用其他方法,因为execSelect
和ResultSet
仅适用于SELECT
次查询。请改用:
Model results = qexec.execConstruct();
results.write(System.out, "TURTLE");
Model
是Jena用于访问RDF图的界面,有关详细信息,请参阅javadocs。
答案 1 :(得分:2)
ResultSetFormatter.out(System.out,results,query)找不到符号和标识符此时发生预期错误