SPARQL查询未提供dbpedia上的所有结果

时间:2013-04-19 05:35:53

标签: sparql dbpedia

我正在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)已分类,但未出现在查询结果集中。有人能解释我为什么吗?

1 个答案:

答案 0 :(得分:4)

不幸的是,有少数内陆国家的country_namepopulationEstimate属性中至少有一个没有价值。这就是为什么它们不会在您的查询中返回。如果您运行以下查询,则会显示这些国家/地区(这两个属性设置为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} .
}

run query

对于(稍微)更好的结果,由于某些国家/地区似乎与错误的大小写重复(例如 ParaguAy 巴拉圭),以下查询使用?country dcterms:subject category:Landlocked_countries而不是yago类。

run query