Jena Spatial : Simple Spatial Query with SPARQL
===============================================

jena-spatial provides a spatial index for Apache Jena.  It gives
applications the ability to perform simple spatial searches within SPARQL
queries.  The spatial index used is currently Lucene spatial.

User documentation:
http://jena.staging.apache.org/documentation/query/spatial-query.html
