首页 > 解决方案 > SPARQL:获取我们在某些 DBpedia 实体中看到的所有属性

问题描述

我基本上尝试使用 sparql 恢复公司实体“Apple_Inc”的所有属性。看着http://dbpedia.org/page/Apple_Inc。例如,我看到属性“是 dbo:developer of”和“是 dbo:cpu of”。

但是有了这段代码

select distinct ?property where {
  ?instance a <http://dbpedia.org/ontology/Company> . 
  ?instance rdfs:label ?name.
  filter(regex(?name, "Apple Inc")).
  ?instance ?property ?obj .
}

我只恢复了一部分属性,两个例子都没有。

标签: sparqldbpedia

解决方案


嘿,您的问题的简单解决方案。当在 DBpedia 前端is <something> of显示时,它表明您正在查找的页面上描述的实体是属性的对象而不是主题。

例如,三元组(dbr:IOS_8,dbo:developer,dbr:Apple_Inc.)将显示在前端,is developer of因为苹果是对象而不是三元组的主题。

以下查询应该可以完成这项工作:

  select distinct ?prop where {
  {?apple a <http://dbpedia.org/ontology/Company> . 
  ?apple rdfs:label ?name.
  filter(regex(?name, "Apple Inc"))}.

  {{?x ?prop ?apple} union {?apple ?prop ?y}}}

推荐阅读