Apache TinkerPopグラフ・コンピューティング・フレームワーク
Apache TinkerPopフレームワークについて説明します。
Apache TinkerPopはグラフの抽象化層で、さまざまなグラフ・データベースやグラフ・プロセッサーで機能します。Apache TinkerPopは2つの要素、構造APIとプロセスAPIで構成されます。
Apache TinkerPop構造APIの主なコンポーネントは次のとおりです。
- グラフ
- 一連の頂点とエッジを保持する。
- Vertex
- 一般クラスElementを拡張し、一連の内向きエッジと外向きエッジのほかにプロパティの集合と頂点タイプを保持する。
- Edge
- Elementを拡張し、内向き頂点と外向き頂点のほかにプロパティの集合とエッジ・タイプを保持する。
- プロパティ
- 値と関連付けられた文字列キー。
- 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、その他で使用できます。