我有以下代码来检索出生在巴塞罗那的所有人
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。我想要一个变量,在每个名字旁边都说巴塞罗那是出生地。有任何想法吗?
这个怎么样:
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
。