SlideShare a Scribd company logo
1 of 29
Download to read offline
Start Flying with Python &
Apache TinkerPop
Graph Day SF
Jason Plurad • pluradj@us.ibm.com • @pluradj
IBM Open Technology • Apache TinkerPop • JanusGraph
Saturday, June 17, 2017
©2017 IBM Corporation 19 June 20172
@pluradj
Open source • Graph computing
Dev @IBM • PMC @ApacheTinkerPop • TSC @JanusGraph
Food truck chaser
Jason Plurad
©2017 IBM Corporation 19 June 20173
Agenda
Apache TinkerPop
Gremlin + Python
- Jupyter
- Flask
- IBM Cloud
House of Mirrors: Ketrina Yim @KetrinaYim
©2017 IBM Corporation 19 June 20174
Founded 2009 • Marko Rodriguez @twarko
Apache Top-Level Project 2016 • PMC Chair: Stephen Mallette @spmallette
Committers: 16 • Contributors: 67 • Graph Systems: 20
https://tinkerpop.apache.org
©2017 IBM Corporation 19 June 20175
Apache TinkerPop: Graph Computing Framework
§ Defines graph structure and process
§ Core framework is written in Java
§ Provider implementations
– Azure Cosmos DB
– Blazegraph
– DataStax Enterprise Graph
– GRAKN.AI
– HGraphDB
– IBM Graph
– JanusGraph
– Neo4j
– OrientDB
– Sqlg
– Stardog
©2017 IBM Corporation 19 June 20176
Gremlin Traversal Language
sql2gremlin: Daniel Kuppitz @dkuppitz
Recursively show all employees and their supervisors
©2017 IBM Corporation 19 June 20177
Graph Application Architecture
Gremlin Server Graph DatabaseApplication
©2017 IBM Corporation 19 June 20178
Gremlin Language Drivers
gremlin-javascript: Jean-Baptiste Musso @jbmusso
Gremlin Bindings
©2017 IBM Corporation 19 June 20179
Gremlin Language Variants (GLV)
§ 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#)
§ SPARQL-Gremlin and SQL-Gremlin
http://tinkerpop.apache.org/docs/current/tutorials/gremlin-language-variants
©2017 IBM Corporation 19 June 201710
Gremlin Bytecode
http://www.datastax.com/dev/blog/the-benefits-of-the-gremlin-graph-traversal-machine
[ ['V'], ['range', 0, 5],
['out', 'created'],
['values', 'name'] ]
g.V().range(0, 5).
out('created').
values('name')
©2017 IBM Corporation 19 June 201711
©2017 IBM Corporation 19 June 201712
Programming Language Popularity
TIOBE Index
PYPL Popularity RedMonk Rankings
©2017 IBM Corporation 19 June 201713
Example Python Application Architecture
Graph DatabaseClients
Web browser
Data notebook
Gremlin Bytecode
Gremlin
Bytecode
HTTP
HTTP
ipython-gremlin
Gremlin-Python
Application Server
©2017 IBM Corporation 19 June 201714
©2017 IBM Corporation 19 June 201715
Gremlin-Python (GLV)
§ Directly incorporated and tested by Apache TinkerPop
§ Implements core pieces found in Gremlin-Java
– Graph Traversal
– Graph Traversal Source
– __
§ Install via pip package manager
§ Gremlin-Python sugar
– g.V().both()[1:3].toList()
– g.V().both().name.toList()
§ Bindings
– g.V(('id',4)).out('created').name.toList()
http://tinkerpop.apache.org/docs/current/reference/#gremlin-python
©2017 IBM Corporation 19 June 201716
©2017 IBM Corporation 19 June 201717
ipython-gremlin: Gremlin Magic
ipython-gremlin: David Michael Brown @davebshow
Line Magic CellMagic
©2017 IBM Corporation 19 June 201718
ipython-gremlin: Python integrations
ipython-gremlin: David Michael Brown @davebshow
pandas, matplotlib NetworkX
©2017 IBM Corporation 19 June 201719
Air Routes Graph
Air Routes Graph: Kelvin Lawrence @gfxman
©2017 IBM Corporation 19 June 201720
Air Routes Web Application
§ Build a small set of APIs as a microservice to power the app
§ APIs can be used to
– Serve data to the app
– Serve data to other services
– Serve data to the Jupyter notebook
§ Example API for routes
– GET /routes/<orig>
– GET /routes/<orig>/<dest>
– GET /routes/<orig>/<dest>?maxhops=2
§ Graph (TinkerPop + Gremlin) is an implementation detail
©2017 IBM Corporation 19 June 201721
©2017 IBM Corporation 19 June 201722
©2017 IBM Corporation 19 June 201723
©2017 IBM Corporation 19 June 201724
Flying into the cloud
§ Graphs are most useful when they are large
§ Operating distributed clusters
– Security
– Availability
– Scalability
§ Sharing is caring
©2017 IBM Corporation 19 June 201725
Python Application Architecture (Local)
Graph DatabaseClients
Web browser
Data notebook
Gremlin Bytecode
Gremlin
Bytecode
HTTP
HTTP
ipython-gremlin
Gremlin-Python
Application Server
©2017 IBM Corporation 19 June 201726
Python Application Architecture (IBM Cloud)
Graph Database
Application Server
Clients
Web browser
Data notebook
Gremlin Bytecode
Gremlin
Bytecode
HTTP
HTTP
ipython-gremlin
Gremlin-Python
©2017 IBM Corporation 19 June 201727
https://www.compose.com/janusgraph
©2017 IBM Corporation 19 June 201728
Thank You: Open Source Foundations
Start Flying with Python & Apache TinkerPop

