【发布时间】:2013-05-23 18:11:27
【问题描述】:
假设我需要从维基百科中获取有关所有山脉的内容。我的目标是显示初始段落,以及相应文章中的图片(例如Monte Rosa 和 Vincent Pyramid。
我开始了解 dbpedia,并通过一些研究发现它直接提供对 wiki 数据库的实时查询。
我有两个问题:
1 - 我发现我很难制定我的查询。我不能玩iSPARQL。我尝试了以下查询,但它抛出错误,说无效的 xml。
SELECT DISTINCT ?Mountain FROM <http://dbpedia.org> WHERE {
[] rdf:type ?Mountain
}
2 - 我的要求是仅显示至少有 1 张图像的山脉(我也需要显示此图像)。现在我上面列出的那些都有图像,但我怎么能确定呢?此外,查看这两个示例,我发现 wiki 文章中有许多不同的字段 - 因此对于未来的扩展,获取它们可能非常困难。
我只是想拒绝那些没有足够数据或描述的人。
如何根据现有图片过滤掉山脉?
更新:
我更正的查询,解决了我的第一个问题:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?name ?description
WHERE {
?name rdf:type <http://dbpedia.org/ontology/Mountain>;
dbpedia-owl:abstract ?description .
}
【问题讨论】:
-
你写的查询不会搜索山脉;相反,它说,“给我找到所有形式为'_ rdf:type ?x'的三元组,然后给我每个?x的列表”。它只是要求数据中的类型列表。
-
好的,我的查询正确,现在它可以正确返回山脉列表。编辑了答案。不过,我的第二个问题仍然存在。
-
我的答案包括对
foaf:depiction的查询,因此不包括没有描述的内容。
标签: sparql wikipedia dbpedia wikipedia-api