简体   繁体   中英

Does RDF4J offer a way to pretty print results in tabular format?

I am trying to pretty print the results I get from a SPARQL query in RDF4J. Is there a method or class, inside RDF4J that offers this functionality? I am not asking for other 3rd party software or additional source code (there is already a question for that with many good answers).

There's no real "pretty printer" for query results in Rdf4j but I guess the closest is either the CSV (comma-separated-values) or TSV (tab-separated-values) writers. The Rdf4j Workbench offers these formats as options for exporting a query result. If you want to use them for programmatic execution of a query, you'd do something along these lines:

// 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);
}

If you need something prettier than that, you could write your own custom query result handler, and use it in place of the SPARQLResultsTSVWriter . To do this, create a new class that extends AbstractQueryResultWriter , and override any of the methods in there that need customization (in particular, handleNamespace , handleSolution , startQueryResult and endQueryResult ). Or you could log a feature request for such a class to be added to Rdf4j (or even better: write it yourself then contribute to the project :))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM