将SPARQL查询结果导出到sesame中的json文件中

时间:2013-09-05 15:38:05

标签: java sparql sesame

我需要使用Sesame将SPARQL查询结果导出为JSON。我应该使用班级SPARQLResultsJSONWriter吗?如何实现(用Java)?

1 个答案:

答案 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();
}