SlideShare a Scribd company logo
Jason Plurad • pluradj@us.ibm.com • @pluradj
Software Developer • IBM Open Technology
Project Management Committee • Apache TinkerPop
November 18, 2017 • Open Camps NYC • #OpenCamps2017
Graph Computing
with Apache TinkerPop
Open Source Graphs – Preach!
2 @pluradj #OpenCamps2017
Social Graphs, Right?
3 @pluradj #OpenCamps2017
Property Graph
4 @pluradj #OpenCamps2017
Apache TinkerPop
§ Open source, vendor-agnostic,
graph computing framework
§ Gremlin graph traversal language
5
Apache TinkerPop™
Maintainer Apache
Software
Foundation
License Apache
Latest Release 3.3.0
August 2017
https://tinkerpop.apache.org
@pluradj #OpenCamps2017
Graph System Integration
6 @pluradj #OpenCamps2017
Graph Provider Landscape
7 @pluradj #OpenCamps2017
Open Source (OLAP)
• Apache Giraph
• Apache Spark
Vendor
• DataStax DSE Graph
• Azure Cosmos DB
• Neo4j
• OrientDB
• Stardog
Open Source
• Apache S2Graph
• HGraphDB
• JanusGraph
• TinkerGraph
• UniPop
Open Source Contributions
Gremlin Traversal Language
9
Recursively show all employees and their supervisors
Daniel Kuppitz @dkuppitz
http://sql2gremlin.com/
@pluradj #OpenCamps2017
Jean-Baptiste Musso @jbmusso
https://github.com/jbmusso/gremlin-javascript
Gremlin Bindings
@pluradj #OpenCamps2017
Gremlin Language Drivers
§ Elevate Gremlin to a top-level citizen in the programming language of choice
§ GLV can work with any modern language
– Function composition
– Function nesting
§ Java and Groovy (native)
§ Python is the first non-JVM GLV
§ Others are coming soon (JavaScript, C#, Go)
§ SPARQL-Gremlin and SQL-Gremlin
http://tinkerpop.apache.org/docs/current/tutorials/gremlin-language-variants
@pluradj #OpenCamps2017
Gremlin Language Variants (GLV)
12
Graph Databases, Gremlin and TinkerPop – A Tutorial
Kelvin Lawrence @gfxman
https://github.com/krlawrence/graph
@pluradj #OpenCamps2017
13
Graph Model: Air Routes
@pluradj #OpenCamps2017
airport
continentcountry
route
code
desc
code
desc
code
city
desc
elev
lat
lon
dist
14
Gremlin: Add a Vertex
@pluradj #OpenCamps2017
Vertex rdu = g.addV('airport').
property('code', 'RDU').
property('city', 'Raleigh').
property('desc', 'Raleigh-Durham International').
property('elev', 435).
property('lat', 35.877601).
property('lon', -78.787498).
next()
15
Gremlin: Add an Edge
@pluradj #OpenCamps2017
Edge rdujfk = g.V().
has('airport', 'code', 'RDU').
addE('route').to(
g.V().has('airport', 'code', 'JFK' ) ).
property('dist', 427).
next()
16
Where can I fly non-stop from Raleigh?
@pluradj #OpenCamps2017
> g.V().has('airport', 'code', 'RDU').
out('route').
values('code').
fold().
toList()
==> [IAH, JFK, LAX, LGA, MCO, MIA, MSP, HOU,
CLE, DFW, FLL, IAD, MSY, YYZ, PHX, BDL, SEA,
CMH, SFO, TTN, TPA, SFB, SLC, PGD, LAS, PIE,
DEN, EWR, ATL, AUS, BNA, BOS, BWI, MDW, DCA,
ORD, STL, DAL, PHL, CDG, DTW, LHR, CLT, PIT,
MEM, CUN, IND, CVG]
17
What international flights depart from Raleigh?
@pluradj #OpenCamps2017
> g.V().has('airport', 'code', 'RDU').
out('route').
has('country', neq('US')).
values('city').
toList()
==> Toronto
==> Paris
==> London
==> Cancun
18
What is the shortest path to Melbourne?
@pluradj #OpenCamps2017
> g.V(rdu).
repeat( out('route').simplePath() ).
until( has('code', 'MEL') ).
limit(5).
path().by('code').
toList()
==> [RDU, LAX, MEL]
==> [RDU, IAH, NRT, MEL]
==> [RDU, IAH, DXB, MEL]
==> [RDU, IAH, AKL, MEL]
==> [RDU, IAH, PEK, MEL]
19
Graph Code Patterns
IBM Cognitive OpenTech & Performance
https://github.com/IBM/janusgraph-utils
§ A 360° view of how Apache TinkerPop and JanusGraph solves a specific problem
– Includes contextual overviews, architecture diagrams, process flows, demos, blog posts,
and source code
§ Twitter-like application in JanusGraph
– Data generator
– Schema loader
– CSV importer
– Graph model and Gremlin queries
§ Contributions welcome!
20
Graphic Design
Ketrina Yim @KetrinaYim
http://ketrinadrawsalot.tumblr.com/
@pluradj #OpenCamps2017
Thank you!

More Related Content

What's hot

JanusGraph, Jupyter Meetup NYC
JanusGraph, Jupyter Meetup NYCJanusGraph, Jupyter Meetup NYC
JanusGraph, Jupyter Meetup NYC
Jason Plurad
 
Janus graph lookingbackwardreachingforward
Janus graph lookingbackwardreachingforwardJanus graph lookingbackwardreachingforward
Janus graph lookingbackwardreachingforward
Demai Ni
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
P. Taylor Goetz
 
Data Science in the Cloud
Data Science in the CloudData Science in the Cloud
Data Science in the Cloud
Margriet Groenendijk
 
Cloud architectures for data science
Cloud architectures for data scienceCloud architectures for data science
Cloud architectures for data science
Margriet Groenendijk
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
İlker Güller
 
Zentral QueryCon 2018
Zentral QueryCon 2018Zentral QueryCon 2018
Zentral QueryCon 2018
Henry Stamerjohann
 
Introduction to the IBM Watson Data Platform
Introduction to the IBM Watson Data PlatformIntroduction to the IBM Watson Data Platform
Introduction to the IBM Watson Data Platform
Margriet Groenendijk
 
The IoT and big data
The IoT and big dataThe IoT and big data
The IoT and big data
Gal Ben-Haim
 
FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engin...
FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engin...FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engin...
FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engin...
New Relic
 
Big data groningen
Big data groningenBig data groningen
Big data groningen
Willem Hendriks
 
Python and H2O with Cliff Click at PyData Dallas 2015
Python and H2O with Cliff Click at PyData Dallas 2015Python and H2O with Cliff Click at PyData Dallas 2015
Python and H2O with Cliff Click at PyData Dallas 2015
Sri Ambati
 
Big data groningen
Big data groningenBig data groningen
Big data groningen
Willem Hendriks
 
Intro To Graph Databases - Oxana Goriuc
Intro To Graph Databases - Oxana GoriucIntro To Graph Databases - Oxana Goriuc
Intro To Graph Databases - Oxana Goriuc
Fraugster
 
Heterogeneous Data Mining with Spark
Heterogeneous Data Mining with SparkHeterogeneous Data Mining with Spark
Heterogeneous Data Mining with Spark
KNIMESlides
 
Py datanyc2015
Py datanyc2015Py datanyc2015
Py datanyc2015
rosettahub
 
Publishing metadata provenance
Publishing metadata provenancePublishing metadata provenance
Publishing metadata provenance
Jana Hentschke
 
Presto summit israel 2019-04
Presto summit   israel 2019-04Presto summit   israel 2019-04
Presto summit israel 2019-04
Ori Reshef
 
An indepth look at Google BigQuery Architecture by Felipe Hoffa of Google
An indepth look at Google BigQuery Architecture by Felipe Hoffa of GoogleAn indepth look at Google BigQuery Architecture by Felipe Hoffa of Google
An indepth look at Google BigQuery Architecture by Felipe Hoffa of Google
Data Con LA
 
Big Data - part 5/7 of "7 modern trends that every IT Pro should know about"
Big Data - part 5/7 of "7 modern trends that every IT Pro should know about"Big Data - part 5/7 of "7 modern trends that every IT Pro should know about"
Big Data - part 5/7 of "7 modern trends that every IT Pro should know about"
Ibrahim Muhammadi
 

What's hot (20)

JanusGraph, Jupyter Meetup NYC
JanusGraph, Jupyter Meetup NYCJanusGraph, Jupyter Meetup NYC
JanusGraph, Jupyter Meetup NYC
 
Janus graph lookingbackwardreachingforward
Janus graph lookingbackwardreachingforwardJanus graph lookingbackwardreachingforward
Janus graph lookingbackwardreachingforward
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
 
Data Science in the Cloud
Data Science in the CloudData Science in the Cloud
Data Science in the Cloud
 
Cloud architectures for data science
Cloud architectures for data scienceCloud architectures for data science
Cloud architectures for data science
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
 
Zentral QueryCon 2018
Zentral QueryCon 2018Zentral QueryCon 2018
Zentral QueryCon 2018
 
Introduction to the IBM Watson Data Platform
Introduction to the IBM Watson Data PlatformIntroduction to the IBM Watson Data Platform
Introduction to the IBM Watson Data Platform
 
The IoT and big data
The IoT and big dataThe IoT and big data
The IoT and big data
 
FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engin...
FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engin...FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engin...
FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engin...
 
Big data groningen
Big data groningenBig data groningen
Big data groningen
 
Python and H2O with Cliff Click at PyData Dallas 2015
Python and H2O with Cliff Click at PyData Dallas 2015Python and H2O with Cliff Click at PyData Dallas 2015
Python and H2O with Cliff Click at PyData Dallas 2015
 
Big data groningen
Big data groningenBig data groningen
Big data groningen
 
Intro To Graph Databases - Oxana Goriuc
Intro To Graph Databases - Oxana GoriucIntro To Graph Databases - Oxana Goriuc
Intro To Graph Databases - Oxana Goriuc
 
Heterogeneous Data Mining with Spark
Heterogeneous Data Mining with SparkHeterogeneous Data Mining with Spark
Heterogeneous Data Mining with Spark
 
Py datanyc2015
Py datanyc2015Py datanyc2015
Py datanyc2015
 
Publishing metadata provenance
Publishing metadata provenancePublishing metadata provenance
Publishing metadata provenance
 
Presto summit israel 2019-04
Presto summit   israel 2019-04Presto summit   israel 2019-04
Presto summit israel 2019-04
 
An indepth look at Google BigQuery Architecture by Felipe Hoffa of Google
An indepth look at Google BigQuery Architecture by Felipe Hoffa of GoogleAn indepth look at Google BigQuery Architecture by Felipe Hoffa of Google
An indepth look at Google BigQuery Architecture by Felipe Hoffa of Google
 
Big Data - part 5/7 of "7 modern trends that every IT Pro should know about"
Big Data - part 5/7 of "7 modern trends that every IT Pro should know about"Big Data - part 5/7 of "7 modern trends that every IT Pro should know about"
Big Data - part 5/7 of "7 modern trends that every IT Pro should know about"
 

Similar to Graph Computing with Apache TinkerPop

A tech writer, a map, and an app
A tech writer, a map, and an appA tech writer, a map, and an app
A tech writer, a map, and an app
Sarah Maddox
 
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
Alex Borysov
 
PGQL: A Language for Graphs
PGQL: A Language for GraphsPGQL: A Language for Graphs
PGQL: A Language for Graphs
Jean Ihm
 
State of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open SourceState of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open Source
OSCON Byrum
 
Deep_dive_on_Amazon_Neptune_DAT361.pdf
Deep_dive_on_Amazon_Neptune_DAT361.pdfDeep_dive_on_Amazon_Neptune_DAT361.pdf
Deep_dive_on_Amazon_Neptune_DAT361.pdf
ShaikAsif83
 
GraphQL Meetup Bangkok 3.0
GraphQL Meetup Bangkok 3.0GraphQL Meetup Bangkok 3.0
GraphQL Meetup Bangkok 3.0
Tobias Meixner
 
SparkR - Play Spark Using R (20160909 HadoopCon)
SparkR - Play Spark Using R (20160909 HadoopCon)SparkR - Play Spark Using R (20160909 HadoopCon)
SparkR - Play Spark Using R (20160909 HadoopCon)
wqchen
 
SETCON'18 - Ilya labacheuski - GraphQL adventures
SETCON'18 - Ilya labacheuski - GraphQL adventuresSETCON'18 - Ilya labacheuski - GraphQL adventures
SETCON'18 - Ilya labacheuski - GraphQL adventures
Nadzeya Pus
 
Monitoring Spark Applications
Monitoring Spark ApplicationsMonitoring Spark Applications
Monitoring Spark Applications
Tzach Zohar
 
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
TigerGraph
 
Automobile Route Matching with Dynamic Time Warping Using PySpark with Cather...
Automobile Route Matching with Dynamic Time Warping Using PySpark with Cather...Automobile Route Matching with Dynamic Time Warping Using PySpark with Cather...
Automobile Route Matching with Dynamic Time Warping Using PySpark with Cather...
Databricks
 
Apache Spark Machine Learning Decision Trees
Apache Spark Machine Learning Decision TreesApache Spark Machine Learning Decision Trees
Apache Spark Machine Learning Decision Trees
Carol McDonald
 
Microsoft R Server for Data Sciencea
Microsoft R Server for Data ScienceaMicrosoft R Server for Data Sciencea
Microsoft R Server for Data Sciencea
Data Science Thailand
 
SF Big Analytics 20191112: How to performance-tune Spark applications in larg...
SF Big Analytics 20191112: How to performance-tune Spark applications in larg...SF Big Analytics 20191112: How to performance-tune Spark applications in larg...
SF Big Analytics 20191112: How to performance-tune Spark applications in larg...
Chester Chen
 
Free Code Friday - Machine Learning with Apache Spark
Free Code Friday - Machine Learning with Apache SparkFree Code Friday - Machine Learning with Apache Spark
Free Code Friday - Machine Learning with Apache Spark
MapR Technologies
 
Graph computation
Graph computationGraph computation
Graph computation
Sigmoid
 
RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)
Daniel Nüst
 