More Related Content

What's hot

Hw09 Hadoop Applications At Yahoo!
Hw09   Hadoop Applications At Yahoo!Hw09   Hadoop Applications At Yahoo!
Hw09 Hadoop Applications At Yahoo!
Cloudera, Inc.
 

What's hot (19)

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
 
Enabling Multimodel Graphs with Apache TinkerPop
Enabling Multimodel Graphs with Apache TinkerPopEnabling Multimodel Graphs with Apache TinkerPop
Enabling Multimodel Graphs with Apache TinkerPop
 
IBM Open by Design: Graph Technology
IBM Open by Design: Graph TechnologyIBM Open by Design: Graph Technology
IBM Open by Design: Graph Technology
 
Airline Reservations and Routing: A Graph Use Case
Airline Reservations and Routing: A Graph Use CaseAirline Reservations and Routing: A Graph Use Case
Airline Reservations and Routing: A Graph Use Case
 
Community-Driven Graphs with JanusGraph
Community-Driven Graphs with JanusGraphCommunity-Driven Graphs with JanusGraph
Community-Driven Graphs with JanusGraph
 
Janus graph lookingbackwardreachingforward
Janus graph lookingbackwardreachingforwardJanus graph lookingbackwardreachingforward
Janus graph lookingbackwardreachingforward
 
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
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
 
Cloud architectures for data science
Cloud architectures for data scienceCloud architectures for data science
Cloud architectures for data science
 
Zentral QueryCon 2018
Zentral QueryCon 2018Zentral QueryCon 2018
Zentral QueryCon 2018
 
On-boarding with JanusGraph Performance
On-boarding with JanusGraph PerformanceOn-boarding with JanusGraph Performance
On-boarding with JanusGraph Performance
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
 
Google Cloud Platform for the Enterprise
Google Cloud Platform for the EnterpriseGoogle Cloud Platform for the Enterprise
Google Cloud Platform for the Enterprise
 
Presto talk @ Global AI conference 2018 Boston
Presto talk @ Global AI conference 2018 BostonPresto talk @ Global AI conference 2018 Boston
Presto talk @ Global AI conference 2018 Boston
 
Hw09 Hadoop Applications At Yahoo!
Hw09   Hadoop Applications At Yahoo!Hw09   Hadoop Applications At Yahoo!
Hw09 Hadoop Applications At Yahoo!
 
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...
 
Superset druid realtime
Superset druid realtimeSuperset druid realtime
Superset druid realtime
 
Presto Summit 2018 - 10 - Qubole
Presto Summit 2018  - 10 - QubolePresto Summit 2018  - 10 - Qubole
Presto Summit 2018 - 10 - Qubole
 

Similar to Start Flying with Python & Apache TinkerPop

Similar to Start Flying with Python & Apache TinkerPop (20)

GeoPython - Mapping Data in Jupyter Notebooks with PixieDust
GeoPython - Mapping Data in Jupyter Notebooks with PixieDustGeoPython - Mapping Data in Jupyter Notebooks with PixieDust
GeoPython - Mapping Data in Jupyter Notebooks with PixieDust
 
Programming Lecture 2nd - Flask and Heroku in Python -
Programming Lecture 2nd - Flask and Heroku in Python -Programming Lecture 2nd - Flask and Heroku in Python -
Programming Lecture 2nd - Flask and Heroku in Python -
 
All your database are belong to us - Koop, Cloudant, Feature Services
All your database are belong to us - Koop, Cloudant, Feature ServicesAll your database are belong to us - Koop, Cloudant, Feature Services
All your database are belong to us - Koop, Cloudant, Feature Services
 
