::: {#26c8 .section .section .section—body .section—first .section—last} ::: section-divider
:::
::: section-content ::: {.section-inner .sectionLayout—insetColumn}
《编织万维网》:第2章-缠结点、链接与万维网 {#2766 .graf .graf—h3 .graf—leading .graf—title name=“2766”}
以CERN闻名的粒子物理研究中心跨越法国和瑞士的边界,靠近日内瓦。它坐落在侏罗山的石灰岩悬崖下面,离那些滑雪山坡只有十分钟的路程,它的下面是莱蒙湖(又称日内瓦湖),上面则是勃朗峰。它提供了独一无二的研究机会,而它所在的地域也提供了一个十分舒适的生活环境。
许多工程师和科学家从世界各地来到CERN,研究物质的那些最基本的特性。利用大量仪器,他们可以将微小的原子颗粒通过一系列管子进行加速,这些管子虽然只有几英寸宽,但却在一个巨大的环形地下隧道里绵延几公里。研究人员可以将这些粒子加速到产生极高的能量,然后让它们进行碰撞。在一个无法想象的极短时间里,新的粒子可能被制造出来,然后消失。这里的诀窍在于,当裂变产生的高能量残骸进入隧道内部足有房子那样大小、里面挤满了电子管的两个检测仪中的一个时,要把它记录下来。
这样规模的研究代价昂贵,必定需要许多国家之间的合作。来访的科学家们将在CERN进行他们的实验,然后回到他们本国的研究机构去分析所得到的数据。尽管它是一个集中的机构,CERN实际上是一个广泛的团体,其中没有什么常见的权威。这些科学家带来了各种不同的计算机、软件和工作程序,而且里然他们来自不同的文化,说着不同的语言,但他们总能找到一种协同工作的方法,因为他们对粒子物理都有共同的兴趣,而且希望看到一个(大的项目能够成功。这是 --- 个具有无比创造活力的环境。
1980年,CERN在为其两台粒子加速器更换控制系统。这项工作脱了期,CERN需要帮助。我那时恰好在瑞士的另外-个地方提供咨询,我的朋友兼同事凯文·罗杰斯从英国打电话建议我们一起去应聘。
在我们到那里参加面试时,凯文和我被带去进行参观,我们很快就来到一个狭窄通道上,朝外面看下去像是一个巨大、杂乱的工厂车间。这个硕大的实验大厅里布满了小实验室,它们相互之间用混凝土的砖墙隔开,这些砖墙都是匆忙建造起来以减少辐射的。沿着狭窄通道前行,我们来到了控制室。里面是一排排的硬件,除了许多指示灯和标度盘的闪光之外没有别的亮光。它是一个电子工程师的天堂,有整列的示波器、电力供应设备和定序设备,其中大部分是专为CERN或者由CERN自己制造的。
那时,一台计算机对于来此朝拜的科学家和工程师们来说仍然是一种圣物。大多数在CERN工作的人员在他们的办公室里还没有计算机终端;他们必须走到某个中心机构,比如控制室旁边的终端室,才能实际编制一个计算机系统程序。凯文和我将要加人一个最终会导致那个控制室寿终正寝的小组。不停闪烁的成排电子管将会慢慢被拆除,并由一个乏味的椭圆形计算机控制台取代,使它运行的软件则要强大得多。
承包程序员面临的最大挑战就是要尝试理解操纵这个硕大工场的系统,包括人员和计算机两个方面。大部分的关键信息只存在于人们的头脑里。我们大多数信息都是从那些特意放在两个走廊交叉口的咖啡桌旁的谈话中得来的。我会被介绍给从不熟悉的人流中拉出来的人士,我必须记住他们是谁,以及他们设计了哪些设备或软件。CERN的万维网风格的结构使这项工作变得更为困难。在CERN电话号码簿上的1万名人员中,只有太约5000人在某些规定的时间到CERN工作,只有3000人左右足真正领薪的工作人员,其他许多人有一个办公桌,只是不时从他们本国的研究机构来这里访问而已。
为了接纳像我们这样突然一拥而来帮助推进某个项目的承包者,管理部门在研究场地所在的一座长满草的小山上造起了轻便的小屋。我们这群人会在吃午饭时一边俯瞰瑞士的葡萄园,一边讨论我们的想法,或者在沿着那段长长的混凝土台阶下山到实验大厅和终端室编程的路上边走边讨论。在为那台质子同步增压器正式工作之余的零星时刻,我就摆弄自己的游戏程序(就是那个我称为Enquire的程序)来打发时间。一旦搞出了一个初步的样子,我就开始用它来跟踪谁写了哪个程序,哪个程序在哪台机器上运行,谁隶属于哪个项目等等。在CERN的非正式讨论常常会伴有涂写在餐巾纸和信封上的标有圆圈和箭头的图表,因为这是一种表示人物和设备之间关系的自然方式。我为Enquire写了一个4页的手册,里面讨论各种圆圈和箭头,以及在一个计算机程序中运用它们的对应符号是如何地有用。
在Enquire中,我可以键入一页有关某个人、某件设备或者某个程序的信息。每一页都是程序中的一个”节点”,有点像是一张索引卡片。创建一个新的节点的唯一办法就是从某个旧的节点那里建立一种链接。进入和退出一个节点的链接将会在每页底部编了号的表上显示出来,就像是一篇学术论文的结尾列出的参考书目录。寻找信息的唯一方法就是从起始页开始进行浏览。
我很喜欢Enquire,并且经常用到它,因为它储存信息时没有使用像矩阵或者树这样的结构。人的大脑始终在使用这样的组织结构,但同样也能打破它们作出跨界限的直觉式跳跃 --- --- 即我所渴望得到的随机联想。一旦我发现了这类联系,Enquire至少能将它们储存起来。在不断扩展Enquire时,我警觉地注意保持已经建立的联系。这个程序就是这样,我只有将新的知识与某个现有的知识链接起来才可能把它输人。对于每个链接,我必须描述其关系是什么。例如,如果有关乔的一页被链接到关于某个程序的一页,我必须说明乔编制了这个程序,还是使用了该程序,或者是其他什么情况。一旦得知乔使用了某个程序,Enquire在显示有关该程序的信息的同时,也会知道那个程序是由乔使用的。链接是双向起作用的。
Enquire在我们这个团体的软件开发计算机上运行。它并没有在某个网络上运行,当然更不用说在因特网上运行了,因为以后几年在CERN还未能用上因特网。Enquire有两种类型的链接:在一个文件中从一页(即当初所称的节点)连接至另一页的”内部”链接、以及不同文件之间跳转的”外部”链接。这里的区别是非常关键的。一个内部链接会在两个节点上同时出现。而一个外部链接则仅有一个方向。这一点很重要,因为如果给某一页建立此类链接的许多人可以加上一个返回链接,那么该页上面就会有数以千计的链接,而该页的主人可能根本不想费功夫把这些链接储存起来。此外,如果一个外部链接是双向起作用的,那么修改两个文件将意味着在两个地方储存相同的信息,这几乎总是自找麻烦:那些文件不可避免地会被弄乱。
最后,我编制了一个人员数据库以及一个软件模块的数据库,但是那时我的咨询时间到了。当我离开CERN时,我并没有随身带走Enquire程序的源代码。我是用Pascal这种常见的编程语言编写的,但它却运行于专有的诺斯克数据SYNTRAN-III操作系统上,而这个操作系统是相当晦涩难懂的。我将那张写有代码的8英寸软盘交给一位系统管理员,并解释说它是一个用来追踪信息的程序。我说如果他需要的话,欢迎他使用这个程序。这个程序后来给了一名学生,他说他喜欢它的编写方式 --- --- 一个Pascal程序就应当那样编写。看过这个程序的少数几个人认为那是一个不错的想法,但没有人使用过它。最后,那张磁盘遗失了,它上面有最初的Enquire程序。
当我离开CERN时,我与以前的一位同事约翰·普尔重逢。两年以前,凯文和我曾经与约翰一同共事过,我们试图用当时革命性的微处理器来升级令人讨厌的点阵打印机,这样它们就能打印出美妙的图形。我们三人坐在约翰家的前屋里,他的金色Labrador机器安置在一张桌子下面,大家努力试图使设计做到尽善尽美。我们只花了几个月时间就取得了成功,但约翰没有钱来继续支付我们工资,而且直到他卖出那个产品之前都不会有钱。那就是我们开始寻找承包工作并最终来到CERN的时候。
我在CERN待了6个月以后,约翰给我打来电话。“为什么你还没有回来?“他说。“我已经卖掉了那个产品,我们又搞到了一份承包合同。现在我们需要对它的软件支持。“约翰已经注册了一个图像计算机系统公司,凯文和我要回去帮助他。
我们重写了所有的马达控制程序以优化打印头的移动,这样它就变快了。它还能打印阿拉伯语,画三维图形,并且使用较便宜的纸张也能产牛预印信纸的效果。我们编写了自己的标记语言来编排文档,它还能接受那些昂贵得多的排字机的输人代码。我们不仅能改变字体,而且能改变打印机的几乎任何运转情况。
公司的生意非常不错,但我们所开发的技术仅限于我们所能放进打印机里的内容。由于个人原因,我需要改变环境离开英国,而我记得CERN有一个研究津贴项目。在1983年春天我决定向它申请,并最终于1984年9月到达那里。作为我离幵图像公司的一份礼物,约翰送给我一台康柏的个人电脑。它号称是最早的”便携式”汁算机之一,但看上去更像是一台缝纫机,更多的是”可以拖拉”而不是便携。有了这台新的个人计算机,以及伴随环境变化而来的新鲜感,我在自己的业余时间编写了另一个游戏程序,称为Tangle(缠结者)。我想要继续探索那些在我头脑里不断发展的关于联系的想法。
从某种极端的观点来看,这个世界可以仅仅看作是各种各样的联系,而非其他。我们把字典看成是意义的储藏库,但它对单词的定义只是借助其他词汇来完成的。我很喜欢这样一个概念,即一条信息只有通过它所关联的东西以及它是如何关联的才会真正得到界定意义实际上并没有什么其他东西。结构就是一切。在我们的大脑里有着数以亿计的神经细胞,但到底什么是神经细胞呢?它们只是细胞而已。在神经细胞之间建立联系以前,大脑是没有任何知识的。我们所知道的,我们所成为的,全部都来自我们的神经细胞进行联系的方式。
计算机把信息储存成字符的序列,因此意义对它们来说当然就存在于字符之间的各种联系中。在Tangle程序中,如果某一既定序列的字符重复出现,它就会创建一个代表该序列的节点。只要这个相同的序列再次出现,Tangle不必再重复它,而只需放置一个指向原有节点的注记。随着越来越多的短语被储存成节点,以及有越来越多的指针指向它们,一系列的联系就会形成。
这里的原理在于:真正重要的东西是在各种联系之中。字母无足轻重,重要的足它们一起排成序列构成单词的方式。单词无足轻重,重要的足它们一起排成序列构成短语的方式。短语无足轻重,重要的是它们一起排成序列组成一个文档的方式。我想象以这样的方式放人一本百科全书,然后询问Tangle程序一个问题。这个问题将会被分解成若干个节点,然后可以去查询同样的节点在百科全书里出现的地方。所得到的缠结点就会包含所有相关的回答。
我放入了这样一个短语”How much wood would a woodchuck chuck?”(一只美洲旱獭会吃掉多少木头?)以测试Tangle程序。机器思考了一会儿,并以一种非常复杂的、缠结数据的结构对我的短语进行了编码。但当我要求它将所编码的内容回吐出来时,它就会遍历所有的节点并再次输出,“How much wood would a woodchuck chuck?”我感到很有信心,因此我又试了这样一个短语,“How much wood would a woodchuck chuck if a woodchuck could chuck wood?”(如果一只美洲旱獭能吃木头的话,它会吃掉多少木头?)它想了一会儿,对它进行了编码,而当我要求它解码时,它回答道:“How much wood would a woodchuck chuck if a woodchuck chuck wood chuck chuck chuck wood wood chuck chuck chuck…”片乱陷入了死循环。要排除它所造成的混乱是如此
惊人地困难,以致我再也没有去碰那个程序。这就是Tangle程序的结局 --- --- 但并不是我想要表示信息的联系性的愿望的终结。
我始终停留在硬件与软件的分界点上,那是一个重要而且令人激动的领域,尤其是软件现在越来越多地取代硬件的功能。当我向CERN申请我的研究资助时,我特别说明我需要一个能够涉足硬软两方面领域的工作,并提议了我所能这样做的三个职位。最终,我被雇用到”数据获取与控制”部门工作,该团体负责各种实验结果的获取与处理。就像后来事情发展的那样,雇用我的佩吉·里默还教会我许多关于编写标准的知识,这对以后是很有用的。这次,我有条件看到CERN的更多方面、欣赏它的更多复杂性。尽管我所在的小组隶属于一个中央计算部门,但它也要与单独的实验团体协同工作,它们每一个都是来自全世界的科学家的不同组合。
到1984年时,CERN已经成长壮大了。一个新的加速器,大规模正电子加速器建造了起来。其周长27公里的隧道,从CERN地下的几百米处一直延伸到它的最远端,侏罗山山麓下面300米处的地方,从而使其他加速器都相形见绌。计算的复杂性也同样增加了。新一代的计算机、操作系统和编程语言,以及连接那些支撑大型实验的诸多计算机的各种不同的网络协议,都已经投人使用。来自IBM公司、数字设备公司和数据控制公司的机器,我们都应有尽有,还有个人计算机公司和不同的字处理机公司所提供的PC机或Mac机的新选择。
人们带着他们的机器和习惯到来,而所有其他人必须尽其所能地适应他们。然后这些小组回到他们自己的国家,尽管他们分散在不同的时区和使用不同的语言,但他们仍必须相互合作。就所有这些联系的多样性而言,CERN就是世界一切地方的一个缩影,虽然在时间上要超前几年。
我编写了一个”远程程序调用”(RPC)程序以方便所有计算机和网络之间的通信。有了RPC程序,操作者能够在某种计算机上编写一个程序,可以让它调用其他计算机的程序,即使它们运行的是不同的操作系统或计算机语言。无论碰到的是什么样的网络或线缆,RPC的各种工具都能起作用。
我开始在那台康柏计算机上重新构建Enquire程序。我编写这个程序的目的是让它能在可携带的康柏计算机以及我在CERN所使用的、由数字设备公司制造的VAX小型机上同时运行。然而,在这第二次编写中我并没有做这样一个充分的工作:我只是编写了内部链接的程序,而从未去编写关于外部链接的代码。这意味着每个网页面只能局限于一个文件内所提供的注解:没有链接能够联结那些封闭的世界。
我很清楚,在CERN需要像Enquire这样的程序。除了跟踪所有人员、实验和机器之间的关系之外,我还想要获得不同种类的信息,比如一位研究人员的学术论文,不同软件模块的操作手册,大小会议的纪要,仓促涂写的注记等等。此外,我发现自己已经回答了不同的人经常问及我的同样一个问题。只要大家能读一下我的数据库,一切将会是如此地轻而易举。
我所寻找的东西藏在文档编制系统 --- --- 让文档得以储存和将来取回的软件 --- --- 的一般类别下面。但是,这是一个让人没有把握的领域。我曾经看到过无数光临CERN的开发人员吹嘘那些能够”帮助”人们组织信息的系统。他们会说:“用了这个系统,你所要做的一切就是把你所有的文档分为四大类别”,或者,“你只需要将你的数据储存成一个WordWonderful文档就行了”,或者诸如此类的话,我看到一个又一个的吹噓者遭到愤怒的研究人员的严厉斥责,因为这些开发者要强迫他们重新组织他们的工作以适应其系统。我必须创建一个具有可被所有人接受的普通准则的系统。这就意味着要尽可能地做到没有任何准则。
这个构想看来似乎是不可能的,直到我认识到不同计算机和网络系统的多样性可以成为一种丰富的资源为止。这种多样性乃是需要加以体现的东西,而不是需要根除的问题。我为我这个最简单的系统所选择的模型就是超文本。
我的理想是在某种程度上将Enquire程序与超文本的外部链接和我已经为RPC开发的互联计划结合起来。一个具有外部超文本链接能力的Enquire程序成为自由与束缚、光明与黑暗之间的天壤之别。新的万维网将能够把不同的计算机结合在一起,而所有的新系统将能引出并解释其他系统。此外,任何浏览者都能即时增加个许点,即一个新的链接。
这个系统必须具有另外一个基本特性:它必须是完全分权式的。那是任何地方的一个新来者能够开始使用它而又不必向任何其他人请求进入的唯一方法。而且,那也是该系统能够迅速扩大的唯一方法。这样,随着越来越多的人使用它,它就不会停滞不前。这是良好的因特网风格的工程,但大多数系统仍然依赖某个任何事物必须与之连接的中央节点,而其容量最终将会限制整个系统的增长。我希望增加一个新的链接的动作将是很平常的;如果真是这样,那么一个拥有诸多链接的万维网最终将会均匀地遍布整个地球。
只要我没有引人某种中心链接数据库,就会恰当地权衡一切事物。没有什么特殊的节点,也没有特殊的链接。任何节点都能链接到其他任何节点。这会赋予系统所需要的灵活件,并成为一个全球化系统的关键所在。它所暗示的抽象文档空间能够包括可通过网络(以及网络之间的所有结构和联系)存取到的每一条信息。
如果超文本能够在想象上指向几乎任何事物,那么它将是最具威力的。每个节点、文档 --- --- 无论它叫什么名称 --- --- 在某种程度上基本上都是等价的。它们每一个都将拥有一个地址,从而能够查询到它。它们都将共同存在于同一个空间 --- --- 信息空间里。
到了1988年末,我正计划设法让一个超文本系统运作起来。我告诉了我的上司迈克·森德尔。他说它听上去像是一个不错的想法,但我必须写一份提案。一份提案?我对于在CERN如何写”提案”还毫无概念。但是我想,除非它被批准为一个正式项目,否则我决不可能得到许可去开发一个超文本的文档编制系统。我努力思考如何将这一想法的激动人心之处以一种能够说服CERN人土的形式写出来。
虽然Enquire程序提供了一种链接文档和数据库的方法,而超文本则提供了一个展示它们的通用格式,但要让具有不同操作系统的不同计算机之间实现相互通信仍然是有问题的。我在RPC项目中的导师之一本·西格尔曾经在美国工作过,并且看到过因特网。自此他就成为一位在CERN使用因特网的孤独的鼓吹者。他到处向人宣扬Unix系统和因特网正在把整个美国的各个大学和实验室联结在一起,但他遇到了相当大的阻力。在欧洲几乎看不到因特网的踪影,因为那里的人们推行的是一套独立的网络协议,它是由国际标准组织(ISO)设计和推广的。不管是出于”并非此处所产”的感情因素,还是由于真正的技术原因,欧洲人正试图通过委员会设计他们自己的国际网络。
然而,我对因特网充满了兴趣。因特网是一个将各种计算机连接起来的非常齊遍的通讯基础设施。在因特网出现之前,计算机是用专用的电缆相互连接起来的。一台计算机上的软件通过这些电缆与另台计算机上的软件进行通信并传送信息,比如一个文件或是一个程序。最初这样做是为了让某个实验室或者某家公司里的那些非常昂贵的早期计算机能够被不同地点的人们所使用。显然,一台计算机不可能与很多其他的计算机相连接,因为那样的话就需要从它身上引出成百上千的电缆。
解决办法就是通过一个网络间接进行通信。因特网就是一个网络之间的网络。而其本质就是一套标准化的协议 --- --- 即计算机相互间传输数据的协定。这些数据可以通过不同的载体进行传输,比如电话线、有线电视电缆以及卫星信道等。数据可以是文本、一条电子邮件消息、一段声音、一幅图像或者是一个软件程序 --- --- 什么都行。当一台计算机准备发送数据时,它使用特殊的软件将这些数据分解成符合两个因特网协议的包(packet),这两个协议会决定那些包将如何传送:它们就是IP(网际协议)和TCP(传输控制协议)。软件给每个包标上一个唯一的编号。它通过电话线或者有线电缆将那些包发送出去,而接收的计算机则用它自己的因特网软件根据其编号将它们还原。
因特网在70年代就已出现并投人运作,但传送信息对于一个非计算机专家而言实在是太困难了。他需要运行一个程序以连接另外一台计算机,然后与另外那台计算机进行对话(当然是用另一种不同的语言),再运行另一个不同的程序来存取信息。
即使当数据已经传送回他自己的计算机,对它进行解码可能也是难以做到的。
然后,电子邮件发明了。电子邮件可以让消息从某人传送到另外一个人,但它并未形成-个信息能够永久存在和查询的空间。消息是短暂易逝的。(当运行于因特网基础上的万维网到来时,它会给这些信息一个保留的空间。)
CERN在采纳因特网方面的滞后是令人惊讶的,因为这个实验机构始终处在联网和电信领域的最前沿。因为缺乏商业性的网络,它开发了CEHN网(CERNnet),这是它自己构建的网络。它也有自己的电子邮件系统。而且它还是沟通不同的专用邮件和文件系统的中心。
我对因特网感兴趣是因为它也许会在不同的计算机操作系统和网络之间提供一个桥梁。CERN是一个技术上的大熔炉。许多物理学家都习惯于数字设备公司的VAX/VMS操作系统和DEC网(DECnet)的通信协议。其他一些人则喜爱正在不断发展的竞争性操作系统Unix,它使用的是网际协议。每当一项新的实验开始时,人们总会为了究竟使用VAX/VMS和DEC网,还是使用Unix和TCP/IP而产生一番争执。我自己已经开始偏向于TCP/IP,因为TCP协议开始也在VMS系统上出现。它最初并非来自数字设备公司,而是来自澳大利亚的伍伦贡大学。
使用TCP/IP将意味着Unix世界就足以满足要求了,因为它已经在使用TCP/IP,而那些身处VAX世界的人也能进入Unix的世界。最后,通过从伍伦贡大学获取一个TCP/IP软件,两个竞争对手之间有了一条相互通信的途径。我变得如此相信TCP/IP的重要性,以至于给RPC系统增加了代码,使它能用TCP/IP进行通信,并为它创建了个能够识别RPC系统上每个远程服务的寻址系统。那就是因特网开始进入我的生活的时候。
至于那份提案,我还必须想出把Enquire程序提升为一个全球系统所需要的东西。我必须把这个项目当作一个文档编制系统(CERN已经察觉对它的需求)而不是一个超文本系统来兜售,后者听起来太没有价值了。但是如果这个系统将要发展成一种穿越网络存取信息的方式,它就会与CERN的其他文杓编制系统展开竞争。鉴于以前有多系统已经被抛弃,我知道关键在于强调它会让每个人在他的计算机上保留自己的组织风格和软件。
这个系统需要一种简单的方式让人们在他们的文档中表示链接,并在链接之间航行。在线的”帮助”程序中有这样一种模型:如果屏幕上有一条用者无法理解的命令或者工具,他只需用鼠标点击它,更多的信息就会出现。这种方法被称为”热按钮”(hot button),特德·内尔森的超文本的一种派生物,而超文本随后被苹果计算机公司的”超卡片”(Hypercard)所用,后来又以某种方式为微软公司所用。我决定,在我的系统中,如果某人想要给-段文本加上-个超文本的链接,提示该链接的单词将以某种方式在屏幕上加亮显示。如果一位浏览者用鼠标点击了个加亮显示的单词,系统就会把它带到那个链接上去。
各个组成部分已经开始各就各位了。TCP/IP将是精心挑选的网络协议。出于”营销”方面的目的,我将指出该系统足一个能够在DEC网上运行的系统,其附加的好处是人们也能通过因特网进行通信。那就留下了一条后路:对于那些交换和共享文档的人来说,他们必须拥有一个简单而共同的寻址方案,这样
他们才会知道如何找到他们的文件,而其他人也会知道如何请求调用这些文件。我修改了那个简单的RPC寻址方案。
在向一个实验团体宣讲我的论点时,我会着重强调他们一般都拥有不同种类的文档信息 --- --- 一个”帮助”程序,一本电话簿,一个会议信息系统,一个远程图书馆系统 --- --- 而他们会寻找方法来创建一个统一的主控系统。他们将会有三种选择:(1)设计另一个文档编制方案,它应当比所有以前尝试过的都出色;(2)使用现有方案中的一个,并设法解决其局限性;或者(3)认识到所有这些远程系统都具有某种共同点。我会告诉他们,“我们能为通信创建一个共同的基础,同时让每个系统依然保持其独立性。那就适这个提案的内容所在,而全球的超文本正是能让你们做到这点的东西你们所要做的只是为你们系统的每个文杓或屏幕建立一个地址,剩下的就简单了。”
1989年3月,我终于跨出那一步去写一份提案。我想要解释的是,普遍性是一个信息网络的本质。另一方面,我感到我必须让这个系统成为某种只有在CERN才能产生的东西。我很高兴能够逃避那些等级制的文档编制系统对我的束缚,但我不希望让任何为等级体系负责的人来扼杀我。我必须表明这个系统如何能够结合截然不同的事物,因此,我提供了一例某个因特网新闻组的消息,以及我的旧Enquire程序中的一页。
我非常轻率地期望有一个能够由机器处理的数据网络。我说道:
“在拥有一个庞人的嵌有链接的超文本数据库的情况下,一种令人感兴趣的可能性就是它能允许实现某种程度的自动分析…假设我们制作一个巨大的三维模型,其中的人物用小圆球表示,而具有某种共同之处的人物之间则连上线。
“现在假设我们拿起这个结构并摇晃它,直到你对其中的缠结有了一定的了解:也许你在某处看到了紧密组织的团体,而在另外某处则是沟通的薄弱区域,只分布了寥寥数人。也许一个链接的信息系统将会让我们看到我们所服务的组织的真正结构。”
我不知道以后会有关于这方面的博士论文。
至于要在提案中包含或排除哪些技术要点,以及要强调系统的哪些社会效益等等的所有决定,我在项目管理的细节上相当草率:
我想对项目的这一阶段来说有两个人工作6至12个月就足够了。第二阶段将几乎肯定要包含一定的程序编写工作,以便在CERN的诸多机器上建立一个真实的系统。这里的一个重要部分(下面将对此作出讨论)是一个超文本系统与现有数据之间的集成,这样它就能提供一个通用的系统,并在早期就取得至关重要的实用性。
到1989年3月底,我已经将该提案交给了迈克·森德尔;也交给了他的上司戴维·威廉姆斯;还给了其他几个人。我把它交给了负责监管CERN所有计算机协同工作的一个中央委员会的成员。但没有可以让我要求答复的讨论会。什么事情也没有发生。
当我等待某种反馈的时候,我在与别人的谈话中测试我的想法,而反应是多种多样的。CERN的人员有着诸多相互重叠的效忠对象:也许有人是对CERN,有人是对某个实验,有人是对某个想法,有人是对某种做事情的方法,有人则是对他们自己原来的研究所…更不用说苹果公司的Macintosh机用户或者IBM的PC机用户的心向了。反响缺乏热情的另一个原因在于CERN是一个物理学实验室。那里有决定合适实验的委员会,因为那才是他们的老本行,而信息技术至多不过是达到目的的一种手段,因而也就没有多少组织会来过问它了。对于像全球超文本这样非常综合性的想法来说,情况就更糟了。即使是RPC项目也很少从CERN内部得到正式的支持,它也是综合性的一项任务,但它从不同的团体那里得到了充分的支持,因而我能让它继续运转下去。
与此同时,我越来越多地介入了因特网,并认真研究超文本。那时,我比以往更确信我走的是正确的轨道。到1990年初,我仍然没有收到关于那份提案的任何反应。我决定再次分发该提案以试图激起人们的某种兴趣。我对它重新作了编排并打上一个新的日期:1990年5月。我再次把它交给戴维·威廉姆斯,而它又一次被束之高阁。
在这期间,我向迈克·森德尔提出购买一种名叫NeXT的个人计算机。NeXT有限公司是最近由斯蒂夫·乔布斯创建的一家公司,此人曾创建了苹果计算机公司并给个人计算机带来了最早的、直观的点击式文件夹界面。我们的Unix系统和因特网鼓吹者本·西格尔曾经提及,NeXT的机器具有许多令人感兴趣的特性,它们可能会对我们有所帮助。我要求迈克让我购买一台(并拉上本以增加此事的分量),他同意了。他还说:“一旦你得到了那台机器,为什么不试着在它上面编写你的超文本程序呢?“我想我从他的眼睛里看到一种愉快的神情。
通过购买一台NeXT计算机,我们能把我在那个长期搁置的超文本项目上的工作解释为使用NeXT的操作系统和开发环境的一项试验。我马上开始为这个新生的项目起名。我寻找着那些能够表明其新颖结构的询汇。一种思路是叫罗网(Mesh)或者信息网(Information Mesh),提案中的图例用的就是这个词,但它听上去太像mess(一团糟)了。我还想到过用信息宝库(Mine of Information),简称MOI,但moi在法语中意为”我”,那又显得太自大了。另一种方案是用The Information Mine,但那个缩略词TIM则显得更加自大!此外,宝库的概念并不完全准确,因为它没有包含有关全球性事物或者超文本的想法,而且它表现的只是取出信息,而没有把信息放进去的意思。
我还在寻找一个有特征的缩略词。我决定,我要用HT(意指超文本)来启动该系统包含的每个程序。然后另一个名字冒了出来,它可以作为代表全球超文本的一种简单方法。这个名字在数学中用来表示一种使得任何节点都能与其他节点相链接的一个节点和链接的集合的方法。它反映了该系统所能链接的人员和计算机的分散化本质。它指出了一个潜在的全球化系统的前景,而且它暗示了某种有趣的图像。
CERN的朋友们对我施压,说它绝不会流行起来 --- --- 尤其是因为它会产生一个读起来有9音节长的缩略词。但不管怎样,我决定继续前进。我将把我的系统称作”World Wide Web”(万维网)。
( 张宇宏/萧风. 编织万维网[M]. 1999.) ::: ::: :::