这是这个问题的演变。
基本上,我无法从远程端点获取 SPARQL 查询的所有解决方案。我在这里通读了第 2.4 节,因为它似乎描述了与我的情况几乎相同的情况。
这个想法是我想根据我本地 RDF 图中的信息从 DBPedia 过滤我的结果。查询在这里:
PREFIX ns1:
<http://www.semanticweb.org/caeleanb/ontologies/twittermap#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT *
WHERE {
?p ns1:displayName ?name .
SERVICE <http://dbpedia.org/sparql> {
?s rdfs:label ?name .
?s rdf:type foaf:Person .
}
}
我得到的唯一结果是 dbpedia:John_McCain (for ?s)。我认为这是因为 John McCain 是第一个“x”结果中的唯一匹配项,但我不知道如何让查询返回所有匹配项。例如,如果我添加如下过滤器:
SERVICE <http://dbpedia.org/sparql> {
?s rdfs:label ?name .
?s rdf:type foaf:Person .
FILTER(?name = "John McCain"@en || ?name = "Jamie Oliver"@en)
}
然后它正确返回 dbpedia:Jamie_Oliver 和 dbpedia:John_McCain。除非我专门将其添加到像这样的过滤器中,否则还有许多其他比赛(例如 Jamie Oliver)无法通过。
有人可以解释一种提取其余匹配项的方法吗?谢谢。