Jena Sparql和构造

时间:2010-06-04 18:37:37

标签: sparql jena dbpedia

CONSTRUCTSELECT的备用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);

2 个答案:

答案 0 :(得分:11)

Jena支持CONSTRUCT,但要获得结果,您需要调用其他方法,因为execSelectResultSet仅适用于SELECT次查询。请改用:

Model results = qexec.execConstruct();
results.write(System.out, "TURTLE");

Model是Jena用于访问RDF图的界面,有关详细信息,请参阅javadocs

答案 1 :(得分:2)

ResultSetFormatter.out(System.out,results,query)找不到符号和标识符此时发生预期错误