通过DBO查询Dbpedia - SPARQL

时间:2018-03-07 12:56:25

标签: sparql dbpedia

我正在尝试提取此dbpedia页面http://dbpedia.org/page/Diageo的制造商部分。但是我的SPARQL查询什么也没有返回。然而,我可以返回页面上的大多数其他值,例如具有完全相同布局的keyPersons。

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT ?label
WHERE { <http://dbpedia.org/resource/Diageo>
        dbpedia-owl:keyPerson ?label }
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT ?label
WHERE { <http://dbpedia.org/resource/Diageo>
        dbpedia-owl:manufacturer ?label }

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在DBpedia中,实体页面显示的实体不仅可以是主题,还可以是对象。在后一种情况下,相应的属性显示为&#34; 是...... &#34;。

相反,您已关联的the page表示dbr:Diageo dbo:manufacturer dbr:Johnnie_Walker等。表示dbr:Johnnie_Walker dbo:manufacturer dbr:Diageo成立,而不是dbr:Diageo dbo:manufacturer dbr:Johnnie_Walker成立。

顺便提一下rdfs:range dbo:manufacturer is dbo:Organization。{/ p>

因此,您应该寻找与反转模式匹配的三元组:

SELECT * WHERE { ?variable dbo:manufacturer ?dbr:Diageo . }

或者,使用property paths

SELECT * WHERE { dbr:Diageo ^dbo:manufacturer ?variable . }

Try it on DBpedia