Как объяснено в комментариях, Java API просто использует ответ JSON REST и представляет его вам как TupleQueryResult
объект.
Если вы хотите каким-либо образом получить необработанный JSON, вы можете просто вызвать конечную точку REST Neptune напрямую, используя любую клиентскую библиотеку Java REST / HTTP.
В качестве альтернативы можно также повторно преобразовать результат, возвращаемый через API Rdf4j , в JSON (или любой другой сериализованный формат) следующим образом:
public static void main( String[] args )
{
String sparqlEndpoint = "https://your-neptune-endpoint:port/sparql";
Repository repo = new SPARQLRepository(sparqlEndpoint);
repo.initialize();
try (RepositoryConnection conn = repo.getConnection()) {
String queryString = "SELECT ?s ?p ?o WHERE { ?s ?p ?o } limit 10";
TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, queryString);
TupleQueryResultHandler jsonWriter = new SPARQLResultsJSONWriter(System.out);
tupleQuery.evaluate(jsonWriter);
}
}
Конечно, это менее эффективно, чем использование REST-клиента напрямую, поскольку вы в основном десериализуете, а затем сразу же повторно сериализуете результат, но это минимальное изменение кода, если вы все равно уже используете Rdf4j.