SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
3 Myths about graph query languages
Busted by Pixy
Sridhar Ramachandran
Founder, LambdaZen LLC
Background
● Graph databases are a category of NoSQL
databases that model graphs consisting of
vertices and edges.
○ The property-graph model from Tinkerpop is a graph
database standard.
○ It offers a common abstraction for over a dozen
graph databases using the Blueprints API.
● There are two querying paradigms for graph
DBs, viz. graph query languages (GQL) and
graph traversal languages (GTL).
○ GQLs are declarative and constraint-driven.
○ GTLs are imperative and step-driven.
Background
● The Tinkerpop software stack includes
Gremlin, a graph traversal language (GTL)
that is a monadic Groovy DSL.
● All other GQLs to date are proprietary and
can not be ported across graph databases.
● Pixy is a new declarative graph query
language (GQL) that works on any
Blueprints-compatible graph database.
○ Project page: https://github.com/lambdazen/pixy/
○ Available under the Apache 2.0 license
Myth #1: GQLs and GTLs can’t mix
● Myth #1: Graph Query Languages and
Graph Traversal Languages are totally
different ways to look at the graph query
problem.
● Common wisdom dictates that:
○ A graph “access” language must either be a GTL or
a GQL.
○ The programmer must choose one paradigm or the
other for a specific query.
Pixy co-exists with Gremlin
● Pixy queries are run from Gremlin
expressions using the ‘pixy’ step.
● The input and output to the query can be
operated on by Gremlin.
● The programmer can use both paradigms in
the same query using Pixy + Gremlin.
Gremlin (GTL) GremlinPixy (GQL)
Myth #2: GQLs are slower
● Myth #2: Graph Query Languages are much
slower than Graph Traversal Languages
because of their declarative nature.
● Common wisdom dictates that:
○ the performance penalty is the price paid for
declarative expressiveness.
○ you can’t be sure about the execution plan of a
query written in a GQL, as it is with SQL.
Pixy compiles to Gremlin
● Pixy compiles
PROLOG-style
rules to Gremlin
expressions.
● The execution plan
is a Gremlin
pipeline and can
be tweaked by
reordering the
clauses.
● Performance
should be the
same in most
cases.
Myth #3: GQLs can’t be relational
● Myth #3: A graph query language can not
be based on N-ary predicate-calculus or
relational algebra, since graphs can only
express binary relations/predicates.
● Common wisdom dictates that:
○ Graph-based models unlike relational models can
only capture binary relationships in edges.
○ Therefore, GQLs can only operate on vertices and
edges, not N-ary relations.
○ HypergraphDB is designed to support “hyper” edges
across N vertices to address this perceived
weakness with graph-based associative models.
Pixy derives N-ary relations
● The property graph model can only capture
binary relations between vertices in a
graph, aka edges.
● But Pixy can derive N-ary relations across
vertices, edges and properties.
● These relations can be used to derive other
N-ary relations.
○ These relations form what is called the “domain
model” for the graph.
○ When any relation is queried, Pixy compiles the
query into a sequence of Gremlin steps.
An example
gremlin> pt = new PixyTheory( 
'''father(Child, Father) 
:- out(Child, 'father', Father).''')
The above rule means that:
- father(A, B), father(B, C), father(D, B) are all true.
- father(A, C), father(D, E), etc. are false.
gremlin> pt = pt.extend(
'''grandfather(X, Y, Z) 
:- father(X, Y), father(Y, Z).''')
The above rule means that:
- grandfather(A, B, C) and grandfather(D, B, C) are true
- All other combinations are false
Sample query from the Pixy Tutorial
Wrap-up
● Pixy is a declarative graph query language
that dispels 3 myths about GQLs.
● Myth #1: GQLs and GTLs can’t mix.
○ Pixy’s querying capability is integrated into Gremlin,
bringing the capabilities of both querying paradigms
in one combined language.
● Myth #2: GQLs are slower than GTLs.
○ Pixy compiles PROLOG-based queries and rules to
Gremlin expressions.
● Myth #3: GQLs can’t be relational.
○ Pixy can derive N-ary relations from graphs.
○ New relations can be derived from existing ones.

Contenu connexe

Tendances

