GeoSPARQL

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

GeoSPARQL is a standard for representation and querying of geospatial linked data for the Semantic Web from the Open Geospatial Consortium (OGC).[1] The definition of a small ontology based on well-understood OGC standards is intended to provide a standardized exchange basis for geospatial RDF data which can support both qualitative and quantitative spatial reasoning and querying with the SPARQL database query language.[2]

The Ordnance Survey Linked Data Platform uses OWL mappings for GeoSPARQL equivalent properties in its vocabulary.[3][4] The LinkedGeoData data set is a work of the Agile Knowledge Engineering and Semantic Web (AKSW) research group at the University of Leipzig,[5] a group mostly known for DBpedia, that uses the GeoSPARQL vocabulary to represent OpenStreetMap data.

In particular, GeoSPARQL provides for:

Example

The following example SPARQL query could help model the question "What is within the bounding box defined by Lua error in package.lua at line 80: module 'strict' not found. and Lua error in package.lua at line 80: module 'strict' not found.?"[6]

PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX geof: <http://www.opengis.net/def/geosparql/function/>

SELECT ?what
WHERE {
  ?what geo:hasGeometry ?geometry .

  FILTER(geof:sfWithin(?geometry,
     "POLYGON((
-77.089005 38.913574,
-77.029953 38.913574,
-77.029953 38.886321,
-77.089005 38.886321,
-77.089005 38.913574
))"^^geo:wktLiteral))
}

RCC8 use in GeoSPARQL

RCC8 has been implemented in GeoSPARQL as described below:

File:Region Connection Calculus 8 Relations and Open Geospatial Consortium relations.svg
A graphical representation of Region Connection Calculus (RCC: Randell, Cui and Cohn, 1992) and the links to the equivalent naming by the Open Geospatial Consortium (OGC) with their equivalent URIs.

Implementations

There are (almost) no complete implementations of GeoSPARQL, there are, however partial or vendor implementations of GeoSPARQL. Currently there are the following implementations:

Apache Marmotta
Apache Marmotta is currently implementing GeoSPARQL in the context of the Google Summer of Code 2015.[7]
Parliament
Parliament has an almost complete implementation of GeoSPARQL by using JENA and a modified ARQ query processor.[8]
Strabon
OpenSahara uSeekM IndexingSail Sesame Sail plugin
uSeekM IndexingSail uses a PostGIS installation to deliver GeoSPARQL. They deliver partial implementation of GeoSPARQL along with some vendor prefixes.[9][10]
Oracle Spatial and Graph

Submission

The GeoSPARQL standard was submitted to the OGC by:

Related work

With regards to future work, the GeoSPARQL standard states:

<templatestyles src="Template:Blockquote/styles.css" />

Obvious extensions are to define new conformance classes for other standard serializations of geometry data (e.g. KML, GeoJSON). In addition, significant work remains in developing vocabularies for spatial data, and expanding the GeoSPARQL vocabularies with OWL axioms to aid in logical spatial reasoning would be a valuable contribution. There are also large amounts of existing feature data represented in either a GML file (or similar serialization) or in a datastore supporting the general feature model. It would be beneficial to develop standard processes for converting (or virtually converting and exposing) this data to RDF.

References

  1. Battle & Kolas 2012, p. 355.
  2. Battle & Kolas 2012, p. 358.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Battle & Kolas 2012, p. 363.
  7. https://wiki.apache.org/marmotta/GSoC/2015/MARMOTTA-584
  8. http://parliament.semwebcentral.org/
  9. https://dev.opensahara.com/projects/useekm/wiki/IndexingSail#GeoSPARQL
  10. https://dev.opensahara.com/projects/useekm/wiki/GeoReference
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.

External links