【问题标题】:How to form dbPedia iSPARQL query (for wikipedia content)如何形成 dbPedia iSPARQL 查询(用于维基百科内容)
【发布时间】:2013-05-23 18:11:27
【问题描述】:

假设我需要从维基百科中获取有关所有山脉的内容。我的目标是显示初始段落,以及相应文章中的图片(例如Monte RosaVincent 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


【解决方案1】:

您还可以使用它的SPARQL endpoint 查询 dbpedia(不如 iSPARQL)。要了解有关要编写哪些查询的更多信息,请查看DBpedia's datasets page。那里的示例展示了如何根据 Wikipedia 类别选择页面。要选择Wikipedia Mountains category 中的资源,可以使用以下查询:

select ?mountain where {
  ?mountain a dbpedia-owl:Mountain .
}

SPARQL Results

获得其中一些链接后,您可以在网络浏览器中查看它们并查看与它们关联的数据。例如Mount Everest 的页面显示了很多属性。为了将结果限制在具有图像的页面,您可能对dbpedia-owl:thumbnail 属性感兴趣,或者可能更好的是foaf:depiction。对于介绍性段落,您可能需要dbpedia-owl:abstract 之类的内容。使用这些,我们可以增强以前的查询。以下查询在 Stratovolcanoes 类别中查找带有摘要和描述的事物。由于 StackOverflow 是一个英文网站,我将摘要限制为英文。

select * where {
  ?mountain a dbpedia-owl:Mountain ;
            dbpedia-owl:abstract ?abstract ;
            foaf:depiction ?depiction .
  FILTER(langMatches(lang(?abstract),"EN"))
}
LIMIT 10

SPARQL Results

【讨论】:

  • 非常感谢,这清除了我的查询 - 也赞成。至于好奇心 - 他们似乎有平行的查询方式 - 有这个页面:mappings.dbpedia.org/server/ontology/classes - 其中包括非常有限的事物集。另一方面,有这样的语法 (dbpedia.org/snorql/?query=SELECT+*+WHERE+{%0D%0A%3Fsubject+%3Chttp%3A%2F%2Fpurl.org%2Fdc%2Fterms%2Fsubject%3E+%3Chttp%3A%2F%2Fdbpedia. org%2Fresource%2FCategory%3ACar_manufacturers%3E.%0D%0A}+LIMIT+20) 直接查询维基百科类别。哪一个更详尽?
  • @NiravBhatt 在我的答案的初稿中,我使用了dcterms:subject 和维基百科类别。我认为这更详尽,但用处不大,因为例如,Mountains 类别不包含任何山脉,而是包含一堆子类别。例如,Grand Monadnock 的类别不包括 Mountains,而是包含子子子类别 Mountains of New Hampshiredbpedia-owl 本体类似乎更有用,即使它们的覆盖范围没有那么多。
  • 非常感谢!您是否也可以尝试回答我对此的最新查询:stackoverflow.com/questions/16758089/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-27
  • 2016-07-21
  • 1970-01-01
  • 1970-01-01
  • 2015-05-08
  • 2011-12-26
  • 1970-01-01
相关资源
最近更新 更多