You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Heidi McClure <he...@issinc.com> on 2014/03/03 21:17:24 UTC

Spatial withinCircle distances

Hello,


I'm using Jena version 2.11.1.   When I use withinCircle, I don't see results that I would expect - I am able to plot a set of points in a geospatial application and measure the distance from point 1 to the other points - they are all within 700 miles of point 1.  When I do a similar query using the withinCircle API in spatial Jena, I don't get any points!  When I double 700 mi to 1400 miles I get the results I expected with 700 miles.



Am I using the API incorrectly?  Does the withinCircle use the number I pass in as a diameter of a circle centered at the POINT and not a radius from the POINT?



thanks,

-heidi



Re: Spatial withinCircle distances

Posted by Andy Seaborne <an...@apache.org>.
Heidi,

Thanks for letting us know.

I'm currently at the W3C workshop on Linking Geospatial Data and exactly 
this question came up when a presenter asked the audience which way 
round it was for WKT.  No one was prepared to say immediately (despite 
the number of experts present) and eventually, someone checked online to 
come up with the answer.

	Andy

On 05/03/14 22:45, Heidi McClure wrote:
> UPDATE: <blush>  There's a good chance this may be as simple as me
> flipping latitude and longitude around in my wktLiteral
> representation of a POINT.  I've worked for so many years with
> lat/lon being the order... realized today that WGS84 flips them
> around.
>
> You may want to update JENA-649 to be OBE because of operator error
> ...
>
> -heidi
>
>
> -----Original Message----- From: Andy Seaborne
> [mailto:andy@apache.org] Sent: Tuesday, March 04, 2014 4:37 AM To:
> users@jena.apache.org Subject: Re: Spatial withinCircle distances
>
> Hi there,
>
> Thank you for the complete example.
>
> I've created JENA-649 to record this (so it does not get lost in
> email).
>
> Andy
>
> https://issues.apache.org/jira/browse/JENA-649


RE: Spatial withinCircle distances

Posted by Heidi McClure <he...@issinc.com>.
UPDATE: <blush>  There's a good chance this may be as simple as me flipping latitude and longitude around in my wktLiteral representation of a POINT.  I've worked for so many years with lat/lon being the order... realized today that WGS84 flips them around.

You may want to update JENA-649 to be OBE because of operator error ...

-heidi


-----Original Message-----
From: Andy Seaborne [mailto:andy@apache.org] 
Sent: Tuesday, March 04, 2014 4:37 AM
To: users@jena.apache.org
Subject: Re: Spatial withinCircle distances

Hi there,

Thank you for the complete example.

I've created JENA-649 to record this (so it does not get lost in email).

	Andy

https://issues.apache.org/jira/browse/JENA-649

