Moem

http://www.sunny-grove.net/

より高度に使う・投影の概念

 ここでは、より高度な使い方を紹介しています。

投影の概念

 Moem の真価は「投影」の概念を導入していることにあります。

 Moem では、一つの「リポジトリー」に複数の「ページ」を格納し、それぞれのページには複数の「ノード」を配置して、テキストデータの一元管理を行います。

 大量のメモ項目を扱っていると、「このノードはどこに置こうか」とか「どのページに入れるべきか」と迷うことがあります。Moem では「投影」によるノードの「複製」で、このような悩みを解決します。

項目の実体とノード

 ページ上に配置しているノードは、実は、それ自体はメモ項目の「実体」ではありません。全てのノードは、画面には表示されない別の場所に保管されている「項目の実体」を“投影”した「影」です。項目の実体を直接配置するのではなく、その投影体を作ることで、「情報が重複しない複製」を実現しています。

――意味がよく分からない? 以下で具体的に見てゆきましょう。

【1】ページを新規作成して、新しいノードを作成します。内容のテキストは "text" とします。仮にこのノードをAとします。

【2】Aを選択して、右クリックで表示されるコンテキストメニューから「複製」を選びます。すると、Aと同じテキストを持つノードBが“複製”され、Aの近くに配置されます。

【3】次に、ノードAのテキストを適当に編集します。すると、その編集は複製されたノードBの方にも反映され、両者のテキストは同期します。また同様に、Bの編集も、やはりAに反映されます。

 なぜでしょう。“複製”したはずなのに、これでは“同一のものが二つある”ことになりませんか。

――その通りです。

 この「複製」操作は、テキストをコピー&ペーストするものではありません。複製元の項目を投影するノードを、新たに作成、配置する操作です。

 画面に表示されているノード、それ自体は項目の本体ではなく、あくまで投影体に過ぎません。ただし、そのノードに対する編集操作は、ノードを経由して項目の本体に作用します。本体が変化すれば、当然、それを投影する全てのノードの表示も変化します。それぞれ別個のノードであっても、同じものを投影していれば同じ表示になります。見掛け上では“同一のものが複数個存在する”ことになるのです。

 投影の目的は、「情報の重複(ダブり)を回避しつつ、『情報は重複すべきでない』ルールによって縛られる、項目の配置や分類の不自由を解消すること」です。

 ノードは、どこか一所に固定されるものではなくなりました。もはや「どこに置こうか」という悩みは存在しません。どこにでも、好きなだけ投影を作って置いてください。いくつ複製があっても、それらは“一個”です。

追記:「情報は重複すべきでない」について詳しく。

 一元化されたデータ管理において、情報の無駄な重複、いわゆる「ダブり」は避けるべきです。Aという項目は、それが唯一のAであるべきで、全く同じ内容の項目A’が別の場所にも点在しているようなデータベースには保守性がありません。いずれ管理できなくなって破綻します。(たとえば、Aの内容を更新してもA’は古いまま。本当に両者が「同一」ならば、更新も二重化しなければならない。)

 ただ、このルールは、たとえば「二次元空間に項目を配置する」ような情報管理のインターフェースにおいては、項目を「位置」という一つの属性で束縛することになります。項目の位置は、他の項目との距離や関連性によって決まりますが、ときには、その配置が難しい場合があります。

「Bの近くにAを置きたいが、互いの距離は離れている。両者とも、それぞれの現在位置で他の項目との繋がりを持っているため、安易に移動できない」。こんなときはどうするのか。一覧性と情報管理の狭間で迷うことになります。考えるのは諦めて、AをBの傍にコピー&ペーストしてしまう?

 Moem では、項目の実体と表示を分離することで、この問題を解決しています。一つの項目は複数の投影を持ちます。躊躇することなく複製、つまり新たな投影を追加して、保守性を損なうことなく一覧性を得ることができます。


Copyright © 2009-2010 Toru TAKAGI. All rights reserved.