Submit Search
Upload
In The Land Of Graphs...
•
0 likes
•
802 views
Fernand Galiana
Follow
Scottland Ruby Conference 2014
Read less
Read more
Technology
Self Improvement
Report
Share
Report
Share
1 of 61
Download now
Download to read offline
Recommended
関数プログラマから見たPythonと機械学習
関数プログラマから見たPythonと機械学習
Masahiro Sakai
Clojure/conj 2017
Clojure/conj 2017
Darren Kim
Rdio's Alex Gaynor at Heroku's Waza 2013: Why Python, Ruby and Javascript are...
Rdio's Alex Gaynor at Heroku's Waza 2013: Why Python, Ruby and Javascript are...
Heroku
Clojure
Clojure
Yiguang Hu
La R Users Group Survey Of R Graphics
La R Users Group Survey Of R Graphics
guest43ed8709
Clojure from ground up
Clojure from ground up
Di Xu
Jan Pustelnik - Curry-Howard w praktyce
Jan Pustelnik - Curry-Howard w praktyce
SegFaultConf
CEDAR & PRELIDA Preservation of Linked Socio-Historical Data
CEDAR & PRELIDA Preservation of Linked Socio-Historical Data
PRELIDA Project
Recommended
関数プログラマから見たPythonと機械学習
関数プログラマから見たPythonと機械学習
Masahiro Sakai
Clojure/conj 2017
Clojure/conj 2017
Darren Kim
Rdio's Alex Gaynor at Heroku's Waza 2013: Why Python, Ruby and Javascript are...
Rdio's Alex Gaynor at Heroku's Waza 2013: Why Python, Ruby and Javascript are...
Heroku
Clojure
Clojure
Yiguang Hu
La R Users Group Survey Of R Graphics
La R Users Group Survey Of R Graphics
guest43ed8709
Clojure from ground up
Clojure from ground up
Di Xu
Jan Pustelnik - Curry-Howard w praktyce
Jan Pustelnik - Curry-Howard w praktyce
SegFaultConf
CEDAR & PRELIDA Preservation of Linked Socio-Historical Data
CEDAR & PRELIDA Preservation of Linked Socio-Historical Data
PRELIDA Project
Bucket List Item #1246
Bucket List Item #1246
Fernand Galiana
Ingenious
Ingenious
guest9c6b4d
What's new in Rails5?
What's new in Rails5?
Fernand Galiana
Advanced Topics Snippets Lib Meter Zbw Hh Workshop
Advanced Topics Snippets Lib Meter Zbw Hh Workshop
LibMeter
Engines
Engines
Fernand Galiana
Docker Container Orchestration
Docker Container Orchestration
Fernand Galiana
GraphX: Graph Analytics in Apache Spark (AMPCamp 5, 2014-11-20)
GraphX: Graph Analytics in Apache Spark (AMPCamp 5, 2014-11-20)
Ankur Dave
Getting Started with Graph Databases
Getting Started with Graph Databases
DataStax Academy
Leveraging the Power of Graph Databases in PHP
Leveraging the Power of Graph Databases in PHP
Jeremy Kendall
Geospatial Data in R
Geospatial Data in R
Barry Rowlingson
NoSQL Tel Aviv Meetup #2: Who Is Afraid of Graphs?
NoSQL Tel Aviv Meetup #2: Who Is Afraid of Graphs?
NoSQL TLV
Who's afraid of graphs
Who's afraid of graphs
SirKetchup
Neo4j
Neo4j
George Eleftheriadis
Rug hogan-10-03-2012
Rug hogan-10-03-2012
designandanalytics
Soft Shake Event / A soft introduction to Neo4J
Soft Shake Event / A soft introduction to Neo4J
Florent Biville
Hands on Training – Graph Database with Neo4j
Hands on Training – Graph Database with Neo4j
Serendio Inc.
DevFest Istanbul - a free guided tour of Neo4J
DevFest Istanbul - a free guided tour of Neo4J
Florent Biville
1st UIM-GDB - Connections to the Real World
1st UIM-GDB - Connections to the Real World
Achim Friedland
The Path-o-Logical Gremlin
The Path-o-Logical Gremlin
Marko Rodriguez
Who’s Afraid of Graphs?
Who’s Afraid of Graphs?
Codemotion
Application Modeling with Graph Databases
Application Modeling with Graph Databases
Josh Adell
BUILDING WHILE FLYING
BUILDING WHILE FLYING
Kamal Shannak
More Related Content
Viewers also liked
Bucket List Item #1246
Bucket List Item #1246
Fernand Galiana
Ingenious
Ingenious
guest9c6b4d
What's new in Rails5?
What's new in Rails5?
Fernand Galiana
Advanced Topics Snippets Lib Meter Zbw Hh Workshop
Advanced Topics Snippets Lib Meter Zbw Hh Workshop
LibMeter
Engines
Engines
Fernand Galiana
Docker Container Orchestration
Docker Container Orchestration
Fernand Galiana
Viewers also liked
(6)
Bucket List Item #1246
Bucket List Item #1246
Ingenious
Ingenious
What's new in Rails5?
What's new in Rails5?
Advanced Topics Snippets Lib Meter Zbw Hh Workshop
Advanced Topics Snippets Lib Meter Zbw Hh Workshop
Engines
Engines
Docker Container Orchestration
Docker Container Orchestration
Similar to In The Land Of Graphs...
GraphX: Graph Analytics in Apache Spark (AMPCamp 5, 2014-11-20)
GraphX: Graph Analytics in Apache Spark (AMPCamp 5, 2014-11-20)
Ankur Dave
Getting Started with Graph Databases
Getting Started with Graph Databases
DataStax Academy
Leveraging the Power of Graph Databases in PHP
Leveraging the Power of Graph Databases in PHP
Jeremy Kendall
Geospatial Data in R
Geospatial Data in R
Barry Rowlingson
NoSQL Tel Aviv Meetup #2: Who Is Afraid of Graphs?
NoSQL Tel Aviv Meetup #2: Who Is Afraid of Graphs?
NoSQL TLV
Who's afraid of graphs
Who's afraid of graphs
SirKetchup
Neo4j
Neo4j
George Eleftheriadis
Rug hogan-10-03-2012
Rug hogan-10-03-2012
designandanalytics
Soft Shake Event / A soft introduction to Neo4J
Soft Shake Event / A soft introduction to Neo4J
Florent Biville
Hands on Training – Graph Database with Neo4j
Hands on Training – Graph Database with Neo4j
Serendio Inc.
DevFest Istanbul - a free guided tour of Neo4J
DevFest Istanbul - a free guided tour of Neo4J
Florent Biville
1st UIM-GDB - Connections to the Real World
1st UIM-GDB - Connections to the Real World
Achim Friedland
The Path-o-Logical Gremlin
The Path-o-Logical Gremlin
Marko Rodriguez
Who’s Afraid of Graphs?
Who’s Afraid of Graphs?
Codemotion
Application Modeling with Graph Databases
Application Modeling with Graph Databases
Josh Adell
BUILDING WHILE FLYING
BUILDING WHILE FLYING
Kamal Shannak
Betabit - syrwag 2018-03-28
Betabit - syrwag 2018-03-28
Daniël te Winkel
Mapping Graph Queries to PostgreSQL
Mapping Graph Queries to PostgreSQL
Gábor Szárnyas
A walk in graph databases v1.0
A walk in graph databases v1.0
Pierre De Wilde
Windy City DB - Recommendation Engine with Neo4j
Windy City DB - Recommendation Engine with Neo4j
Max De Marzi
Similar to In The Land Of Graphs...
(20)
GraphX: Graph Analytics in Apache Spark (AMPCamp 5, 2014-11-20)
GraphX: Graph Analytics in Apache Spark (AMPCamp 5, 2014-11-20)
Getting Started with Graph Databases
Getting Started with Graph Databases
Leveraging the Power of Graph Databases in PHP
Leveraging the Power of Graph Databases in PHP
Geospatial Data in R
Geospatial Data in R
NoSQL Tel Aviv Meetup #2: Who Is Afraid of Graphs?
NoSQL Tel Aviv Meetup #2: Who Is Afraid of Graphs?
Who's afraid of graphs
Who's afraid of graphs
Neo4j
Neo4j
Rug hogan-10-03-2012
Rug hogan-10-03-2012
Soft Shake Event / A soft introduction to Neo4J
Soft Shake Event / A soft introduction to Neo4J
Hands on Training – Graph Database with Neo4j
Hands on Training – Graph Database with Neo4j
DevFest Istanbul - a free guided tour of Neo4J
DevFest Istanbul - a free guided tour of Neo4J
1st UIM-GDB - Connections to the Real World
1st UIM-GDB - Connections to the Real World
The Path-o-Logical Gremlin
The Path-o-Logical Gremlin
Who’s Afraid of Graphs?
Who’s Afraid of Graphs?
Application Modeling with Graph Databases
Application Modeling with Graph Databases
BUILDING WHILE FLYING
BUILDING WHILE FLYING
Betabit - syrwag 2018-03-28
Betabit - syrwag 2018-03-28
Mapping Graph Queries to PostgreSQL
Mapping Graph Queries to PostgreSQL
A walk in graph databases v1.0
A walk in graph databases v1.0
Windy City DB - Recommendation Engine with Neo4j
Windy City DB - Recommendation Engine with Neo4j
More from Fernand Galiana
GraphQLUs For The RestOfUs!
GraphQLUs For The RestOfUs!
Fernand Galiana
Sailing into 2018 with Kubernetes and Istio
Sailing into 2018 with Kubernetes and Istio
Fernand Galiana
GraphQL, The New Black?
GraphQL, The New Black?
Fernand Galiana
You, Mix and Kubee
You, Mix and Kubee
Fernand Galiana
I motion
I motion
Fernand Galiana
R-House (LSRC)
R-House (LSRC)
Fernand Galiana
Rhouse - Home automation is ruby ?
Rhouse - Home automation is ruby ?
Fernand Galiana
More from Fernand Galiana
(7)
GraphQLUs For The RestOfUs!
GraphQLUs For The RestOfUs!
Sailing into 2018 with Kubernetes and Istio
Sailing into 2018 with Kubernetes and Istio
GraphQL, The New Black?
GraphQL, The New Black?
You, Mix and Kubee
You, Mix and Kubee
I motion
I motion
R-House (LSRC)
R-House (LSRC)
Rhouse - Home automation is ruby ?
Rhouse - Home automation is ruby ?
Recently uploaded
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
OnBoard
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Alan Dix
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Scott Keck-Warren
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
ThousandEyes
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
shyamraj55
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
Sujit Pal
Recently uploaded
(20)
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Slack Application Development 101 Slides
Slack Application Development 101 Slides
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
In The Land Of Graphs...
1.
In the land
of graphs Fernand Galiana @kitesurfer
2.
3.
4.
5.
Agenda • Graph morphology •
Persistence mechanisms • Terminology • Modeling • Graph databases and API’s • Integrating with Ruby/Rails • How to win $1,000,000
6.
Graph Databases
7.
Morphology Dots and lines
8.
Undirected graph (~200BC)
9.
Directed graph (~14th-16th century)
10.
MultiRelational Graph (19th century) followsfollows likes likes
11.
Property Graph (present) followsfollows likes likes name: Fred age:
29 name: Jim age: 19
12.
Property Graph (cont) followsfollows likes likes name:
Fred age: 29 name: James age: 19 weight: 0.9 date: 11/12/13
13.
@jimweirich
14.
Persistence
15.
Any database can
model a graph
16.
Index Base Traversal DC E A B B,C
E E,D CB D E A
17.
DC E A B B,C E E,D CB D
E A Index Base Traversal
18.
DC E A B B,C E E,D CB D
E A Index Base Traversal
19.
DC E A B B,C E E,D CB D
E A Index Base Traversal
20.
A graph database
is any storage system that can provide index-free adjacency.
21.
GraphDB DC E A B
22.
GraphDB DC E A B
23.
Performance Depth SQL Neo4j
Recs 2 0.01 0.01 2.5k 3 30.26 0.16 100k 4 1,543 1.35 600k 5 Toast! 2.1 800k
24.
@jimweirich
25.
Why use a
graph DB? • Recommendations - densifying the graph • Social • Ranking • Merging domains • Data analysis
26.
Terminology
27.
Terminology 1 2 follows 3 likes loves
28.
Terminology 1 2 follows 3 likes loves OUT Vertex
IN Vertex
29.
Terminology 1 2 follows 3 likes loves vertex 1
OUT edges
30.
Terminology 1 2 follows 3 likes loves vertex 2
IN edges
31.
Terminology 1 2 follows 3 likes loves vertex 3
BOTH edges
32.
@jimweirich
33.
Modeling A B
34.
Modeling • Vertex • Edge •
Properties • Relationships
35.
Modeling • Assess the
space • Nodes = Entities • Edges = connections + semantic context • NProperties = entity attrs + meta • EProperties = strength + weight
36.
@jimweirich
37.
The Scene …
38.
DSLs • Cypher (Neo4j) •
Gremlin (BluePrint) • SPARQL
39.
Rexster • Rexster (REST) •
RexPro (bin) • Rexster Kibbles
40.
Blueprints
41.
Gremlin
42.
Gremlin[CruD] • g.addVertex(id,[a:10,b:’Hello’]) • g.addEdge(id,v1,v2,’friend’,[a:10]) •
g.removeVertex(g.v(id)) • g.removeEdge(g.e(id)) • g.v(id).remove() • …
43.
2 4 5 6 7 1 3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend gremlin> g
= rexster.getGraph('derailed_graph')
44.
2 4 5 6 7 1 3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend gremlin> g.V ==>
v[1], v[2], v[3], v[4], v[5], v[6], v[7]
45.
gremlin> g.E ==> e[1][1-friend-2],
e[2][1-friend-3], etc… 2 4 5 6 7 1 3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend
46.
2 4 5 6 7 1 3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend gremlin> g.v(1) ==>
v[1]
47.
2 4 5 6 7 1 3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend gremlin> g.V(‘name’,
‘Gustave’) ==> v[1]
48.
2 4 5 6 7 1 3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend gremlin> g.e(1) ==>
e[1][1-friend-2]
49.
gremlin> g.v(1).outE ==> e[1][1-friend-2],
e[2][1-friend-3],e[3][1-friend-4] 2 4 5 6 7 1 3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend
50.
gremlin> g.v(7).inE ==> e[7][3-friend-7] 2 4 5 6 7 1
3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend
51.
gremlin> g.v(4).bothE ==> e[3][1-friend-4],
e[8][4-friend-6] 2 4 5 6 7 1 3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend
52.
2 4 5 6 7 1 3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend gremlin> g.v(4).both ==>
v[1], v[6]
53.
2 4 5 6 7 1 3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend gremlin> g.v(1) ==>
v[1]
54.
2 4 5 6 7 1 3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend gremlin> g.v(1).out(‘friend’) ==>
v[2], v[3], v[4]
55.
2 4 5 6 7 1 3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend gremlin> g.v(1).out(‘friend’).out(‘friend’) ==>
v[5], v[6], v[6], v[6], v[7]
56.
2 4 5 6 7 1 3 Oscar Rango BatisteGustave Gertrude Stew Olaf friend friend friend friend friend friend friend friend gremlin> g.v(1).out(‘friend’).out(‘friend’).groupCount.cap ==>
{v[5]=1,v[6]=3,v[7]=1}
57.
DEMO! • Rexster DogHouse •
Wewoo (coz self promotion is underated!)
58.
@jimweirich
59.
Conclusion • Mining relationships •
Recommendation, data analysis • Scoring, Ranking • Understand problem space • Search engine integration • Combining several problem spaces
60.
References • https://github.com/tinkerpop/gremlin • http://gremlindocs.com •
http://sql2gremlin.com • github.com/derailed/wewoo • @jimweirich
61.
Is a Graph
worth a thousand joins? ! ! ! Thank you! @kitesurfer fernand.galiana@gmail.com
Download now