- From: Christopher Schmidt <crschmidt@crschmidt.net>
- Date: Sun, 16 Apr 2006 08:53:21 -0400
- To: Luk Vloemans <luk.vloemans@student.uhasselt.be>
- Cc: semantic-web@w3.org
On Sun, Apr 16, 2006 at 09:52:06AM +0200, Luk Vloemans wrote: > Hey Christopher, > > Thanks for your response. Unfortunately, the approximation solution you > provide (the rectangle box) has a catch: The Lat-Lon grid is not equally > devided, meaning: 1 degree longitude on the northpole is a few meter, whilst > on the equator, it could be a few kilometer, so you're not actually drawing > squares but rectangles. (the latitude range is globally equal). Ah, so you actually care about distance -- that makes it a whole different ballgame then :) (Most people know so little about curvature of the earth that even mentioning it would be confusing.) > Given this situation, it is at least necessary to goniometrically translate > the source/dest GPS-coords. This involves mathematical functions as cosinus > and sinus, and as far as I understand, SparQL does not support those? Does > it? I'm relatively certain that SPARQL itself doesn't support it, but that doesn't neccesarily mean that it would be impossible for you to add this to some given SPARQL implementation -- I think features like REGEX, etc. are provided by the implementation, and that you could include these into a SPARQL query engine -- but you probably wouldn't want to. In that case, what you would probably want to do is create a bounding box wide enough to capture all your results, then do secondary processing to determine the actual distance. So the process would be something like: * Take '500m' input from user * Turn 500m into a bounding box containing the area no matter where on the globe it is -- this requires some extra query selection * Select your data from the database * Post-process the data by running a comparison on the actual distances -- this is where you bring in curvature of the earth, etc. into the equation. This is actually a relatively common solution: PostGIS querying suggests this method when using bounding box queries, because selecting from a geographical index is way slower than a simple comparison index, so you select a bounding box, then filter that based on the geographical information. In this case, you're just splitting that work between the query engine and the rest of the application. > Another interesting query would be "Give me all pictures I took in city X". > In order to solve this puzzle, one would have to know the exact spatial data > of city X (a bounding rectangle would not be enough) and be able to pinpoint > Lat/Lon within that range, using a RDF-querylanguage... I think that's a > hard one to answer for. In this case, again, you'd take your post-processing solution. However, I think that conflating semweb/GIS databases is a bad idea. Instead, what I would personally do is take each geo:Point in my crawled database, store it in a PostGIS database with either the URL or bnode identifier. You can then submit queries against the PostGIS database for lat/long queries, and then look up the data in the RDF datastore for the actual content that you want. Damnit, now you're going into a field I'm actually interested in at the moment, that's not fair at all. I'm supposed to hate RDF! :) [1] Next thing you know, I'll actually be building an example of this. Actually, now that I think about it, this sounds a lot like what jo was heading for with nodel[2]... no idea how far she went though. [1] http://crschmidt.net/blog/archives/85/exhaustion-with-rdf/ [2] http://map.wirelesslondon.info/docs/nodel-howto.html -- Christopher Schmidt Web Developer
Received on Sunday, 16 April 2006 12:53:31 UTC