使用 SPARQL 按字符串名称检索 DBpedia 资源
我试图通过以下查询通过国家/地区名称获取描述国家/地区罗马尼亚的资源:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX : <http://dbpedia.org/resource/>
SELECT DISTINCT ?x WHERE {
?x foaf:name 'Romania'
}
但是,它不会检索任何内容。如何通过字符串 '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
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这应该可以做到:
SPARQL 结果
这里的关键怪癖是没有语言标签的
"Romania"
与"Romania"@en
不同。然后还有一堆历史国家,也被称为罗马尼亚,所以我们过滤掉那些已经解散多年的国家。 DBpedia 多年来解散后的数据完整性并不是很好,但至少所有罗马尼亚语的数据都有标记。This ought to do it:
SPARQL results
The critical quirk here is that
"Romania"
with no language tag is different from"Romania"@en
. And then you also have a bunch of historical states that were also called Romania, so we filter out any of those that have years of dissolution. DBpedia's data-completeness for years of dissolution isn't terrific, but all the Romanian ones, at least, are marked.