| 公開 | 2009-02-21 |
| 更新 | 2010-06-27 |
Moem は、覚え書きやアイデアメモを保存するためのメモ記録ツールです。(Microsoft Windows XP 以降で動作するローカルアプリケーション。データの保存場所は任意。)
思い付いたアイデアや言葉は、どこかに記録しておかないと消えてしまいます。そのようなテキストを、まずは「とりあえず保存しておく」ことが第一の目的です。
メモは、項目毎に「ノード」の形で追加します。一つのキーワード、箇条書きの一項目、あるいは一つの文章段落の単位で、一つのノードにします。
それぞれの項目には、作成した日時の情報が自動的に記録されます。(メモの日時情報を記録しておくことは重要です!)

ノードは「ページ」上の自由な位置に移動できます。上から下、左から右に流れる木構造の形で、アイデアや覚え書きを整理します。また、ノードの実体を重複することなく、複数のページに複写することもできます。思考を整理するためのツールとしても役立てるでしょう。

作成したページ・ノードは、素早く全文検索できます。大量のメモを、長期間に渡って保管、編集、そして検索・閲覧できることが、第二の目的です。
その他の主な特徴・機能は以下の通りです。
このページには次の章があります。
レビューして頂きました。(他薦。)
Moem は寄付歓迎のフリーウェアです。気に入って頂けた場合はカンパをお願いします。
本ソフトウェアの動作には Microsoft .NET Framework 2.0 SP2 が必要です。Windows XP 以前の環境の場合は次のサイトから導入してください。
※必ず Windows Update で最新のサービスパックを適用してください。
以下の問題を確認しています。次回以降の更新で改善できると思います。
今後、以下の機能の実装を予定しています。
要望などがあれば連絡先にてお伝えください。頂いた提案を必ず実現できるとの保証はありませんが、開発の参考になります。
FAQ です。
「もえむ」と読みます。
"memo" のアルファベットを並べ替えたものです。特に深い意味はありません!
広義には Yes、目的・用途によっては No です。
Moem は、あくまで「常駐型のメモツール」として開発しています。
ノードは「表題と本文」ではなく、全てのノードは、一つのキーワード、箇条書きの一項目、あるいは一つの文章段落です。
ただし、それが故に、長文原稿の編集には不向きだと思われます。論文や小説を執筆するためのツールと見なすには、多少の難があります。
また、完全なアウトラインツリーではなく、ノードは二次元の紙面上に「配置」する形を採用しています。この点でも「アウトライン」とは少し乖離があります。
Moem は、以下のオープンソース・コンポーネントを、それぞれのライセンスに基づいて利用・同梱しています。ありがとうございます。
具体的には……
Moem は、既存の「メモツール」とはちょっと違う、あまり見掛けない形の情報管理ツールです。
――いったい、どうしてこんな形をしているのか。
もちろん、形には意味と理由があります。現在の設定に至るまでには、様々な試行錯誤がありました。ここではその一端を紹介します。
ソフトウェア制作など、PC 上で何らかの創作活動をしていると、いわゆる「覚え書き」を書き留める(書き溜める)ためのツールが欲しくなります。ToDo、アイデアメモ、Tips、作業手順の記録、などなど。そのようなテキストデータは、どこにどうやって保存してゆけばよいのでしょうか。
たとえば、Microsoft Windows に標準搭載されている『メモ帳』で .txt ファイルを編集・管理することも、できなくはないでしょう。しかし『メモ帳』だけではデータ項目の整理や検索が大変です。

日本語圏の Windows オンラインソフトウェア界には、「アウトラインプロセッサー」と呼ばれるテキスト管理ツールの一大ジャンルがあります。
「表題」と「本文」で構成されるデータ項目を、木構造形式の「ノード」として管理するものが主流です。ユーザーインターフェースとしては、ウィンドウの左側にノードツリー、右側に表題と本文の編集欄、といった構成が一般的(※)でしょうか。

なるほど、これは便利そうです。少なくとも『メモ帳』よりは管理し易いことは間違いないでしょう。また、項目に「作成日時」や「最終更新日時」といった追加属性を持つものもあり、情報管理が強化されます。
しばらくは『kie』や『eMemoPad』などのアウトラインプロセッサーを利用していました。(ありがとうございます。)
※ツリーとノードが一体になった内在型(一体型)のアウトライナーも存在します。
ただ、この形の情報管理にも多少の疑問と不満が残ります。
私の場合、覚え書きは、短くまとめた文章、特に箇条書きで記すことが多く、漠然と「本文の内容もリスト形式として構造化したい」と考えるようになりました。
思いは募り、やがて“本文の内容も木構造である”アウトラインメモツールの試作に至りました。現在の Moem の前身です。

