Intro to Neo4j with Ruby

  • 12,294 views
Uploaded on

A quick introduction to Graphs, Neo4j and neography.

A quick introduction to Graphs, Neo4j and neography.

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
12,294
On Slideshare
0
From Embeds
0
Number of Embeds
6

Actions

Shares
Downloads
155
Comments
0
Likes
11

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
  • 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

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: http://maxdemarzi.com• Find me on Twitter: @maxdemarzi• Email me: maxdemarzi@gmail.com• GitHub: http://github.com/maxdemarzi
  • 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 Recommenderhttp://neoflix.herokuapp.com/
  • 22. http://getvouched.com
  • 23. Neo4j and Heroku Challengehttp://neo4j-challenge.herokuapp.com/
  • 24. Questions? ?
  • 25. Thank you! http://maxdemarzi.com