我在 DBpedia 上写了一个查询。
SELECT * WHERE {
<http://dbpedia.org/resource/London> ?p ?o.
FILTER (langMatches(lang(?x),"en"))
}
我想将结果加载到 Jena 模型中,以便稍后可以对其进行查询。我怎样才能做到这一点?
我已经检查了这个答案。但这不起作用,或者也许我没有正确理解它。有人会用适当的例子解释一下吗?
您可以在 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);
}
}