はじめに
開発部の tasaki です。 依存関係 (dependency) という言葉は「クラスの依存関係」「ライブラリの依存関係」「命令の依存関係」「タスクの依存関係」などなど、コンピュータを扱う上では分野を問わず頻出する用語です。 依存関係はグラフ構造 (dependency graph) として表すことができ、このデータをグラフデータベースである Neo4j に入力しておくことで効率よく関係性を検索できるようになります。
今回は例として jdeps と簡単な Python スクリプトを使って Java のパッケージの依存関係を Neo4j に登録し、クエリ言語である Cypher を用いて依存関係を解析してみます。
- はじめに
- 動作確認環境
- Neo4j について
- 概要
- Neo4j のインストール
- Cypher の基本的な使い方
- Neo4j Python Driver の使い方
- 依存関係を解析する
- 実行例
- 指定したパッケージが直接依存しているパッケージの表示
- 指定したパッケージが間接的に依存しているパッケージの表示
- 指定したパッケージに直接依存しているパッケージの表示
- 指定したパッケージに間接的に依存しているパッケージの表示
- count 集計関数による件数の取得
- WHERE による複雑な検索
- 指定パッケージから指定パッケージへの依存の最短経路の表示
- クラスタリング (Neo4j Graph Algorithms)
- おわりに
- 採用情報