Apache TinkerPopグラフ・コンピューティング・フレームワーク

Apache TinkerPopフレームワークについて説明します。

Apache TinkerPopはグラフの抽象化層で、さまざまなグラフ・データベースやグラフ・プロセッサーで機能します。TinkerPopは、構造APIとプロセスAPIという2つの要素で構成されます。

TinkerPop構造APIの主なコンポーネントは、次のとおりです。
Graph
一連の頂点とエッジを保持する。
Vertex
一般クラスElementを拡張し、一連の内向きエッジと外向きエッジのほかにプロパティの集合と頂点タイプを保持する。DSE Graphスキーマは、VertexLabel – ID、name、Time-To-Live(TTL)を格納する。
Edge
Elementを拡張し、内向き頂点と外向き頂点のほかにプロパティの集合とエッジ・タイプを保持する。DSE Graphスキーマは、EdgeLabel – ID、name、TTL、multiplicity(multi、simple)、unidirected、visible、sort-keyを格納する。
Property
値と関連付けられた文字列キー。DSE Graphスキーマは、PropertyKey – ID、name、TTL、datatype、cardinality(single、list)を格納する。
VertexProperty
値およびメタデータ・プロパティの集合に関連付けられた文字列キー(頂点のみ)。
TinkerPopプロセスAPIの主なコンポーネントは、次のとおりです。
TraversalSource
特定のグラフ、ドメイン固有言語(DSL)、および実行エンジン探索のジェネレーター。
Traversal<S,E>
S型のオブジェクトをE型のオブジェクトに変換する機能的なデータ・フロー・プロセス。
GraphTraversal
生のグラフのセマンティクス(頂点、エッジなど)指向の探索ドメイン固有言語(DSL)。
GraphComputer
グラフを並行処理し、複数マシンのクラスターに分散させる可能性があるシステム。
VertexProgram
メッセージを渡して行う相互通信で、すべての頂点で論理的に同じ方法で実行されるコード。
MapReduce
グラフ内のすべての頂点を同時に分析し、1つの結果を出す計算。

TinkerPopの重要な特長は、グラフ探索言語兼仮想マシンであるGremlinです。TinkerPopとGremlinのグラフ・データベースに対する関係は、JDBCとSQLのリレーショナル・データベースに対する関係と同じです。Gremlinバリアントは多くの言語、Java、Groovy、Pythonなど。