为什么这个sparql查询没有返回dbpedia上的任何行?

时间:2017-04-30 16:35:29

标签: sparql dbpedia

这是我的查询,查询具有特定最小人口的国家/地区名称,在http://dbpedia.org/sparql上执行。

即使我将population变量更改为少量。没有返回任何行。为什么呢?

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 .
    FILTER (?population > 15000000 && langMatches(lang(?country_name), "en")) .
} ORDER BY DESC(?population)

1 个答案:

答案 0 :(得分:3)

因为DBpedia中没有类http://dbpedia.org/class/yago/LandlockedCountries - 我不知道为什么你认为有这样的类?

维基百科类别Landlocked_countries因此,URI为http://dbpedia.org/resource/Category:Landlocked_countries,且资源与类别相关的属性为http://purl.org/dc/terms/subject

PREFIX prop: <http://dbpedia.org/property/>
PREFIX dbc: <http://dbpedia.org/resource/Category:>
PREFIX dct: <http://purl.org/dc/terms/>
SELECT *
WHERE {
    ?country dct:subject dbc:Landlocked_countries ;
    rdfs:label ?country_name ;
    prop:populationEstimate ?population .
    FILTER (?population > 15000000 && langMatches(lang(?country_name), "en")) .
} ORDER BY DESC(?population)

通常,可以通过仅使用单个三元模式并检查是否返回预期的resp来“调试”SPARQL查询。任何结果。