Introducing PathQuery, Google's Graph Query Language

Jesse Weaver
Eric Paniagua
Tushar Agarwal
Nicholas James Guy
Alexandre Nerung Mattos
Google (2021)

Abstract

We introduce PathQuery, a graph query language developed
to scale with Google’s query and data volumes as well as its
internal developer community. PathQuery supports flexible
and declarative semantics. We have found that this enables
query developers to think in a naturally “graphy” design space
and to avoid the additional cognitive effort of coordinating
numerous joins and subqueries often required to express an
equivalent query in a relational space.
Despite its traversal-oriented syntactic style, PathQuery
has a foundation on a custom variant of relational algebra –
the exposition of which we presently defer – allowing for the
application of both common and novel optimizations.
We believe that PathQuery has withstood a “test of time”
at Google, under both large scale and low latency requirements. We thus share herein a language design that admits
a rigorous declarative semantics, has scaled well in practice,
and provides a natural syntax for graph traversals while also
admitting complex graph patterns.

Research Areas