Gremlin is a graph traversal machine and language designed, developed, and distributed by the Apache TinkerPop project. Gremlin, as a graph traversal machine, is composed of three interacting components: a graph $G$, a traversal $\Psi$, and a set of traversers $T$. The traversers move about the graph according to the instructions specified in the traversal, where the result of the computation is the ultimate locations of all halted traversers. A Gremlin machine can be executed over any supporting graph computing system such as an OLTP graph database and/or an OLAP graph processor. Gremlin, as a graph traversal language, is a functional language implemented in the user's native programming language and is used to define the $\Psi$ of a Gremlin machine. This article provides a mathematical description of Gremlin and details its automaton and functional properties. These properties enable Gremlin to naturally support imperative and declarative querying, host language agnosticism, user-defined domain specific languages, an extensible compiler/optimizer, single- and multi-machine execution models, hybrid depth- and breadth-first evaluation, as well as the existence of a Universal Gremlin Machine and its respective entailments.
翻译:Gremlin是一个由Apache TinkerPop 项目设计、开发和分发的图形穿行机器和语言。Gremlin,作为一个图形穿行机器,由三个互动部分组成:一个G$G$的图形,一个Pisal $\Psi$和一套Transers $T$。穿行者按照Travelsal 中指定的指令在图上移动,计算的结果是所有已停止的穿行者的最终位置。Gremlin机器可以在任何支持的图形计算系统,如OLTP图形数据库和/或OLAP图表处理器上执行。Gremlin,作为图穿行语言,是用户母语中的一种功能语言,用来界定Gremlin机器的值。这篇文章提供了Gremlin的数学描述,并详细介绍了其自动和功能特性。这些属性使Gremlin能够自然地支持和宣讲性查询,主用语言,用户定义的域域域特定语言,用户定义的域域语言,Gremlin,一个可扩展的机级集/深度分析器,作为通用的深度和深度分析器,作为通用的版本。