我正试图在丹麦找到人口超过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)
我很感激有关如何组合这些查询的帮助.
简单:
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'.'本质上是一个自然的连接:你有两边的资源,所以加入那个值)