Document Conversion & Retrieve and Rank 一問一答
Document Conversion & Retrieve and Rank 一問一答Document Conversion & Retrieve and Rank 一問一答
Document Conversion & Retrieve and Rank 一問一答
Hisashi Komine
 
Three Functional Programming Technologies for Big Data
Three Functional Programming Technologies for Big DataThree Functional Programming Technologies for Big Data
Three Functional Programming Technologies for Big Data
Dynamical Software, Inc.
 
JAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) BridgeJAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) Bridge
José Paumard
 

Similar to Graph Computing with Apache TinkerPop (20)

A tech writer, a map, and an app
A tech writer, a map, and an appA tech writer, a map, and an app
A tech writer, a map, and an app
 
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
 
PGQL: A Language for Graphs
PGQL: A Language for GraphsPGQL: A Language for Graphs
PGQL: A Language for Graphs
 
State of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open SourceState of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open Source
 
Deep_dive_on_Amazon_Neptune_DAT361.pdf
Deep_dive_on_Amazon_Neptune_DAT361.pdfDeep_dive_on_Amazon_Neptune_DAT361.pdf
Deep_dive_on_Amazon_Neptune_DAT361.pdf
 
GraphQL Meetup Bangkok 3.0
GraphQL Meetup Bangkok 3.0GraphQL Meetup Bangkok 3.0
GraphQL Meetup Bangkok 3.0
 
