2011-07-29 9 views
9

私はグラフで最もよく表現されるデータセットを持っています。これは、有向枝(互いに依存関係があり、循環依存性を持たないことが保証されている)を持つ6つまたは7つの異なる「タイプ」のノードで構成されています。基本的にデータセットは階層化された構成のテンプレートであり、ユーザーは必要な異なるレイヤーから構成のビットとピースを選択し、依存ビットを自動的に持ち込む必要があります。Javascript向け非循環グラフライブラリ? (グラフの視覚化は必要ありません)

一般的なUIの必要性は、マルチ選択ボックス(各ノードタイプごとに1つのボックス)からアイテムを選択または選択解除し、他のボックスの「依存オン」アイテムを選択または選択解除することです必要に応じて。私はサーバーからデータセットをプルダウンし、ユーザーが希望するビットを選択して(応答性のためにクライアントサイドのjavascriptで依存処理が行われている状態で)、そして終了時に結果を返すようにする必要があります。

データセットは、実際にグラフとして表示されるほど大きく、複雑で、ユーザーにとって圧倒的に混乱します。基本的なグラフトラバーサル操作だけが必要です。なぜなら、依存関係からセレクションをカスケードすることだけが必要なためです。 (例えば、ユーザがノードを選択しないと、それに依存している他の選択されたノードがなければ、ノードの依存関係が選択されなくなるという結果になります。開始ノードからの有向エッジに続く単純な深度または幅広い最初の探索で、影響を受けるすべてのノードを訪問するだけで十分である。私はどちらかの方向にボーナスをエッジに従うことができます。 (そうでない場合は、エッジ反転グラフを簡単に生成して必要なときに使用することができます)

私はここで掘り下げていくつかのjavascriptグラフビジュアライゼーションライブラリへの参照を見つけましたが、グラフ "を"チャート "として使用しています。 Raphael、protovis、flare、D3、jsVis、Dracula、prefuseの順に私の掘り出し物が私をこのリストに導いてくれました。このリストからjsVisのように見えるのですが、Draculaには視覚化側を無視した場合に必要なグラフ構造があるかもしれませんが、その場合はドキュメントからわかりません。私はフラッシュの依存関係を持ち込むことができないので、いくつか他のものを除外しなければならない。残念ながら、私はこの数多くのライブラリを使ってプロトタイプを作成する時間がありません。 (ここでは、jsVisとdraculaをもっと掘り下げます。)

誰かがそのリストから何かを経験しており、そのグラフ部分が可視化部分とは独立して使用できると考えている人は、確かに私のニーズを満たすでしょう。私のニーズに合った他のライブラリがあればそれも素晴らしいでしょう。ライセンスについての最後の要件:ライブラリは非コピーレフトの方法で "無料"にする必要があります - 理想的にはApache v2.0、BSD、MITなどです。

+1

独自のソリューションを実装することになりましたか?もしそうなら、それはどこでも利用可能ですか? – steeveeet

答えて

7

私はそれを使用していませんが、data.jsをチェックしてみてください。これは、さまざまなデータ構造ユーティリティを持つMITライセンスライブラリです。特に、それはData.NodeData.Graphを含む:

A Data.Graph任意の複雑なオブジェクトグラフを表すために使用することができます。オブジェクト間の関係は、参照されるオブジェクトを指すリンクを介して表されます。 Data.Graphsはさまざまな方法でトラバースできます。

+0

ありがとう、私はこれを見て、今朝私は時間がかかったと私は本当に私が必要なことを行うかどうかはわからない。ドキュメント上では非常に軽いので、CouchDBとnode.jsを実行したいと思っています。私が本当に必要とするのは単純なツリートラバーサルなので、私は自分自身を転がすかもしれないと思いますが、data.jsを使用すると、私は戻ってこれを答えにします。 –

関連する問題