Получение информации обо всех европейских странах

#sparql #dbpedia #countries

#sparql #dbpedia #Страны

Вопрос:

Что я хочу от моего запроса sparql, так это не только получить список всех европейских стран, но и получить всю имеющуюся у них информацию. Например, их капитал, валюта, areaKM и так далее. Конечная цель — использовать наборы данных, которые я приобрел в 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 .
}
 

Сначала казалось, что это работает, но со вчерашнего дня этого больше не будет. Итак, мой вопрос в том, как мне получить все европейские страны и их свойства, предоставленные dbpedia, используя sparql.

Заранее спасибо!

Ответ №1:

Со вчерашнего дня 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 }
  }
 

Обратите внимание, что я помещаю некоторые свойства в НЕОБЯЗАТЕЛЬНЫЙ, как минимум, для dbp:currencyCode , и dbp:gdpPppPerCapita данных нет (больше?).