如何从 DBpedia 查询一个国家/地区的属性(如语言)?



我如何与dbpedia查询一个国家概况

让我们从头开始,因为您不说您尝试过的内容。

dbpedia是有关所谓的 Resources 的信息数据库:从存储为RDF Triple的Wikipedia文章中得出的事实。资源由URIS确定;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查询语言和协议SPARQL。DBPEDIA SPARQL端点是您向DBPedia发送SPARQL查询的地方,它具有一个Web表单,可让您输入并提交查询。如果您只想要一个HTML表,显示法国使用的语言,请将表单的设置留在默认情况下并使用:

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

这意味着:"给我法国用作语言的资源和名称。"
dbpedia:France<http://dbpedia.org/resource/France>是缩短的,dbpedia-owl:language<http://dbpedia.org/ontology/language>的缩写。

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

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

这意味着:"给我100种资源组合,这些资源是国家和这些国家用作语言的资源。"

我遗漏了一些细微差别,但这应该让您开始。

正如@bergi在评论中指出的那样,请参见http://wiki.dbpedia.org/onlineaccess,以获取可能的在线访问方法的列表。

除非它们提供某种API,否则您唯一的选择是"屏幕刮擦"页面 - 换句话说,使用curl(或其他方法)加载页面,然后搜索" dbpedia-owl:语言",并获取以下的字符串(dbpedia:french_language),然后对其进行解析以使其看起来更好。

最新更新