SparkR - Play Spark Using R (20160909 HadoopCon)
SparkR - Play Spark Using R (20160909 HadoopCon)SparkR - Play Spark Using R (20160909 HadoopCon)
SparkR - Play Spark Using R (20160909 HadoopCon)
 
SETCON'18 - Ilya labacheuski - GraphQL adventures
SETCON'18 - Ilya labacheuski - GraphQL adventuresSETCON'18 - Ilya labacheuski - GraphQL adventures
SETCON'18 - Ilya labacheuski - GraphQL adventures
 
Monitoring Spark Applications
Monitoring Spark ApplicationsMonitoring Spark Applications
Monitoring Spark Applications
 
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
 
Automobile Route Matching with Dynamic Time Warping Using PySpark with Cather...
Automobile Route Matching with Dynamic Time Warping Using PySpark with Cather...Automobile Route Matching with Dynamic Time Warping Using PySpark with Cather...
Automobile Route Matching with Dynamic Time Warping Using PySpark with Cather...
 
Apache Spark Machine Learning Decision Trees
Apache Spark Machine Learning Decision TreesApache Spark Machine Learning Decision Trees
Apache Spark Machine Learning Decision Trees
 
Microsoft R Server for Data Sciencea
Microsoft R Server for Data ScienceaMicrosoft R Server for Data Sciencea
Microsoft R Server for Data Sciencea
 
