我需要使用 Sesame 将 SPARQL 查询结果导出到 JSON 中。我应该使用类SPARQLResultsJSONWriter
吗? 这将如何实现(在Java中)?
这实际上在芝麻存储库 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();
}