我正在尝试漂亮地打印从RDF4J中的SPARQL查询获得的结果。 RDF4J内是否有提供此功能的方法或类?我并不需要其他第三方软件或其他源代码(已经有一个question for that,有很多好的答案)。
答案 0 :(得分: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的新类,并覆盖其中需要自定义的任何方法(特别是handleNamespace
,handleSolution
,startQueryResult
和{ {1}})。或者,您可以记录将要添加到Rdf4j的此类的功能请求(甚至更好:自己编写然后为项目做贡献:))