SF Big Analytics 20191112: How to performance-tune Spark applications in larg...
SF Big Analytics 20191112: How to performance-tune Spark applications in larg...SF Big Analytics 20191112: How to performance-tune Spark applications in larg...
SF Big Analytics 20191112: How to performance-tune Spark applications in larg...
 
Free Code Friday - Machine Learning with Apache Spark
Free Code Friday - Machine Learning with Apache SparkFree Code Friday - Machine Learning with Apache Spark
Free Code Friday - Machine Learning with Apache Spark
 
Graph computation
Graph computationGraph computation
Graph computation
 
RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)RR & Docker @ MuensteR Meetup (Sep 2017)
RR & Docker @ MuensteR Meetup (Sep 2017)
 
Document Conversion & Retrieve and Rank 一問一答
Document Conversion & Retrieve and Rank 一問一答Document Conversion & Retrieve and Rank 一問一答
Document Conversion & Retrieve and Rank 一問一答
 
Three Functional Programming Technologies for Big Data
Three Functional Programming Technologies for Big DataThree Functional Programming Technologies for Big Data
Three Functional Programming Technologies for Big Data
 
JAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) BridgeJAX-RS and CDI Bike the (Reactive) Bridge
JAX-RS and CDI Bike the (Reactive) Bridge
 

