检索有关所有欧洲国家的信息

时间:2016-10-16 11:17:45

标签: sparql dbpedia countries

我想从我的sparql查询中得到的不仅是获取所有欧洲国家的列表,而且我想要他们拥有的所有信息。例如,他们的资本,货币,面积等等。最终目标是使用我获得的数据集。我试过的查询看起来像这样:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX yago: <http://dbpedia.org/class/yago/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX db: <http://dbpedia.org/>
PREFIX dbp: <http://dbpedia.org/property/>

SELECT DISTINCT ?country ?capital ?area ?currency ?wealth

WHERE {

?country rdf:type yago:EuropeanCountries;
    dbo:capital ?capital;
    dbp:areaKm ?area;
    dbp:currencyCode ?currency;
    dbp:gdpPppPerCapita ?wealth .
}

这似乎最初起作用,但截至昨天它将不再存在。所以我的问题是,如何使用sparql获取dbpedia给出的所有欧洲国家及其属性。

提前致谢!

1 个答案:

答案 0 :(得分:2)

从昨天开始,DBpedia 2016-04已加载到http://dbpedia.org/sparql,据我所知,YAGO数据未加载(但是?)

至少,这个简化的查询已经不会返回任何结果:

PREFIX yago: <http://dbpedia.org/class/yago/>
SELECT DISTINCT * WHERE {
   ?country a yago:EuropeanCountries    
}

使用DBpedia类别的替代查询(以及您的YAGO类型或多或少相同):

PREFIX  dbo:  <http://dbpedia.org/ontology/>
PREFIX  yago: <http://dbpedia.org/class/yago/>
PREFIX  dbp:  <http://dbpedia.org/property/>
PREFIX  dct:  <http://purl.org/dc/terms/>

SELECT DISTINCT  *
WHERE
  { ?country  dct:subject  <http://dbpedia.org/resource/Category:Countries_in_Europe> ;
              dbo:capital  ?capital
    OPTIONAL
      { ?country  dbp:areaKm  ?area }
    OPTIONAL
      { ?country  dbp:currencyCode  ?currency }
    OPTIONAL
      { ?country  dbp:gdpPppPerCapita  ?wealth }
  }

请注意,我将一些属性放入OPTIONAL,至少dbp:currencyCodedbp:gdpPppPerCapita没有数据(不再是?)。