SPARQL查询从特定的geo:lat和geo:long减去负100 km进行过滤

问题描述 投票:0回答:1

我有一个包含味精的数据库。每个味精都有存储在数据库中的geo:long geo:lat。我想获取从不同的指定geo:long geo:lat不到100公里的地方发送的msg,该值为(50.25 -90.25)

PREFIX off: <http://www.semanticweb.org/balo/ontologies/2020/1/MSGING#>
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX spatial: <http://jena.apache.org/spatial#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?msg
WHERE {
?msg rdf:type off:Msg.
?msg geo:long ?long.
?msg geo:lat ?lat
}

上面的代码缺少过滤器,但我将其用于反射。我应该写什么作为过滤器?

注意:我正在使用StarDog进行查询。

我想出了这个解决方案,它返回了结果,可以接受吗?

PREFIX off: <http://www.semanticweb.org/balo/ontologies/2020/1/MSGING#>
PREFIX geosf: <http://www.opengis.net/def/function/geosparql/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?msg ?airline
WHERE {
?msg rdf:type off:msg;
off:has_airline ?airline;
geosf:nearby("50.25" "-90.25" 100 <http://qudt.org/vocab/unit#Kilometer> ) .
}
sparql
1个回答
0
投票
PREFIX off: <http://www.semanticweb.org/balo/ontologies/2020/1/MSGING#>
PREFIX geosf: <http://www.opengis.net/def/function/geosparql/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?msg ?airline
WHERE {
?msg rdf:type off:msg;
off:has_airline ?airline;
geosf:nearby("50.25" "-90.25" 100 <http://qudt.org/vocab/unit#Kilometer> ) .
}
© www.soinside.com 2019 - 2024. All rights reserved.