Top Banner
geospatial querying in ApacheCon Big Data Europe 2015 Budapest, 28/9/2015
20

Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

Jan 15, 2017

Download

Engineering

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

geospatial querying

in

ApacheCon Big Data Europe 2015Budapest, 28/9/2015

Page 2: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

Who am I?

Partner Technology Manager at Redlink GmbH

also…

External Lecturer at Fachhochschule SalzburgMember of The Apache Software Foundation

Sergio Fernández@wikier

http://linkedin.com/in/sergiofernandez

http://www.wikier.org

Page 3: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

What is Apache Marmotta?

● An Open Platform for Linked Dataan open implementation of a Linked Data Platform that can be easily used, extended and deployed by organizations who want to publish Linked Data or build custom applications on Linked Data.

● Key features:○ Read-Write Linked Data server○ RDF triple store with transactions, versioning

and rule-base reasoning○ LDP, SPARQL and LDPath query○ Transparent Linked Data Caching○ Integrated basic security mechanisms

● Visit http://marmotta.apache.org/ for further details and documentation.

Page 4: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

What is Linked Data?

● The Semantic Web is a Web of Data

● Semantic Web technologies (RDF, OWL, SKOS, SPARQL, etc.) provide an environment where applications can query that data, draw inferences using vocabularies, etc.

● Linked Data lies at the heart of what Semantic Web is all about: large scale integration of, and reasoning on, data on the Web.

● A typical case of a large Linked Dataset is DBPedia, which, essentially, makes the content of Wikipedia available as Linked Data.

Page 5: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

What is RDF?● The Resource Description Framework (RDF)

is a family of World Wide Web Consortium (W3C) specifications originally designed as a metadata data model.

● RDF is directed labeled graph, where:○ nodes are resources;○ edges represent the named links

between two resources;○ the composition of one resource

(subject) linked (with a predicate) to another (object) is known as "RDF triple";

○ a set of triples form a RDF graph.

Page 6: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

Querying in MarmottaCurrently Marmotta provide three main means of querying:

● LDP 1.0 (Linked Data Platform)

○ a W3C protocol based on HTTP for managing Linked Data resources

○ http://www.w3.org/TR/ldp/

● SPARQL 1.1 (SPARQL Protocol and RDF Query Language)○ a W3C RDF query language and protocol○ https://www.w3.org/TR/sparql11-query/

● LDPath ○ a path language for Linked Data○ similar to XPath for XML○ http://marmotta.apache.org/ldpath/language

Page 7: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

GeoSPARQL● The OGC GeoSPARQL standard

supports representing and querying geospatial data on the Semantic Web.

● GeoSPARQL defines a vocabulary for representing geospatial data in RDF, and a SPARQL extension for processing geospatial data.

● It makes use of both WKT (Well Known Text) and GML for representing geometries as literals.

Page 8: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

GeoSPARQL Ontology

Spatial Object

GeometryFeature

There are three key classes in the GeoSPARQL ontology:

● geo:SpatialObject

○ a superclass of both Features and Geometries;

● geo:Feature

○ a thing that can have a spatial location; i.e., a park or a monument etc.;

● geo:Geometry

○ a representation of a spatial location; i.e., a set of coordinates.

geo:hasGeometryNamespace:http://www.opengis.net/ont/geosparql#

Page 9: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

GeoSPARQL basic data model

Page 10: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

GeoSPARQL implementation approaches

Two approaches were mainly considered to implement GeoSPARQL:

1. Materialization○ Pros: fast querying○ Cons: materialization is computationally

expensive , requires more more storage capacity and native operators

2. Query translation○ Pros: direct comparison, optimal storage and

no need of native operators○ Cons: slow querying

In Marmotta we decided to go for the first option.

Page 11: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

GeoSPARQL in Marmotta● More precisely we should say

"GeoSPARQL in KiWi"○ KiWi is our triple store based on RDBMS○ Marmotta also supports many other Sesame-

based triple stores as backend

● Support implemented based on PostGIS for PostgreSQL○ Support not available

for other databases

● All further technical details available at https://wiki.apache.org/marmotta/GSoC/2015/MARMOTTA-584

● Documentation at http://marmotta.apache.org/kiwi/geosparql

Page 12: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

GeoSPARQL example

SELECT DISTINCT ?label

WHERE {

?reg1 a geo:provincia ;

rdfs:label "Madrid"@es ;

geoes:hasExactGeometry ?geo1 .

?geo1 geo:asWKT ?wkt1 .

?reg2 a geo:municipio ;

rdfs:label ?label ;

geoes:hasExactGeometry ?geo2 .

?geo2 geo:asWKT ?wkt2 .

FILTER (geof:sfContains(?wkt1, ?wkt2))

}

ORDER BY ?label

LIMIT 10

Simple query to get all geometries that are contained by other.

Particularly this example queries for the first ten municipalities in the region of Madrid.

Page 13: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

GeoSPARQL example (II)

SELECT DISTINCT ?label

WHERE {

ex:Austria a geo:Country ;

rdfs:label "Austria"@en ;

rdfs:label "Österreich"@de ;

geoes:hasExactGeometry ?geo1 .

?geo1 geo:asWKT ?wkt1 .

?river a geo:River ;

rdfs:label ?label ;

geoes:hasExactGeometry ?geo2 .

?geo2 geo:asWKT ?wkt2 .

FILTER (geof:sfTouches(?wkt1, ?wkt2))

}

ORDER BY ?label

Another query to get all geometries that are touch other.

Particularly this example queries for the rivers that make borderline with Austria.

Page 14: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

GeoSPARQL example (III)

SELECT DISTINCT ?label

WHERE {

?route a geo:MTBRoute ;

geoes:hasExactGeometry ?geo1 .

?geo1 geo:asWKT ?wkt1 .

?city a geo:City ;

rdfs:label ?label ;

geoes:hasExactGeometry ?geo2 .

?geo2 geo:asWKT ?wkt2 .

FILTER (

geof:geof:sfCrosses(?wkt1, ?wkt2))

}

ORDER BY ?label

Another query to get all geometries that are crosses another.

Particularly this example queries for all Mountain bike routes that cross a city.

Page 15: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

GeoSPARQL coverage

Apache Marmotta 3.4.0 will(*) support:

● Simple Features Topological Relations

● Egenhofer Topological Relations

● RCC8 Topological Relations

● Non-Topological FunctionsBetter to check the documentation: https://wiki.apache.

org/marmotta/GSoC/2015/MARMOTTA-584

(*) still under development at MARMOTTA-584 branch, to be released in the upcoming weeks

Page 16: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

let's demo!

https://www.flickr.com/photos/gsfc/3533864222/

Page 17: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

questions?

Page 18: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

- Full-Stack Web Developer (PHP)

- Java Engineer (Solr)- Interns

http://redlink.co/careers

Page 19: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

The work presented here has been developed in the context of the TourPack project, partially funded the Austrian Research Promotion Agency (FFG) IKT der Zukunft program under grant agreement no. 845600.

Thanks to the student Francisco Xavier Sumba Toral for contributing the initial GeoSPARQL implementation as part of his project during the Google Summer of Code 2015.

Thanks to Google for such awesome open source program!

Acknowledgements

Page 20: Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015

Kösz!