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

从SPARQL中的DBpedia人员那里获取出生地,sparql,dbpedia,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://

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

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>.

}
前缀dbo:
前缀rdfs:
选择人的出生地
在哪里{
?人员rdfs:标签?标签。
?人员rdf:类型dbo:人员。
?人
.
}
然而,我不知道如何得到出生地。我想要一个变量,在每个名字旁边写着巴塞罗那是出生地。有什么想法吗?

这个怎么样:

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>)
}
前缀dbo:
前缀rdfs:
选择人的出生地
在哪里{
?人员rdfs:标签?标签。
?人员rdf:类型dbo:人员。
人?出生地。
过滤器(?出生地=)
}
请注意,您的查询具有匹配标签的模式,但不会返回标签。这会导致重复的结果,因为有些人有多个标签(使用不同的语言)。删除图案,或将标签添加到
选择
子句中


您可以将
缩写为
dbp:birthPlace

我强烈建议使用
resp<代码>dbo:出生地。还有更多的结果:
23对1568
。加上类型化属性的
dbo:
名称空间是已知的,因此,值可以是URI或literal,但不能同时是URI和literal。事实上,为了完整性,有时甚至应该使用两者的并集,例如,使用一个奇特的属性路径
dbp:birthPlace | dbo:birthPlace