我正在尝试使用此查询通过国家/地区名称获取描述国家/地区罗马尼亚的资源:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX : <http://dbpedia.org/resource/>
SELECT DISTINCT ?x WHERE {
?x foaf:name 'Romania'
}
但是,它不会检索任何内容。如何通过字符串http://dbpedia.org/resource/Romania
获取资源:Romania
('Romania'
)。
如果我想通过国家/地区资源检索国家/地区的名称,我使用以下查询,该工作正常:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX : <http://dbpedia.org/resource/>
SELECT DISTINCT ?x WHERE {
:Romania foaf:name ?x
}
答案 0 :(得分:10)
应该这样做:
SELECT ?c
WHERE {
?c a dbo:Country ;
foaf:name "Romania"@en .
FILTER NOT EXISTS { ?c dbo:dissolutionYear ?y }
}
这里的关键怪癖是"Romania"
没有语言标记与"Romania"@en
不同。然后你还有一堆历史状态,也被称为罗马尼亚,所以我们过滤掉任何有多年解散的状态。 DBpedia在解散多年后的数据完整性并不是很好,但至少所有罗马尼亚语都被标记出来了。