1

我想要从我的 sparql 查询中获得的不仅是获得所有欧洲国家的列表,而且我想要他们拥有的所有信息。比如他们的资本、货币、面积KM等等。最终目标是使用我在 protege 中获得的数据集。我尝试过的查询如下所示:

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 提供的所有欧洲国家及其属性。

提前致谢!

4

1 回答 1

3

从昨天开始,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:currencyCode并且dbp:gdpPppPerCapita没有数据(不再?)。

于 2016-10-16T11:44:57.880 回答