アウトライナーと呼ばれるソフトウェアは、テキストベースのダイナミック・メディア [1] としての可能性をもっている [2]。テキストデータ限定だが、ひとつのファイル上で自分の望む簡易ソフトウェアをデザインし、それを使ったデータの加工や、そのアウトプットを新しいデータとして管理することもできる。
私は、このダイナミックなデータベースがアウトライナー上で実現できる理由として、1) アウトライナーがテキストデータのツリー構造を自由に編集する機能を備えていることと、2) そのツリー構造がデータベースやさまざまなソフトウェアの機能を記述するのに適していることの2つが重要だと考えている。
この記事では、まず1について説明しよう。
ツリー構造の編集を可能にする4つの機能
ツリー構造を編集するために有効な、核になる機能は以下の4つである。
このうち、機能1と2は、テキストデータでツリー構造を表現するために必須の機能であり、機能3と4は、できあがった樹の形を整えるときに重要な役割を担う機能である。これらの機能の要点は以下のようになる。
1. 項目の移動
1列の箇条書きになったテキストを考えてほしい (図1左)。アウトライナーは、この箇条書きの項目を単位として、テキストを自由に並べ替えることができる (図1右)。項目に入れる文字データの形に制約はなく、文字、文節、センテンス、複数のセンテンス、数字.. なんでも良い。また、複数項目を選択し、まとめて移動することもできる。このとき、項目の下位に含まれる階層構造 (以下の機能2を参照) も、その構造を保ったまま移動できる。
2. インデントによる階層化
ある項目を右へインデントすると、そのひとつ上の項目に属する下位項目になる (図2左)。インデントを繰返すことで、3階層やそれ以上の階層構造をつくることも可能である。そしてこの階層構造は、ツリー構造とみなすことができる (図2右)。階層化は、項目を、幹や太枝、細枝と太さを変える作業である。これによって、たとえば、太枝 b は細枝 c と d を支え、幹 a は、太枝 b と e を支えているといった項目どうしの上下関係や従属関係など、並列ではない関係を記述できる。
この2つによって、私たちはアウトライナーのファイル上で、テキスト情報のツリー構造を自由に表現できるのである (図3)。
3. 折りたたみ
ある項目に含まれる下位の項目すべてを隠す機能で、その下位にある情報は見えないだけで保存されている (図4)。幹から細枝までのすべてを一度に見渡すのが難しいような複雑な樹を整形するとき、この機能が役立つ。たとえば、太枝 b と e で折りたたんでそこからのびた細枝を隠してしまえば、太枝の配置が適当か確認しやすくなる。
4. ズーム
これは、ある項目に含まれる項目だけを表示する機能で、折りたたみと逆に、ある項目と同じ階層にある他の項目や、より上位の項目を隠す (図5)。たとえば、ある太枝だけに注目してそこからのびる細枝の配置や形を整えたいとき、他の太枝は見えない方がよい。これも、複雑な樹の形を整えるときに有効な機能である。フォーカスと呼ばれることも多い。
アウトライナーの「コア機能」
以上4つの機能によって、あつかっているテキスト情報のツリー構造を視覚化し、直感的かつ手軽に編集することが可能になる。そこでここでは、これら4つをアウトライナーのコア機能と呼ぶことにする。
コア機能によってツリー構造を視覚化し自然に操作できるということは、この機能によって私たちの暮らすこの世界を自由に記述し、その構造を理解する作業が可能になることを意味する。世界をつくる様々なシステムが、ツリー構造をとることが多いからだ。そして、そのシステムには、天文や生物にみられる狭義の自然現象だけでなく、人の思考プロセスや人がつくりだした道具、たとえばコンピュータの OS やソフトウェアも含まれるのである。