More from Jason Plurad

Community-Driven Graphs with JanusGraph
Community-Driven Graphs with JanusGraphCommunity-Driven Graphs with JanusGraph
Community-Driven Graphs with JanusGraph
Jason Plurad
 
Graph Processing with Apache TinkerPop and Gremlin
Graph Processing with Apache TinkerPop and GremlinGraph Processing with Apache TinkerPop and Gremlin
Graph Processing with Apache TinkerPop and Gremlin
Jason Plurad
 
IBM Open by Design: Graph Technology
IBM Open by Design: Graph TechnologyIBM Open by Design: Graph Technology
IBM Open by Design: Graph Technology
Jason Plurad
 
Enabling Multimodel Graphs with Apache TinkerPop
Enabling Multimodel Graphs with Apache TinkerPopEnabling Multimodel Graphs with Apache TinkerPop
Enabling Multimodel Graphs with Apache TinkerPop
Jason Plurad
 
Graph Processing with Titan and Scylla
Graph Processing with Titan and ScyllaGraph Processing with Titan and Scylla
Graph Processing with Titan and Scylla
Jason Plurad
 
Graph Processing with Apache TinkerPop
Graph Processing with Apache TinkerPopGraph Processing with Apache TinkerPop
Graph Processing with Apache TinkerPop
Jason Plurad
 

More from Jason Plurad (6)

Community-Driven Graphs with JanusGraph
Community-Driven Graphs with JanusGraphCommunity-Driven Graphs with JanusGraph
Community-Driven Graphs with JanusGraph
 
Graph Processing with Apache TinkerPop and Gremlin
Graph Processing with Apache TinkerPop and GremlinGraph Processing with Apache TinkerPop and Gremlin
Graph Processing with Apache TinkerPop and Gremlin
 
IBM Open by Design: Graph Technology
IBM Open by Design: Graph TechnologyIBM Open by Design: Graph Technology
IBM Open by Design: Graph Technology
 
Enabling Multimodel Graphs with Apache TinkerPop
Enabling Multimodel Graphs with Apache TinkerPopEnabling Multimodel Graphs with Apache TinkerPop
Enabling Multimodel Graphs with Apache TinkerPop
 
Graph Processing with Titan and Scylla
Graph Processing with Titan and ScyllaGraph Processing with Titan and Scylla
Graph Processing with Titan and Scylla
 
Graph Processing with Apache TinkerPop
Graph Processing with Apache TinkerPopGraph Processing with Apache TinkerPop
Graph Processing with Apache TinkerPop
 

Recently uploaded

GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 

Recently uploaded (20)

GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 

