有关将Java API用于Amazon Neptune SPARQL SELECT查询的文档仅显示如何遍历TupleQuery的结果。 amazon docs
是否可以获取原始JSON响应,因此它与用于REST接口调用的代码兼容?
答案 0 :(得分:1)
就像评论中解释的那样,Java API仅使用JSON REST响应并将其作为TupleQueryResult
对象呈现给您。
如果希望以某种方式接收原始JSON,则可以直接使用任何Java REST / HTTP客户端库直接调用Neptune REST端点。
或者,也可以将通过Rdf4j API返回的结果重新转换为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,这是最小的代码更改。