4

デンマークで人口10万人以上の都市を見つけようとしています。

このコードでデンマークのすべての都市を見つけることができます:

SELECT ?s ?o 
WHERE { 
   ?s a <http://dbpedia.org/class/yago/CitiesAndTownsInDenmark>
}

そして、このコードを使用すると、人口が10万人を超える都市を見つけることができます。

SELECT ?resource ?value 
WHERE { 
   ?resource <http://dbpedia.org/property/populationTotal> ?value 
   FILTER (?value > 100000)
}
ORDER BY ?resource ?value

これらのクエリを組み合わせる方法についてのヘルプをいただければ幸いです。

4

1 に答える 1

5

単純:

SELECT ?resource ?value
WHERE { 
   ?resource a <http://dbpedia.org/class/yago/CitiesAndTownsInDenmark> .
   ?resource <http://dbpedia.org/property/populationTotal> ?value .
   FILTER (?value > 100000)
}
ORDER BY ?resource ?value

つまり、タイプが「デンマークの都市または町」のすべてのものを検索し、それらの人口を検索します。「;」を使用して、「resource」の繰り返しを避けて、クエリを省略できます。それよりも '。':

?resource a <http://dbpedia.org/class/yago/CitiesAndTownsInDenmark> ;
          <http://dbpedia.org/property/populationTotal> ?value .

(SQL '.' に慣れている場合は、基本的に自然な結合です。両側に ?resource があるため、その値で結合します)

于 2013-02-26T15:35:20.067 に答える