私は、データベースに保存されている本当に巨大なネットワーク(3Mノードと13Mエッジ)を視覚化しようとしています。リアルタイムの対話性については、ユーザークエリに基づいてグラフの一部のみを表示し、オンデマンドでグラフを展開する予定です。たとえば、ユーザーがノードをクリックすると、その近傍が展開されます。 (これは このペーパー で「検索、コンテキストを表示、オンデマンドで展開」と呼ばれます)。
Gephi 、 D などを含むいくつかの視覚化ツールを調べました。これらは入力としてテキストファイルを受け取りますが、どのように接続できるかわかりません。データベースを作成し、ユーザーの操作に基づいてグラフを更新します。
リンクされた論文はそのようなシステムを実装しましたが、彼らが使用していたツールについては説明しませんでした。
上記の基準でこのようなデータを視覚化するにはどうすればよいですか?
いくつかの解決策がありますが、基本的にはすべてが同じアプローチを使用しています。
miro marchi が指摘したように、この目標を達成するためのいくつかの解決策があり、それらのいくつかは特定のデータソースにロックされ、他ははるかに自由ですが、コーディングスキルが必要になります。
ソースタイプの選択から始めます。データのタイプから、おそらくNeo4J、Titan、OrientDBのいずれかを選択します(何らかの柔軟性があり、よりエキゾチックなものが必要な場合)。それらはすべてJSON REST API、前者は独自のシステムと言語(Cypher)を使用し、他の2つはBlueprint/Rexsterシステムを使用します。Neo4JはBlueprintスタックもサポートしますCypher上のグレムリン。
他のソリューション、たとえば他のNoSQLまたはSQL dbについては、おそらく相対REST APIを使用して上のレイヤーをコーディングする必要がありますが、同様に機能します。あなたが持っているデータ。
これで、3番目のポイントのみが残り、ここでいくつかの選択肢があります。
Sigma.js これは、グラフの視覚化のためのフリーでオープンソースのツールです。 Linkuriousは、私が彼らの製品で知っている限り、フォーク版を使用しています。
Keylines これは、高度なスタイリング、分析、レイアウトを備えた商用のグラフ視覚化ツールであり、使用している場合はコピー/貼り付けのデモを提供します Neo4JまたはTitan 。無料ではありませんが、古いブラウザでもサポートしています-IE7以降.
VivaGraph これは、グラフ視覚化ツール用のもう1つの無料のオープンソースツールですが、SigmaJSと比較してコミュニティが小さくなっています。
D3.js これはデータの視覚化のファクトタムであり、これに基づいて基本的にあらゆる種類の視覚化を行うことができますが、学習曲線は非常に急です。
Gephi は別の無料のオープンソースデスクトップソリューションです。おそらく外部プラグインを使用する必要がありますが、ほとんどの形式(graphML、CSV、 Neo4J など.
Linkurious これは、データを検索/調査するための商用Neo4J固有の完全なツールです。
Neo4J web-admin console-基本的なものであっても、新しいバージョンで大幅に改善されています2.x.x
、D3.jsに基づく。
おそらく私が言及するのを忘れた他の解決策もありますが、上記の解決策は優れた多様性を提供するはずです。
上記のJSツールは、JSの制限により、一度に最大1500/2000ノードを視覚化できます。
より大きなものを視覚化する場合-拡張中に-Gephiなどのデスクトップソリューションをお勧めします。
私は Keylines devチームの一員です。