Saturday, May 8, 2010

Google Summer of Code 2010

In two weeks time the Google Summer of Code for 2010 starts, and this year uDig is taking part with an exciting project riding the current NoSQL wave, one of the hottest topics concerning databases in a long time.
Davide Savazzi, a student at the Università degli Studi di Pavia, Italy, and an experienced GIS developer, is doing a project titled 'Adding support for Neo4j graph database in Geotools and uDIG'. We are particularly excited to have Davide involved in this project because he has already made core contributions to the underlying 'Neo4j Spatial' project, which is building GIS capabilities into the graph database itself.

Introduction

Geographic vector data is naturally structured like a graph, network and topological analyses view GIS data as graphs, but so far no-one has tried to make use of a real graph database as the backing store for a GIS.

Neo4j is a new open source database that stores data as a graph, in the mathematical sense of nodes connected by relationships, with both nodes and relationships storing properties as key-value pairs.

The goals of the project are:
  • extend Neo4j graph database with spatial indexing and query functions.
  • enable GIS application developers working on either or both Geotools and uDIG to use Neo4j as a true spatial database.
  • enable GIS users working with uDIG to perform spatial analyses better or faster than normal.

Roadmap

At the highest level, the project will take the following phases:
  • define the best approach to store spatial data in Neo4j graph database
  • create spatial indexing and query functions for Neo4j
  • create a Geotools DataStore that can read and write spatial data contained in Neo4j
  • add a Catalog to uDIG for this new DataStore
  • add persistence support to Geotools graph module through Neo4j
  • prototype a plugin in uDIG for network / routing analyses

Further reading

Here are a few links worth investigating, for those of you interested in some background on this subject:Once the project starts we will post status updates and further information.
Post a Comment