Soumettre la recherche
Mettre en ligne
In The Land Of Graphs...
•
0 j'aime
•
802 vues
Fernand Galiana
Suivre
Scottland Ruby Conference 2014
Lire moins
Lire la suite
Technologie
Développement personnel
Signaler
Partager
Signaler
Partager
1 sur 61
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
関数プログラマから見た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
Recommandé
関数プログラマから見た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
Contenu connexe
En vedette
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
En vedette
(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
Similaire à 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
Similaire à 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
Plus de 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
Plus de 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 ?
Dernier
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
LoriGlavin3
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Curtis Poe
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
LoriGlavin3
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
LoriGlavin3
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
panagenda
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
Kari Kakkonen
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
LoriGlavin3
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
itnewsafrica
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
Bernd Ruecker
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Mark Goldstein
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
Ingrid Airi González
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
LoriGlavin3
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
Wes McKinney
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
Pixlogix Infotech
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
panagenda
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
UiPathCommunity
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
Ravi Sanghani
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
ThousandEyes
Dernier
(20)
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
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
Télécharger maintenant