ML上の込み入った話題を解析するための補助ツールをAppleScriptで作成

海外のMLで、たま〜に1つのトピック内で集中的に議論が進む場合がある。自分が見たのはAppleScript Studio MLとAppleScript Users MLにおける議論の(久しぶりの)爆発だ。

コメントしたいのはやまやまだが、普段ののんびりしたスピードとは異なり、ものすごく短時間でコメントの応酬が行われる。しかも、いつもののほほんとした内容ではなく、けっこーシビアで本質的な議論が行われることがある。正月休みの間にそんな現象に遭遇したものの、ほとんど出かけていて不在であった(自分と奥方様の実家に新年の挨拶をしにでかけていたりした)。

ただ、自宅にいる間に遭遇したとしても、意見を述べるどころか……メールの流量の前に圧倒されてしまい、どのコメントがどうつながっているのかを分析するところまでたどり着かない。おまけに、ふだん仕事中にそんな時間のかかるスレッド解析なんかできないし、家に帰ってきてもちょっと難しい相談だ。

かくして、かようなコメント爆発時には完全に傍観者になってしまうのが常である。ただ、あとから「議論の状況だけは分析しておきたい」と考えた。こういう作業にうってつけなのがマインドマップのソフトウェアだ。それも、AppleScriptからコントロールできる(スクリプタブルな)「MindJet MindManager」にかぎる(ほかは全部ダメ)。

コメントの相互関係をツリー化するのは……全自動で行うのは少々難しいが、半自動ぐらいのレベルなら割と難しくはない。ツールを作るのに時間をかけたくなかったので、半自動プランを選んだ。

MindJet MindManager上のドキュメントに対して、新しい子ノードを作成し、Mail.appで選択中のメッセージの内容を新ノードに反映させるというものだ。Mail.app上でメッセージを選択して、ScriptMenuから本スクリプトを実行すると、MindJet MindManager上にSubjectなりSenderを反映させるのだ。

効果てきめん! わずかな手間で、長ったらしいスレッド内のコメント参照関係を図示することができた。話の流れも容易に掴むことができるようになった。さらに、じーーっとその内容を見ていたら、自動スレッド解析も簡単にできそうな気がしてきた。発言頻度に基づいて色分けするとか、そういう機能もつけると分かりやすい。完成すれば、もんのすごく有用なツールになるにちがいない。ただ、これもあまりに戦略的な兵器なので、外部非公開のツールになりそうである(逆に、公開できるものの方が少ない)。

ただ……どうせ本格的に作るならLeopard上で、ということになるだろう。Tiger上のMail.appがバグ持ちで、メールメッセージから本文を取得しようとしたときに、そのメッセージがリッチテキスト形式だと本文の一部しか取得できないという不具合があるためだ。Leopard上のMail.appでは修正されているのだが、Tiger上では修正されていない。この先もTiger上では修正されないだろう。

また、Mindjet MindManagerの問題も見つかった。いま使っているのはバージョン6だが、これはノードに対してメモをAppleScript側から作成できない。MindJet MindManager書類上ではメール本文をメモとして添付しておいたが、そのへんはいまのところ手作業だ。バージョン7なら自動処理を実現できる機能であることが分かっているのだが、まだアップグレードしていない。

また、動きのおかしいところが少々ある(ASから制御を試みても、Mail.appがSelectionを掴んで離さないことがある、など)。

Copyright By Piyomaru Software. All Rights Reserved