Object Oriented Programming (Question Paper) [April – 2017 | 75:25 Pattern]
Object Oriented Programming (Question Paper) [April – 2017 | 75:25 Pattern]Object Oriented Programming (Question Paper) [April – 2017 | 75:25 Pattern]
Object Oriented Programming (Question Paper) [April – 2017 | 75:25 Pattern]Mumbai B.Sc.IT Study
 
Machine learning Vs Deep learning Vs Reinforcement learning | Pydata Mumbai
Machine learning Vs Deep learning Vs Reinforcement learning | Pydata Mumbai Machine learning Vs Deep learning Vs Reinforcement learning | Pydata Mumbai
Machine learning Vs Deep learning Vs Reinforcement learning | Pydata Mumbai Pratik Bhavsar
 
Internet Technologies (October – 2016) [Question Paper | CBSGS: 75:25 Pattern]
Internet Technologies (October – 2016) [Question Paper | CBSGS: 75:25 Pattern]Internet Technologies (October – 2016) [Question Paper | CBSGS: 75:25 Pattern]
Internet Technologies (October – 2016) [Question Paper | CBSGS: 75:25 Pattern]Mumbai B.Sc.IT Study
 
ASP.NET With C# (Revised Syllabus) [QP / May - 2016]
ASP.NET With C# (Revised Syllabus) [QP / May - 2016]ASP.NET With C# (Revised Syllabus) [QP / May - 2016]
ASP.NET With C# (Revised Syllabus) [QP / May - 2016]Mumbai B.Sc.IT Study
 
Looking for Invariant Operators in Argumentation
Looking for Invariant Operators in ArgumentationLooking for Invariant Operators in Argumentation
Looking for Invariant Operators in ArgumentationCarlo Taticchi
 
Internet Technologies (May – 2016) [Question Paper | IDOL: Revised Course]
Internet Technologies (May – 2016) [Question Paper | IDOL: Revised Course]Internet Technologies (May – 2016) [Question Paper | IDOL: Revised Course]
Internet Technologies (May – 2016) [Question Paper | IDOL: Revised Course]Mumbai B.Sc.IT Study
 
A small debate of power of randomness
A small debate of power of randomnessA small debate of power of randomness
A small debate of power of randomnessAbner Chih Yi Huang
 
B.Sc.IT: Semester - VI (October - 2013) [IDOL - Revised Course | Question Paper]
B.Sc.IT: Semester - VI (October - 2013) [IDOL - Revised Course | Question Paper]B.Sc.IT: Semester - VI (October - 2013) [IDOL - Revised Course | Question Paper]
B.Sc.IT: Semester - VI (October - 2013) [IDOL - Revised Course | Question Paper]Mumbai B.Sc.IT Study
 
F# Ignite - DNAD2010
F# Ignite - DNAD2010F# Ignite - DNAD2010
F# Ignite - DNAD2010Rodrigo Vidal
 
Looking for Invariant Operators in Argumentation
Looking for Invariant Operators in ArgumentationLooking for Invariant Operators in Argumentation
Looking for Invariant Operators in ArgumentationCarlo Taticchi
 
ASP.NET With C# (Revised Syllabus) [QP / May - 2017]
ASP.NET With C# (Revised Syllabus) [QP / May - 2017]ASP.NET With C# (Revised Syllabus) [QP / May - 2017]
ASP.NET With C# (Revised Syllabus) [QP / May - 2017]Mumbai B.Sc.IT Study
 
Timed Concurrent Language for Argumentation: an Interleaving Approach
Timed Concurrent Language for Argumentation: an Interleaving ApproachTimed Concurrent Language for Argumentation: an Interleaving Approach
Timed Concurrent Language for Argumentation: an Interleaving ApproachCarlo Taticchi
 
3.5 equivalence of pushdown automata and cfl
3.5 equivalence of pushdown automata and cfl3.5 equivalence of pushdown automata and cfl
3.5 equivalence of pushdown automata and cflSampath Kumar S
 
Introducing a Tool for Concurrent Argumentation
Introducing a Tool for Concurrent ArgumentationIntroducing a Tool for Concurrent Argumentation
Introducing a Tool for Concurrent ArgumentationCarlo Taticchi
 
