【发布时间】:2019-01-13 05:48:00
【问题描述】:
我现在正在执行 Sparql 查询,以从 dbpedia Endpoint (Snorql) 中查找给定点的特定半径周围的地点。
我的第一个解决方案(已经在其他一些端点做)是这样的:
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
SELECT *
WHERE {
?resource rdfs:label ?label .
?resource geo:lat ?lat .
?resource geo:long ?long .
?resource geo:geometry ?coordinates .
FILTER(bif:st_within(?coordinates, bif:st_geomFromText("POINT(10.2788 47.4093)"), 1)) .
FILTER (lang(?label)= "de") .
}
我注意到它没有给我任何结果。然后我用geo:lat 和geo:long 中给定的舍入值尝试了同样的事情:
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
SELECT *
WHERE {
?resource rdfs:label ?label .
?resource geo:lat ?lat .
?resource geo:long ?long .
?resource geo:geometry ?coordinates .
FILTER(bif:st_within(bif:st_point(?long, ?lat), bif:st_geomFromText("POINT(10.2788 47.4093)"), 1)) .
FILTER (lang(?label)= "de") .
}
现在我得到 2 个结果。当我将第一个解决方案的半径增加到 21 时,有很多结果,但将其减小到 20 时,没有结果。我在第一个 Query 中犯了错误吗?
非常感谢, 锯
【问题讨论】:
标签: sparql dbpedia geo virtuoso