[
https://issues.apache.org/jira/browse/JENA-1970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17203191#comment-17203191
]
Marco Neumann commented on JENA-1970:
-------------------------------------
of course, here comes an example query + data:
{code:sparql}
SELECT *
WHERE{
?x wgs84_pos:lat ?lat.
?x wgs84_pos:long ?lon.
?x spatial:nearby(53.72 13.33 10)
}
{code}
data
{code:ttl}
@prefix gn: <http://www.geonames.org/ontology#> .
@prefix wgs84_pos: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
<http://sws.geonames.org/2038682/> gn:name "Bahnhof Annaburg" ;
gn:countryCode "DE" ; wgs84_pos:lat "53.72833" ; wgs84_pos:long
"13.33361" .
<http://sws.geonames.org/2658739/> gn:name "Schiener Bach" ;
gn:countryCode "DE" ; wgs84_pos:lat "51.6802" ; wgs84_pos:long
"12.86131" .
<http://sws.geonames.org/2659829/> gn:name "Lunkenbach" ;
gn:countryCode "DE" ; wgs84_pos:lat "53.68136" ; wgs84_pos:long
"13.84938" .
<http://sws.geonames.org/2744273/> gn:name "Witte Venn" ;
gn:countryCode "DE" ; wgs84_pos:lat "52.15" ; wgs84_pos:long
"12.88333" .
<http://sws.geonames.org/2744666/> gn:name "Westerwoldsche A" ;
gn:countryCode "DE" ; wgs84_pos:lat "53.23333" ; wgs84_pos:long "11.2" .
<http://sws.geonames.org/2745605/> gn:name "Hoge Veenkanal" ;
gn:countryCode "DE" ; wgs84_pos:lat "52.73333" ; wgs84_pos:long
"12.51667" .
<http://sws.geonames.org/2746549/> gn:name "Schwalm" ;
gn:countryCode "DE" ; wgs84_pos:lat "53.25" ; wgs84_pos:long
"12.01667" .
{code}
> GeoSPARQL spatial:nearby geo:lat and geo:long indexing of Literals
> ------------------------------------------------------------------
>
> Key: JENA-1970
> URL: https://issues.apache.org/jira/browse/JENA-1970
> Project: Apache Jena
> Issue Type: New Feature
> Components: Jena
> Affects Versions: Jena 3.16.0
> Environment: any
> Reporter: Marco Neumann
> Priority: Minor
>
> PREFIX spatial: <http://jena.apache.org/spatial#>
> the spatial:nearby property function now fails to operate on untyped
> literals. While http://www.w3.org/2003/01/geo/wgs84_pos# mentions decimals in
> the range it is common to find data in the wild that fails to adhere to the
> vocabulary specification. Furthermore functions in the
> http://jena.apache.org/function/spatial# namespace continue to be able to
> process untyped literals. It might be worthwhile to consider to typecast
> literals here in spatial functions for data processed for latitude and
> longitude in the wgs84_pos namespace.
> {noformat}
> Fuseki WARN [1] RC = 500 : Not a number: "53.72833"
> org.apache.jena.sparql.expr.ExprEvalException: Not a number: "53.72833"
> Caused by: org.apache.jena.datatypes.DatatypeFormatException: Not a number:
> "53.72833"
> at
> org.apache.jena.geosparql.spatial.ConvertLatLon.toNodeValue(ConvertLatLon.java:47)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.geosparql.spatial.ConvertLatLon.toNode(ConvertLatLon.java:62)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.geosparql.spatial.property_functions.GenericSpatialPropertyFunction.checkBound(GenericSpatialPropertyFunction.java:132)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.geosparql.spatial.property_functions.GenericSpatialPropertyFunction.search(GenericSpatialPropertyFunction.java:87)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.geosparql.spatial.property_functions.GenericSpatialPropertyFunction.execEvaluated(GenericSpatialPropertyFunction.java:66)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.pfunction.PFuncSimpleAndList.execEvaluated(PFuncSimpleAndList.java:44)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.pfunction.PropertyFunctionEval.exec(PropertyFunctionEval.java:42)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.pfunction.PropertyFunctionBase$RepeatApplyIteratorPF.nextStage(PropertyFunctionBase.java:106)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:108)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:65)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIterProcedure.hasNextBinding(QueryIterProcedure.java:73)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.main.iterator.QueryIterGraph$QueryIterGraphInner.hasNextBinding(QueryIterGraph.java:121)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:74)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:101)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:65)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:101)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:65)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIterProcessBinding.hasNextBinding(QueryIterProcessBinding.java:66)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:38)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:74)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext(ResultSetCheckCondition.java:55)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.executeQuery(SPARQLQueryProcessor.java:324)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.execute(SPARQLQueryProcessor.java:273)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.executeWithParameter(SPARQLQueryProcessor.java:222)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.execute(SPARQLQueryProcessor.java:197)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.fuseki.servlets.ActionService.executeLifecycle(ActionService.java:58)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.execGet(SPARQLQueryProcessor.java:79)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.fuseki.servlets.ActionProcessor.process(ActionProcessor.java:33)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.fuseki.servlets.ActionBase.process(ActionBase.java:55)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.fuseki.servlets.ActionExecLib.execAction(ActionExecLib.java:107)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.fuseki.server.Dispatcher.dispatchAction(Dispatcher.java:118)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.fuseki.server.Dispatcher.process(Dispatcher.java:110)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.fuseki.server.Dispatcher.dispatch(Dispatcher.java:96)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:51)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1297)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1212)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at org.eclipse.jetty.server.Server.handle(Server.java:500)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
> ~[jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)
> [jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
> [jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270)
> [jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
> [jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> [jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
> [jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
> [jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
> [jena-fuseki-geosparql-3.17.0-20200915.115805-17.jar:3.17.0-SNAPSHOT]
> at java.lang.Thread.run(Thread.java:830) [?:?]
> {noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)