#daiizメモ

Scrapboxに夢中

PlantUMLを使ってみた

いま大学で、多めのRDFデータを扱った実験をしている。このサンプルRDFデータは手作りで手入力なので、ひょっとしたら関係を間違えていたりtypoしているかもしれない。資料を予習してみると今後さらに増えるようだ。

なんとか確認できる環境にしたいと思っていたところ、ぴったりな記事に出会い「PlantUML」という良さそうなツールを知った。

PlantUMLは,DSLを書いてコンパイルすると絵が出るやつ.UML書ける.

PlantUML 練習 - hitode909の日記

ということで、図が描けそうだったので、もう寝ようかと思っていたところだったが、早速ためしてみることにした。とりあえず図を出力して、要素同士がへんてこな繋がり方をしていないかを確認することを目的とした。

いま扱っているデータはCSVで、一行あたり一件のRDFを表していて

Perl, rdfs:subClassOf, プログラミング言語

みたいなフォーマットになっている。まずは、これを

プログラミング言語 <|-- Perl

のような形に変換するプログラムをNode.jsで書いた。 あとはplantumlを実行するだけでよい。とてもすばやく、約170個のデータをツリー風に表示されたPNG画像を入手できた。案の定、ひとつだけどこにも繋がらずに宙に浮いていたノードがあって、調べてみると手入力したデータのtypoだった。直ちに修正した。データを可視化できることは素晴らしい。

いま「plantumlを実行するだけでよい」と書いたが、plantumlが禁止している文字が結構多くあるらしくて、これらを置換する作業が少し大変だった。 エラーメッセージが以下のようなPNG画像で出力されるのが面白かった。

f:id:daiiz:20151012232805p:plain
「&はダメ」と怒られている様子


訂正追記:
コメントをいただき、解決したので追記します。上のようにエラーになる場合は

ほげ <|-- "ほげ&ほげ"

のようにクオートすると問題なくいけました。(追記、ここまで)

Node.jsで書いたプログラム、ただ書いただけでキレイではないですが、Gistに置いておきました。

generate-plantuml.js · GitHub