ハイパーテキストを実現する
リンクファイルシステムである『PileLink』は、テキストファイルをベースに、[[ ]]という書式でファイルやフォルダにリンクしたハイパーテキストシステムです。
[[ ]]という書式でリンクするのは、Wikiからのアイデアです。ただし、『PileLink』とWikiでは、だいぶ方向性が異なります。この違いを表にしてみました。
| PileLink | Wiki(WikiWikiWeb) |
特徴 | ハイパーリンク機能つきテキストエディタ | 平易な書式でhtmlを作成する環境 |
アプリケーション | 独自 | Webブラウザで動作 |
モード | モードレス | 編集モード/表示モード(ブラウザ) |
ウィンドウ | マルチウィンドウ | シングルウィンドウ |
レイアウト | 自由 | Webブラウザに拘束 |
ユーザー | シングルユーザー | マルチユーザー |
ネットワーク | あってもよい | 前提 |
ブラウザですばやく編集
わたしには、Wikiは、ブラウザ上で平易にWebページを作成するシステムに見えます。
Wikiではブラウザで編集するために、編集ウィンドウはブラウザの枠の中に編集枠を表示する二重構造となっていて、しかも表示はHTMLで行い、編集はWiki書式で行うために、表示がモーダルで、編集モードをもち、表示と編集で見た目がまったく異なります。
WikiWikiWebのWikiとは「素早い」とか「手軽な」という意味ですが、かならずモードをもっていて、編集ボタンを押して編集するという使い方は、わたしにはとうてい手軽とは思えません。
ネットワークでマルチユーザー
この点について、Wikiのユーザーの方と議論したことがあります。そもそもマルチユーザーでネットワークを前提としたWikiでは、ある程度編集者と閲覧者は(任意に交換可能であるとしても)分けられていて、閲覧しているか編集しているかを明示的に知ることは重要だと考えているようです。
したがって、モーダルであることのほうがむしろ重要である、と考えているらしいとわたしは受けとめました。
ブラウザを使用することも、逆に、ブラウザだけで実現できる点が重要であり、ハイパーテキスト編集のために、特別なアプリケーションを用意する必要がないところを手軽と考えるようです。
なるほどこれは、どちらがどうということはなく、ネットワークを前提としているかしていないか、マルチユーザーかシングルユーザーか、ブラウザかアプリケーションか、それぞれによってデザインが変わってくるということなのだろうと思います。
ローカルでモードレス
いっぽうでわたしがめざしていたのは、とても手軽に使えるローカルのハイパーリンクエディタであり、ユーザーは基本的に自分自身ですからモードをもつ必要はなく、つねに編集可能で追記できることが重要でした。
Wikiでは、しばしば履歴を蓄積するヒストリー機能をもちますが、全編集履歴を参照できるのであれば、閲覧者が誤って編集してしまうことをおそれてモーダルにする必然性は乏しいのではないか、むしろ、手軽に編集できることを重要と考えるのであれば、モードをもたないほうがよいのではないか、とも感じます。
以上のようなことから、『PileLink』はローカルエディタであり、モードをもたず、見た目と編集状態は一致しているシステムとなっています。
テキストかHTMLか
もうひとつ重要なことは、データの形式です。
リンクを実現するために、WikiはHTMLでデータを保持しています。編集時に、Wiki書式に変更しているわけです。
『PileLink』は、そもそもほとんど平文のテキストを扱うことを前提としています。リンクに[[ ]]を使うだけで、それ以外のタグは皆無です。
それは、わたしはHTMLやXMLは、人間が見るためのファイル形式ではない、と考えているためです。同時に、テキストであり、特別なバイナリファイルを使わなかった理由も、容易に見れることを重視したためです。
『PileLink』はリンクを扱うことができますが、それ以外の基本的な機能はテキストファイルそのものです。リンクの辞書は『PileLink』じたいで実現していますが、テキスト編集については特別なことはしていないため、他のテキストエディタを使って編集することもできます。リンクを開く必要がないのであれば、リンクの作成も他のテキストエディタでオーケーです。
そもそもわたしはデータは、アプリケーションを固定するべきでないと考えています。
逆に、アプリケーションに依存したデータを作るべきでないとも思います。アプリケーションの寿命は、驚くほど短く、人生を視野に入れた場合には、ほとんど選択の余地はないからです。
『PileLink』のリンク機能
リンクを実現する辞書は、以下のように設定しました。
- [[*.cs]](C#のソース)なら、プロジェクトファイルを開く
- [[★2010年08月12日(木).txt]]なら日記を開く
- [[2010/08/12]]ならフォルダを開く
- [[人名]]ならその人のデータベースを開く
ここまで辞書を作ってきて、ふと、もし文字列を[[ ]]でくくらなくてもわけることができるのであれば、わざわざ[[ ]]でくくる必要などなく、ハイパーテキストを実現できるのではないか、と考え始めました。
*.csという文字列が、C#のソースを示すことは明らかですし、http://~~~.htmlがリンクであることは明らかです。明らかなことを人間がわざわざ[[ ]]でくくって示す必要はありません。『PileLink』は、そもそもほとんど平文のテキストを扱うことを前提としているといいましたが、それならばリンクに[[ ]]を使わなくても、平文でハイパーリンクしてしまうことも考えられます。
辞書の充実
もっとも、そのためにはそれなりの辞書が必要で、「テキスト」と書いたこの文字列が、なにを意味しているのかを解釈する必要があります。それを解釈する辞書を作るのは、一朝一夕にはできず、それなりに時間がかかると考えられますし、[[ ]]でくくることは、不自然ではありますが習慣化しにくいほど特別でもないことを考え合わせれば、当面[[ ]]を使用しつつ、辞書の整備を待って完全な平文に移行することを視野に入れて運用する、というのが妥当と考えます。
テキストエディタとしての『FancyNote』も、もうすこし充実させる必要があり、当面しばらくは運用してみて考えることにしたいと思います。
なお、『PileLink』の運用開始にあたっては、[[ ]]形式のデータ作成において、ささのたかよしさんにご協力をいただきました。ささのさんがいなかったら、『PileLink』はまだ影もかたちもなかったと思います。心から感謝します。