この SPARQL リクエストは、ウィキデータで「ベルリン」と呼ばれるすべての都市を検索します。
SELECT DISTINCT ?item ?itemLabel ?itemDescription WHERE {
?type (a | wdt:P279) wd:Q515. # Sub-type of city
?item wdt:P31 ?type.
?item rdfs:label "Berlin"@en.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
問題:ゼロの結果が返されます。
一方、以下のリクエストは Q64 (ドイツの首都と都市国家) を正しく検出しますが、ベルリンと呼ばれる他の多くのものも返すため、都市をフィルター処理したいと思います(その後、将来のフェーズでこれらの都市を人口で並べ替えます)。 、しかしそれはこの質問の範囲外です):
SELECT DISTINCT ?item ?itemLabel ?itemDescription WHERE {
?item rdfs:label "Berlin"@en.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
注:このクエリの結果に示されているように、 cityのサブクラスのインスタンス (ベルリンは city のサブクラスである大都市) を取得するための私のコードは正しく機能しているようです。