Intro to Neo4j with Ruby
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


Intro to Neo4j with Ruby



A quick introduction to Graphs, Neo4j and neography.

A quick introduction to Graphs, Neo4j and neography.



Total Views
Views on SlideShare
Embed Views



11 Embeds 7,616 7526 58 16 4 3 2 2 2 1 1 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • An undirected graph is one in which edges have no orientation. The edge (a, b) is identical to the edge (b, a).A directed graph or digraph is an ordered pair D = (V, A)A pseudo graph is a graph with loopsA multi graph allows for multiple edges between nodesA hyper graph allows an edge to join more than two nodes
  • A weighted graph has a number assigned to each edgeAlabeled graph has a label assigned to each node or edgeA property graph has keys and values for each node or edge
  • Atomic = all or nothing, consistent = stay consistent from one tx to another, isolation = no tx will mess with another tx, durability = once tx committed, it stays

Intro to Neo4j with Ruby Presentation Transcript

  • 1. Introducing Neo4j Your Next Database Max De Marzi
  • 2. About Me Built the Neography Gem (Ruby Wrapper to the Neo4j REST API) Playing with Neo4j since 10/2009• My Blog:• Find me on Twitter: @maxdemarzi• Email me:• GitHub:
  • 3. Agenda• What is a Graph?• What is a Graph Database?• What can you do with a Graph Database?
  • 4. What is a Graph?• An abstract representation of a set of objects where some pairs are connected by links. Object (Vertex, Node) Link (Edge, Arc, Relationship)
  • 5. Different Kinds of Graphs• Undirected Graph• Directed Graph• Pseudo Graph• Multi Graph• Hyper Graph
  • 6. More Kinds of Graphs• Weighted Graph• Labeled Graph• Property Graph
  • 7. What is a Graph Database?• A database with an explicit graph structure• Each node knows its adjacent nodes• As the number of nodes increases, the cost of a local step (or hop) remains the same
  • 8. Good For• Highly connected data (social networks)• Recommendations (e-commerce)• Path Finding (how do I know you?)• A* (Least Cost path)• Data First Schema (bottom-up, but you still need to design)
  • 9. Not so good for• Set Operations: – Union – Intersection – Cross Joins• Ginormous Amounts of Data – Billions ok, Trillions not so much.
  • 10. What is Neo4j?• A Graph Database + Lucene Index• Property Graph• Full ACID (atomicity, consistency, isolation, durability)• High Availability (with Enterprise Edition)• 32 Billion Nodes, 32 Billion Relationships, 64 Billion Properties• Embedded Server• REST API
  • 11. Neo4j + Ruby
  • 12. Neo4j Data Browser
  • 13. Neo4j Console
  • 14. Friends Graph Illustrated
  • 15. Friends Graph
  • 16. Relationships.both is actually creating two relationships.One incoming and one outgoing friends relationship.Each Relationship in Neo4j only goes in one direction.
  • 17. Friends of Friends
  • 18. All Simple PathsSimple paths means no loops allowed
  • 19. Shortest Path
  • 20. Cypher : Neo4j Query LanguageASCII ART FTW: a--b, a-->b, a<--c
  • 21. Neoflix: Movie Recommender
  • 22.
  • 23. Neo4j and Heroku Challenge
  • 24. Questions? ?
  • 25. Thank you!