4

CONSTRUCT是 . 的替代 SPARQL 结果子句SELECT。不是返回结果值表,而是CONSTRUCT返回一个 RDF 图。例如,在以下 Java 代码中运行此查询会生成一个HttpException: 406 Unacceptable. 但是,如果CONSTRUCT我选择而不是块,SELECT ?x那很好。Jena 是否支持CONSTRUCT,如果支持,如何支持?DBpedia 端点可以接受这两个查询。

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);
4

2 回答 2

11

Jena 支持CONSTRUCT,但要获得结果,您需要调用不同的方法,因为execSelectResultSet仅用于SELECT查询。改用这个:

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

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

于 2010-06-04T20:14:30.187 回答
2

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

于 2010-09-28T13:47:40.873 回答