[ https://issues.apache.org/jira/browse/JENA-1970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17203191#comment-17203191 ]
Marco Neumann edited comment on JENA-1970 at 9/28/20, 12:30 PM: ---------------------------------------------------------------- of course, here comes an example query + data: {noformat} SELECT * WHERE{ ?x wgs84_pos:lat ?lat. ?x wgs84_pos:long ?lon. ?x spatial:nearby(53.72 13.33 10) } {noformat} data {noformat} @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" . {noformat} was (Author: neumarcx): 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)