从SPARQL中的DBpedia人员中获取出生地

问题描述 投票:1回答: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> 
<http://dbpedia.org/resource/Barcelona>.

}

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

sparql dbpedia
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.