Apache TinkerPop graph computing framework
Apache TinkerPop is a graph abstraction layer that works with numerous different graph databases and graph processors. Apache TinkerPop is composed of two elements: a structure API and a process API.
The primary components of the Apache TinkerPop structure API are:
Graph-
maintains a set of vertices and edges
Vertex-
extends a general class Element and maintains a set of incoming and outgoing edges as well as a collection of properties and a vertex type DSE Graph schema stores VertexLabel - ID, name, TTL
Edge-
extends Element and maintains an incoming and outgoing vertex as well as a collection of properties and an edge type DSE Graph schema stores EdgeLabel - ID, name, TTL, multiplicity (multi, simple), unidirected, visible, sort-key
Property-
a string key associated with a value DSE Graph schema stores
PropertyKey- ID, name, TTL, datatype, cardinality (single, list) VertexProperty-
a string key associated with a value as well as a collection of metadata properties (vertices only)
The primary components of the Apache TinkerPop process API are:
TraversalSource-
a generator of traversals for a particular graph, domain specific language (DSL), and execution engine
Traversal<S,E>-
a functional data flow process transforming objects of type
Sinto object of typeE GraphTraversal-
a traversal DSL that is oriented towards the semantics of the raw graph (i.e. vertices, edges, etc.)
GraphComputer-
a system that processes the graph in parallel and potentially, distributed over a multi-machine cluster
VertexProgram-
code executed at all vertices in a logically parallel manner with intercommunication via message passing
MapReduce-
computations that analyzes all vertices in the graph in parallel and yields a single reduced result
A key feature of Apache TinkerPop is Gremlin, a graph traversal language and virtual machine. Apache TinkerPop and Gremlin are to graph databases what JDBC and SQL are to relational databases. Gremlin variants are available for many languages: Java, Groovy, Python, and others.