【问题标题】:How can I query a country's property like language from DBpedia?如何从 DBpedia 查询一个国家的属性,如语言?
【发布时间】:2023-03-19 03:31:01
【问题描述】:

如何使用 DBPedia 查询国家资料(如 http://dbpedia.org/page/France)并获得类似语言的属性?

【问题讨论】:

标签: php dbpedia


【解决方案1】:

让我们从头开始,因为你没有说你尝试了什么。

DBpedia 是一个关于所谓的资源 信息的数据库:来自维基百科文章的事实,存储为 RDF 三元组。资源由 URI 标识; DBpedia 使用http://dbpedia.org/resource/* 形式,其中*http://en.wikipedia.org/wiki/* 中的* 相同。

所以 DBpedia 有关于资源 http://dbpedia.org/resource/France 的事实。如果您在浏览器中查找此资源,您将被重定向到http://dbpedia.org/page/France,因为您的浏览器中无法显示法国国家/地区,但其描述可以。

DBpedia 知道的事实有

<http://dbpedia.org/resource/France> <http://dbpedia.org/ontology/language> <http://dbpedia.org/resource/French_language>

基本上是说“法国[的]语言[是]法语。”

要通过 API 获得这一事实,您可以使用标准 RDF 查询语言和协议SPARQLDBpedia SPARQL endpoint 是您向 DBpedia 发送 SPARQL 查询的地方,它有一个 Web 表单,可让您输入和提交查询。如果您只想要一个显示法国使用的语言的 HTML 表格,请将表单的设置保留为默认值并使用:

select ?language ?languageName
where {
  dbpedia:France dbpedia-owl:language ?language .
  ?language rdfs:label ?languageName .
}

这意味着:“给我法国用作语言的资源和名称。”
dbpedia:France&lt;http://dbpedia.org/resource/France&gt; 的缩写,dbpedia-owl:language 是 @ 的缩写987654334@.

如果您想要国家和这些国家使用的语言,请使用:

select distinct ?country ?language
where {
  ?country a dbpedia-owl:Country .
  ?country dbpedia-owl:language ?language .
} 
LIMIT 100

这意味着:“给我 100 个国家资源组合以及这些国家/地区用作语言的资源。”

我遗漏了一些细微差别,但这应该可以帮助您入门。

【讨论】:

    【解决方案2】:

    正如@Bergi 在 cmets 中指出的那样,请参阅http://wiki.dbpedia.org/OnlineAccess 了解可能的在线访问方法列表。

    【讨论】:

      【解决方案3】:

      除非他们提供某种 API,否则您唯一的选择是“屏幕抓取”页面 - 换句话说,使用 curl(或其他方法)加载页面,然后搜索“dbpedia-owl:language”和获取后面的字符串 (dbpedia:French_language) 并对其进行解析以使其更好看。

      【讨论】:

      • 哦,来吧,向下滚动到页脚并点击各种 API 的链接!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      相关资源
      最近更新 更多