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