从SPARQL中的DBpedia人那里获得出生地

时间:2019-04-06 10:31:30

标签: sparql dbpedia

我有以下代码来检索在巴塞罗那出生的所有人

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?person ?birthPlace
WHERE {

   ?person rdfs:label ?label.
   ?person rdf:type dbo:Person.
   ?person <http://dbpedia.org/property/birthPlace> 
<http://dbpedia.org/resource/Barcelona>.

}

但是,我不知道如何获得出生地。我想要一个在每个名字旁边都注明巴塞罗那是出生地的变量。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如何?

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?person ?birthPlace
WHERE {
   ?person rdfs:label ?label.
   ?person rdf:type dbo:Person.
   ?person <http://dbpedia.org/property/birthPlace> ?birthPlace.
   FILTER (?birthPlace = <http://dbpedia.org/resource/Barcelona>)
}

请注意,您的查询具有匹配标签的模式,但不会返回标签。由于某些人具有多个标签(使用不同的语言),因此导致重复的结果。删除模式,或在?label子句中添加SELECT

您可以将<http://dbpedia.org/property/birthPlace>缩写为dbp:birthPlace