Geospatial search for RDF data
As part of the Open Sahara platform, TalkingTrends has developed a module to extent Sesame based semantic databases with efficient spatial search functionality. The module indexes spatial data in a separate R-Tree based index. SPARQL and SERQL queries are intercepted by the module, and rewritten into a combination of queries against the spatial-index and the semantic database. The module works for Semantic Databases that are based on the Sesame Sail layer, such as Sesame Native, Bigdata from Systap, and Owlim from Ontotext.
This is the only RDF/SPARQL-based solution we know that provides support for OpenGIS types and functions. Various other triple stores (e.g. Virtuozo and AllegroGraph) have support for geospatial indexing and search, but they are much more limiting in the types of data they support, the flexibility of the index, and the geospatial functions that can be used to search this data. The module is open source. More information can be found on this Open Sahara wiki page: IndexingSail.

Comments
This looks like something we could use! Is your module compatible with 4store from garlik? If this is not the right place to ask, please let me know as well.
Thanks, Peter
This is a very interesting development and we at Ontotext would be keen to find out how the performance compares with BigOWLIM's built-in support for Geo-spatial data. BigOWLIM 3.4 also uses R-Trees to index WGS84 position data and we found that this gives a 500 times improvement in performance compared to simple SPARQL query re-writing, i.e. when issuing queries with 'nearby' (circular distance) 'within' (rectangles and polygons) constraints.
We look forward to giving it a try!
Barry, please let us know if you do. There are a number of stores that offer geospatial indexing, and a proper benchmark between those would be interesting.
It may not be trivial to do this properly though, because of the different ways geometries are modeled. Afaik, our solution is the only one that indexes geometries (such as polygons) instead of just point data.
Hi there,
We actually added R tree indexing for points & polygons to Parliament (http://parliament.semwebcentral.org/) a few years ago. I believe that Oracle's rdf/ spatial implementation also handles these cases.
You may be aware of this already, but within the OGC we are currently working on GeoSPARQL, a standard set of predicates and filter functions for doing geospatial query within SPARQL. We'll be releasing the spec for public comment within a month or so, or you can get it now if you're an OGC member.
http://www.opengeospatial.org/projects/groups/geosparqlswg
Finally, I also did some work a while back to extend the LUBM benchmark for geospatial data. It's not a huge or comprehensive benchmark, but it's a start I guess. Unfortunately it doesn't use GeoSPARQL because it predates it by a few years, but maybe we can get it updated soon.
Post new comment