項目は「表題と本文」ではなく、全ての項目はノードになります。表題は「表題ノード」として表します。そしてもちろん、ノード毎に日時情報を持ちます。
これで不満が解消……すればよかったのですが、まだ満足しません。今度は「木構造」自体に対する不満です。
項目の数が増えるに従い、ノードを「どこに配置すべきか」という問題が生じるようになります。
木構造は「文章(思考)の”流れ”を表す」ためのデータ構造としては有用ですが、「情報を分類する」観点においては融通が利きません。木構造はノードの「パス」を一意に決定することを求めるからです。
「このノードはここ!」と即決できるのなら問題はありませんが、ときには「どの親ノードの下に入れるべきか……」と悩むノードもあります。
また、検索性を補う手段として「タグ付けによる分類」機能を追加してはみたものの、どうしても一覧性を欠くままでした。
問題を残したまま、試用が続きます。
そんなあるとき、他のジャンルのツール(ペイントツール)の設計に取り掛かった際に、そのツールで有効なあるアイデアを、テキスト管理ツールにも応用できることに気付きました。「投影」という概念です。
木構造の問題は、項目の「位置」が“固定されてしまう”ことにあります。全てのノードは、いずれか”一つの”親ノードの下に所属することになります。
しかし情報を管理する中で、「このノードAは、こちらのノードBの傍にも、向こうのCの傍にも置きたい」という場面が、しばしば現れます。かといって、ノードAを別の場所にコピー&ペーストすることは憚られます。情報管理において、情報項目の不用意な二重化(ダブり)は避けるべきです。
問題の根源は何か。――「項目が位置に縛られていること」なのか。では、位置に縛られないで管理するには、項目はどうあればよいのか。
「実体と表示の分離」が、その一つの解になります。
ノードは、その場所に存在するのではなく、どこか別の、画面には表示されない場所に存在するのだと考えます。画面上のノードは、その「ノードの実体」を“投影”する「影」です。
一つの実体について複数の投影を画面上に配置すれば、見掛け上は、一つの項目が複数個存在する(同じものが複数ある)ことになります。しかし項目の実体は依然として「一つ」のままであり、項目の編集は、それを投影する全てのノードに反映されます。
ノードが特定の場所に縛られなくなったことで、ノードはもはや木構造ではなく、複数の親ノードを持つ「グラフ構造」になることもできます。
これで木構造の不満は解消されました。「どこに配置すべきか」と悩むことは、もうありません。好きな位置に、好きな数だけ投影を作成すればよいのです。
投影の概念の導入により、情報管理の厳密性(「漏れなく、ダブりなく」)と一覧性の両方を満たすことができました。
あとは、ノードを二次元の紙面上に配置するようにしたり、「書き溜める」ツールとしての仕様を追加して、現在の Moem になります。
Moem の設計について、その思想の一端を書き残しておきます。
Moem は「装飾のないテキスト」を扱う「メモツール」です。図を描くためのツールではありません。「データ」と、その画面上の「表示」は、明確に分離・区別します。
メモの項目である「ノード」は「ページ」上の任意の位置に配置します。ただし、その位置座標の単位は「ピクセル」ではありません。
項目をピクセル単位で配置するユーザーインターフェースでは、項目の「位置データ」が画面の状態、特に「フォント」の設定に依存することになります。
文字の大きさはフォントによって異なります。フォントを変更すると、同じ内容のテキストであっても、その横幅と縦幅のピクセル数は変化します。ノードの配置をピクセル単位で行うと、フォントを変える度に配置が崩れてしまいます。(つまり、ノードの最適な配置が、テキストの内容やフォントに依存している。)
ノードの位置座標は、フォントなどの画面の設定には依存しない座標系であることが望ましいです。Moem では、ページに「論理グリッド」を設けることで、この問題を解決しています。(ノードのサイズを常に 1 x 1 と見なす座標系。)ノードのテキストに改行や折り返しがあるときは、以降のノードは自動的に物理的な位置を移動して表示されます。テキストの内容やフォントを変更しても、ノード間の論理的な距離は変化しません。
Moem は「装飾のないテキスト」を扱う「メモツール」です。『Microsoft Word』や『ワードパッド』で扱うような「リッチテキスト」には対応していませんし、今後も対応する予定はありません。作者の要求として、文字に「飾り付け」を行う機能を必要としていないためです。(フォントや色、太字や斜体の設定は、“不要”であるにとどまらず、“非常に邪魔なもの”と捉えています。)