Advanced Java (Revised Syllabus) [QP / October - 2016]
Advanced Java (Revised Syllabus) [QP / October - 2016]Advanced Java (Revised Syllabus) [QP / October - 2016]
Advanced Java (Revised Syllabus) [QP / October - 2016]Mumbai B.Sc.IT Study
 

Tendances (19)

Object Oriented Programming (Question Paper) [April – 2017 | 75:25 Pattern]
Object Oriented Programming (Question Paper) [April – 2017 | 75:25 Pattern]Object Oriented Programming (Question Paper) [April – 2017 | 75:25 Pattern]
Object Oriented Programming (Question Paper) [April – 2017 | 75:25 Pattern]
 
Machine learning Vs Deep learning Vs Reinforcement learning | Pydata Mumbai
Machine learning Vs Deep learning Vs Reinforcement learning | Pydata Mumbai Machine learning Vs Deep learning Vs Reinforcement learning | Pydata Mumbai
Machine learning Vs Deep learning Vs Reinforcement learning | Pydata Mumbai
 
Internet Technologies (October – 2016) [Question Paper | CBSGS: 75:25 Pattern]
Internet Technologies (October – 2016) [Question Paper | CBSGS: 75:25 Pattern]Internet Technologies (October – 2016) [Question Paper | CBSGS: 75:25 Pattern]
Internet Technologies (October – 2016) [Question Paper | CBSGS: 75:25 Pattern]
 
Grid _cluster_computing
Grid  _cluster_computingGrid  _cluster_computing
Grid _cluster_computing
 
ASP.NET With C# (Revised Syllabus) [QP / May - 2016]
ASP.NET With C# (Revised Syllabus) [QP / May - 2016]ASP.NET With C# (Revised Syllabus) [QP / May - 2016]
ASP.NET With C# (Revised Syllabus) [QP / May - 2016]
 
Looking for Invariant Operators in Argumentation
Looking for Invariant Operators in ArgumentationLooking for Invariant Operators in Argumentation
Looking for Invariant Operators in Argumentation
 
Pda to cfg h2
Pda to cfg h2Pda to cfg h2
Pda to cfg h2
 
SIGIR-2015-Poster
SIGIR-2015-PosterSIGIR-2015-Poster
SIGIR-2015-Poster
 
Korean Text mining
Korean Text miningKorean Text mining
Korean Text mining
 
Internet Technologies (May – 2016) [Question Paper | IDOL: Revised Course]
Internet Technologies (May – 2016) [Question Paper | IDOL: Revised Course]Internet Technologies (May – 2016) [Question Paper | IDOL: Revised Course]
Internet Technologies (May – 2016) [Question Paper | IDOL: Revised Course]
 
A small debate of power of randomness
A small debate of power of randomnessA small debate of power of randomness
A small debate of power of randomness
 
B.Sc.IT: Semester - VI (October - 2013) [IDOL - Revised Course | Question Paper]
B.Sc.IT: Semester - VI (October - 2013) [IDOL - Revised Course | Question Paper]B.Sc.IT: Semester - VI (October - 2013) [IDOL - Revised Course | Question Paper]
B.Sc.IT: Semester - VI (October - 2013) [IDOL - Revised Course | Question Paper]
 
F# Ignite - DNAD2010
F# Ignite - DNAD2010F# Ignite - DNAD2010
F# Ignite - DNAD2010
 
Looking for Invariant Operators in Argumentation
Looking for Invariant Operators in ArgumentationLooking for Invariant Operators in Argumentation
Looking for Invariant Operators in Argumentation
 
ASP.NET With C# (Revised Syllabus) [QP / May - 2017]
ASP.NET With C# (Revised Syllabus) [QP / May - 2017]ASP.NET With C# (Revised Syllabus) [QP / May - 2017]
ASP.NET With C# (Revised Syllabus) [QP / May - 2017]
 
Timed Concurrent Language for Argumentation: an Interleaving Approach
Timed Concurrent Language for Argumentation: an Interleaving ApproachTimed Concurrent Language for Argumentation: an Interleaving Approach
Timed Concurrent Language for Argumentation: an Interleaving Approach
 
3.5 equivalence of pushdown automata and cfl
3.5 equivalence of pushdown automata and cfl3.5 equivalence of pushdown automata and cfl
3.5 equivalence of pushdown automata and cfl
 
