这是我的查询,查询具有特定最小人口的国家/地区名称,在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)
答案 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查询。任何结果。