如何将 Jena 结果集加载到 Jena 模型

问题描述 投票:0回答:1

我在 DBpedia 上写了一个查询。

SELECT * WHERE {
    <http://dbpedia.org/resource/London> ?p ?o.
    FILTER (langMatches(lang(?x),"en"))
}

我想将结果加载到 Jena 模型中,以便稍后可以对其进行查询。我怎样才能做到这一点?

我已经检查了这个答案。但这不起作用,或者也许我没有正确理解它。有人会用适当的例子解释一下吗?

jena
1个回答
0
投票

您可以在 DBpedia 上运行第一个

CONSTRUCT
SPARQL 查询来获取本地模型。然后,您可以在该模型上运行第二个
SELECT
SPARQL 本地查询。

final Query remoteQuery = QueryFactory.create("""
        CONSTRUCT {
          ?subject ?predicate ?object .
        }
        WHERE {
          ?subject ?predicate ?object .
          FILTER (?subject = <http://dbpedia.org/resource/London>)
        }""");

final Query localQuery = QueryFactory.create("""
        SELECT ?subject ?object {
           ?subject <http://dbpedia.org/property/populationTotal> ?object
        }""");

try (QueryExecution remoteExecution = QueryExecutionHTTP.service("https://dbpedia.org/sparql", remoteQuery)) {
  Model model = remoteExecution.execConstruct();
  try (QueryExecution localExecution = QueryExecutionFactory.create(localQuery, model)) {
    ResultSet resultSet = localExecution.execSelect();
    ResultSetFormatter.out(System.out, resultSet);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.