Graph Computing with Apache TinkerPop

  • 1. Jason Plurad • pluradj@us.ibm.com • @pluradj Software Developer • IBM Open Technology Project Management Committee • Apache TinkerPop November 18, 2017 • Open Camps NYC • #OpenCamps2017 Graph Computing with Apache TinkerPop
  • 2. Open Source Graphs – Preach! 2 @pluradj #OpenCamps2017
  • 3. Social Graphs, Right? 3 @pluradj #OpenCamps2017
  • 4. Property Graph 4 @pluradj #OpenCamps2017
  • 5. Apache TinkerPop § Open source, vendor-agnostic, graph computing framework § Gremlin graph traversal language 5 Apache TinkerPop™ Maintainer Apache Software Foundation License Apache Latest Release 3.3.0 August 2017 https://tinkerpop.apache.org @pluradj #OpenCamps2017
  • 6. Graph System Integration 6 @pluradj #OpenCamps2017
  • 7. Graph Provider Landscape 7 @pluradj #OpenCamps2017 Open Source (OLAP) • Apache Giraph • Apache Spark Vendor • DataStax DSE Graph • Azure Cosmos DB • Neo4j • OrientDB • Stardog Open Source • Apache S2Graph • HGraphDB • JanusGraph • TinkerGraph • UniPop
  • 9. Gremlin Traversal Language 9 Recursively show all employees and their supervisors Daniel Kuppitz @dkuppitz http://sql2gremlin.com/ @pluradj #OpenCamps2017
  • 10. Jean-Baptiste Musso @jbmusso https://github.com/jbmusso/gremlin-javascript Gremlin Bindings @pluradj #OpenCamps2017 Gremlin Language Drivers
  • 11. § Elevate Gremlin to a top-level citizen in the programming language of choice § GLV can work with any modern language – Function composition – Function nesting § Java and Groovy (native) § Python is the first non-JVM GLV § Others are coming soon (JavaScript, C#, Go) § SPARQL-Gremlin and SQL-Gremlin http://tinkerpop.apache.org/docs/current/tutorials/gremlin-language-variants @pluradj #OpenCamps2017 Gremlin Language Variants (GLV)
  • 12. 12 Graph Databases, Gremlin and TinkerPop – A Tutorial Kelvin Lawrence @gfxman https://github.com/krlawrence/graph @pluradj #OpenCamps2017
  • 13. 13 Graph Model: Air Routes @pluradj #OpenCamps2017 airport continentcountry route code desc code desc code city desc elev lat lon dist
  • 14. 14 Gremlin: Add a Vertex @pluradj #OpenCamps2017 Vertex rdu = g.addV('airport'). property('code', 'RDU'). property('city', 'Raleigh'). property('desc', 'Raleigh-Durham International'). property('elev', 435). property('lat', 35.877601). property('lon', -78.787498). next()
  • 15. 15 Gremlin: Add an Edge @pluradj #OpenCamps2017 Edge rdujfk = g.V(). has('airport', 'code', 'RDU'). addE('route').to( g.V().has('airport', 'code', 'JFK' ) ). property('dist', 427). next()
  • 16. 16 Where can I fly non-stop from Raleigh? @pluradj #OpenCamps2017 > g.V().has('airport', 'code', 'RDU'). out('route'). values('code'). fold(). toList() ==> [IAH, JFK, LAX, LGA, MCO, MIA, MSP, HOU, CLE, DFW, FLL, IAD, MSY, YYZ, PHX, BDL, SEA, CMH, SFO, TTN, TPA, SFB, SLC, PGD, LAS, PIE, DEN, EWR, ATL, AUS, BNA, BOS, BWI, MDW, DCA, ORD, STL, DAL, PHL, CDG, DTW, LHR, CLT, PIT, MEM, CUN, IND, CVG]
  • 17. 17 What international flights depart from Raleigh? @pluradj #OpenCamps2017 > g.V().has('airport', 'code', 'RDU'). out('route'). has('country', neq('US')). values('city'). toList() ==> Toronto ==> Paris ==> London ==> Cancun
  • 18. 18 What is the shortest path to Melbourne? @pluradj #OpenCamps2017 > g.V(rdu). repeat( out('route').simplePath() ). until( has('code', 'MEL') ). limit(5). path().by('code'). toList() ==> [RDU, LAX, MEL] ==> [RDU, IAH, NRT, MEL] ==> [RDU, IAH, DXB, MEL] ==> [RDU, IAH, AKL, MEL] ==> [RDU, IAH, PEK, MEL]
  • 19. 19 Graph Code Patterns IBM Cognitive OpenTech & Performance https://github.com/IBM/janusgraph-utils § A 360° view of how Apache TinkerPop and JanusGraph solves a specific problem – Includes contextual overviews, architecture diagrams, process flows, demos, blog posts, and source code § Twitter-like application in JanusGraph – Data generator – Schema loader – CSV importer – Graph model and Gremlin queries § Contributions welcome!
  • 20. 20 Graphic Design Ketrina Yim @KetrinaYim http://ketrinadrawsalot.tumblr.com/ @pluradj #OpenCamps2017