nomuran's diary

野村直之のはてな日記(後継ブログ)です

マインドマップソフトFreeMindのファイルはXMLベースでした

はなれた場所にいる人にブレスト結果を伝え、共有するのに、たまに
Macマインドマップ作成ソフトFreeMindを使っています。

http://freemind.sourceforge.net/wiki/index.php/Main_Page

「自由な精神」みたいな良い意味のconnotationがある洒落のきいたネーミングですね。

しばらく前に、MacOS X10.4標準搭載でないEmacsの1つをインストールしたら、
FreeMindのデータファイルがこのEmacsに関連付けられてしまいました。
中身をみたらXMLのテキストファイルで、こんな感じです:





文字列はこわしておきましたが、XMLの構造は全ての属性名、属性値を含め、そのまま全部残しています。

開始タグ、終了タグを兼ねた にIDやリンク関係の定義、文字列、そして表示位置を属性として格納した非常にシンプルな構造です。
ID="_" がルート、というか真ん中の基本ノードでしょうね。
数字が微妙に変換されているようなので例からだけでは仕様を想像しきれませんが、MODIFIED, CREATEDでリンク関係が表現されているようです。作成日、更新日の情報なんかもエンコードされてるかな(だと嬉しいけど)。

ちょっと驚いたのが、位置情報。
POSITION="right"
としかない。

これじゃぁ、絵として見やすく美しくノードを配置したりしようがないですね。
ちょっとさぼりすぎではないでしょうか。でも商品じゃないし、かな。
試しに不明の文字列の属性を追記したけれど無視してくれたので上位互換とった拡張は容易ですね。

事前に考えまくってなかなか仕様を決めないよりは、このように、最初シンプルに生んで、まず作ってみる、というアプローチは時々見習っても良いなぁ、と思いました。


textのmime typeか、XMLを認識して自分のファイル扱いしちゃうEmacsはどうかと思うが、、そのおかげで、FreeMind文書ファイルの基本構造がわかりました。

ただ、どうも、左右にのびた線、枝分かれした線の数hあもっといっぱいあるのが少し腑に落ちません。
Text FileのEOF (End of File) がいくつかあって、その先に別の複合ノード(?)の情報が入っているような感じです。


ps 昨日の今日、というテーマの落差なので、そろそろカテゴリ分けをしたいのですが、自動処理の多いはてなダイアリーではどうやればいいのかな。
  帰宅したら調べてみようっと。。