NLS
oN-Line System
NLS(oN-Line System)は、ダグラス・エンゲルバート率いる研究者チームが1960年代にスタンフォード研究所(SRI)内の オーグメンテイション研究センター (ARC) で設計・開発した革新的なマルチユーザー連携システム。NLSは世界で初めて、ハイパーテキストリンク、マウス、ラスタースキャン型ディスプレイ、関連性によって組織された情報、グラフィカルユーザインターフェース、プレゼンテーションソフトウェアなど様々なコンセプトを実用化した。ARPA、NASA、アメリカ空軍が資金提供した。
ダグラス・エンゲルバートは空軍の支援で研究していた1959年から1960年にかけてそのコンセプトを発展させ、1962年にフレームワークを発表した。NLSという奇妙な頭字語(本来なら OLS)は、システム発展の経緯の産物である。最初に使用したコンピュータは1人のユーザーしかサポートできなかった。1963年に使用した CDC 160A の能力は非常に貧弱だった。
場当たり的暫定措置として、チームはオフラインユーザーのためのシステムを開発した。これは、オンラインのワークステーションを使えないとき、コマンド列を紙テープにパンチすることで文書の編集ができるようにしたものである。ここでいうオンライン・オフラインという語は通信回線がつながっているという今日的な意味とは異なり、計算機にリアルタイムに直接的にデータ入力することをオンライン、別の装置でパンチカードなどのメディアに書き込んでおいてから後で計算機に入力させようとする事をオフラインと呼んでいる。オフライン作業では視覚的フィードバックなしで作業しなければならないため、非常に使いにくいことは明白であった。不運なユーザーは頭の中でコマンドの効果を確認しなければならなかった。ある意味でUNIXのテキストエディタ ed に似ているとも言える。一方で、1960年代のオフィスの慣習にはマッチしていたとも言え、管理職は原稿に赤を入れて秘書に渡していた。
テープが完成すると、ユーザーは編集対象の文書の収められた紙テープと新たなコマンド列の収められた紙テープをコンピュータにセットし、そのコマンド列が適用された新たな文書の最新版の紙テープを得る。このような「オフライン」のワークフローと対話型の「オンライン」の編集機能が同時にサポートされていた。"off-line" も "on-line" も同じ O で始まるため、オフラインのシステムを FLTS (Off-Line Text System)、オンラインのシステムを NLTS (On-Line Text System) と呼んだ。テキスト編集以外の機能も備えるようになると "T" が省かれ、対話型バージョンは NLS と呼ばれるようになった。
心理学の素養もあったロバート・テイラーはNASAから資金を提供。その後テイラーがARPAのIPTOInformation Processing Techniques Officeに移ると、さらに積極的にこのプロジェクトに資金提供しはじめた。1965年、NLSの開発は CDC 3000 上に移行。1966年、ジェフ・ルリフソン がSRIに参加し、1973年までNLSの主任プログラマを務めた。
1968年、NLSの開発は Scientific Data Systems 社のタイムシェアリング型メインフレーム SDS 940 へと移行した。約96MBのディスク装置を備えていた。最大16台のワークステーションを接続可能であり、各ワークステーションにはラスタースキャン型ディスプレイ、3ボタン式マウス、Chord Keyset と呼ばれる入力機器が備わっている。キーボードから入力されたテキストはあるサブシステムを経由して2つあるディスプレイ・コントローラとディスプレイ・ジェネレータの一方にバスを経由して送られる。入力テキストはその後 5 インチ(127 mm)のブラウン管(CRT)に送られる。CRTには特殊なカバーがかかっていて、表示されたビデオ画像は高解像度のモノクロTVカメラで撮影される。TVカメラの情報は有線カメラ制御とパッチパネルに送られ、最終的に各ワークステーションのモニターに表示される。
NLSの開発は1968年後半になんとか完了し、1968年12月9日、サンフランシスコで技術者らの前で実演が行われた。そのデモは最先端のビデオ技術を使い、従来になかった手法でNLSの新規性を実演してみせたことから、「すべてのデモの母(The Mother of All Demos)」と呼ばれている。ステージ上のエンゲルバートの端末はエイムズ研究センターから借りた巨大プロジェクタと接続され、NLS は電話回線でメンローパークのARCにある SDS 940 と接続されていた。ダグラス・エンゲルバートはヘッドセットをつけて聴衆に説明し、プレゼンテーション用の22フィートのプロジェクション・スクリーンにはエンゲルバートの手元の動きが大写しされたので、観衆はマウスの使い方などがよくわかり、メンローパークにいたチームメンバーもプレゼンテーションに参加した。
NLS の最も革新的な機能の1つである Journal は、1970年に David Evans が彼の博士論文の一環で開発したものである。Journal は原始的なハイパーテキストベースのグループウェアであり、その後の共同型文書作成サポートソフトウェア(たとえば、ウィキ)の先駆けと思われる。ARC ではこれを議論やコンセプトを洗練させることに使用したが、これも今日のウィキなどと全く同じである。Journal は初期のネットワークインフォメーションセンターでの文書保管や初期の電子メールアーカイブに使われていた。Journal に関する文書のほとんどは紙の形で保存されており、スタンフォード大学にある。それらは1970年から1976年の商用化開始までの ARC に関する貴重な記録でもある。他にコンピュータ歴史博物館にも記録が保管されている。
NLSはTREE-METAというパーサジェネレータを使ったいくつかのドメイン固有言語を使って実装された。最終的に使われた実装言語はL10と呼ばれている。
1970年、NLSはPDP-10(BBNがTENEXが動作するよう改造したバージョン)に移植された。1971年中ごろ、TENEX版NLSがネットワークインフォメーションセンター (NIC) で実際に使われるようになったが、同時に利用できるユーザー数は少なかった。専用ワークステーション以外に、当時一般的だった安価なタイプライター型の端末からもアクセス可能だった。1974年までにNICは別プロジェクトとして独立し、自前のコンピュータを使用するようになった。
NLSのあらゆる機能は、エンゲルバートの「集団による知的作業の強化」という目標に沿ったもので、単にシステムを使いやすくするのではなく、ユーザーの知的作業を強化することに集中していた。従って以下に示す機能群は、エンゲルバートが後に WYSIAYG (What You See Is All You Get) パラダイムと称したものというよりも、熟練したユーザーが駆使できる可能性を持った完全対話型パラダイムをサポートするものだった。
ファイル内オブジェクトアドレッシング、リンク
フォーマット・ディレクティブ
分散クライアント・サーバ・アーキテクチャ
汎用ユーザインタフェースのためのフロントエンド・モジュール
互換「コマンドメタ言語」
NLS、そして ARC の転落の原因として、そのプログラムの習熟が困難であったことが挙げられる。NLS は学習しやすさを設計のポイントとしておらず、プログラムモードを多用し、厳密な階層構造に依存し、ポイント・アンド・クリックといった簡単なインターフェイスを持たず、役に立つことをするには暗号のようなコードを覚える必要があった。キーボードの代替として Chord Typeset を使う場合、5ビットの二進数コードを覚える必要があった。さらに1969年、SRI にARPANETが接続され、分散コンピュータネットワークの時代となり、少人数向けのタイムシェアリングシステムは時代遅れとなりつつあった。実際、タイムシェアリングは急速に個人用のミニコンピュータ(さらにはパーソナルコンピュータ)やワークステーションに代替されていった。NLS を他のハードウェアに移植する作業も行われ、PDP-10 などへの移植に成功したものの、NLS を SRI 以外に広めようという動きは起きなかった。
エンゲルバートの「ブートストラッピング」活動の方向性に不満を感じた SRI の研究者らの多くはパロアルト研究所に移り、マウスの考え方をもたらした。1977年、SRI は NLS を Tymshare 社に売却し、NLS は Augment と名称が変更された。Tymshare 社はその後それをマクドネル・ダグラス社に1980年代初めに売却した。NDMA Inc. が販売した HyPerform というソフトウェアは NLS/Augment の後継品である。
「完全対話型」というパラダイムの一部は、他のシステムに継承された。例えば、Mozilla Firefox のアドオンである Hyperwords がある。Hyperwords はエンゲルバートのウェブドキュメンタリー Invisible Revolution に触発されて考案された。そのプロジェクトは、ウェブ上のリンクのない単語とも相互作用できることを目的としている。Hyperwords は単純な階層型メニューを通して機能する。エンゲルバートはこのプロジェクトの諮問委員を務めていた。
2005年から2008年にかけて、コンピュータ歴史博物館のボランティアチームがNLSの復元を試みた。