Introducing a Tool for Concurrent Argumentation
Introducing a Tool for Concurrent ArgumentationIntroducing a Tool for Concurrent Argumentation
Introducing a Tool for Concurrent Argumentation
 
Advanced Java (Revised Syllabus) [QP / October - 2016]
Advanced Java (Revised Syllabus) [QP / October - 2016]Advanced Java (Revised Syllabus) [QP / October - 2016]
Advanced Java (Revised Syllabus) [QP / October - 2016]
 

En vedette

Java Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte CodeJava Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte CodeJavajigi Jaesung
 
Seattle Data Geeks: Hadoop and Beyond
Seattle Data Geeks: Hadoop and BeyondSeattle Data Geeks: Hadoop and Beyond
Seattle Data Geeks: Hadoop and BeyondPaco Nathan
 
Contemporary source control for pharo
Contemporary source control for pharoContemporary source control for pharo
Contemporary source control for pharoESUG
 
Bitsy graph database
Bitsy graph databaseBitsy graph database
Bitsy graph databaseLambdaZen LLC
 
Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Jérôme Petazzoni
 
Evaluac ión 3 marco teórico
Evaluac ión 3  marco teóricoEvaluac ión 3  marco teórico
Evaluac ión 3 marco teóricoAdalberto
 

En vedette (7)

Java Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte CodeJava Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte Code
 
Seattle Data Geeks: Hadoop and Beyond
Seattle Data Geeks: Hadoop and BeyondSeattle Data Geeks: Hadoop and Beyond
Seattle Data Geeks: Hadoop and Beyond
 
Contemporary source control for pharo
Contemporary source control for pharoContemporary source control for pharo
Contemporary source control for pharo
 
Bitsy graph database
Bitsy graph databaseBitsy graph database
Bitsy graph database
 
Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015
 
ES6: The Awesome Parts
ES6: The Awesome PartsES6: The Awesome Parts
ES6: The Awesome Parts
 
Evaluac ión 3 marco teórico
Evaluac ión 3  marco teóricoEvaluac ión 3  marco teórico
Evaluac ión 3 marco teórico
 

Similaire à 3 Myths about graph query languages busted by Pixy's relational approach

educational course/tutorialoutlet.com
educational course/tutorialoutlet.comeducational course/tutorialoutlet.com
educational course/tutorialoutlet.comjorge0043
 
GraphQL Bangkok meetup 5.0
GraphQL Bangkok meetup 5.0GraphQL Bangkok meetup 5.0
GraphQL Bangkok meetup 5.0Tobias Meixner
 
Tutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHPTutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHPAndrew Rota
 
Tips for data science competitions
Tips for data science competitionsTips for data science competitions
Tips for data science competitionsOwen Zhang
 
Scaling your GraphQL applications with Dgraph
Scaling your GraphQL applications with DgraphScaling your GraphQL applications with Dgraph
Scaling your GraphQL applications with DgraphKarthic Rao
 
Code-first GraphQL Server Development with Prisma
Code-first  GraphQL Server Development with PrismaCode-first  GraphQL Server Development with Prisma
Code-first GraphQL Server Development with PrismaNikolas Burk
 
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...MLconf
 
Multiple Graphs: Updatable Views
Multiple Graphs: Updatable ViewsMultiple Graphs: Updatable Views
Multiple Graphs: Updatable ViewsopenCypher
 
Introduction to Machine Learning with Spark
Introduction to Machine Learning with SparkIntroduction to Machine Learning with Spark
Introduction to Machine Learning with Sparkdatamantra
 
GraphQL Meetup Bangkok 3.0
GraphQL Meetup Bangkok 3.0GraphQL Meetup Bangkok 3.0
GraphQL Meetup Bangkok 3.0Tobias Meixner
 
008 GNNs at Scale With Graph Data Science Sampling and Python Client Integrat...
008 GNNs at Scale With Graph Data Science Sampling and Python Client Integrat...008 GNNs at Scale With Graph Data Science Sampling and Python Client Integrat...
008 GNNs at Scale With Graph Data Science Sampling and Python Client Integrat...Neo4j
 
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
 
openGL basics for sample program (1).ppt
openGL basics for sample program (1).pptopenGL basics for sample program (1).ppt
openGL basics for sample program (1).pptHIMANKMISHRA2
 
