Gremlin is a Turing Complete programming language useful for working with graphs. It is a Java DSL that makes extensive use of XPath to query, analyze and manipulate graphs.
Gremlin can be used to create multi-relational graphs. Because the elements of the graph, vertices and edges, have properties defined as key-value pairs, the graph is called a property graph, and this is an example:
The language has the following types:
graph: a graph is composed of a set of vertices and a set of edges.
vertex: a vertex is composed of a set of outgoing edges, incoming edges, and a map of properties.
edge: an edge is composed of an outgoing vertex, incoming vertex, and a map of properties.
boolean: a boolean can either be true or false.
number: a number is a natural (integer) or real (double) number.
string: a string is an array of characters.
list: a list is an ordered collection of potentially duplicate objects.
map: a map is an associative array from a set of object keys to a c