Neo4j Spatial - Backing a GIS with a true graph database


Published on

Geographic data is naturally structured like a graph, and topological analyses view GIS data as graphs, but until now no-one has tried to make use of a real graph database as the backing store for a GIS. The developers of Neo4j have added features to the popular open source graph database to provide for support for spatial indexing, storage and topology. In addition to these core components, there are a number of useful utilities for importing and exporting data from other popular data sources, and enabling the use of this database in well known libraries and applications in the open source GIS environment.

We will discuss the advantages of using a graph database for geographic data, the performance and scalability implications, and the opportunities enabled by this approach. In today's highly connected social web, there is an increasing need for graph-based data management. At the same time applications are becoming more and more location aware. The time is right for the first geographic graph database.

Published in: Technology
1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • The purpose of this presentation is to introduce Neo4j Spatial, and two specific projects, the GSoC and OSM Mention Neo Technologies and AmanziTel, but no more We have a product in the market that uses uDig and Neo4j, but felt that our integration was too specific to our needs, and so decided to collaborate with Neo Technologies to produce a more generalized library available as an extension to the database
  • KV: Dynomite, Voldemort, Tokyo* BigTable: HBase, Hypertable, Cassandra Document: CouchDB, MongoDB Graph: AllegroGraph, Sones, Neo4j
  • The current success and popularity of NoSQL data models has been driven by the internet, and the associated explosion in the volume and interconnectedness of data.
  • This example does highlight a few things about semi-structured data, schema-less databases and even opens the conversation for some discussions on performance (implicit indexes through local search, etc.)
  • Storage: plugable – dataset, layer, encoder Search: Indexing is currently an R-Tree, but it is possible to plug in any custom mechanism conforming to the interface. Multi-dimensional index Spatial indices (quad-tree, R-tree, kn-tree, SFCs) Composite indices and dynamic indices Lucene
  • Neo4j Spatial - Backing a GIS with a true graph database

    1. 1. Neo4j Spatial #neo4j @craigtaverner Backing a GIS with a real graph database Craig Taverner Neo Technology / AmanziTel
    2. 2. NoSQL Not Only SQL
    3. 3. NOSQL data models Data complexity Data size Bigtable clones Key-value stores Document databases Graph databases
    4. 4. Neo4j – Nodes, Relationships, Properties <ul><li>Nodes have different properties </li><ul><li>Matrix characters: People vs. Programs </li></ul><li>Build structure as you go </li><ul><li>Who loves Neo? </li></ul></ul>
    5. 5. Neo4j Spatial <ul><li>Core </li><ul><li>Storage
    6. 6. Search
    7. 7. Operations
    8. 8. I/O </li></ul><li>Extensions </li><ul><li>Geotools & GeoServer
    9. 9. uDig
    10. 10. OpenStreetMap </li></ul></ul>
    11. 11. Topology Connectedness
    12. 12. Connecting and Splitting <ul><li>Why have layers at all? </li><ul><li>Simpler renderers
    13. 13. Historical
    14. 14. Data sources </li></ul></ul>Layer1 Layer2 Layer3 Layer1 Layer2 Layer3
    15. 15. Connecting and Splitting <ul><li>Routing
    16. 16. OSM Dynamic Layers </li></ul>
    17. 17. GSoC 2010 <ul><li>Davide Savazzi
    18. 18. Geotools & GeoServer
    19. 19. Routing
    20. 20. uDig </li></ul>
    21. 21. GSoC 2010 - Routing
    22. 22. GSoC 2010 - uDig
    23. 23. OpenStreetMap
    24. 24. OpenStreetMap
    25. 25. OpenStreetMap
    26. 26. OpenStreetMap OSM Dynamic Layers Dynamic Layers
    27. 27. Dynamic Layers
    28. 28. Dynamic Layers
    29. 29. Future <ul><li>Editing </li><ul><li>Fine Grained Geotools Feature Editing
    30. 30. OSM Editor </li></ul><li>OSM </li><ul><li>Caching sub-graphs (desktop & mobile)
    31. 31. More Dynamic Layers & Shapefile export </li></ul><li>Topology </li><ul><li>Persist all topological results in graph </li></ul><li>Benchmarking & Performance </li><ul><li>Improved indexing
    32. 32. Composite index </li></ul></ul>
    33. 33. API References <ul><li>Wiki, Code, API references </li><ul><li>
    34. 34.
    35. 35.
    36. 36. Mailing list: [email_address]
    37. 37. </li></ul></ul>