Neo4j Spatial - FooCafe September 2015

download Neo4j Spatial - FooCafe September 2015

If you can't read please download the document

Transcript of Neo4j Spatial - FooCafe September 2015

Neo Technology

Neo4j

Spatial

Craig Taverner

Neo Technology

#neo4j@[email protected]

Web Map Data with Neo4j-Spatial
and OpenStreetMap

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

Where are the Mushrooms?

Where are the Mushrooms?

Social Network

(Network) Impact Analysis

Logistics & Routing

Route Finding

Recommendations

Access Control

Fraud Analysis

What is a graph, anyway?

A Graph

VertexEdge

A Graph

NodeRelationship

Property Graph Data Model

Nodes

Relationships

Relationships

Labels

Graph Building Blocks

Nodesentities

Relationshipsconnect entities and structure domain

Propertiesattributes and metadata

Labelsentities roles and grouping

What is Neo4j Spatial?

Neo4j Spatial 2010

GSoC 2010CoreStorage, GeometryEncoder

Search/RTree, Operations

I/O (Shapefile)

ExtensionsGeotools Datastore

GeoServer & uDig

Ruby APIneo4j-spatial.rb (Rubygem)

OpenStreetMapImport OSM, Dynamic Layers (JSON & CQL)

Export Shapefiles, and SLD styled PNG

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 OSM in uDig

OpenStreetMap

OpenStreetMap

OpenStreetMap

OpenStreetMap

OSMRTree DynamicLayersDynamicLayers

Routing on OSM

Neo4j-Spatial 2011

OSMPerformance

Changesets and Users

GeoprocessingLBS and SimplePointLayer

Routing OSM

GSoC 2011 Geoprocessing functions

Data Mining OSM

What's nextGeoprocessing pipeline

Cool domains: artistic maps

Finding things close to other things

http://blog.neo4j.org/2011/03/neo4j-spatial-part1-finding-things.html

Finding things close to other things

http://blog.neo4j.org/2011/03/neo4j-spatial-part1-finding-things.html

Routing with OSM

Data Mining OSM

timestamp > 1207014810000 and timestamp < 1208310810000 and ( user = 'Zenon' or user = 'tomasCY' or user = 'muffu' or user = 'dcp' or user = 'cartOMike' or user = 'djanda' or user = 'Peter14' or user = 'toaster' or user = 'user_7363' or user = 'lyx')

Artistic Maps

Artistic Maps

Artistic Maps

Cellular Network Topology

Cellular Network Topology

IDSiteLatitudeLongitude

1ABC55.67812.567

2XYZ55.89012.123

3PRQ55.54312.890

IDSectorSiteIDAzimuthBeamwidth

1110100

221120100

331240100

412090

522120110

63224090

7130180

823180180

O(N)

O(ln(N))

O(1)

What's next?

Spatial Cypher!

Spatial Cypher GSoC Demo

What is Cypher?

select skills.name from users join user_skills on (...) join skills on (...)where users.name = Michael

Consider SQL:

Cypher is for graph querying!

MATCH (me:User {name:'Michael'})-[:HAS_SKILL]->(skill)RETURN skill.name

Cypher is for graph querying!

MATCH (me:Person {name:'Andreas'})-[:FRIEND]->(friend) -[:FRIEND]->(friend2) RETURN friend2

Point Index

Search within polygon

Search within polygon

Index polygons?

Questions?

Click to edit the title text format

Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline LevelSeventh Outline LevelEighth Outline LevelNinth Outline Level

Click to edit the title text format

Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline LevelSeventh Outline LevelEighth Outline LevelNinth Outline Level

Click to edit the title text format

Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline LevelSeventh Outline LevelEighth Outline LevelNinth Outline Level