Daily Archive for May 25th, 2008

Rubigraph

一行でサマリ

Rubigraph という、Ubigraph のRubyラッパを書きました。

Ubigraphとは

Ubigraph というグラフ生成ツールを最近見つけました。 Graphvizが静的なグラフ生成をしてくれるのに対して、Ubigraphは動的にノードやエッジを追加/削除/属性変更できるのがミソです。これがたのしい。 どれくらい楽しいかについては、デモを見ていただければと思います。

クライアントサーバ型であり、サーバのコードは非公開だけれどXML-RPCのAPIが用意されているので簡単にクライアントがつくれます。なので、クライアント側の言語は問わないと謳ってるわけですね。サーバのバイナリはMacとLinuxが用意されてます。

Rubigraphとは

ですが、いちいちAPIリファレンス見ながらXML-RPCを書いてられない。 なので、簡単なクラスをつくってラップしたものをRubigraphとして公開します。

インストール

Rubyforgeにプロジェクトをつくっておきました。 gem install rubigraph としてインストールできます。

コード

どう書けるようになるのか

require 'rubigraph'
 
Rubigraph.init        # XML-RPCクライアントの初期化などする
 
v1  = Vertex.new
v2  = Vertex.new
e12 = Edge.new(v1, v2)
 
v1.color  = '#003366'
v2.shape  = 'sphere'
e12.label = 'edge between 1 and 2'

かんたんですね!

まとめ

ダイナミックにグラフで可視化するのはたのしいものです。ぼくは関数コールトレーサにつかっていて、とても便利に感じています。 Ubigraph++。