SPARQL:获取我们在某些DBpedia实体中看到的所有属性

SPARQL:获取我们在某些DBpedia实体中看到的所有属性,sparql,dbpedia,Sparql,Dbpedia,我基本上是想用sparql恢复公司实体“苹果公司”的所有财产 查看http://dbpedia.org/page/Apple_Inc。例如,我看到属性“is dbo:developer of”和“is dbo:cpu of” 但是用这个代码 select distinct ?property where { ?instance a <http://dbpedia.org/ontology/Company> . ?instance rdfs:label ?name. fi

我基本上是想用sparql恢复公司实体“苹果公司”的所有财产 查看
http://dbpedia.org/page/Apple_Inc
。例如,我看到属性“is dbo:developer of”和“is 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 .
}
选择distinct?属性,其中{
?实例a。
?实例rdfs:标签?名称。
过滤器(regex(?名称,“苹果公司”))。
?实例?属性?对象。
}

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

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

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

以下查询应执行此任务:

  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}}}
选择distinct?prop where{
{?一个苹果。
?苹果rdfs:标签?名称。
过滤器(regex(?name,“苹果公司”)}。
{{x?prop?apple}联合{apple?prop?y}}

“is dbo:developer of”是传入属性,即Apple Inc.是对象的位置。因此,使用具有两个三重模式的并集,一个用于传出,另一个用于传入属性。别忘了,如果您将RDF数据集视为一个图形,它是定向的!谢谢。刚才看到同样的问题也回答了,也考虑<代码>描述< /代码>。