Big data analysis in python @ PyCon.tw 2013
Big data analysis in python @ PyCon.tw 2013Big data analysis in python @ PyCon.tw 2013
Big data analysis in python @ PyCon.tw 2013
 
The latest in site speed: advanced #webperf 2018
The latest in site speed: advanced #webperf 2018The latest in site speed: advanced #webperf 2018
The latest in site speed: advanced #webperf 2018
 
Big Data LDN 2017: Your flight is boarding now!
Big Data LDN 2017: Your flight is boarding now!Big Data LDN 2017: Your flight is boarding now!
Big Data LDN 2017: Your flight is boarding now!
 
Heterogeneous Data Mining with Spark
Heterogeneous Data Mining with SparkHeterogeneous Data Mining with Spark
Heterogeneous Data Mining with Spark
 
Airline reservations and routing: a graph use case
Airline reservations and routing: a graph use caseAirline reservations and routing: a graph use case
Airline reservations and routing: a graph use case
 
Machine Learning for Java Developers - Nasser Ebrahim
Machine Learning for Java Developers - Nasser EbrahimMachine Learning for Java Developers - Nasser Ebrahim
Machine Learning for Java Developers - Nasser Ebrahim
 
Webinar - Analyzing Video
Webinar - Analyzing VideoWebinar - Analyzing Video
Webinar - Analyzing Video
 
Apache Spark and Apache Ignite: Where Fast Data Meets IoT
Apache Spark and Apache Ignite: Where Fast Data Meets IoTApache Spark and Apache Ignite: Where Fast Data Meets IoT
Apache Spark and Apache Ignite: Where Fast Data Meets IoT
 
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQueryCodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
 
Loading data into Apache Ignite
Loading data into Apache IgniteLoading data into Apache Ignite
Loading data into Apache Ignite
 
Big Data London 2019 v.10 I 'Loading data into ignite' - Stephen Darlington, ...
Big Data London 2019 v.10 I 'Loading data into ignite' - Stephen Darlington, ...Big Data London 2019 v.10 I 'Loading data into ignite' - Stephen Darlington, ...
Big Data London 2019 v.10 I 'Loading data into ignite' - Stephen Darlington, ...
 
Improving Python and Spark Performance and Interoperability with Apache Arrow...
Improving Python and Spark Performance and Interoperability with Apache Arrow...Improving Python and Spark Performance and Interoperability with Apache Arrow...
Improving Python and Spark Performance and Interoperability with Apache Arrow...
 
Northwestern 20181004 v9
Northwestern 20181004 v9Northwestern 20181004 v9
Northwestern 20181004 v9
 
Supercharge your app with Cloud Functions for Firebase
Supercharge your app with Cloud Functions for FirebaseSupercharge your app with Cloud Functions for Firebase
Supercharge your app with Cloud Functions for Firebase
 
Debugging and Performance tricks for MXNet Gluon
Debugging and Performance tricks for MXNet GluonDebugging and Performance tricks for MXNet Gluon
Debugging and Performance tricks for MXNet Gluon
 
Electron - Build cross platform desktop apps
Electron - Build cross platform desktop appsElectron - Build cross platform desktop apps
Electron - Build cross platform desktop apps
 
Big Data LDN 2017: Will they blend?
Big Data LDN 2017: Will they blend?Big Data LDN 2017: Will they blend?
Big Data LDN 2017: Will they blend?
 

Recently uploaded

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Recently uploaded (20)

WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 

