1

我是 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

我不想将我的查询限制为“城市”。我想按各种属性搜索地点:“城市”、“河流”、“村庄”、“山”、“纪念碑”、“山”、“岛”、“山谷”、“点”、“峰”。 ..此外,我没有限制国家...

任何人都可以帮助我吗?

4

1 回答 1

1

您的查询看起来像Get Place categories from DBpedia using SPARQL 中的查询。

就目前而言,您的查询不仅限于城市 - 它仅限于dbo:Place具有英文名称(标签)“Rio de Janeiro”的 s。?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 以查看有哪些地方,确定您是否也需要dbo:Location_(feature)并尝试 Place、Location 的子类(根据DBpedia,获取 Place 的直接或间接类型)。要过滤国家/地区,您可以添加到您的查询

  ?s dbo:country <http://dbpedia.org/resource/Brazil> .

但并不是每个地方都会像这样与这个国家有明确的联系。您必须查看哪些属性可以帮助将一个地方与其国家/地区联系起来。

于 2013-03-28T23:12:45.010 回答