我是SPARQL的新手,希望在我的学习中提供一些帮助。 我想获得我国的几个地方(社区,城市,州,地区,河流,纪念碑......)的经度和纬度:巴西。
我试过了:
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT *
WHERE {
?s a dbo:Place .
?s geo:lat ?lat .
?s geo:long ?long .
?s a ?type .
?s a ?city .
?s rdfs:label "Rio de Janeiro"@en.
}
limit 10
我不想将我的查询限制在“城市”。我想通过各种属性搜索地点:“城市”,“河流”,“村庄”,“山”,“纪念碑”,“山丘”,“岛屿”,“山谷”,“点”,“峰值”。 .. 此外,我不是在限制国家......
任何人都可以帮助我?
答案 0 :(得分:1)
您的查询与Get Place categories from DBpedia using SPARQL中的查询类似。
目前,您的查询不仅限于城市 - 它仅限于dbo:Place
s,其英文名称(标签)&#34;里约热内卢&#34;。 ?city
是一个变量;它的名字并没有做任何特别的事。
如果你想要任何地方,只需删除上面提到的三重模式。
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT *
WHERE {
?s a dbo:Place .
?s geo:lat ?lat .
?s geo:long ?long .
?s a ?type .
}
limit 10
这可以让你获得10个纬度和经度的位置以及另一个类。您可以浏览DBpedia到see what kinds of places there are,决定是否还需要dbo:Location_(feature)
并尝试Place,Location的子类(根据DBpedia, getting the direct or indirect types of Place)。要过滤国家/地区,您可以添加到您的查询
?s dbo:country <http://dbpedia.org/resource/Brazil> .
但并非每个地方都会像这样与国家有明确的联系。您必须查看哪些房产可以帮助将地点与其国家/地区相关联。