3

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) は分類されていますが、クエリの結果セットには表示されません。誰かが私に理由を説明できますか?

4

1 に答える 1

4

country_name残念ながら、およびプロパティの少なくとも 1 つの値がない内陸国が少数ありpopulationEstimateます。これが、クエリで返されない理由です。次のクエリを実行すると、それらの国が表示されます (これら 2 つの属性は として設定されます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} .
}

クエリを実行

(わずかに) より良い結果を得るには、国によっては大文字と小文字が誤って重複しているように見えるため (例: ParaguAyParaguay )、次のクエリでは ?country dcterms:subject category:Landlocked_countries代わりに yago クラスを使用します。

クエリを実行

于 2013-04-21T19:42:24.953 に答える