这是 Jakob Nielsen 的著作《Multimedia and Hypertext: The Internet and Beyond》的第 3 章,Morgan Kaufmann Publishers,1995 年。
Memex(1945)
Vannevar Bush (1890–1974) 通常被认为是超文本的“祖父”,因为他早在 1945 年就提出了一个我们现在将其描述为超文本系统。这个系统,Memex从来没有实施,但只是在布什的论文中进行了理论上的描述。
布什实际上在 1932 年和 1933 年对 Memex 提出了一些想法,并最终在 1939 年写了一篇关于它的草稿。由于各种原因,这份手稿直到 1945 年才出版,当时它出现在大西洋月刊,标题为《诚如我思》(As We May Think)。
布什将 Memex 描述为“一种机械化的私人文件和图书馆”,以及“个人存储其书籍、记录和通讯的一种设备,它是机械化的,因此可以以极快的速度和灵活性进行查阅。” Memex 会将这些信息存储在缩微胶片上,然后保存在用户的办公桌上。这张桌子打算有几个缩微胶片投影位置,以使用户能够比较不同的缩微胶片,其方式非常类似于四十多年后在个人电脑上流行的窗口。
Memex 有一个扫描仪,使用户能够输入新材料,它还允许用户手写边注和评论。但布什设想:
Memex 的大部分内容都是在缩微胶卷上购买的,可以随时插入。各种书籍、图片、时事期刊、报纸都因此获得并放置到位。商务信函走同样的路。
实际上,我们还没有达到超文本开发的状态,其中有大量的预处理信息可供出售,可以与用户现有的超文本结构集成。
Vannevar Bush 提出他的 Memex 提案的主要原因是他担心科学信息的爆炸式增长,这使得即使专家也无法跟踪学科的发展。当然,现在这种情况要糟糕得多,但即使在 1945 年,布什也讨论过让人们比纸上更容易找到信息的必要性。在描述了他对缩微胶片和投影设备的各种想法后,他说:
所有这些都是常规的,除了当前机制和小工具的预测。然而,它为关联索引提供了一个直接的步骤,其基本思想是一项规定,任何项目都可以随意立即自动选择另一个项目。这是 memex 的本质特征。将两个项目捆绑在一起的过程很重要。
换句话说,超文本!
除了建立单独的链接之外,布什还希望 Memex 支持以一组链接的形式通过材料建立路径,这些链接将结合特定主题的特定观点的相关信息。他甚至预言了“开拓者”(trail blazers)这一新职业的建立,“他们乐于通过大量的共同记录建立有用的路径”。在当前的术语中,这些开拓者将是通过提供超文本链接网络来补充基本信息,从而为已发布的文本和其他信息集合增加价值的人。但由于我们甚至还没有基本超文本的市场,不幸的是,我们不得不没有专业的开拓者。
对于普通的 Memex 用户来说,建立小径也是一项活动,并且利用他的缩微胶卷想法,Bush 假设这样的用户可能想要拍摄整条小径,供朋友们放入他们的 Memex 中。我们应该再次注意到,当前的技术无法达到布什的愿景,因为几乎不可能将选定的超文本结构子集转移到另一个超文本,特别是如果这两个超文本基于不同的系统。
Vannevar Bush 在他那个时代是一位著名的科学家,并且在第二次世界大战期间担任罗斯福总统的科学顾问,当时发明核武器等基于科学的问题非常重要。《诚如我思》(As We May Think)在大西洋月刊上发布后,引起了相当大的讨论,《时代》和《生活》杂志都刊登了。 《生活》杂志甚至让一位艺术家绘制了 Memex 外观的插图以及用户完成链接时其投影位置的场景。道格·恩格尔巴特(Doug Engelbart)后来成为交互式计算发展的先驱并发明了鼠标,他在 1945 年等待从菲律宾返回的船时,通过阅读布什的文章获得了部分灵感。
尽管早期对 Memex 产生了浓厚的兴趣,但它从未建成。正如上面所暗示的,我们目前的计算机技术仍然不能完全支持布什的愿景。我们确实拥有具有大部分 Memex 功能的计算机,但它们基于与布什讨论的缩微胶卷完全不同的技术。
有趣的是,布什是计算机硬件开发领域的先驱科学家之一,并以 1931 年的麻省理工学院微分分析仪等发明而闻名。来自苹果公司的艾伦·凯建议我们最了解的领域可能是那些我们在预测未来方面最准确的地方,因为我们看到了其中固有的所有问题。因此,布什可以很高兴地梦想缩微胶卷技术不可能取得的进步,但他不愿意发表一篇关于个人计算机的文章,因为他“知道”计算机是价值数百万美元的巨大事物。
Augment/NLS (1962–1976)
在布什 1945 年发表文章之后,超文本领域的 20 年没有发生什么大事。人们忙于将计算机改进到可以交互式使用它们的程度,但它们太贵了,以至于大多数资助机构认为计算机资源应该浪费在文本处理等非数字任务上的建议是完全不负责任的。
尽管有这种态度,道格·恩格尔巴特(Doug Engelbart)还是在 1962 年开始了他的Augment 项目,开发计算机工具来增强人类的能力和生产力。该项目是办公自动化和文本处理等领域的第一个重大工作;事实上,整个项目比我们目前在专业工作环境中使用的生产力工具更雄心勃勃,范围更广。该项目在 SRI(斯坦福研究所)进行,员工人数增加到 45 人。
Augment 项目的一部分是 NLS(on-Line System),它具有几个超文本功能,尽管它不是作为超文本系统开发的。(这个奇怪的首字母缩写词的原因是为了将该名称与oFf-Line System 的名称区分开来。)在Augment 项目期间,研究人员将他们所有的论文、报告和备忘录存储在一个共享的“journal”设施中,从而使他们能够在自己的著作中包含对其他作品的交叉引用。该期刊的条目数已超过 100,000 条,并且作为超文本结构在很长一段时间内支持实际工作仍然是独一无二的。
1968 年,道格·恩格尔巴特(Doug Engelbart)在 1968 年秋季联合计算机会议的特别会议上演示了 NLS。首次公开演示交互式计算中的许多基本思想对团队来说是一场赌博。道格·恩格尔巴特(Doug Engelbart)不得不用他的大部分赠款购买特殊的视频投影仪,在他的实验室和会议中心之间铺设微波传输线,并建造其他种类的专用硬件,如果演示失败,他将遇到大麻烦。但它奏效了,回想起来,花钱是正确的决定。许多人说,正是那个演示让他们对发明交互式计算感到兴奋。
尽管演示成功,但政府在 1975 年放弃了对 Engelbart 的研究支持,当时他或多或少地发明了现代计算的一半概念。(在 Augment 项目结束后,Engelbart 的几名员工前往施乐 PARC 并帮助发明了现代计算的许多后半部分概念。)Augment 项目继续作为一种办公自动化服务,但并未真正得到进一步发展。Engelbart本人仍在推动他最初的增强想法,几年前开始了位于斯坦福大学的“Bootstrap Project”。
Xanadu (1965)
真正的“超文本”(hypertext)一词是由 Ted Nelson 在 1965 年创造的。Nelson 是他的 Xanadu 系统的早期超文本先驱,从那时起他一直在开发该系统。自 1990 年以来,Xanadu 的某些部分确实有效,并且一直是 Xanadu 运营公司的产品。
然而,Xanadu的愿景从未实现过,而且可能永远不会实现(至少在可预见的未来不会)。Xanadu 的基本理念是为任何人编写的所有内容提供存储库,从而实现真正通用的超文本。Nelson将超文本视为一种文学媒介。而且他认为“一切都深深地交织在一起”(everything is deeply intertwingled),因此必须一起在线。Nelson关于超文本的主要著作实际上名为《文学机器》(Literary Machines)。相比之下,Glushko认为,多文档超文本仅在用户有明确任务需要信息组合的相对少数情况下才需要。
如果要实现 Nelson 将世界上所有的文学作品放在一个单一的超文本系统中的愿景,那么依靠用户自己的个人计算机中的本地信息存储显然是不可能的。事实上,Nelson 的 Xanadu 设计是基于后端和本地数据库的组合,这将使大多数超文本访问能够快速响应,因为个人用户使用最多的信息仍将存储在他们的本地计算机上。每当用户激活指向更多奇异信息的链接时,前端计算机就会通过网络透明地链接到后端存储库并检索信息。
在 Xanadu 中,可以从任何其他文档中寻址任何文档的任何子字符串。与信息的分布式存储相结合,这种能力意味着 Xanadu 包括一个方案,如果需要的话,它可以为世界上的每个字节提供一个唯一的地址。
此外,完整的 Xanadu 系统永远不会删除任何文本,即使在系统中添加新版本时也不会删除,因为其他读者可能已经添加了指向文本先前版本的链接。所有版本的永久记录使得其他文档可以与文档的当前版本或特定版本链接。通常,人们会希望与最新的材料联系起来,例如在提及人口普查统计数据或天气预报时,但在更具争议性的文件中,人们可能希望确保提及一个人所反对的立场的特定版本。
链接到另一个文档的特定版本的文档的阅读者将始终可以选择要求系统显示最新版本。这种“时间滚动”还可用于显示文档在以前版本中的外观,并且可能很有用,例如用于软件开发的版本管理。
Nelson 确实意识到这种方案意味着每天必须向 Xanadu 添加数十亿个新字节,而不希望通过删除旧文档来释放存储空间。他的评论是,“那又怎样……?” 并提到电话系统的当前负载在人工接线员连接每个呼叫的传统技术下是不可能的。到目前为止,计算机技术的历史确实为在未来某个时候能够支持 Xanadu 愿景提供了一些乐观的理由。
当一切都在一个单一的系统中在线并且每个人都可以与其他人链接时,如果保持传统的版权观点,就会出现巨大的版权问题。Nelson的答案是废除传统版权,以使每个人都可以随时获得放置在Xanadu中的信息。这个原则可能是可行的;该系统仍将跟踪原始作者身份,并根据每个读者看到的字节数向原始作者提供版税。
出版选集将是一件简单的事情,只需创建一个新文档,其中包含一些解释性和组合文本以及其他作者的原始文档链接,这些作者不需要联系以获得许可。由于版税的原因,每个人都会有经济上的动力来允许其他人与他们的作品链接,因为读者将通过链接发现值得阅读的材料。即便如此,一些作者可能会害怕被断章取义或被其他作者歪曲他们的作品。这个问题在 Xanadu 理论上得到了解决,因为读者总是可以选择要求链接引用的任何文档的完整文本。在实践中,许多读者可能不会费心查看链接文档的全文,
在他早期关于Xanadu的一些工作中,Ted Nelson 与布朗大学有联系。从那时起,尽管他曾在 Autodesk, Inc. 工作过一段时间,但他主要是一位独立的远见者和作家。
Hypertext Editing System (1967) 和 FRESS (1968)
尽管 Xanadu 直到最近才部分实施,但超文本系统是在 1960 年代在 Andries van Dam 的领导下在布朗大学建立的。1967 年建成的Hypertext Editing System(超文本编辑系统)是世界上第一个工作的超文本系统。它在小型 IBM/360 大型机上的 128K 内存分区中运行,并由 IBM 研究合同资助。
在布朗大学作为研究项目完成Hypertext Editing System(超文本编辑系统)后,IBM 将其卖给了休斯顿载人航天器中心,在那里它实际上被用于为阿波罗任务制作文档。
第二个超文本系统是 FRESS(文件检索和编辑系统),它于 1968 年在布朗大学完成,作为Hypertext Editing System(超文本编辑系统)的后续,也在 IBM 大型机上实现。由于这个极其稳定的平台,实际上可以在 1989 年的 ACM 超文本会议上运行这段代码的演示,已有 20 多年的历史了。
这两个早期的超文本系统都具有链接和跳转到其他文档的基本超文本功能,但它们的大多数用户界面都是基于文本的,并且需要用户间接指定跳转。
从那以后,布朗大学一直是超文本领域的主要参与者,其最突出的努力是开发了Intermedia system(本章稍后将进一步讨论)。
Aspen Movie Map (1978)
第一个超媒体系统可能是由 MIT Architecture Machine Group 的 Andrew Lippman 及其同事开发的Aspen Movie Map(现已与其他 MIT 小组合并形成媒体实验室)。Aspen 是一个代理旅行应用程序,它允许用户在电脑屏幕上模拟“驾车”穿越阿斯彭市。
Aspen 系统是通过一组包含科罗拉多州阿斯彭市所有街道照片的视频磁盘实现的。拍摄是通过在一辆卡车上以 90° 的间隔安装四台摄像机完成的,该卡车驶过所有城市街道,每台摄像机每十英尺(三米)拍摄一帧。系统的超媒体方面来自于访问这些图片,而不是作为传统数据库(“告诉我 149 Main Street”),而是作为一组链接的信息。
每张照片都与人们通过直线前进、后退或向左或向右移动会看到的其他相关照片相关联。用户使用操纵杆导航信息空间以指示所需的移动方向,系统检索相关的下一张图片。由此产生的感觉是开车穿过城市,可以在任何十字路口随意转弯。理论上,视频磁盘播放器可以以每 33 毫秒一帧的速度显示照片,这相当于以 200 英里/小时(330 公里/小时)的速度在街道上行驶。为了更好地模拟驾驶,实际系统被减速以显示连续的照片,速度取决于用户的意愿,但不超过 10 帧/秒,对应于 68 英里/小时(110 公里/小时)的速度。
用户也可以在建筑物前停下来“走”进去,因为阿斯彭的许多建筑物都是为视频磁盘拍摄的。作为最终控制,用户可以通过“季节旋钮”选择一年中的驾驶时间,因为整个城镇都在秋季和冬季进行了记录。这个概念有点与上面描述的 Xanadu 系统中的“时间滚动”有关。但是 Aspen 季节旋钮对于用户来说可能更容易理解,因为它直接与现实世界中的一个众所周知的概念相关,尽管它提供了在现实世界中不可能实现的功能。图 3.1 和 3.2 显示了在最近的 Ecodisc 系统中使用类似功能。
Aspen 系统使用两台显示器作为其界面,但比传统双屏解决方案更自然。一台显示器是常规垂直屏幕,显示从卡车拍摄的街道图像。这为用户提供了身临其境的城市景观,让他们感觉仿佛进入了环境。第二个屏幕是水平的,放置在沉浸式屏幕的前面。用于显示街道地图,为用户提供环境概览。用户可以指向地图上的某个地点并直接跳转到该地点,而不必在街道上导航。总览图还通过突出显示城市的两条主要街道来提供“地标”。这种双屏解决方案使用户可以轻松了解他们相对于这两条主要街道的位置。
在 1970 年代后期,有资金用于构建代理旅行应用程序的一个原因是以色列军队成功地从恩德培机场解救了人质。尽管这些士兵以前从未到过乌干达,但他们能够出色地完成任务,因为他们在以色列建造的机场的全尺寸模型中进行了练习。计算机化的代理旅行系统可能使将来为类似任务进行训练成为可能,而无需实际建造整个模拟城市。
也可以想象,像 Aspen 这样的代理旅行系统在未来可能会被日常使用,不仅是为执行任务而训练的突击队士兵,还包括计划假期的游客。然而,在不久的将来,代理旅行的主要用途可能是教育用途;Palenque system就是一个很好的例子。
Aspen 系统本身并不是真正的“应用程序”,因为它实际上可以帮助任何人完成任何事情。但它远远超前于时代,为未来的应用指明了方向,具有重大的历史意义。即使是现在,在 Aspen 项目完成近 20 年后,它仍然是有史以来最复杂的超媒体系统之一。
作为 Aspen 的后续,MIT Architecture Machine Group 使用超媒体技术构建了一个更实用的系统,以整合视频和计算机数据。这个项目被称为Movie Manual,涉及汽车和自行车维修手册。
Movie Manual可以使用常规的触敏计算机显示器,也可以将其图像投射到媒体室的整面墙上。它有一张汽车的图片作为目录,并允许用户指向需要维修的区域。然后,Movie Manual将以视频、注释图像和普通文本的混合形式显示其说明,允许用户通过放大或缩小视频窗口来自定义屏幕布局。用户可以停止视频或更快、更慢或向后播放。
KMS(1983)
KMS 可能是目前流行的超文本系统中最古老的系统,因为它是卡内基梅隆大学开发的 ZOG 研究系统的直接后代,早在 1972 年就进行了一些开发,并且从 1975 年开始成为一个全面的项目。ZOG这个词没有任何意义,但被选中是因为它“简短、容易发音和容易记住”。起初,ZOG 在大型计算机上运行;然后它被转移到 PERQ 工作站,其中 28 个工作站于 1983 年安装在航空母舰卡尔文森号上,用于对武器升降机维护手册等应用进行现场测试。
KMS 是 Knowledge Management System 的缩写,从 1983 年开始就成为商业产品。它运行在 Unix 工作站上,并已用于大量应用程序。KMS 旨在管理具有数万个节点的相当大的超文本,并且从一开始就设计为跨局域网工作。
KMS 有一个非常简单的数据结构,它基于一种称为框架的节点类型。一个框架可以占据整个工作站屏幕,但通常屏幕被分成两个框架,每个框架大约与一张信纸大小的页面一样大。用户不能混合大小节点,屏幕上不能同时有两个以上的节点。起初这似乎是有限的,但 KMS 的支持者声称,使用超文本导航机制来更改显示内容比必须使用窗口管理操作在许多重叠窗口中查找所需信息要好得多。
KMS 已针对导航速度进行了优化,因此当用户在锚点上单击鼠标时,通常会“立即”显示目标帧。显示一个新帧的时间实际上大约是半秒,KMS 的设计者声称比这更快并没有真正的好处。他们尝试了一个实验系统来在 0.05 秒内改变显示,但速度如此之快,以至于用户无法注意到屏幕是否发生了变化。
如果屏幕上的一个项目没有链接到另一个节点,那么点击它会生成一个空框架,使节点和链接的创建对用户来说似乎是一种特殊的导航形式。单击某个项目也可以运行以特殊 KMS 操作语言编写的小程序。这种语言不像 NoteCards 中集成的 InterLisp 那样通用,但它仍然允许用户为许多特殊应用程序自定义 KMS。
KMS 不提供概览图,而是依赖于快速导航和节点的层次结构。层次结构中的链接以“@”为前缀,让用户知道他们正在移动到信息空间的另一部分。帮助用户导航的另外两个设施是特殊“home”框架的标志性状态,可从任何位置直接访问,以及只需单击鼠标即可回溯到前一个节点的特殊易用性和全局可用性指向屏幕上的空白区域。
Hyperties(1983)
Hyperties 是 Ben Shneiderman于 1983 年左右在马里兰大学作为一个研究项目开始的。它最初被称为 TIES 作为电子百科全书系统的缩写,但由于该名称已被其他人注册,因此名称已更改到 Hyperties 以指示在系统中使用超文本概念。
自 1987 年以来,Hyperties 已作为商业产品在 Cognetics Corporation 的标准 PC 上提供。马里兰大学继续进行研究,其中工作站版本已在 Sun 工作站上实施。
Hyperties 商业版的一个有趣的方面是它可以与图 3.3 所示的纯文本屏幕一起使用。因此它适合 DOS 用户。Hyperties 也适用于 PC 和 PS/2 上的主要图形格式,并且可以显示彩色图像(如果屏幕可以处理它们)。
Hyperties 中的交互技术非常简单,无需鼠标即可操作界面。屏幕上的一些文本被突出显示,用户可以通过用鼠标单击它们来激活这些锚点,如果触摸屏可用,则触摸它们,或者只需使用箭头键移动光标直到它位于文本上方然后按 ENTER。Hyperties 以一种称为“跳转键”的特殊方式使用箭头键,这会使光标单步跳转到箭头方向上的下一个活动锚点。这种使用方向键的方式已针对超文本进行了优化,在这种情况下,屏幕上通常只有少数用户可以指向的区域,并且经测量,键的使用速度略快于鼠标。
在图 3.3 的示例中,用户正在激活字符串“Xerox PARC”,该字符串由反色视频指示。在 Hyperties 的彩色版本中,用户可以编辑偏好文件以确定其他类型的选择反馈,例如对比色的使用。
与几乎所有其他超文本系统一样将用户直接带到目标节点,Hyperties 首先让用户停留在相同的导航位置,并在屏幕底部仅显示一个小的“定义”。这个定义为用户提供了一个关于如果链接确实被跟随到其目的地会发生什么的前瞻性视图,并且它允许用户在锚点的上下文中查看信息。在很多情况下,仅仅看到定义就足够了。否则用户当然可以选择完成链接。
Hyperties 链接指向一个完整的“文章”,该文章可能由多个页面组成。跟随链接的用户将始终被带到文章的第一页,并且必须自己翻页。这种设置与链接始终指向单个页面的 KMS 模型和链接指向文章中特定文本字符串的 Intermedia 模型形成对比。Hyperties 模型的优点是作者不需要非常精确地指定目的地。它们只是指出他们想要链接到的文章的名称,然后创作系统完成链接。
相同的文本短语将始终指向 Hyperties 中的同一篇文章,这再次简化了创作界面,但降低了系统的灵活性。许多应用程序要求有不同的目的地,这取决于上下文或者可能取决于用户专业水平的系统模型。
Hyperties 中的许多设计选择都源于最初强调博物馆信息系统等应用程序。这些应用程序需要一个非常简单的阅读界面,而不需要像概览图这样的高级工具(在普通的 DOS 机器上无论如何都不支持)。此外,超文本的作者是博物馆馆长和历史学家,他们大多不太愿意学习复杂的高科技解决方案,因此 Hyperties 创作工具与传统文本处理的相似性非常适合初始用户。现在,Hyperties 被用于更广泛的应用。
Hyperties 的商业版使用全屏用户界面,如图 3.3 所示,而 Sun 上的研究系统使用类似于 KMS 的两帧方法。
NoteCards (1985)
NoteCards 可能是最有名的原始超文本研究系统,因为它的设计特别有据可查。它是在 Xerox PARC 设计的,现在可以作为商业产品使用。
最初,NoteCards 只在 Xerox 系列的D-machines上运行。这些计算机是相当专业的 Lisp 机器,在研究领域之外并没有广泛使用。因此,NoteCards 的商业版本被移植到像 Sun 这样的通用工作站上。
在 Xerox Lisp 机器上实现 NoteCards 的一个原因是它们提供了强大的 InterLisp 编程环境。InterLisp 使编写像 NoteCards 这样的复杂系统变得容易,并且由于它与 Lisp 系统完全集成,它还为用户提供了根据自己的特殊需求自定义 NoteCards 的选项。了解 Lisp 的用户原则上可以更改 NoteCards 的任何方面,他们可以实现如下所述的特殊卡片类型。
NoteCards 建立在图 3.4 所示的四种基本对象之上:
- 每个节点都是一个单独的记事卡(notecards),可以在屏幕上作为一个窗口打开。这些卡片并不是 HyperCard 意义上的具有固定大小的真正“卡片”(cards),而是真正标准的可调整大小的窗口。用户可以根据需要在屏幕上打开任意数量的记事卡,但如果打开太多,很快就会面临“桌面凌乱”的问题。记事卡可以有不同的类型,具体取决于它们包含的数据。最简单的卡片类型是纯文本或图形,但对于需要特殊数据结构的个别应用程序,至少有 50 种特殊类型的卡片。例如,法律申请可能需要包含法院判决表格的便签卡,其中包含标准信息单元(被告、原告等)的字段。
- 链接(link)是卡之间的类型连接。链接可以显示为图 3.4 中的小链接图标,也可以显示为带有目标卡标题的框。用户通过用鼠标单击链接图标在屏幕上的新窗口中打开目标卡。链接类型是用户选择的标签,用于指定链接的出发卡和目的地卡之间的关系。继续这个法律例子,律师可能想要一种与支持他们自己立场的法院判决的链接,以及另一种与反驳他们立场的判决的链接。
- 第三种对象是浏览器卡片(browser card),它包含了记事卡和链接的结构概览图。如图 3.4 所示,不同的链接类型在浏览器中由不同的线型表示,从而为用户提供节点之间的连接指示。浏览器卡片(browser card)是一个活动的概览图,允许用户通过对浏览器中的框和线进行操作来编辑底层的超文本节点和链接。用户还可以通过单击代表卡片的框来访问卡片。浏览器卡片的布局由系统计算,因此反映了用户添加或删除节点和链接时超文本结构的变化。
- 第四种对象是FileBox,用于记事卡的分层嵌套。每个记事卡都列在一个 FileBox 中。实际上,FileBox 是一种特殊用途的记事本,因此 FileBoxes 可以包含其他 FileBoxes,并且可以构建从其他卡片到 FileBox 的链接。
在一种情况下,用户对 NoteCard 进行了如此广泛的定制,以至于结果可以说是一个新系统。Xerox PARC 开发的教学设计环境 (Instructional Design Environment,IDE) 建立在 NoteCards 之上,但提供了一个新的用户界面来帮助课件开发人员半自动地构建超文本结构。IDE 支持结构加速器,通过允许用户通过单个操作从模板生成一整套节点和链接来加速超文本构建。
NoteCards 的标准版本已在施乐公司和客户所在地使用了数年。关于 NoteCards 实际使用的一个有趣的早期实证研究是对一位历史研究生的纵向研究,他使用该系统在七个月内撰写了一篇研究论文。该用户在 FileBox 层次结构中使用的链接不多,但该结果可能不会推广到其他用户。该研究的重要方面是它在很长一段时间内调查了测试对象的行为,并观察了该系统在相当大的任务中的使用情况。
Symbolics Document Examiner (1985)
早期的超文本系统最好归类为概念验证系统,表明超文本不仅是一个疯狂的想法,而且实际上可以在计算机上实现。尽管某些系统,如 Engelbart 的 NLS 和早期的布朗大学系统,被用于实际工作,但这种使用主要是在设计系统的同一机构内部进行的。
相反,Symbolics Document Examiner 是为 Symbolics 工作站用户设计的真实产品。该项目于 1982 年开始并于 1985 年交付使用,使其成为第一个看到实际使用的超文本系统。Document Examiner 是 Symbolics 工作站在线文档的超文本界面,人们得到并使用它是因为它是获取有关 Symbolics 信息的最佳方式,而不是因为它本身就是一个超文本系统。
Symbolics 手册也有 8,000 页的印刷版。该信息以 10,000 个节点的超文本表示,其中 23,000 个链接占用了总共 10 兆字节的存储空间。这种超文本在今天仍然被认为是相当大的,并且在 1985 年才成为可能,只是因为 Symbolics 工作站是一台非常强大的个人计算机。为了生成所有这些超文本,Symbolics 的技术作者使用了一个名为 Concordia 的特殊书写界面,第 11 章将对此进行进一步讨论。
8,000 页手册中的信息是根据对用户可能的信息需求的分析而模块化的。基本原则是为用户可能想要的任何信息提供一个节点。
此外,用户界面的设计目标是尽可能简单,而不是吓跑用户。由于超文本在 1985 年还不是一个流行的概念,因此这个目标意味着使用书籍隐喻来表示界面,而不是试图让用户使用基于网络的导航原则。信息分为“章节”和“部分”,并有一个目录。此外,用户可以在以后想要返回的节点上插入“书签”。
为了评估 Symbolics Document Examiner 的可用性,设计人员对 24 位用户进行了调查。其中两人确实更喜欢手册的印刷版,但一半只使用超文本版本,八人甚至没有取下印刷手册的收缩包装。这些用户是工程师,他们使用的是先进的人工智能工作站,因此他们可能比普通用户更有动力使用高科技解决方案。
Intermedia (1985)
Intermedia是布朗大学多年来开发的高度集成的超文本环境。它可以在 Macintosh 上运行,但不幸的是只能在 Apple 的 Unix 操作系统下运行。由于大多数 Macintosh 购买者不想接触 Unix,操作系统的选择严重限制了 Intermedia 的实用性,并且可能是其最终失败的原因。
Intermedia 基于滚动窗口模型,如 Guide 和 NoteCards,但除此之外它遵循与本章讨论的其他系统不同的理念。Intermedia 的核心是一个链接协议,它定义了其他应用程序应该链接到和从 Intermedia 文档链接的方式 。可以编写新的专用超文本应用程序并将它们集成到现有的 Intermedia 框架中,因为所有现有的 Intermedia 应用程序都已经知道如何与新应用程序交互。
Intermedia 中的链接高度基于连接两个锚点而不是两个节点的想法。链接是双向的,因此出发锚点和目的地锚点之间没有区别。当用户从其中一个锚点激活链接时,系统将打开一个窗口,其中包含另一个锚点的文档并滚动该窗口,直到该锚点变得可见。因此,鼓励 Intermedia 作者构建相当长的文档,因为他们可以轻松链接到文档中的特定点。
Intermedia 有两种概览图,如图 3.5 所示。Web视图是系统自动构建的,图中Mitosis OV文档等概述文档是作者使用绘图包手动构建的,只有按照惯例有一个共同的布局,主题名称在中心和相关围绕它的一个圆圈中的概念。
给定课程的典型 Intermedia 超文本将包含许多这样的概述文档,其中一个用于课程材料中的每个中心概念。
Intermedia 专为大学层面的教育用途而设计,用于教授人文和自然科学方面的几门课程。没有理由不能将它用于第 4 章中列出的许多其他超文本应用程序,但教育来源对设计产生了一些影响。例如,Intermedia 模型假设多个用户(即学生)将访问同一组超文本文档(即课程阅读)并制作他们自己的注释和新链接。因此,Intermedia 以所谓的网络的形式为每个用户存储带有链接的单独文件。图 3.6 显示了在 Intermedia 中创建链接。当用户为链接选择了另一个锚点并激活了“完成链接”命令时,
图 3.6。要在 Intermedia 中创建链接,用户可以选择文档的任何部分并选择“开始链接”命令。链接创建界面仿照 Macintosh 剪切/复制/粘贴范例;因此,用户可以执行任意数量的中间动作,并且链接将保持未决状态,直到用户为链接选择另一个锚点并激活“完成链接”(Complete Link)命令。
不幸的是,一直支持 Intermedia 开发的资助机构决定在 1991 年停止资助该项目,因此即使在 1990 年代初期,Intermedia 是最有前途的教育超文本系统,但它已经不存在了。
Guide (1986)
Guide 是第一个流行的商业超文本系统,它于 1986 年为 Macintosh 发布。此后不久,它也为 IBM PC 发布,并且是第一个在两个平台上都可用的超文本系统。两台计算机上的用户界面看起来完全一样。Guide 的最新版本仅限于 Windows 平台。
Peter Brown 于 1982 年在英国肯特大学作为一个研究项目启动了 Guide,并于 1983 年在 PERQ 工作站上运行了第一个版本。 1984 年,Office Workstations Ltd. (OWL) 公司对该计划感兴趣并决定将其作为商业产品发布。他们对原型进行了几处更改,包括使用户界面符合 Macintosh 用户界面所必需的一些更改。
Peter Brown 继续使用大学维护的 Unix 版本的 Guide 进行超文本研究。它也用于一些工业咨询项目。如果没有其他说明,我使用的术语“Guide”指的是 IBM PC 和 Macintosh 上的商业版本,而不是 Unix 工作站版本,因为它们之间存在一些差异。
Guide 类似于 NoteCards 是基于滚动文本窗口而不是固定框架。但是,虽然 NoteCards 中的链接引用其他卡片,但 Guide 中的链接通常只是将窗口滚动到新位置以显示单个文件中包含的目标。链接锚与文本字符串相关联,并在用户滚动或编辑文本时在屏幕上移动。这种方法与 HyperCard 相比,其中锚点是屏幕上的固定图形区域。Guide 确实包含对图形链接的支持,但在 Guide 用户界面中使用它们似乎不太自然,并且必须从外部绘图程序导入图形。
Guide 支持三种不同的超文本链接形式:替换(Replacements)、弹出(pop-ups)和跳转(jumps)。
替换按钮用于将锚的文本在线扩展为一个新的且通常更大的文本,这个概念有时称为拉伸文本[stretchtext]。(“stretchtext”一词可能是由于 Ted Nelson。在 Augment 和 Xerox PARC 的几个早期文本编辑器中发现了类似的概念)
替换按钮形成了文本的层次结构,对于以传统教科书的章节、节和小节的方式表示文本很有用。通常,初始显示将显示所有章节标题,然后用户将通过将章节标题替换为章节中的章节列表来展开他们感兴趣的章节。然后,他们可以进一步将他们最感兴趣的部分替换为其子部分列表,依此类推。在进行这些替换时,用户不断地获得其他章节标题(可能通过稍微滚动窗口),从而保留上下文。替换的相反操作是关闭展开的文本并将其重新替换为原始文本。
替换按钮存在于一种称为查询替换(inquiry replacement)的变体中,用于列出多个选项并让用户选择一个。当用户单击作为查询一部分的替换按钮时,该按钮将展开,并且查询中的其他按钮将从屏幕上移除,直到用户再次关闭展开。该界面对于多选类型的应用程序很有用,例如要求用户单击需要维修的设备类型的维修手册。所选类型的解释已展开,其他不相关的类型将被隐藏。
第二种超文本是通过单击注释按钮提供的小弹出窗口如图 3.7 所示。该工具对于脚注类型的注释很有用,这些注释与主窗口中的信息密切相关。仅当用户在注释按钮上按住鼠标按钮时才会显示弹出窗口,这意味着“回溯”(backtrack)命令只是让鼠标按钮离开。这种类型的用户界面有时被称为“弹簧加载模式”(spring loaded mode),因为用户只有在继续激活对话元素时才处于该模式,一旦释放该元素就会恢复正常。然而,弹出窗口是模式,因为它们使用户不可能执行其他动作(例如,在弹出窗口中制作文本的副本),只要它们被显示。
Guide中超文本的第三种形式是引用按钮(reference button),用于跳转到超文本中的另一个位置。要返回出发点,用户必须单击一个特殊的回溯图标。
Guide 中的三种不同类型的超文本通过改变光标的形状向用户显示,如图 3.8 所示我们的实地研究表明用户在区分这三种按钮时没有问题。
正如第 10 章进一步讨论的那样,我们还发现用户最喜欢弹出窗口的参考按钮(reference button),而跳转的参考按钮得到的评价最差。有趣的是,参考按钮正是没有包含在 Guide 的“简洁设计”研究原型中但被添加到商业版本中的功能。从我们的数据中当然不可能说参考按钮(reference button)的评分相对较低是因为它没有很好地集成到整体设计中,还是因为 goto 通常只是有害的。
Guide 的第 2 版引入了第四种类型的按钮,称为命令按钮(command button),单击时会执行专用 Genesis 语言的脚本。然而,Genesis 并不是像 HyperCard 的 HyperTalk 那样的通用编程语言,通常仅用于访问视频磁盘以播放指定的帧集。
HyperCard(1987)
值得注意的是,HyperCard 的设计者比尔·阿特金森(Bill Atkinson)从一开始就承认它并不是真正的超文本产品。他最初将 HyperCard 构建为图形编程环境,而 HyperCard 中内置的许多应用程序实际上与超文本无关。即便如此,HyperCard 可能是 1980 年代后期世界上最著名的超文本产品。
HyperCard 受欢迎的原因有几个。一个非常实用的做法是,它与 Apple 从 1987 年到 1992 年销售的每一台 Macintosh 都免费捆绑在一起。你无法超越这个价格,而且它自动随机器一起提供的事实也意味着它被介绍给了很多人否则谁也不会梦想得到一个超文本系统。即使在 Apple 开始将 HyperCard 作为传统产品销售之后,他们仍然会为每台 Macintosh 免费提供 HyperCard 读卡器,这意味着 HyperCard 开发人员可以确保他们的市场。
HyperCard 受欢迎的第二个原因是它包含一种称为 HyperTalk 的通用编程语言,它相当容易学习。我的实验表明,有一些编程经验的人可以在短短两天内学习 HyperTalk 编程。此外,这种编程语言在原型图形用户界面方面非常强大。但是,它不太适合实施需要在几年内进行维护的大型软件系统。
HyperCard 非常适合人们想在超文本领域尝试的许多创新事物。它易于学习,可以制作美观的屏幕设计,并且可以快速制作新设计理念的原型。第 2 章中描述的我自己的一个超文本系统是在 HyperCard 中实现的。HyperTalk 使 HyperCard 非常适合用于计算超文本的实验,其中信息在程序控制下在读取时生成。
顾名思义,HyperCard 强烈地基于卡片隐喻。它是一个类似于 KMS 的基于帧的系统,但主要基于更小的帧大小。即使用户拥有更大的屏幕,大多数 HyperCard 堆栈也仅限于原始 Macintosh 小屏幕的大小。这是为了确保所有 HyperCard 设计都能在所有 Macintosh 机器上运行,从而确保 HyperCard 产品的合理广泛分布。HyperCard 版本 1 无一例外地强制执行卡片大小限制,但较新的版本 2 使利用更大的屏幕成为可能。
HyperCard 中的基本节点对象是卡片(card),卡片的集合称为栈(stack)。主要的超文本支持是在屏幕上构建矩形按钮并将 HyperTalk 程序与它们相关联的能力。这个程序通常只会包含用户以语句的形式编写的一行代码, goto
以实现超文本跳转。按钮通常在用户单击它们时被激活,但 HyperCard 的灵活方面之一是它允许在其他事件的情况下也采取行动,例如当光标进入矩形区域时,甚至当指定的时间段已经过去,没有任何用户活动。
HyperCard 方法将超文本跳转实现为程序语言语句的主要优点是链接不需要硬连线。您可以计算的任何内容都可以用作链接的目标。
除了基本的跳转到其他卡片之外,HyperCard 至少可以通过使用特殊 show
和 hide
命令来模拟像 Guide 中那样的弹出窗口。设计者可以确定一个特定的文本字段通常应该对用户隐藏,但是当用户点击某个按钮时它会变得可见。这些操作的最终结果将与指南弹出窗口非常相似。
然而,与 Guide 相比,HyperCard 确实存在一个严重的问题,那就是让超文本锚点与文本字符串相关联的问题。在 Guide 中,这些“粘性按钮”(sticky buttons)是标准,允许用户随意编辑文本,并且只要不删除锚字符串,仍然保留其超文本链接。在 HyperCard 中,锚点通常与文本字符串相关联,方法是将按钮的矩形区域放置在与文本字符串相同的屏幕位置。但是如果用户编辑文本,这种锚定方法会带来很大的麻烦,因为它肯定会改变锚串在屏幕上的物理位置。
图 3.10 给出了我如何在 HyperCard 中实现图 3.9 中的超文本设计的简化视图。首先,节点的一般图形设计被绘制为背景对象,该对象将由其类中的所有节点继承。这个设计包括一本书的图片和全局概览图(因为它对于所有节点都不会改变)。背景设计还包括一个空的占位符字段,用于在各个节点中添加文本。
然后,对于每个单独的节点,我添加了一个前景层,其中包含节点的文本和一些图形。前景图形包括局部概览图(因为它会因节点而异)和用于突出显示局部和全局概览图中当前位置的粗矩形。由于 HyperCard 在屏幕上将所有关卡显示为单个图像,遵循与动画艺术家拍摄一堆醋酸盐相同的原理,用户永远不会知道全局概览图的视觉外观是由固定的背景图像和变化的前景矩形。
最后,我为每个单独的节点添加了一组按钮来实现超文本链接。其中一些按钮用于局部概览图并放置在相应的图形上,而其他按钮是与前景层中的文本字符串相关联的锚点,必须小心地放置在相关文本上。实际上,整个屏幕包含更多按钮,因为还有一些全局按钮对所有节点都是通用的,因此被放置在后台级别。它们在这里没有具体显示。
HyperCard 有几个竞争对手,包括 SuperCard、Plus 和 MetaCard。SuperCard 集成了同时处理颜色和几个可变大小窗口的工具,还允许非矩形形状的面向对象图形充当按钮。Plus 可用于 Macintosh 和 IBM PC(在 Microsoft Windows 和 OS/2 下),提供其文件格式的跨平台兼容性。MetaCard 在使用 X Windows 的工作站上运行,从而扩大了可以使用基本 HyperCard 类型的超文本的平台范围。然而,这些竞争产品还没有解决其他几个限制。
其中一些未解决的问题在概念上并不是那么困难,可以想象 HyperCard 将在可能的版本 3 中解决这些问题。缺少粘性按钮(sticky buttons)和 HyperTalk 程序执行速度慢的情况就是如此。其他问题更难解决,因为它们与 HyperCard 的基本性质相冲突。其中包括诸如将编程语言更改为完全面向对象且更易于维护以及设计高级超文本功能或多用户访问等问题。
有趣的是,HyperCard 的早期成功不仅仅是因为它的概念结构或底层系统的强大功能。许多人开始编写自己的 HyperCard 堆栈的一个主要原因是在基本系统中包含了图形用户界面元素的“构造工具包”。我已经数不清有多少次我看到人们使用原始 HyperCard 附带的一个人在电脑前思考的图片。更重要的是,HyperCard 不仅仅是为按钮提供方形框并希望人们用自己的图标填充它们,HyperCard 还附带了大量指向手、转动箭头和其他合适的设计,可以用作新的构建块用户界面。这些样本和模板材料的吸引力使许多早期的 HyperCard 堆栈看起来相当不错,并有助于建立临界质量。我肯定会建议未来系统的开发人员包含大量的 GUI 小部件和预先设计的图形。
超文本成长
Symbolics Document Examiner 是超文本与现实世界相遇的一个例子,因为它看到了真实客户的实际使用。但是 Symbolics 是一个相当专业的人工智能工作站,并且在 Document Examiner 首次推出时非常昂贵。因此,尽管它算作超文本在现实世界中的第一次使用,但它并不是一个广泛分布和广为人知的系统。
1985 年宣布了几个超文本系统,并在 1980 年代末和 1990 年代初得到广泛使用,包括施乐的 NoteCards 和布朗大学的 Intermedia。
相比之下,当 Office Workstations Limited (OWL) 在 1986 年推出 Guide 时,它是作为一种商业产品。Guide 是第一个广泛使用的超文本,可以在人们在家或办公室中使用的普通个人计算机上运行。在某种程度上,Guide的发布可以说标志着超文本从一个奇异的研究概念转变为一种用于实际应用的“现实世界”计算机技术。
迈向“真实世界”的最后一步是在 1987 年 Apple 推出 HyperCard 时。它本身就是一款不错的产品,它的真正意义在于每台 Macintosh 都免费赠送程序(或后来的阅读器)的营销理念1987年后出售。
真正标志着超文本从少数狂热分子的项目走向广泛流行的事件是第一次 ACM 超文本会议,Hypertext’87,于 1987 年 11 月 13 日至 15 日在北卡罗来纳大学举行。几乎所有活跃于超文本领域的人都在那里,从最初的先驱者(除了 Vannevar Bush)到本文作者。不幸的是,会议组织者完全低估了对超文本日益增长的兴趣,不得不拒绝了 500 名想参加会议的人中的大约一半。即便如此,我们还是挤在两个通过视频传输连接的礼堂里,人们不得不坐在地板上。对于那些有幸参加的人来说,这是一次很棒的会议,有很多机会与该领域的每个人会面,并了解正在进行的超文本研究和开发的丰富性。
1989 年在欧洲举行了第一次超文本公开会议,历史重演。这就是 1989 年 6 月 29 日至 30 日在英国约克举行的Hypertext’2 会议 。这次会议被称为 Hypertext’2 的原因是有是前一年在阿伯丁举行的第一次非公开会议。组织者再次低估了该领域的发展,并拥有只能容纳 250 人的设施。但是 500 人想来,所以一半不得不被拒之门外。
1989 年还见证了由 Taylor Graham 出版的第一本致力于超文本的科学期刊Hypermedia的诞生。它在参考书目中进一步讨论。
在 1990 年代中期,超媒体系统通过 CD-ROM 的普及引起了广大公众的注意。例如,1993 年Voyager Company发行了披头士乐队的电影《A Hard Day’s Night》时,第一部超媒体形式的全长故事片以 CD-ROM 形式发行。1993 年,压缩技术还很原始,足以让这成为一项壮举,唯一可能的原因是《A Hard Day’s Night》是一部相当短的电影,并且是用黑白拍摄的。图 3.11 显示了这个超媒体制作的屏幕。Voyager Company在整个 1990 年代发行了大量其他作品,并证明了通过专注于发送超文本已经成为可能创办一家成功的出版公司。
1990 年代中期的最后一个事件是互联网上超文本的极速增长,由欧洲核子研究中心(位于瑞士日内瓦的欧洲核物理研究中心)的 Tim Berners-Lee 及其同事带头制定万维网规范. 几乎在 1993 年 1 月美国国家超级计算应用中心 (NCSA) 推出之后,Mosaic 立即成为万维网最流行的浏览器,互联网超文本的增长速度更快。有关 Internet 上超文本的更广泛处理,请参见第 7 章。
有趣的是,Mosaic 和 WWW 或多或少地在短短三年内成功地建立了一个通用超文本系统,尽管 Ted Nelson 的 Xanadu 系统在 30 年的尝试中未能让他的 Xanadu 系统被接受。造成这种差异的一个主要原因无疑是 WWW 项目是由纳税人支付的(在 CERN 的情况下是欧洲纳税人,在 NCSA 的情况下是美国纳税人)。当成本为 0 美元时,它总是更容易销售产品。即便如此,万维网在Xanadu失败的地方成功还有其他原因。最重要的区别是万维网的开放系统性质及其与遗留数据向后兼容的能力。
WWW 设计者妥协并设计了他们的系统,通过开放标准与 Internet 一起工作,其功能与发布时网络上可用的数据类型相匹配。这些妥协确保了万维网的成功,但也阻碍了它提供理想的超文本系统所需的所有功能的能力。万维网底层超文本标记语言(HTML)的规范在引入系统后的前四年经历了三个版本,仍然不理想。毫无疑问,这种对迭代设计和进化变革的依赖比等待永远不会到来的革命要好。毕竟,如果要在完美与虚无之间做出选择,那么每次都没有胜算。
总而言之,我们可以说,超文本诞生于 1945 年,诞生于 1960 年代,慢慢培育于 1970 年代,最终在 1980 年代进入现实世界,并在 1985 年后以特别迅速的速度发展,并在 1989 年达到顶峰。我们现在有几个真实世界的系统,任何人都可以在他们当地的电脑商店购买(或免费与他们的电脑捆绑);我们有成功的会议和期刊;最重要的是,我们有许多在实际项目中实际使用超文本的例子。这些例子是下一章的主题。