我正在尝试漂亮地打印从 RDF4J 中的 SPARQL 查询获得的结果。 RDF4J 内部是否有提供此功能的方法或类?我不要求其他第 3 方软件或额外的源代码(已经有一个 question for that 有很多好的答案)。
最佳答案
Rdf4j 中的查询结果没有真正的“ pretty-print ”,但我猜最接近的是 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的新类。 ,并重写其中需要自定义的任何方法(特别是 handleNamespace
、handleSolution
、startQueryResult
和 endQueryResult
)。或者您可以记录一个将此类添加到 Rdf4j 的功能请求(或者更好:自己编写然后为项目做出贡献:))
关于java - RDF4J 是否提供了一种以表格格式 pretty-print 结果的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53248506/