我需要使用Sesame将SPARQL查询结果导出为JSON。我应该使用班级SPARQLResultsJSONWriter
吗?如何实现(用Java)?
答案 0 :(得分:5)
这实际上是在Sesame Repository API用户文档中解释的,其中包含要演示的代码示例。
但是,重申一下:一旦使用RepositoryConnection.prepareTupleQuery准备了查询,就可以通过两种方式评估返回的TupleQuery对象:一种是通过调用evaluate()
,在这种情况下评估方法将返回一个TupleQueryResult对象。另一种方法是调用evaluate(TupleQueryResultHandler)
并传递一个TupleQueryResultHandler实例,其中SPARQLResultJSONWriter是一个子类。所以你需要的就是将各个部分组合在一起,如下所示:
RepositoryConnection conn = rep.getConnection();
try {
// prepare the query
String queryString = "SELECT * WHERE {?s ?p ?o . }";
TupleQuery query = conn.prepareTupleQuery(QueryLanguage.SPARQL, queryString);
// open a file to write the result to it in JSON format
OutputStream out = new FileOutputStream("/path/to/output.json");
TupleQueryResultHandler writer = new SPARQLResultJSONWriter(out);
// execute the query and write the result directly to file
query.evaluate(writer);
}
finally {
conn.close();
}