【问题标题】:SPARQL query to extract Wikipedia infobox data using DBPedia使用 DBPedia 提取维基百科信息框数据的 SPARQL 查询
【发布时间】:2014-08-27 08:47:28
【问题描述】:

如何使用DBPedia 提取维基百科页面的信息框数据?如果有人可以直接向我提供我可以在 DBPedia 端点运行的查询以将信息框内容作为 property-value 的键值对来获取信息框内容,那就太好了乙>。例如,

查询圣雄甘地应该返回如下内容:

出生日期 : 1869-10-02
出生名 : Mohandas K. Gandhi,
休息地点:德里,
死亡日期 : 1948-01-30

由于这只是我正在进行的项目的一小部分,因此我避免深入了解 SPARQL 等细节。

【问题讨论】:

  • 抱歉,Stack Overflow 不是“给我代码”服务。
  • @svick 是的,我明白了。我试图编写自己的解析器来解析通过 WikiMedia API 接收到的数据以提取 infobox 。遗憾的是,鉴于信息框模板数量庞大,该方法并非万无一失,并且保证适用于各种框。因此,正在寻找使用 DBPedia 快速解决问题的方法。 :)

标签: sparql wikipedia dbpedia


【解决方案1】:

假设您的 URI 是 dbpedia.org/resource/Mahatma_Gandhi(来自 en.wikipedia.org/wiki/Mahatma_Gandhi),您可以这样做:

select * {
<http://dbpedia.org/resource/Mahatma_Gandhi> dbpedia-owl:birthDate ?birthDate;
dbpedia-owl:birthName ?name;
dbpedia-owl:restingPlace ?restingPlace;
dbpedia-owl:deathDate ?deathDate
 }

试试http://dbpedia.org/sparql (direct link)

如果您要查询其他资源,我建议您这样做

select * {
<http://dbpedia.org/resource/Mahatma_Gandhi> dbpedia-owl:birthName ?name.
OPTIONAL{<http://dbpedia.org/resource/Mahatma_Gandhi> dbpedia-owl:birthDate ?birthDate}
OPTIONAL{<http://dbpedia.org/resource/Mahatma_Gandhi> dbpedia-owl:restingPlace ?restingPlace}
OPTIONAL{<http://dbpedia.org/resource/Mahatma_Gandhi> dbpedia-owl:deathDate ?deathDate}
}

【讨论】:

  • 您是否有理由使用 dbpedia-owl: 前缀,但避免使用 dbpedia: 前缀,这会使 dbpedia:Mahatma_Gandhi 更容易输入和阅读?
  • @dvcama 谢谢,答案很有帮助。但是,有没有一种方法可以获取整个信息框数据,而不必像上面提到的“birthdate”、“restingPlace”、“deathDate”那样明确提及每个属性。例如,您指定资源:“Mahatma Gandhi”,然后您将获得该资源存在的所有属性和值。我需要从“尼罗河”到“圣雄甘地”再到“细菌”的各种信息框,因此很难明确提及这些属性。
  • 嗨,正如 Gabriel 所写,您可以进行描述查询,我​​更喜欢使用 select * {&lt;http://dbpedia.org/resource/Mahatma_Gandhi&gt; ?p ?o },因为我不想要反向关系
【解决方案2】:

您可以通过一个请求提取所有有关甘地的数据:

描述 

并选择结果格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 2016-02-25
    • 2016-07-27
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    • 2012-01-24
    相关资源
    最近更新 更多