openGL basics for sample program.ppt
openGL basics for sample program.pptopenGL basics for sample program.ppt
openGL basics for sample program.pptHIMANKMISHRA2
 
Build GraphQL APIs with Graphene (Big Mountain Data & Dev 2019)
Build GraphQL APIs with Graphene (Big Mountain Data & Dev 2019)Build GraphQL APIs with Graphene (Big Mountain Data & Dev 2019)
Build GraphQL APIs with Graphene (Big Mountain Data & Dev 2019)Ayla Khan
 
Information to Wisdom: Commonsense Knowledge Extraction and Compilation - Part 2
Information to Wisdom: Commonsense Knowledge Extraction and Compilation - Part 2Information to Wisdom: Commonsense Knowledge Extraction and Compilation - Part 2
Information to Wisdom: Commonsense Knowledge Extraction and Compilation - Part 2Dr. Aparna Varde
 
Bimbo Final Project Presentation
Bimbo Final Project PresentationBimbo Final Project Presentation
Bimbo Final Project PresentationCan Köklü
 

Similaire à 3 Myths about graph query languages busted by Pixy's relational approach (20)

educational course/tutorialoutlet.com
educational course/tutorialoutlet.comeducational course/tutorialoutlet.com
educational course/tutorialoutlet.com
 
TinkerPop 2020
TinkerPop 2020TinkerPop 2020
TinkerPop 2020
 
GraphQL Bangkok meetup 5.0
GraphQL Bangkok meetup 5.0GraphQL Bangkok meetup 5.0
GraphQL Bangkok meetup 5.0
 
Tutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHPTutorial: Building a GraphQL API in PHP
Tutorial: Building a GraphQL API in PHP
 
Anything-to-Graph
Anything-to-GraphAnything-to-Graph
Anything-to-Graph
 
Tips for data science competitions
Tips for data science competitionsTips for data science competitions
Tips for data science competitions
 
Scaling your GraphQL applications with Dgraph
Scaling your GraphQL applications with DgraphScaling your GraphQL applications with Dgraph
Scaling your GraphQL applications with Dgraph
 
Code-first GraphQL Server Development with Prisma
Code-first  GraphQL Server Development with PrismaCode-first  GraphQL Server Development with Prisma
Code-first GraphQL Server Development with Prisma
 
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
 
Multiple Graphs: Updatable Views
Multiple Graphs: Updatable ViewsMultiple Graphs: Updatable Views
Multiple Graphs: Updatable Views
 
Introduction to Machine Learning with Spark
Introduction to Machine Learning with SparkIntroduction to Machine Learning with Spark
Introduction to Machine Learning with Spark
 
GraphQL Meetup Bangkok 3.0
GraphQL Meetup Bangkok 3.0GraphQL Meetup Bangkok 3.0
GraphQL Meetup Bangkok 3.0
 
008 GNNs at Scale With Graph Data Science Sampling and Python Client Integrat...
008 GNNs at Scale With Graph Data Science Sampling and Python Client Integrat...008 GNNs at Scale With Graph Data Science Sampling and Python Client Integrat...
008 GNNs at Scale With Graph Data Science Sampling and Python Client Integrat...
 
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 ...
 
GraphQL + relay
GraphQL + relayGraphQL + relay
GraphQL + relay
 
openGL basics for sample program (1).ppt
openGL basics for sample program (1).pptopenGL basics for sample program (1).ppt
openGL basics for sample program (1).ppt
 
openGL basics for sample program.ppt
openGL basics for sample program.pptopenGL basics for sample program.ppt
openGL basics for sample program.ppt
 
Build GraphQL APIs with Graphene (Big Mountain Data & Dev 2019)
Build GraphQL APIs with Graphene (Big Mountain Data & Dev 2019)Build GraphQL APIs with Graphene (Big Mountain Data & Dev 2019)
Build GraphQL APIs with Graphene (Big Mountain Data & Dev 2019)
 
Information to Wisdom: Commonsense Knowledge Extraction and Compilation - Part 2
Information to Wisdom: Commonsense Knowledge Extraction and Compilation - Part 2Information to Wisdom: Commonsense Knowledge Extraction and Compilation - Part 2
Information to Wisdom: Commonsense Knowledge Extraction and Compilation - Part 2
 
