はじめに
私は風呂に入るときに「新・電子立国」をよく読む。4巻と6巻しか持ってないけど。。
6巻にハイパーテキスト/ハイパーリンクの話のくだりがあって、その件についてちょっとググるとザナドウ・プロジェクトというのがあることを知って、少し調べてみることにした。
1945年のヴァネヴァー・ブッシュ氏の「As We May Think」から始まる「ハイパーテキスト」は、現在においてもまだ実現されたとは言い難いようである。
ヴァネヴァー・ブッシュの「As We May Think」
ハイパーテキストは、ヴァネヴァー・ブッシュ氏が1945年に発表した論文「As We May Think」にさかのぼる。
この文書は日本語訳が存在している。
考えてみるに As We May Think
(ブッシュ『as we may think』 - 山形浩生の「経済のトリセツ」)
要約してみた。
- 科学の進歩とともに、膨大な量の情報が日々蓄積されている。もはや個人では処理しきれないほどの量となっていて、すでに獲得されている英知が見過ごされてしまうことが発生している(例:メンデルの遺伝法則)。
- 有効に活用するには以下のことに取り組む必要がある
- 文書情報の圧縮(映像技術を使用した文書情報の縮小)と、圧縮処理の高速化
- 検索を容易にする手法の確立(MEMEXという仮想機械で説明)
- 文書情報間の紐づけ
- リレー・光素子活用により、検索を機械化し検索時間を短縮
リレー式計算機しかなかった当時(ENIACができたのは1946年)は文書情報をデータ化するという考えはもちろんなかった。文書を物理的に圧縮するしかなかった。文書を撮影しマイクロフィルム化することで物理的なスペースを縮小するのである。文書はデータ化されていることが当たり前な現在、マイクロフィルム自体も廃れてしまっているけど。。
文書情報の紐づけも物理的な方法(例えばカードに穴をあけて、その位置を読み取ることによって文書情報を特定するなど)によっている。
そういうわけでこの文書はハイパーテキストの概念そのものを謳っているのではない。この文書の着眼点(上記の部分)に感銘を受けた人たちが「ハイパーテキスト(ハイパーメディア)」を創造したのである。
コンピュータの計算から情報分類・検索への利用範囲の拡大
1946年にENIACができて以来、コンピュータは発展の一途をたどる。
それに伴い、コンピュータは単なる計算機から、情報分類・検索へと利用範囲を拡大していく。
文書がデータ化され、コンピュータに格納されるようになり、そのことによってコンピュータによる情報分類・検索手法の研究が進んだのである。
ハイパーテキストは1960年代に研究が進展したが、その進展に寄与したのがが「テッド・ネルソン」、「ダグラス・エンゲルパート」の2人である。
テッド・ネルソン
「ハイパーテキスト」なる言葉を生み出したのは、テッド・ネルソン氏である。彼は「As We May Think」の論文を偶然目にし感銘を受け、「ハイパーテキスト」の概念を生み出したのである。
テッド・ネルソン氏は成人後の人生をほぼ「ハイパーテキスト」の実現に費やしており、現在もなおその最中である。
テッド・ネルソンが考える「ハイパーテキスト」とは簡単に言うと、
- トランスクルージョン
- 版管理
ができる文書である。
トランスクルージョンは文書全体だけではなく、文書の部分的な参照もサポートしている。HTMLだと<blockquote>
などで囲み、引用元をリンクするようなものであるが、トランスクルージョンでは引用箇所に元文書自体を取り込む。またそこにリンクが貼られ、そのリンクは引用箇所を正確に示すことができる。HTMLの<a>
では、せいぜいアンカー、もしくはIDで位置を示すのみである。さらには引用時に引用元に対して著作権料を支払う機能(マイクロペイメント)も構想に入っていたそうだ。
ザナドゥプロジェクト
テッドネルソンは1960年に「ザナドゥ・プロジェクト」を開始し、「ハイパーテキスト文書管理システム」を構築しようとした。
しかしこの壮大な構想を実現するには、当時のコンピュータのリソースでは貧弱すぎた。また関連している文書のオーナー間の人的な協調が不可欠であったり、実装そのものの困難さ、資金の枯渇等の理由にプロジェクトは停滞し、そのうちWWWが登場して日の目を見る機会を失った。だが57年経過した現在もこのプロジェクトは継続中である。。
57年の間に成果物はいくつか公開されている。今のところ2016年ころからプロジェクトページで公開されている「xanaviewer3」が最新の成果物のようだ。
これはEDL(Edit Decision List)を入力すると、文書が構築され表示されるデモである。
1つ前の「OpenXanadu」では見ることしかできなかったが。
さらに以前の成果物である「XanaduSpace」はテッド・ネルソン氏お気に入りのようで、盛んにデモを行っていたようだ。
UIは構想開始時からほぼ一貫しているようだね。
UIの特徴を列挙すると
- 文書中の用語(リンク)や引用(トランスクルージョン)が他の文献からのものであることが視覚的に把握できる
- さらにはリンク・トランスクルージョンしている元文書を同時に表示でき、容易にたどることができる
である。
XANADOCS
XANADOCSはテッド・ネルソン氏の構想を実現するための文書フォーマットである。が、これもまた未完成のようだ。 XANADOCSは以下のファイル群で構成される。
- 文書(テキスト)ファイル
- EDL(Edit Decision List) ファイル
- XANALINKSファイル
HTMLでは文書中にリンクなどの属性を指定するが、XANADOCSの場合は元文書には属性は入れず、別ファイルで指定するところが特徴的である。
EDL(Edit Decision List) ファイル
EDL(Edit Decision List) ファイルは、文書を構築するための定義ファイルである。
EDLファイルの例
span: http://hyperland.com/xuCambDemo/WelcXu-D1y,start=25,length=567
span: http://xanadu.com/xanadox/MoeJuste/sources/0-Moe.pscr.txt,start=7995,length=274
span: http://hyperland.com/xuCambDemo/WelcXu-D1y,start=592,length=37
span: http://xanadu.com/xanadox/MoeJuste/sources/2-DarwinDescentOfMan.txt,start=143522,length=213
span: http://hyperland.com/xuCambDemo/WelcXu-D1y,start=630,length=55
span: http://hyperland.com/xuCambDemo/J.Ineffable.txt,start=299,length=343
span: http://hyperland.com/xuCambDemo/WelcXu-D1y,start=687,length=51
span: http://hyperland.com/xuCambDemo/J.Ineffable.txt,start=2879,length=376
span: http://hyperland.com/xuCambDemo/WelcXu-D1y,start=740,length=115
xanalink: http://perma.pub/links/hide_new.xanalink.txt
xanalink: http://hyperland.com/xuCambDemo/rmq41-xanalink.txt
xanalink: http://hyperland.com/xuCambDemo/mexn86-xanalink.txt
xanalink: http://hyperland.com/xuCambDemo/jjq7941-xanalink.txt
span
span
はテキストファイルのURLと、テキスト中の開始位置・終了位置を示したもので、この内容に従ってテキストファイルが取り込まれる。つまりspan
を1行づつ取り込んで、文書を読み込み、指定位置からテキストを抜き出して展開することで文書を構成するのである。
xanalink
xanalink
はXANALINKS
ファイルのURLを記述する。システムはXANALINKS
ファイルを読み、文書間のリンクを構築する。
XANALINKSファイル
XANALINKS
ファイルは、リンクを構成するためのファイルである。中身はやはりテキストファイルである。
XANALINKS
ファイルの例:
rmq41-xanalink
# "to a historical piece"
type=typeless
facet=
span: http://hyperland.com/xuCambDemo/WelcXu-D1y,start=301,length=30
facet=
span: http://hyperland.com/xuCambDemo/McKinleyAssassination.txt,start=358,length=108
# =30=
type
リンクのタイプを指定するものであるが、どのようなものがあるかは文書化されていない。。
サンプル文書で見る限りではHideTransclusions
,typeless
の2種類があるようだ。HideTransclusions
はトランスクルージョンを隠すもので、メインとなる文書はトランスクルージョンする必要がないため、このtypeを指定するようである。
typeless
は通常のリンクのようである。
facet
facet
はリンクされる文書のspan
を記述する。facet
で書かれているspan
にしたがって文書間に相互にリンクが設定される。ポイントはリンクが貼られるのは片方向ではなく、複数の文書間で相互に貼られるいう点である。
版管理について
プロジェクトのページを見ても、版管理の仕様については具体的な記述はない。
結局のところ
ザナドウ・プロジェクトは現在もまだ仕様策定中であり、試行錯誤の状態はまだ続くようである。テッド・ネルソン氏が存命中に完成するかというと微妙な気がする。
また、プロジェクトページ自体がテッド・ネルソン氏が嫌うHTMLで構成されているのが、なんとも皮肉な感じでもある。