2

我正在尝试漂亮地打印从 RDF4J 中的 SPARQL 查询获得的结果。在 RDF4J 中是否有提供此功能的方法或类?我不是要求其他 3rd 方软件或其他源代码(已经有一个问题,有很多很好的答案)。

4

1 回答 1

0

Rdf4j 中的查询结果没有真正的“漂亮打印机”,但我猜最接近的是 CSV(逗号分隔值)或 TSV(制表符分隔值)编写器。Rdf4j Workbench 提供这些格式作为导出查询结果的选项。如果您想将它们用于以编程方式执行查询,您可以按照以下方式进行操作:

// write TSV result to STDOUT (to write to file, use a FileoutputStream instead)
SPARQLResultsTSVWriter writer = new SPARQLResultsTSVWriter(System.out); 
try (RepositoryConnection conn = rep.getConnection()) {
   String query = "SELECT ... ";
   // execute the query and stream the result to the supplied writer
   conn.prepareTupleQuery(query).evaluate(writer);
}

如果您需要比这更漂亮的东西,您可以编写自己的自定义查询结果处理程序,并使用它来代替SPARQLResultsTSVWriter. 为此,请创建一个扩展AbstractQueryResultWriter的新类,并覆盖其中需要自定义的任何方法(特别是、handleNamespacehandleSolution)。或者您可以记录将此类添加到 Rdf4j 的功能请求(或者更好:自己编写然后为项目做出贡献:))startQueryResultendQueryResult

于 2018-11-12T22:14:25.040 回答