Bimbo Final Project Presentation
Bimbo Final Project PresentationBimbo Final Project Presentation
Bimbo Final Project Presentation
 

Dernier

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 

3 Myths about graph query languages busted by Pixy's relational approach

  • 1. 3 Myths about graph query languages Busted by Pixy Sridhar Ramachandran Founder, LambdaZen LLC
  • 2. Background ● Graph databases are a category of NoSQL databases that model graphs consisting of vertices and edges. ○ The property-graph model from Tinkerpop is a graph database standard. ○ It offers a common abstraction for over a dozen graph databases using the Blueprints API. ● There are two querying paradigms for graph DBs, viz. graph query languages (GQL) and graph traversal languages (GTL). ○ GQLs are declarative and constraint-driven. ○ GTLs are imperative and step-driven.
  • 3. Background ● The Tinkerpop software stack includes Gremlin, a graph traversal language (GTL) that is a monadic Groovy DSL. ● All other GQLs to date are proprietary and can not be ported across graph databases. ● Pixy is a new declarative graph query language (GQL) that works on any Blueprints-compatible graph database. ○ Project page: https://github.com/lambdazen/pixy/ ○ Available under the Apache 2.0 license
  • 4. Myth #1: GQLs and GTLs can’t mix ● Myth #1: Graph Query Languages and Graph Traversal Languages are totally different ways to look at the graph query problem. ● Common wisdom dictates that: ○ A graph “access” language must either be a GTL or a GQL. ○ The programmer must choose one paradigm or the other for a specific query.
  • 5. Pixy co-exists with Gremlin ● Pixy queries are run from Gremlin expressions using the ‘pixy’ step. ● The input and output to the query can be operated on by Gremlin. ● The programmer can use both paradigms in the same query using Pixy + Gremlin. Gremlin (GTL) GremlinPixy (GQL)
  • 6. Myth #2: GQLs are slower ● Myth #2: Graph Query Languages are much slower than Graph Traversal Languages because of their declarative nature. ● Common wisdom dictates that: ○ the performance penalty is the price paid for declarative expressiveness. ○ you can’t be sure about the execution plan of a query written in a GQL, as it is with SQL.
  • 7. Pixy compiles to Gremlin ● Pixy compiles PROLOG-style rules to Gremlin expressions. ● The execution plan is a Gremlin pipeline and can be tweaked by reordering the clauses. ● Performance should be the same in most cases.
  • 8. Myth #3: GQLs can’t be relational ● Myth #3: A graph query language can not be based on N-ary predicate-calculus or relational algebra, since graphs can only express binary relations/predicates. ● Common wisdom dictates that: ○ Graph-based models unlike relational models can only capture binary relationships in edges. ○ Therefore, GQLs can only operate on vertices and edges, not N-ary relations. ○ HypergraphDB is designed to support “hyper” edges across N vertices to address this perceived weakness with graph-based associative models.
  • 9. Pixy derives N-ary relations ● The property graph model can only capture binary relations between vertices in a graph, aka edges. ● But Pixy can derive N-ary relations across vertices, edges and properties. ● These relations can be used to derive other N-ary relations. ○ These relations form what is called the “domain model” for the graph. ○ When any relation is queried, Pixy compiles the query into a sequence of Gremlin steps.
  • 10. An example gremlin> pt = new PixyTheory( '''father(Child, Father) :- out(Child, 'father', Father).''') The above rule means that: - father(A, B), father(B, C), father(D, B) are all true. - father(A, C), father(D, E), etc. are false. gremlin> pt = pt.extend( '''grandfather(X, Y, Z) :- father(X, Y), father(Y, Z).''') The above rule means that: - grandfather(A, B, C) and grandfather(D, B, C) are true - All other combinations are false Sample query from the Pixy Tutorial
  • 11. Wrap-up ● Pixy is a declarative graph query language that dispels 3 myths about GQLs. ● Myth #1: GQLs and GTLs can’t mix. ○ Pixy’s querying capability is integrated into Gremlin, bringing the capabilities of both querying paradigms in one combined language. ● Myth #2: GQLs are slower than GTLs. ○ Pixy compiles PROLOG-based queries and rules to Gremlin expressions. ● Myth #3: GQLs can’t be relational. ○ Pixy can derive N-ary relations from graphs. ○ New relations can be derived from existing ones.