我想从我的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给出的所有欧洲国家及其属性。
提前致谢!
答案 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:currencyCode
和dbp:gdpPppPerCapita
没有数据(不再是?)。