我正在http://dbpedia.org/snorql/执行此查询:
查询:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX prop: <http://dbpedia.org/property/>
SELECT ?country_name ?population
WHERE {
?country a type:LandlockedCountries ;
rdfs:label ?country_name ;
prop:populationEstimate ?population .
}
该查询查找所有土地查找国家/地区。
我不明白为什么在结果中没有一些国家被归类 “/dbpedia.org/class/yago/LandlockedCountries”。例如,巴拉圭(/dbpedia.org/page/ParaguAy)已分类,但未出现在查询结果集中。有人能解释我为什么吗?
答案 0 :(得分:4)
不幸的是,有少数内陆国家的country_name
和populationEstimate
属性中至少有一个没有价值。这就是为什么它们不会在您的查询中返回。如果您运行以下查询,则会显示这些国家/地区(这两个属性设置为OPTIONAL
)。
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX prop: <http://dbpedia.org/property/>
SELECT ?country ?country_name ?population
WHERE {
?country a type:LandlockedCountries .
OPTIONAL {?country rdfs:label ?country_name Filter(lang(?country_name) = 'en')} .
OPTIONAL {?country prop:populationEstimate ?population} .
}
对于(稍微)更好的结果,由于某些国家/地区似乎与错误的大小写重复(例如 ParaguAy 和巴拉圭),以下查询使用?country dcterms:subject category:Landlocked_countries
而不是yago类。