On 03/03/14 22:27, Heidi McClure wrote:
> No, I don't think it's taking 700 and treating as km.  When I use 1126 mi (yes, I tested with mi in this experiment because km gave me no results) where 1126 km is approximately 700 mi it gives me a few points but not all that I expect.
>
> Here is some data and queries that should work but don't along with some bad queries that do work using very large radii.
>
> Using http://www.freemaptools.com/measure-distance.htm
> Distance between Assault and Knife is approx. 93 mi.
> Distance between Assault and Robbery is approx. 250 mi.
> Point used for within query is the point of the Assault.
>
> data:
>
> <http://example.com/event#event_3> <http://example.com/event#type> "Knife"^^<http://www.w3.org/2001/XMLSchema#string> .
> <http://example.com/event#event_3> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(35.46883 -104.39098)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
> <http://example.com/event#event_3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> <http://example.com/event#event_4> <http://example.com/event#type> "Assault"^^<http://www.w3.org/2001/XMLSchema#string> .
> <http://example.com/event#event_4> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(36.34 -103.13)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
> <http://example.com/event#event_4> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> <http://example.com/event#event_6> <http://example.com/event#type> "Robbery"^^<http://www.w3.org/2001/XMLSchema#string> .
> <http://example.com/event#event_6> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(32.8657 -104.21235)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
> <http://example.com/event#event_6> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
>
>
> simplistic test - returns all 3 records
>
> SELECT DISTINCT  ?Event ?Location WHERE   {
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }
>
>
> FAILS: withinCircle of 100 mi radius - returns no records - should 
> return 2
>
> SELECT DISTINCT  ?Event ?Location WHERE   {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 100 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }
>
> FAILS: withinCircle of 275 mi radius - returns no records - should 
> return 3 records
>
> SELECT DISTINCT  ?Event ?Location WHERE   {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 275 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }
>
>
> BAD: withinCircle of 9400 mi radius - returns 2 records
>
> SELECT DISTINCT  ?Event ?Location WHERE   {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 9400 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }
>
>
> BAD: withinCircle of 9450 mi radius - returns all 3 records
>
> SELECT DISTINCT  ?Event ?Location WHERE   {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 9450 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }
>
>
> thanks,
> -heidi
>
>
> -----Original Message-----
> From: Andy Seaborne [mailto:andy@apache.org]
> Sent: Monday, March 03, 2014 2:25 PM
> To: users@jena.apache.org
> Subject: Re: Spatial withinCircle distances
>
> On 03/03/14 20:17, Heidi McClure wrote:
>> Hello,
>>
>>
>> I'm using Jena version 2.11.1.   When I use withinCircle, I don't see
>> results that I would expect - I am able to plot a set of points in a 
>> geospatial application and measure the distance from point 1 to the 
>> other points - they are all within 700 miles of point 1.  When I do a 
>> similar query using the withinCircle API in spatial Jena, I don't get 
>> any points!  When I double 700 mi to 1400 miles I get the results I 
>> expected with 700 miles.
>>
>>
>>
>> Am I using the API incorrectly?  Does the withinCircle use the number 
>> I pass in as a diameter of a circle centered at the POINT and not a 
>> radius from the POINT?
>>
>
> Heidi,
>
> I'm not sure but I'm afraid you may have tripped over another, fixed bug.  Would if the engine was treating 700 as kilometres explain what you are seeing?
>
> This was fixed after the 2.11.1 version - it is available in development builds.
>
> https://repository.apache.org/content/repositories/snapshots/org/apach
> e/jena/
>
> The bug was in the query processing - the data is OK.
>
> If you try this, could let the list know whether it works; otherwise could you provide a complete, minimal example that can be debugged?
>
> https://issues.apache.org/jira/browse/JENA-623
>
> 	Andy
>


Re: Spatial withinCircle distances

Posted by Andy Seaborne <an...@apache.org>.
Hi there,

Thank you for the complete example.

I've created JENA-649 to record this (so it does not get lost in email).

	Andy

https://issues.apache.org/jira/browse/JENA-649

