2017-04-30 11 views
0

これは、特定の最小人口を持つ国名を照会し、http://dbpedia.org/sparqlで実行している私の質問です。このsparqlクエリがdbpediaの行を返さないのはなぜですか?

でも、私は​​変数を微量に変更します。返される行はありません。どうして?

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) 

答えて

3

何のクラスhttp://dbpedia.org/class/yago/LandlockedCountriesはDBpediaの中に存在しないため - あなたは、このようなクラスがあると思いますなぜ私は知らないのですか?

ウィキペディアのカテゴリ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) 

一般、「デバッグ」でSPARQLクエリはによって行うことができます単一のトリプルパターンから開始し、期待されるrespを返すかどうかを確認します。任意の結果。

関連する問題