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
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
Scott Keck-Warren
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
gvaughan
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
charlottematthew16
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Precisely
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Fwdays
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Pixlogix Infotech
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Enterprise Knowledge
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Mattias Andersson
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
hariprasad279825
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Mark Simos
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
NavinnSomaal
Recently uploaded
(20)
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
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