On 03/03/14 22:27, Heidi McClure wrote:
> No, I don't think it's taking 700 and treating as km.  When I use 1126 mi (yes, I tested with mi in this experiment because km gave me no results) where 1126 km is approximately 700 mi it gives me a few points but not all that I expect.
>
> Here is some data and queries that should work but don't along with some bad queries that do work using very large radii.
>
> Using http://www.freemaptools.com/measure-distance.htm
> Distance between Assault and Knife is approx. 93 mi.
> Distance between Assault and Robbery is approx. 250 mi.
> Point used for within query is the point of the Assault.
>
> data:
>
> <http://example.com/event#event_3> <http://example.com/event#type> "Knife"^^<http://www.w3.org/2001/XMLSchema#string> .
> <http://example.com/event#event_3> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(35.46883 -104.39098)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
> <http://example.com/event#event_3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> <http://example.com/event#event_4> <http://example.com/event#type> "Assault"^^<http://www.w3.org/2001/XMLSchema#string> .
> <http://example.com/event#event_4> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(36.34 -103.13)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
> <http://example.com/event#event_4> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> <http://example.com/event#event_6> <http://example.com/event#type> "Robbery"^^<http://www.w3.org/2001/XMLSchema#string> .
> <http://example.com/event#event_6> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(32.8657 -104.21235)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
> <http://example.com/event#event_6> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
>
>
> simplistic test - returns all 3 records
>
> SELECT DISTINCT  ?Event ?Location WHERE   {
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }
>
>
> FAILS: withinCircle of 100 mi radius - returns no records - should return 2
>
> SELECT DISTINCT  ?Event ?Location WHERE   {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 100 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }
>
> FAILS: withinCircle of 275 mi radius - returns no records - should return 3 records
>
> SELECT DISTINCT  ?Event ?Location WHERE   {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 275 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }
>
>
> BAD: withinCircle of 9400 mi radius - returns 2 records
>
> SELECT DISTINCT  ?Event ?Location WHERE   {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 9400 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }
>
>
> BAD: withinCircle of 9450 mi radius - returns all 3 records
>
> SELECT DISTINCT  ?Event ?Location WHERE   {
> ?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 9450 'mi') .
> ?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
> ?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }
>
>
> thanks,
> -heidi
>
>
> -----Original Message-----
> From: Andy Seaborne [mailto:andy@apache.org]
> Sent: Monday, March 03, 2014 2:25 PM
> To: users@jena.apache.org
> Subject: Re: Spatial withinCircle distances
>
> On 03/03/14 20:17, Heidi McClure wrote:
>> Hello,
>>
>>
>> I'm using Jena version 2.11.1.   When I use withinCircle, I don't see
>> results that I would expect - I am able to plot a set of points in a
>> geospatial application and measure the distance from point 1 to the
>> other points - they are all within 700 miles of point 1.  When I do a
>> similar query using the withinCircle API in spatial Jena, I don't get
>> any points!  When I double 700 mi to 1400 miles I get the results I
>> expected with 700 miles.
>>
>>
>>
>> Am I using the API incorrectly?  Does the withinCircle use the number
>> I pass in as a diameter of a circle centered at the POINT and not a
>> radius from the POINT?
>>
>
> Heidi,
>
> I'm not sure but I'm afraid you may have tripped over another, fixed bug.  Would if the engine was treating 700 as kilometres explain what you are seeing?
>
> This was fixed after the 2.11.1 version - it is available in development builds.
>
> https://repository.apache.org/content/repositories/snapshots/org/apache/jena/
>
> The bug was in the query processing - the data is OK.
>
> If you try this, could let the list know whether it works; otherwise could you provide a complete, minimal example that can be debugged?
>
> https://issues.apache.org/jira/browse/JENA-623
>
> 	Andy
>


RE: Spatial withinCircle distances

Posted by Heidi McClure <he...@issinc.com>.
No, I don't think it's taking 700 and treating as km.  When I use 1126 mi (yes, I tested with mi in this experiment because km gave me no results) where 1126 km is approximately 700 mi it gives me a few points but not all that I expect.

Here is some data and queries that should work but don't along with some bad queries that do work using very large radii.  

Using http://www.freemaptools.com/measure-distance.htm 
Distance between Assault and Knife is approx. 93 mi.
Distance between Assault and Robbery is approx. 250 mi.
Point used for within query is the point of the Assault.

data:

<http://example.com/event#event_3> <http://example.com/event#type> "Knife"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://example.com/event#event_3> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(35.46883 -104.39098)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
<http://example.com/event#event_3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
<http://example.com/event#event_4> <http://example.com/event#type> "Assault"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://example.com/event#event_4> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(36.34 -103.13)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
<http://example.com/event#event_4> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .
<http://example.com/event#event_6> <http://example.com/event#type> "Robbery"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://example.com/event#event_6> <http://www.opengis.net/ont/geosparql#asWKT> "POINT(32.8657 -104.21235)"^^<http://www.opengis.net/ont/geosparql#wktLiteral> .
<http://example.com/event#event_6> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .


