【发布时间】:2018-07-05 10:34:39
【问题描述】:
我有一份英国地点列表。我想从http://dbpedia.org 获取他们的经纬度信息。 我刚开始学习 SPARQL,对 DBpedia 不是很熟悉。目前,我正在尝试检索至少一个地方,但到目前为止还没有成功。如果我设法获得一个地方,那么我会尝试获得所有地方。
地点列表如下:
Llandysul
Rostrevor
Lee on the Solent
.
.
.
我想要的是地名,纬度,经度。 如何使用 SPARQL 实现这一点?
我在http://dbpedia.org/sparql 上尝试了以下查询,至少获得了一个地方(Llandysul)的信息,但即使这样也没有用。
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
SELECT DISTINCT ?place ?lat ?lng
WHERE {
?place a dbo:Place.
?place rdfs:label "Llandysul".
?place geo:lat ?lat .
?place geo:long ?lng .
}
我做错了什么?怎样才能得到一个地方的初始信息,以及在一个列表中的所有地方的下一步信息?此外,如果我可以添加一个条件来确保该地点属于英国,那就太好了。
非常感谢。
【问题讨论】:
-
使用
"Llandysul"@en而不是"Llandysul"。您的列表有多大? -
DBpedia 中的位置数据非常异构,具体取决于地点的类型。可以使用
dbo:country、维基百科分类等属性,应该结合使用 -
列表:通过
VALUES内联数据或通过IN基于过滤器 -
@Stanislav,我有 204 个位置。 “@en”添加返回一个有效的城市。有没有办法处理整个列表,或者我应该编写一个脚本来迭代列表添加并处理查询?
-
@AKSW 与国家结合,很有意义,但我该如何编写查询。一个有效的查询将非常有帮助。非常感谢。
标签: sparql rdf ontology dbpedia opendata