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

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

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

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

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