You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by Marko Rodriguez <ok...@gmail.com> on 2015/08/18 06:21:23 UTC

[Article] The Gremlin Graph Traversal Machine and Language

*** REPOST: Forgot to cc: dev@ in the gremlin-users@ email. Apologies if you are already on gremlin-users@.

Hello Gremlin-heads,

In October I will be giving the keynote at ACM's Database Programming Languages conference and the organizers asked if I would like to contribute an article. A pre-print of this article is available here:

	The Gremlin Graph Traversal Machine and Language
		http://arxiv.org/abs/1508.03843

I'm super proud of this article. I learned so much about Gremlin while writing it that my head is spinning with new ideas. Here is a breakdown of what you will learn about in this article.

	1. Gremlin is both a virtual machine and programming language much like Java JVM + Java language. (Section 2, 3, and 3.9)
	2. Gremlin graph pattern matching (declarative) is a simple consequence of Gremlin traversing (imperative). (Section 3.8)
	3. Gremlin's optimizer is a collection of rewrite rules for step sequences (traversal strategies). (Section 4)
	4. Gremlin OLAP is a natural extension of Gremlin OLTP made scalable via an equivalence relation known as "bulking." (Section 5)
	5. Gremlin is Turing Complete and thus can compute any known algorithm. (Section 6.1)
	6. Gremlin has a theoretical "Universal Gremlin Machine" which enables it to be represented in the graph itself. (Section 6.2-6.4)
	7. Gremlin, at a particular level of abstraction, can be thought of (and potentially implemented) as a "chemical process." (Section 6.5)

I hope you enjoy the work,
Marko.

http://markorodriguez.com