simplistic test - returns all 3 records

SELECT DISTINCT  ?Event ?Location WHERE   { 
?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .     
?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }


FAILS: withinCircle of 100 mi radius - returns no records - should return 2

SELECT DISTINCT  ?Event ?Location WHERE   { 
?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 100 'mi') .
?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .     
?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }

FAILS: withinCircle of 275 mi radius - returns no records - should return 3 records

SELECT DISTINCT  ?Event ?Location WHERE   { 
?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 275 'mi') .
?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .     
?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }


BAD: withinCircle of 9400 mi radius - returns 2 records

SELECT DISTINCT  ?Event ?Location WHERE   { 
?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 9400 'mi') .
?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .     
?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }


BAD: withinCircle of 9450 mi radius - returns all 3 records

SELECT DISTINCT  ?Event ?Location WHERE   { 
?Event <http://jena.apache.org/spatial#withinCircle> (36.34 -103.13 9450 'mi') .
?Event <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/event#type> .     
?Event <http://www.opengis.net/ont/geosparql#asWKT> ?Location   }


thanks,
-heidi


-----Original Message-----
From: Andy Seaborne [mailto:andy@apache.org] 
Sent: Monday, March 03, 2014 2:25 PM
To: users@jena.apache.org
Subject: Re: Spatial withinCircle distances

On 03/03/14 20:17, Heidi McClure wrote:
> Hello,
>
>
> I'm using Jena version 2.11.1.   When I use withinCircle, I don't see
> results that I would expect - I am able to plot a set of points in a 
> geospatial application and measure the distance from point 1 to the 
> other points - they are all within 700 miles of point 1.  When I do a 
> similar query using the withinCircle API in spatial Jena, I don't get 
> any points!  When I double 700 mi to 1400 miles I get the results I 
> expected with 700 miles.
>
>
>
> Am I using the API incorrectly?  Does the withinCircle use the number 
> I pass in as a diameter of a circle centered at the POINT and not a 
> radius from the POINT?
>

Heidi,

I'm not sure but I'm afraid you may have tripped over another, fixed bug.  Would if the engine was treating 700 as kilometres explain what you are seeing?

This was fixed after the 2.11.1 version - it is available in development builds.

https://repository.apache.org/content/repositories/snapshots/org/apache/jena/

The bug was in the query processing - the data is OK.

If you try this, could let the list know whether it works; otherwise could you provide a complete, minimal example that can be debugged?

https://issues.apache.org/jira/browse/JENA-623

	Andy

Re: Spatial withinCircle distances

Posted by Andy Seaborne <an...@apache.org>.
On 03/03/14 20:17, Heidi McClure wrote:
> Hello,
>
>
> I'm using Jena version 2.11.1.   When I use withinCircle, I don't see
> results that I would expect - I am able to plot a set of points in a
> geospatial application and measure the distance from point 1 to the
> other points - they are all within 700 miles of point 1.  When I do a
> similar query using the withinCircle API in spatial Jena, I don't get
> any points!  When I double 700 mi to 1400 miles I get the results I
> expected with 700 miles.
>
>
>
> Am I using the API incorrectly?  Does the withinCircle use the number
> I pass in as a diameter of a circle centered at the POINT and not a
> radius from the POINT?
>

Heidi,

I'm not sure but I'm afraid you may have tripped over another, fixed 
bug.  Would if the engine was treating 700 as kilometres explain what 
you are seeing?

This was fixed after the 2.11.1 version - it is available in development 
builds.

https://repository.apache.org/content/repositories/snapshots/org/apache/jena/

The bug was in the query processing - the data is OK.

If you try this, could let the list know whether it works; otherwise 
could you provide a complete, minimal example that can be debugged?

https://issues.apache.org/jira/browse/JENA-623

	Andy