我正在尝试将数据从 SPARQL 端点移动到 JSONObject。使用 RDF4J。
RDF4J 文档没有直接解决这个问题(一些关于使用端点的信息,更少关于转换为 JSON 的信息,以及这两种情况相遇的地方)。
到目前为止,我有:
SPARQLRepository repo = new SPARQLRepository(<My Endpoint>);
Map<String, String> headers = new HashMap<String, String>();
headers.put("Accept", "SPARQL/JSON");
repo.setAdditionalHttpHeaders(headers);
try (RepositoryConnection conn = repo.getConnection())
{
String queryString = "SELECT * WHERE {GRAPH <urn:x-evn-master:mwadata> {?s ?p ?o}}";
GraphQuery query = conn.prepareGraphQuery(queryString);
debug("Mark 2");
try (GraphQueryResult result = query.evaluate())
这失败了,因为“服务器以不受支持的文件格式响应:application/sparql-results+json”
我认为 SPARQLGraphQuery 应该代替 GraphQuery,但 RepositoryConnection 没有相关的准备语句。
如果我交换
try (RepositoryConnection conn = repo.getConnection())
和
try (SPARQLConnection conn = (SPARQLConnection)repo.getConnection())
我遇到了 SPARQLConnection 不生成 SPARQLGraphQuery 的问题。我能得到的最接近的是:
SPARQLGraphQuery query = (SPARQLGraphQuery)conn.prepareQuery(QueryLanguage.SPARQL, queryString);
这会导致运行时错误,因为这些类型不能相互转换。
我不知道如何从这里开始。非常感谢任何帮助或建议。谢谢