Lighting talk neo4j fosdem 2011

  • 5,947 views
Uploaded on

15 minutes brief talk about neo4j and graphdb

15 minutes brief talk about neo4j and graphdb

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,947
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
85
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • EE
  • EE
  • EE
  • EE
  • EE
  • EE
  • EE
  • EE
  • EE

Transcript

  • 1. Neo4j Graph DB Intro & Neo4j DB Fosdem 2011 #neo4j @neo4j [email_address] Jordi Valverde Eclipsi Networks
  • 2. GraphDB evolution Information connectivity 1990 2000 2010 2020 Text documents Ontologies RDF Folksonomies Tagging User-generated content Wikis RSS Blogs Hypertext Neo4j
  • 3. The property graph model
    • Core abstractions:
      • Nodes
      • 4. Relationships between nodes
      • 5. Properties on both
    • Traversal framework
      • High performance queries on connected data sets
    name = “Jordi” age = 29 type = KNOWS time = 4 years type = car vendor = “Honda” model = “Civic” 1 2 3
  • 6. Querying Neo4j? (1) GraphDatabaseService graphDb = ... // Get factory // Create Jordi Node jordi = graphDb.createNode(); jordi.setProperty( "name" , "Jordi" ); jordi.setProperty( "age" , 29 ); // Create Car Node car = graphDb.createNode(); car.setProperty( "name" , "Car" ); car.setProperty( "vendor" , "Honda" ); car.setProperty( "model" , "Civic" ); // Create a relationship representing that relationate each element jordi.createRelationshipTo( car, RelTypes. KNOWS );
  • 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. Just a social graph?
  • 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. Social? Spatial? … Social AND spatial!
  • 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. 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. 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. 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.
    • Traverser Framework
      • node.traverse(description)
    • Language object bindings (Ruby, Python, PHP,...)
      • node.genes.first.name
    • Gremlin (perl like)
      • ./outE[label='family']/inV/@name
    • Graph Matching
      • Example graphs,
      • 16. Starting point by searching
    • RDF, SPARQL -> SNOMED
      • SELECT ?gene, ?family WHERE ...
    Querying Neo4j? (II)
  • 17.
    • neo4j-kernel
      • Core of neo4j
    • neo4j-index
      • Indexing component
    • neo4j-shell
      • A command line like shell
    • neo4j-remote-graphdb
      • JAVA API for interacting with the core and JAVA app
    • neo4j-backup
      • Component for backup
    • neo4j-graph-algo
      • More relevant graph algorithms
    Neo4j components
  • 18. Why graph databases?
    • Data mining
      • You can make algorithms for searching patterns and add AI
    • High-critical environments
      • You can apply neo4j for high load databases and optimize the queries and reduce costs on hardware use
    • Engineering in biochemical components
      • You can make algorithms for helping the study of protein synthesys, for example
    • Discrete event simulation
      • You can apply a pattern and behavior and assign everything to a graph database
    • Social graph
      • Everything in user related “tastes” can be organized in a graph
    • Network architecture
  • 19. Some examples...
  • 20. Routing
  • 21. Visualization - Gephi
  • 22. Visualization - iGraph
  • 23.
    • Most widely deployed graph db in the world
      • ACID, persistent, embedded/server
      • 24. Robust: 24/7 production since 2003
      • 25. Mature: lots of production deployments
      • 26. Scalable: High Availability, Master failover
      • 27. Community: ecosystem of tools, bindings, frameworks
      • 28. Product: OSGi, Spatial, RDF, languages
    • Available under AGPLv3 and as commercial product
      • But the first one is free! For ALL use-cases
    Why Neo4j?
  • 29.
    • 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...
  • 30.
    • Download
      • http://neo4j.org
    • Feedback
      • http://lists.neo4j.org
      • 31. http://twitter.com/neo4j
    • Code and more
      • https://github.com/neo4j
    • Help & more presentations
      • http://wiki.neo4j.org
      • 32. http://slidesha.re/ftBtb2 Pablo Delgado (ruby on rails and neo4j) Conferencia RoR Madrid
      • 33. http://slidesha.re/heSxmm Pere Urbon (fast peak on graphdb) Barcelona on rails meeting
    More Info?
  • 34. Questions? Thank you...