使用SPARQL从DBPedia检索公共类的属性

时间:2016-02-17 01:30:00

标签: sparql dbpedia

我正在尝试检索dbpedia中某些类的某些属性。考虑一下你有一个国家。它确实存在于本体中,但我想检索一些相关的常见属性,如名称,货币,时区等。但http://dbpedia.org/ontology/Country中没有此类信息。

SELECT *                
WHERE {                        
  <http://dbpedia.org/ontology/Country> ?predicate ?object.         
} 

这是逻辑。查询只返回15个匹配项,甚至维基百科也没有这样的信息(参见https://en.wikipedia.org/wiki/Country)。但是如果你进入一个具体的国家,让我们说巴西,你可以在维基百科看到这样的信息。在这里,我有两个问题:

1)我无法从dbpedia访问此类数据。我试过了:

SELECT * WHERE {
   <http://dbpedia.org/resource/Brasil> ?prop ?label.
}

2)我需要大多数国家的共同属性。实际上,我需要的是类的属性,而不是实例的值。例如。我不需要检索“Brasil”,“Uruguay”或“Argentina”,而是“name”。我不需要检索“Real”,“Uruguayan peso”或“Peso”,而是“Currency”。

我应该注意哪些线索?

1 个答案:

答案 0 :(得分:2)

看起来你真正想要的是Country的所有实例,所以初始查询将是:

SELECT ?country
WHERE {
    ?country a <http://dbpedia.org/ontology/Country>
}

要获取DBPedia中的国家/地区的公共属性,请尝试:

SELECT DISTINCT ?p
WHERE {
    ?country a <http://dbpedia.org/ontology/Country> .
    ?country ?p ?o .
}