Neo4j Graph DB Intro &  Neo4j DB Fosdem 2011 #neo4j @neo4j [email_address] Jordi Valverde Eclipsi Networks
GraphDB evolution Information connectivity 1990 2000 2010 2020 Text documents Ontologies RDF Folksonomies Tagging User-gen...
The property graph model <ul><li>Core abstractions: </li><ul><li>Nodes
Relationships between nodes
Properties on both </li></ul><li>Traversal framework </li><ul><li>High performance queries on connected data sets </li></u...
Querying Neo4j? (1) GraphDatabaseService graphDb = ...  // Get factory // Create Jordi Node jordi = graphDb.createNode(); ...
Social data  (customer: brand-name social network) 1 3 13 KNOWS KNOWS 7 2 KNOWS KNOWS KNOWS 42 KNOWS name = “Mike” age = 2...
Just a social graph?
Spatial data  (customer: large telecom company) 1 3 13 ROAD ROOOAD 7 2 ROAD ROAD ROAD 42 ROAD name = “Omni Hotel” lat = 34...
Social? Spatial? … Social AND spatial!
Social AND spatial data 1 3 13 LIKES SIBLING 7 2 ROAD ROAD ROAD 42 KNOWS name = “Omni Hotel” lat = 3492848 long = 28382342...
Financial data  (customer: international bank) 1 3 13 TRANSFER WITHDRAW 7 2 OWNS DEPOSIT TRANSFER 42 WITHDRAW name = “Mr G...
Computational Genomics?   (customer: no idea!) 1 3 13 NEXT NEXT 7 2 NUCLEOTIDES FAMILY RELATED 42 START type = “Protein” I...
Computational Genomics?   (customer: no idea!) 1 3 13 NEXT NEXT 7 2 NUCLEOTIDES FAMILY RELATED 42 START type = “Protein” I...
<ul><li>Traverser Framework </li><ul><li>node.traverse(description) </li></ul><li>Language object bindings (Ruby, Python, ...
Starting point by searching </li></ul><li>RDF, SPARQL -> SNOMED </li><ul><li>SELECT ?gene, ?family WHERE ... </li></ul></u...
<ul><li>neo4j-kernel </li><ul><li>Core of neo4j </li></ul><li>neo4j-index </li><ul><li>Indexing component </li></ul><li>ne...
Why graph databases? <ul><li>Data mining </li><ul><li>You can make algorithms for searching patterns and add AI </li></ul>...
Some examples...
Routing
Visualization - Gephi
Visualization - iGraph
<ul><li>Most widely deployed graph db in the world </li><ul><li>ACID, persistent, embedded/server
Upcoming SlideShare
Loading in...5
×

Lighting talk neo4j fosdem 2011

7,404

Published on

15 minutes brief talk about neo4j and graphdb

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,404
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
100
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • EE
  • EE
  • EE
  • EE
  • EE
  • EE
  • EE
  • EE
  • EE
  • Lighting talk neo4j fosdem 2011

    1. 1. Neo4j Graph DB Intro & Neo4j DB Fosdem 2011 #neo4j @neo4j [email_address] Jordi Valverde Eclipsi Networks
    2. 2. GraphDB evolution Information connectivity 1990 2000 2010 2020 Text documents Ontologies RDF Folksonomies Tagging User-generated content Wikis RSS Blogs Hypertext Neo4j
    3. 3. The property graph model <ul><li>Core abstractions: </li><ul><li>Nodes
    4. 4. Relationships between nodes
    5. 5. Properties on both </li></ul><li>Traversal framework </li><ul><li>High performance queries on connected data sets </li></ul></ul>name = “Jordi” age = 29 type = KNOWS time = 4 years type = car vendor = “Honda” model = “Civic” 1 2 3
    6. 6. Querying Neo4j? (1) GraphDatabaseService graphDb = ... // Get factory // Create Jordi Node jordi = graphDb.createNode(); jordi.setProperty( &quot;name&quot; , &quot;Jordi&quot; ); jordi.setProperty( &quot;age&quot; , 29 ); // Create Car Node car = graphDb.createNode(); car.setProperty( &quot;name&quot; , &quot;Car&quot; ); car.setProperty( &quot;vendor&quot; , &quot;Honda&quot; ); car.setProperty( &quot;model&quot; , &quot;Civic&quot; ); // Create a relationship representing that relationate each element jordi.createRelationshipTo( car, RelTypes. KNOWS );
    7. 7. Social data (customer: brand-name social network) 1 3 13 KNOWS KNOWS 7 2 KNOWS KNOWS KNOWS 42 KNOWS name = “Mike” age = 29 disclosure = public name = “Charlie” last_name = “Runkle” name = “Dani” last_name = “California” age = 27 name = “Hank” last_name = “Moody” age = 42 age = 3 days name = “Karen” name = “Marcy Runkle”
    8. 8. Just a social graph?
    9. 9. Spatial data (customer: large telecom company) 1 3 13 ROAD ROOOAD 7 2 ROAD ROAD ROAD 42 ROAD name = “Omni Hotel” lat = 3492848 long = 283823423 length = 7 miles name = ... lat, long = ... name = “Swedland” lat = 23410349 long = 2342348852 name = “The Tavern” lat = 1295238237 long = 234823492 length = 3 miles name = ... name = ...
    10. 10. Social? Spatial? … Social AND spatial!
    11. 11. Social AND spatial data 1 3 13 LIKES SIBLING 7 2 ROAD ROAD ROAD 42 KNOWS name = “Omni Hotel” lat = 3492848 long = 283823423 weight = 10 name = “Pere” beer_qual = expert name = “Maria” age = 30 beer_qual = non-existant name = “The Tavern” lat = 1295238237 long = 234823492 length = 3 miles name = ... name = “Jordi”
    12. 12. Financial data (customer: international bank) 1 3 13 TRANSFER WITHDRAW 7 2 OWNS DEPOSIT TRANSFER 42 WITHDRAW name = “Mr Godfather” karma = veeeery-low cash = more-than-you amount = $1000 name = “Emil” cash = always-too-li'l title = “ATM @ Wall St” id = 230918484233 cash_left = 384204 name = “The Tavern” lat = 1295238237 long = 234823492 amount = $1000 name = ... name = ...
    13. 13. Computational Genomics? (customer: no idea!) 1 3 13 NEXT NEXT 7 2 NUCLEOTIDES FAMILY RELATED 42 START type = “Protein” ID=”SACE0A01650p” name = “T” name = “G” name = “A” name = GL3C2479 name = ...
    14. 14. Computational Genomics? (customer: no idea!) 1 3 13 NEXT NEXT 7 2 NUCLEOTIDES FAMILY RELATED 42 START type = “Protein” ID=”SACE0A01650p” name = “T” name = “G” name = “A” name = GL3C2479 name = ...
    15. 15. <ul><li>Traverser Framework </li><ul><li>node.traverse(description) </li></ul><li>Language object bindings (Ruby, Python, PHP,...) </li><ul><li>node.genes.first.name </li></ul><li>Gremlin (perl like) </li><ul><li>./outE[label='family']/inV/@name </li></ul><li>Graph Matching </li><ul><li>Example graphs,
    16. 16. Starting point by searching </li></ul><li>RDF, SPARQL -> SNOMED </li><ul><li>SELECT ?gene, ?family WHERE ... </li></ul></ul>Querying Neo4j? (II)
    17. 17. <ul><li>neo4j-kernel </li><ul><li>Core of neo4j </li></ul><li>neo4j-index </li><ul><li>Indexing component </li></ul><li>neo4j-shell </li><ul><li>A command line like shell </li></ul><li>neo4j-remote-graphdb </li><ul><li>JAVA API for interacting with the core and JAVA app </li></ul><li>neo4j-backup </li><ul><li>Component for backup </li></ul><li>neo4j-graph-algo </li><ul><li>More relevant graph algorithms </li></ul></ul>Neo4j components
    18. 18. Why graph databases? <ul><li>Data mining </li><ul><li>You can make algorithms for searching patterns and add AI </li></ul><li>High-critical environments </li><ul><li>You can apply neo4j for high load databases and optimize the queries and reduce costs on hardware use </li></ul><li>Engineering in biochemical components </li><ul><li>You can make algorithms for helping the study of protein synthesys, for example </li></ul><li>Discrete event simulation </li><ul><li>You can apply a pattern and behavior and assign everything to a graph database </li></ul><li>Social graph </li><ul><li>Everything in user related “tastes” can be organized in a graph </li></ul><li>Network architecture </li></ul>
    19. 19. Some examples...
    20. 20. Routing
    21. 21. Visualization - Gephi
    22. 22. Visualization - iGraph
    23. 23. <ul><li>Most widely deployed graph db in the world </li><ul><li>ACID, persistent, embedded/server
    24. 24. Robust: 24/7 production since 2003
    25. 25. Mature: lots of production deployments
    26. 26. Scalable: High Availability, Master failover
    27. 27. Community: ecosystem of tools, bindings, frameworks
    28. 28. Product: OSGi, Spatial, RDF, languages </li></ul><li>Available under AGPLv3 and as commercial product </li><ul><li>But the first one is free! For ALL use-cases </li></ul></ul>Why Neo4j?
    29. 29. <ul><li>OrientDB (1 GPL version, Java) </li><ul><li>http://www.orientechnologies.com/orient-db.htm </li></ul><li>Sones (GPL, Dual-licence .NET) </li><ul><li>http://www.sones.com </li></ul><li>HyperGraphDB (GPL, JAVA) </li><ul><li>http://www.hypergraphdb.org </li></ul><li>DEX (Privative License, JAVA) </li><ul><li>http://www.sparsity-technologies.com/dex_releases.php </li></ul><li>... </li></ul>We're the best, but...
    30. 30. <ul><li>Download </li><ul><li>http://neo4j.org </li></ul><li>Feedback </li><ul><li>http://lists.neo4j.org
    31. 31. http://twitter.com/neo4j </li></ul><li>Code and more </li><ul><li>https://github.com/neo4j </li></ul><li>Help & more presentations </li><ul><li>http://wiki.neo4j.org
    32. 32. http://slidesha.re/ftBtb2 Pablo Delgado (ruby on rails and neo4j) Conferencia RoR Madrid
    33. 33. http://slidesha.re/heSxmm Pere Urbon (fast peak on graphdb) Barcelona on rails meeting </li></ul></ul>More Info?
    34. 34. Questions? Thank you...
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×