Lighting talk neo4j fosdem 2011

download Lighting talk neo4j fosdem 2011

If you can't read please download the document

Transcript of Lighting talk neo4j fosdem 2011

Neo Technology

Neo4j

Graph DB Intro & Neo4j DB

Fosdem 2011

Jordi Valverde

Eclipsi Networks

#neo4j@[email protected]

GraphDB evolution

Information connectivity

1990

2000

2010

2020

Text documentsOntologiesRDFFolksonomiesTaggingUser-generated contentWikisRSSBlogsHypertextNeo4j

The property graph model

Core abstractions:Nodes

Relationships between nodes

Properties on both

Traversal frameworkHigh performance
queries on connected
data sets

name = Jordiage = 29

type = KNOWStime = 4 yearstype = carvendor = Hondamodel = Civic123

EE

Querying Neo4j? (1)

GraphDatabaseService graphDb = ... // Get factory

// Create JordiNode jordi = graphDb.createNode();jordi.setProperty( "name", "Jordi" );jordi.setProperty( "age", 29 );

// Create CarNode car = graphDb.createNode();car.setProperty( "name", "Car" );car.setProperty( "vendor", "Honda" );car.setProperty( "model", "Civic" );

// Create a relationship representing that relationate each elementjordi.createRelationshipTo( car, RelTypes.KNOWS );

Social data (customer: brand-name social network)

name = Mikeage = 291

disclosure = publicname = Charlielast_name = Runklename = Danilast_name = Californiaage = 27313

KNOWS

KNOWS

name = Hanklast_name = Moodyage = 42age = 3 daysname = Karen72

KNOWS

KNOWS

KNOWS

name = Marcy Runkle42

KNOWS

EE

Just a social graph?

EE

Spatial data (customer: large telecom company)

name = Omni Hotellat = 3492848long = 2838234231

length = 7 milesname = ...lat, long = ...name = Swedlandlat = 23410349long = 2342348852313

ROAD

ROOOAD

name = The Tavernlat = 1295238237long = 234823492length = 3 milesname = ...72

ROAD

ROAD

ROAD

name = ...42

ROAD

EE

Social? Spatial? Social AND spatial!

EE

Social AND spatial data

name = Omni Hotellat = 3492848long = 2838234231

weight = 10name = Perebeer_qual = expertname = Mariaage = 30beer_qual = non-existant313

LIKES

SIBLING

name = The Tavernlat = 1295238237long = 234823492length = 3 milesname = ...72

ROAD

ROAD

ROAD

name = Jordi42

KNOWS

EE

Financial data (customer: international bank)

name = Mr Godfatherkarma = veeeery-lowcash = more-than-you1

amount = $1000name = Emilcash = always-too-li'ltitle = ATM @ Wall Stid = 230918484233cash_left = 384204313

TRANSFER

WITHDRAW

name = The Tavernlat = 1295238237long = 234823492amount = $1000name = ...72

OWNS

DEPOSIT

TRANSFER

name = ...42

WITHDRAW

EE

Computational Genomics?
(customer: no idea!)

type = Protein

ID=SACE0A01650p1

name = T

name = G313

NEXT

NEXT

name = A

name = GL3C247972

NUCLEOTIDES

FAMILY

RELATED

name = ...42

START

EE

Computational Genomics?
(customer: no idea!)

type = Protein

ID=SACE0A01650p1

name = T

name = G313

NEXT

NEXT

name = A

name = GL3C247972

NUCLEOTIDES

FAMILY

RELATED

name = ...42

START

EE

Traverser Frameworknode.traverse(description)

Language object bindings (Ruby, Python, PHP,...)node.genes.first.name

Gremlin (perl like)./outE[label='family']/inV/@name

Graph MatchingExample graphs,

Starting point by searching

RDF, SPARQL SNOMEDSELECT ?gene, ?family WHERE ...

Querying Neo4j? (II)

neo4j-kernelCore of neo4j

neo4j-indexIndexing component

neo4j-shellA command line like shell

neo4j-remote-graphdbJAVA API for interacting with the core and JAVA app

neo4j-backupComponent for backup

neo4j-graph-algoMore relevant graph algorithms

Neo4j components

Why graph databases?

Data miningYou can make algorithms for searching patterns and add AI

High-critical environmentsYou can apply neo4j for high load databases and optimize the queries and reduce costs on hardware use

Engineering in biochemical componentsYou can make algorithms for helping the study of protein synthesys, for example

Discrete event simulationYou can apply a pattern and behavior and assign everything to a graph database

Social graphEverything in user related tastes can be organized in a graph

Network architecture

Some examples...

Routing

Visualization - Gephi

Visualization - iGraph

Most widely deployed graph db in the worldACID, persistent, embedded/server

Robust: 24/7 production since 2003

Mature: lots of production deployments

Scalable: High Availability, Master failover

Community: ecosystem of tools, bindings, frameworks

Product: OSGi, Spatial, RDF, languages

Available under AGPLv3 and as commercial productBut the first one is free! For ALL use-cases

Why Neo4j?

OrientDB (1 GPL version, Java) http://www.orientechnologies.com/orient-db.htm

Sones (GPL, Dual-licence .NET)http://www.sones.com

HyperGraphDB (GPL, JAVA)http://www.hypergraphdb.org

DEX (Privative License, JAVA)http://www.sparsity-technologies.com/dex_releases.php

...

We're the best, but...

Downloadhttp://neo4j.org

Feedbackhttp://lists.neo4j.org

http://twitter.com/neo4j

Code and morehttps://github.com/neo4j

Help & more presentationshttp://wiki.neo4j.org

http://slidesha.re/ftBtb2 Pablo Delgado (ruby on rails and neo4j) Conferencia RoR Madrid

http://slidesha.re/heSxmm Pere Urbon (fast peak on graphdb) Barcelona on rails meeting

More Info?

Questions?

Thank you...

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