如何找到某个国家超过X人口的城市

Dav*_*ahl 4 sparql dbpedia

我正试图在丹麦找到人口超过10万的城市.

我可以使用以下代码找到丹麦的所有城市:

SELECT ?s ?o 
WHERE { 
   ?s a <http://dbpedia.org/class/yago/CitiesAndTownsInDenmark>
}
Run Code Online (Sandbox Code Playgroud)

使用此代码,我可以找到人口超过10万的城市:

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

我很感激有关如何组合这些查询的帮助.

use*_*512 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
Run Code Online (Sandbox Code Playgroud)

换句话说:找到"丹麦城市或城镇"类型的所有东西,并找到他们的人口.你可以缩写查询,避免重复'资源',使用';' 而不是 '.':

?resource a <http://dbpedia.org/class/yago/CitiesAndTownsInDenmark> ;
          <http://dbpedia.org/property/populationTotal> ?value .
Run Code Online (Sandbox Code Playgroud)

(如果你已经习惯了SQL'.'本质上是一个自然的连接:你有两边的资源,所以加入那个值)