Start Flying with Python & Apache TinkerPop

  • 1. Start Flying with Python & Apache TinkerPop Graph Day SF Jason Plurad • pluradj@us.ibm.com • @pluradj IBM Open Technology • Apache TinkerPop • JanusGraph Saturday, June 17, 2017
  • 2. ©2017 IBM Corporation 19 June 20172 @pluradj Open source • Graph computing Dev @IBM • PMC @ApacheTinkerPop • TSC @JanusGraph Food truck chaser Jason Plurad
  • 3. ©2017 IBM Corporation 19 June 20173 Agenda Apache TinkerPop Gremlin + Python - Jupyter - Flask - IBM Cloud House of Mirrors: Ketrina Yim @KetrinaYim
  • 4. ©2017 IBM Corporation 19 June 20174 Founded 2009 • Marko Rodriguez @twarko Apache Top-Level Project 2016 • PMC Chair: Stephen Mallette @spmallette Committers: 16 • Contributors: 67 • Graph Systems: 20 https://tinkerpop.apache.org
  • 5. ©2017 IBM Corporation 19 June 20175 Apache TinkerPop: Graph Computing Framework § Defines graph structure and process § Core framework is written in Java § Provider implementations – Azure Cosmos DB – Blazegraph – DataStax Enterprise Graph – GRAKN.AI – HGraphDB – IBM Graph – JanusGraph – Neo4j – OrientDB – Sqlg – Stardog
  • 6. ©2017 IBM Corporation 19 June 20176 Gremlin Traversal Language sql2gremlin: Daniel Kuppitz @dkuppitz Recursively show all employees and their supervisors
  • 7. ©2017 IBM Corporation 19 June 20177 Graph Application Architecture Gremlin Server Graph DatabaseApplication
  • 8. ©2017 IBM Corporation 19 June 20178 Gremlin Language Drivers gremlin-javascript: Jean-Baptiste Musso @jbmusso Gremlin Bindings
  • 9. ©2017 IBM Corporation 19 June 20179 Gremlin Language Variants (GLV) § 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#) § SPARQL-Gremlin and SQL-Gremlin http://tinkerpop.apache.org/docs/current/tutorials/gremlin-language-variants
  • 10. ©2017 IBM Corporation 19 June 201710 Gremlin Bytecode http://www.datastax.com/dev/blog/the-benefits-of-the-gremlin-graph-traversal-machine [ ['V'], ['range', 0, 5], ['out', 'created'], ['values', 'name'] ] g.V().range(0, 5). out('created'). values('name')
  • 11. ©2017 IBM Corporation 19 June 201711
  • 12. ©2017 IBM Corporation 19 June 201712 Programming Language Popularity TIOBE Index PYPL Popularity RedMonk Rankings
  • 13. ©2017 IBM Corporation 19 June 201713 Example Python Application Architecture Graph DatabaseClients Web browser Data notebook Gremlin Bytecode Gremlin Bytecode HTTP HTTP ipython-gremlin Gremlin-Python Application Server
  • 14. ©2017 IBM Corporation 19 June 201714
  • 15. ©2017 IBM Corporation 19 June 201715 Gremlin-Python (GLV) § Directly incorporated and tested by Apache TinkerPop § Implements core pieces found in Gremlin-Java – Graph Traversal – Graph Traversal Source – __ § Install via pip package manager § Gremlin-Python sugar – g.V().both()[1:3].toList() – g.V().both().name.toList() § Bindings – g.V(('id',4)).out('created').name.toList() http://tinkerpop.apache.org/docs/current/reference/#gremlin-python
  • 16. ©2017 IBM Corporation 19 June 201716
  • 17. ©2017 IBM Corporation 19 June 201717 ipython-gremlin: Gremlin Magic ipython-gremlin: David Michael Brown @davebshow Line Magic CellMagic
  • 18. ©2017 IBM Corporation 19 June 201718 ipython-gremlin: Python integrations ipython-gremlin: David Michael Brown @davebshow pandas, matplotlib NetworkX
  • 19. ©2017 IBM Corporation 19 June 201719 Air Routes Graph Air Routes Graph: Kelvin Lawrence @gfxman
  • 20. ©2017 IBM Corporation 19 June 201720 Air Routes Web Application § Build a small set of APIs as a microservice to power the app § APIs can be used to – Serve data to the app – Serve data to other services – Serve data to the Jupyter notebook § Example API for routes – GET /routes/<orig> – GET /routes/<orig>/<dest> – GET /routes/<orig>/<dest>?maxhops=2 § Graph (TinkerPop + Gremlin) is an implementation detail
  • 21. ©2017 IBM Corporation 19 June 201721
  • 22. ©2017 IBM Corporation 19 June 201722
  • 23. ©2017 IBM Corporation 19 June 201723
  • 24. ©2017 IBM Corporation 19 June 201724 Flying into the cloud § Graphs are most useful when they are large § Operating distributed clusters – Security – Availability – Scalability § Sharing is caring
  • 25. ©2017 IBM Corporation 19 June 201725 Python Application Architecture (Local) Graph DatabaseClients Web browser Data notebook Gremlin Bytecode Gremlin Bytecode HTTP HTTP ipython-gremlin Gremlin-Python Application Server
  • 26. ©2017 IBM Corporation 19 June 201726 Python Application Architecture (IBM Cloud) Graph Database Application Server Clients Web browser Data notebook Gremlin Bytecode Gremlin Bytecode HTTP HTTP ipython-gremlin Gremlin-Python
  • 27. ©2017 IBM Corporation 19 June 201727 https://www.compose.com/janusgraph
  • 28. ©2017 IBM Corporation 19 June 201728 Thank You: Open Source Foundations