Нет реального «красивого принтера» для результатов запроса в 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
и endQueryResult
). Или вы можете зарегистрировать запрос на добавление такого класса в Rdf4j (или даже лучше: напишите его самостоятельно, а затем внесите свой вклад в проект :))