【问题标题】:SPARQL: Get all properties we see in some DBpedia entitySPARQL:获取我们在某些 DBpedia 实体中看到的所有属性
【发布时间】:2019-04-06 16:41:58
【问题描述】:

我基本上尝试使用 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 .
}

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

【问题讨论】:

  • "is dbo:developer of" 是传入属性,即 Apple Inc. 是对象。因此,使用具有两种三元组模式的 UNION,一种用于传出属性,一种用于传入属性。别忘了,如果你把 RDF 数据集看成一个图,它是有向的。
  • 啊哈!谢谢。刚刚看到那里回答了同样的问题stackoverflow.com/questions/38002389/…
  • 也可以考虑DESCRIBE &lt;http://dbpedia.org/resource/Apple_Inc&gt;

标签: sparql dbpedia


【解决方案1】:

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

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

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

  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}}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-20
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多