· 约 35 分钟 · 10,928 字
最后更新于

Dotcom编年史 (三):没法做一套双向链接

专栏Dotcom 编年史》专栏第 5 篇 · 共 5 篇

1991 年深秋,Tim Berners-Lee 从瑞士的欧洲核子研究中心(CERN)去圣安东尼奥开会,路上在北卡罗来纳州的教堂山停了一站。他在 CERN 写出了 Web 的第一个浏览器和服务器,第一篇讲过。北卡大学信息技术办公室里有一个做网络服务的小组,负责人之一叫 Paul Jones。Jones 后来回忆,客人来之前,他给附近一个计算机系打了个电话,想请行家一起看看。电话那头听说过这个项目,不以为然,一口气说了六条,Jones 没有写下这个人是谁。前四条是技术的:超文本的链接必须是双向的,WWW 的只有一个方向;服务器之间互不知道对方;没有中心节点;服务器不记状态。第五条说写这个超文本引擎的人显然不懂 SGML,HTML 全做错了,那场争论番外一讲过。最后一条:他把这东西免费送人,说明它一文不值,“我们有自己的版本,还有一个有实力的授权伙伴”。前五条说它做错了,第六条说就算做对了也不值钱。1

Berners-Lee 到了以后,掏出一张 NeXT 电脑用的可擦写光盘,里面存着他准备在会上用的演示页,装进 Jones 的 NeXT,带他把 Web 走了一遍。页面上有一个链接通向隔壁房间的一个数据库,点一下,请求先到瑞士的 CERN,因为把 Web 请求翻译给数据库的那个网关程序当时在 CERN,再回到北卡,结果再经瑞士回来。查一下隔壁房间的东西,横渡了四次大西洋。我想他没有为这条路线不好意思。在他眼里这正是要演示的东西:页面在教堂山,网关在日内瓦,数据库在隔壁,点一下都到得了;至于隔壁为什么要绕地球一圈,那是网关还没装到北卡的事,不是 Web 的事。Jones 没有带他去见打电话的那个人,他多半也不知道有过这么一通电话。1

教堂山那通电话里的六条,Jones 2013 年的回忆

教堂山那通电话里的六条,Paul Jones 2013 年 5 月 29 日博客的一段,回忆 1991 年深秋;引文照原文,编号为本文所加,字体为现代排版。这是二十二年后的回忆,六条是他对电话那头一位未具名者的转述,此处作史料节选引用。

12 月中旬,Berners-Lee 和 CERN 的同事 Robert Cailliau 到了圣安东尼奥。演示要用的一个数据库接口,是斯坦福直线加速器中心(SLAC)的图书馆几天前刚架起来的,第二篇讲的就是那台服务器。计算机学会(ACM)的 Hypertext ‘91 是超文本研究者自己的会,他不是这个圈子里的人。他 1976 年在牛津读完物理,在学校里用烙铁、一把逻辑门芯片和一台旧电视机拼过自己的第一台计算机,毕业后在英国南部做了几年电信设备和打印机软件,1984 年到 CERN 的岗位是做数据采集用的分布式实时系统,设计过一套跨机器的远程过程调用。超文本是他业余的事,一直到 1989 年写提案,才成了正事。2他是带着把握去的。Jones 记得,他行前看新闻组上的反应和自己服务器的日志,觉得会在会上拿到一个好的发言位置。拿到的是海报和演示位。评审人之一 Mark Frisse 多年后说,决定是委员会作出的,论文读起来像一个写文档的工具而不是超文本系统,而当时圈内正在争论这类系统里的链接是否必须双向,以保证引用的完整;“如果没记错,Tim 的演示轰动全场”。他自己怎么说这件事,只有 1 月 24 日那封项目通讯里的一句:“W3 的演示在圣安东尼奥的 HyperText’91 反响热烈。”下一句就写 Groff 在法国的一个研讨会上现场演示了 W3,再下一句写 5 月在因斯布鲁克的会“邀请我们演示,也邀请我们提交论文”。海报两个字没有出现。我读这封通讯,读到的是一个不打算在这上头花时间的人:这边不给讲台,别处有人请,那就去别处。论文集里没有 Web,第 39 到 50 页收了一篇分析 Xanadu 的文章。Xanadu 这个名字,第二篇提过一句,这里要多说两句。Ted Nelson 是“超文本”这个词的发明人,按他自己的说法,念头是 1960 年在哈佛读研究生时有的,词是 1965 年发表的,那年他在计算机学会的年会上宣读了一篇论文,题目叫《复杂、变动、不确定之物的文件结构》。Xanadu 是他从那时起设想的系统,到 1991 年想了三十年,还没有做出来。没做出来不妨碍它的分量。这个圈子里的人谈超文本,绕不开它:Berners-Lee 1989 年的提案引了它,这届会议正式收了一篇分析它的论文,1992 年他自己写文章介绍 Web 时又把它单独拎出来,这些下面都会讲到。它后来的名声和结局,专栏会另写一篇。这一篇只需要知道,它是当时行家心里超文本该有的样子。34

今天读到这里,可能会觉得链接不过是一个地址,点一下跳过去,断了就断了,值得这么认真吗。1991 年的超文本研究者不这么看,因为链接是超文本里唯一的结构。一本书有目录、页码、索引,超文本什么都没有,只有一段文字指向另一段文字的那些线;线靠得住,这个东西才成立。他们要的“双向”是三件事。读者站在一篇文档上,要能反过来看到有谁引用了它,这是 Vannevar Bush 1945 年设想“路径”时就有的一半价值。文档搬家或改动时,指向它的链接要跟着变,否则就会断;格拉茨工业大学的 Frank Kappe 1992 年 6 月给 Web 项目写信说,反向追踪“对维护超文本的完整性是必不可少的”。还有一切建在链接上的东西,引用、批注、Xanadu 的版税,都要求那条链接明天还在。一个只记“从这里到那里”、不记“谁指向这里”的链接,在他们眼里等于把整座楼盖在没人保证的地基上。5

这三件事的分量,Berners-Lee 比谁都清楚,因为第一件他自己做过。1980 年他在 CERN 当了六个月合同工,为了记住自己经手的那堆软件,写了一个程序叫 ENQUIRE,第一篇讲过。那份 1980 年 10 月的手册里,节点之间的关系全是成对的:uses 配 used-by,includes 配 part-of,made 配 made-by,describes 配 described-by;站在任何一个节点上,都能看到有谁用了它,手册说这是为了改动一处时知道会牵涉哪里。这正是 Kappe 十二年后要的反向追踪。手册给“人”这一类节点下的定义是“所有系统最终都要依赖的那种奇怪而不可靠的生物”。那时他不知道世上已经有“超文本”这个词,这是他 1989 年自己说的;程序只他一个人用,从没发表。6

教堂山那通电话的第一条和圣安东尼奥评审的顾虑,指向同一件事:链接只有一个方向,随时会断。他为什么还是这么做了?做不到的部分拿什么代替?Berners-Lee 在 1992 到 1993 年的邮件列表上回答过,不止一次。他不否认这条指责,读他的信,也看不出他为这条指责烦恼过。拿正统超文本的标准来要求他的人,这两年里一直有,而那套标准最完整的版本叫 Xanadu。

“Xanadu 项目除外”

行家要的是什么,那篇收进论文集的文章写得最全。作者是匹兹堡大学法学院的 Pamela Samuelson 和匹兹堡一家叫 Hypertext Engineering 的公司的 Robert Glushko,他们把 Nelson 的 Xanadu 称作“迄今最雄心勃勃的数字图书馆与超文本出版方案”:一个装下“全世界文献”的库,同时是写作环境、出版环境、图书馆和书店。读者按读了多少字节付费,其中一到两成归被读的作者。引用别人的段落不用复制,直接把那几个字节嵌进自己的文档,读者读到时两位作者都拿到版税。链接本身算作品,别人沿着你的链接走一次,你也拿钱。按这个规矩,这篇文章引了谁的话,谁就该分到钱,脚注里的每个人都有份。要让这些成立,链接就不能断:已发表的文档不能撤回,因为别人的链接和衍生作品建在它上面。两位作者的结论是,这套关于作者和读者怎样行事的模型,有些部分“可能行不通”。文章还提到,Xanadu 正由 Autodesk 公司商业化。7

Samuelson 与 Glushko 分析 Xanadu 的论文,1991 年,摘要

论文集第 39 页:Samuelson 与 Glushko 分析 Xanadu 的论文,标题、作者与摘要。裁自 Robert Glushko 存档的 PDF首页,字迹为原扫描,未重排。© ACM/作者,此处作史料节选引用。

Berners-Lee 知道这套设想,而且对它一直客气。他 1989 年在 CERN 写的那份提案,第一篇讲过,第一篇没讲的是提案把“超文本”一词归给了 Nelson,还提到了他的 docuverse,那是 Nelson 给设想中容纳一切文献的空间起的名字。1992 年春天,他和 Cailliau 等人在一份期刊上介绍 Web,开头一节叫“梦想”,从 Vannevar Bush 说起,那位美国科学官员 1945 年写文章设想过一台把个人藏书用关联连起来的机器,接着一句:“Xanadu 系统是一个雄心勃勃的分布式超文本项目。”下一节问,超文本和全文检索系统都有了很多年,为什么还没有一个全球系统?答案是缺三样东西:统一的文档命名办法、共同的网络协议、共同的超文本格式。然后是这一句:“大多数超文本系统的研究,Xanadu 项目除外,关注的是用户界面和写作问题,而不是广域和长期分发的问题。”他把 Xanadu 单独拎出来,是承认对方也在想广域分发的问题;别的系统连这个问题都没想。两边要的东西并不一样,Xanadu 还要收费和版税,但在“文档散在全世界的机器上怎么连起来”这一点上,他们是同一个问题的两种答案。我猜这句客气是真心的。一个人在介绍自己项目的文章里给对手留一句好话,不是礼貌,是他把对方当成了同一间屋子里的人,屋子里别的人都在想别的事。8

Web 项目自己的邮件列表叫 www-talk,Xanadu 的名字在上面第一次出现,是在钱上。1992 年 6 月底,列表上有人提议一种“付费链接”,点之前先警告读者要收钱。Berners-Lee 在 CERN 的同事 Jean-François Groff 回信说,按次收费有种种麻烦,“Xanadu 本来要实现这个,作为对版权问题的回答”,想了解的话去读圣安东尼奥那篇 Samuelson 和 Glushko 的论文。“本来要实现”说的是设计。那时 Xanadu 的按次收费只存在于纸上;Web 这边,连纸上的方案都还在列表上吵。9

Xanadu 软件的下落在 1992 年夏天有了消息。8 月 20 日,做 AutoCAD 绘图软件的 Autodesk 公司宣布剥离信息系统部门下的两家公司,其中一家是 Xanadu Operating Company,理由是它们“不符合 Autodesk 的核心业务”,给了三十天过渡期去另找资金。消息传得不快。CERN 网站上介绍 Nelson 的那一页,11 月的版本还写着“Xanadu Operating Company 现归 Autodesk 所有,但项目在继续。代码‘随时’发布”,‘随时’两边的引号是原页就有的;后来的版本改成“曾一度归 Autodesk 所有,后被放弃(1993 年还不清楚那边会怎样)”。这一页挂在他自己的网站上,由他自己改。一个人给对手的项目维护一页介绍,等对手的代码,等了一版又一版,我想那种等法不会是焦急的,更像是隔一阵回头看一眼,看有没有新消息,然后接着干自己的活。1993 年 1 月,他在列表上讨论文档怎样收费、缓存里的副本怎么算时插了一句:读过《Literary Machines》吗?那是 Nelson 自己出版的讲 Xanadu 的书。那本书把这些讲得很细,“或者说,至少 Xanadu 本该把这些做细”。半句顺手的刺,刺完接着谈自己的缓存。到这时候,他对 Xanadu 的态度差不多定了型:书是好书,东西没出来,他不打算等。109

Autodesk 剥离 Xanadu 的新闻稿,1992 年 8 月 20 日

1992 年 8 月 20 日 Autodesk 的新闻稿,取标题到 Xanadu 一段。文字取自 fourmilab.ch 保存的 John Walker 编《The Autodesk File》第五版网络版,以等宽字体重新渲染,略去之后的员工信与 AMIX 部分,两处底色为本文所加。新闻稿出自撤资方,对 Xanadu 功能的描述是公关口径。© Autodesk,此处作史料节选引用。

“没法做一套双向链接”

回到 1992 年的列表。Xanadu 的东西没出来,它代表的那套标准却在 www-talk 上被人一条条提出来。5 月和 6 月,一位叫 Robert Raisch 的使用者两次发长信,自称 1977 年听过 Nelson 演讲,此后想了十五年超文本;他列出 Web 应该支持的链接类型,其中一种叫“包含”,把别处的元素直接收进当前文档,正是 Xanadu 的引用嵌入,另一种是 Nelson 的 stretch text,一段文字收起来是提要、展开是全文。11

6 月 25 日,Kappe 写来一封“相当长”的信,说他们自己的超文本系统 Hyper-G 把链接存在文档之外的链接库里,而不是像 HTML 那样写在网页正文中,好处是能反向追踪,知道有谁指向了这一页,“这对维护超文本的完整性是必不可少的”;他还画了图,说明两个交叠的锚在 SGML 那种成对的标签里根本写不出来,一个锚标着第一、二段,另一个标着第二、三段,两个范围交叠,开合标签套不起来。当天晚上 Berners-Lee 在另一条线程里说到同一件事:交叠或嵌套的锚原则上没有理由不行,“但现在不做”。11

Kappe 那封信他压了二十天。7 月 15 日 0 点 33 分发出的回信,开头先认账:“我回得很晚。”那时列表上的问题差不多都归他一个人答,压二十天不奇怪,奇怪的是他还是回了,而且回得很长。先讲 Kappe 的交叠锚,他说这当然违反 SGML 严格嵌套的信条,“SGML 的人在这上面会变得相当宗教,我不会”。他不是不懂排版,1978 年在多塞特一家小公司写过智能打印机的排版软件;他不信的是严格嵌套这条教义。他觉得能引用两段交叠的文字是有用的,问题只在 SGML 的工具会把这种结构当成“坏”的。然后才到链接库。Kappe 提的那种,是 Norman Meyrowitz 等人在布朗大学做的 Intermedia 系统的模型,链接集中存在一个库里,Intermedia 管这个库叫“web”,和后来的 Web 同名,由读者共享、统一协调。“如果把这个系统扩展到不止一台服务器,再扩展到全球,你会发现,从前发生在文档之间的一致性问题,现在同样发生在多个链接库之间。比如你没法做一套双向链接,而在非分布式的情况下你可以。”话说到这里,按理该收了。他没有收,接着写“不过链接库也有它的好处”,说自己“眼下相当热衷”的是另一个模型:服务器同时管链接和版本,链接不指向文档里的某个标记,只记某个版本的第几个字符,文档改了,由服务器把旧位置换算到新位置。他自己接着挑毛病,说 diff 对付不了把文件前后两半对调这种改法,那就让编辑器把每一步改动告诉服务器;既然都做到这一步了,“再多走一小步”,让服务器协调多人同时编辑,就是一个群组编辑器。一封回答“你们为什么做不了双向链接”的信,写到凌晨,写成了他下一个想做的东西。前一天晚上他在另一条线程里提议过一个“现成可捡”的项目:把邮件列表的存档收起来建索引,自动补出哪封信引用了哪封,他说这会是“管理不听话的信息的一次很酷的练习”,“有人要吗”。存档里没人应。反向链接可以由机器事后补出来,这个念头这时已经有了。12

Berners-Lee 回复 Kappe,1992 年 7 月 15 日凌晨

1992 年 7 月 15 日凌晨 Berners-Lee 回复 Kappe 的信,取关于链接库的两段。文字取自 www-talk 1992 年第 149 号,以等宽字体重新渲染,省去 Received 行与空邮件头,前文三十行关于 DTD 的讨论与末尾以方括号标明省略,两处底色为本文所加;不是 1992 年终端上的显示效果。邮件作者为 Tim Berners-Lee,此处作史料节选引用。

教堂山那通电话说的没错,Web 的链接只有一个方向;Berners-Lee 的回答是,一旦服务器不止一台、归不同的人管,双向就保不住,与其假装能保住,不如承认。写过程序的读者会问,目标服务器可以自己记下谁指向了它,Hyper-G 就是这么做的,为什么不算解决?他的信没有说这在原理上做不到,说的是一致性问题会从文档之间挪到链接库之间:一台服务器上的页面改了,别的服务器上关于它的记录要跟着改,谁来保证?我理解他的意思是,只要没有人能替别人的服务器保证这件事,双向就是假的。这类问题他不陌生。他到 CERN 的本行是分布式系统,1984 年以后做的远程过程调用,就是让不同厂家的机器互相调用对方的程序;我想,一致性保不住会是什么样子,他是在那几年里见识过的,所以这一次没有打算假装。他自己想的出路是另一条:反向链接不由作者写,由机器事后算出来。代价很快有人碰到。链接是写在页面里的一串地址,没有系统替它跟着文档走。10 月底,密歇根一家网络公司的 Edward Vielmetti 把一个网页存到自己硬盘上,再打开,“所有的交叉引用链接都没了”,因为那些链接写的是相对于原服务器的地址,离开那台服务器就失效了。今天链接会失效,页面会告诉你找不到,根子在这里:没有一个系统替你保证链接两头都在。12

“显式链接不可能”

1993 年的反对换了一批人,也换了说法:不再问链接是不是双向,而问链接谁来维护。5 月 4 日,IBM 的 Eliot Kimber 在讨论 SGML 的新闻组发了一个帖子,题为“显式链接不可能”。他用 IBM 自己的文档库算了一笔账:一本一百页的书里,一个作者手工维护一千条链接可以;十本书之间,每本向别的书各连一百条,勉强;跨库的链接超过五十条就维护不过来,“跨企业的链接显然不可能,不值得考虑”。第二天,伊利诺伊大学国家超级计算应用中心(NCSA)的 Marc Andreessen,那时刚放出图形浏览器 Mosaic 的人,把帖子转到 www-talk,在那句“不值得考虑”下面用一排脱字符划了线,附一句挖苦:这口气一听就是 IBM 的,“去年你们不是亏了五十亿吗”。转帖的人那年 21 岁。13

“显式链接不可能”,Kimber 帖与 Andreessen 的回复,1993 年 5 月

上:1993 年 5 月 5 日 Andreessen 转发的 Kimber 帖,取算账的一段和 Andreessen 的附注,中间两处省略以方括号标明;下:Andreessen 同日给瑞典使用者的回复全文。文字取自 www-talk 1993 年第二季度第 225 号第 228 号,以等宽字体重新渲染,三处底色为本文所加;不是 1993 年终端上的显示效果。作者为 Eliot Kimber 与 Marc Andreessen,此处作史料节选引用。

回帖的人没有一个说 Kimber 算错了。瑞典的一位使用者说,自己写 HTML 的经验支持这个结论,维护指向别人文档的链接“几乎不可能”,如果 Berners-Lee 哪天把 CERN 上的目录改了名,“就像把我脚下的地毯抽走”;他提议一种像 ISBN 那样的超文本编号,又说这太复杂了。Vielmetti 说不必做很深的显式链接,“预装一个搜索”把人送到附近就够,他设想一个叫 spidey 的检索服务,按文件名、关键词或书号找,结果是概率性的,文档搬走也不会立刻失效,“(但愿如此)”。BSDI 公司的 Tony Sanders 说本地可以用反向引用管理变更,全局不行,“我同意大规模显式链接不可能,但它也不可取”。Andreessen 的回答最短:他不觉得现在维护链接容易或便宜,也没有魔法工具,“但技术现状的限制不该拿来判断可能或不可能,莱特兄弟早就教过我们这一点”。莱特兄弟不用维护链接。13

这场争论里没有人提 Xanadu。Kimber 没有开药方,他只是说人做不了;而 Xanadu 承诺的正是把这件事从人手里拿走,由系统维护链接。列表上的人承认自己给不了,分歧只在这算不算问题。Berners-Lee 没有在这条线程里说话。他不必说,这个问题他一年前就答过,答案就是让出去:链接要是能维护,是人和机器的事,不是系统保证的事。现在别人替他吵,吵的已经是他让出去之后的问题。Xanadu 在列表上还有另一副样子。6 月,有人在列表上设想图书馆员在屏幕上给文献加批注、连线的场景,Raisch 回了一句“啊……Xanadu 之梦”,劝人去读 Nelson 的书,说那些书改变了他的一生。13

“不等于有人在用”

1993 年 9 月,有人指出 HTML 能表示双向链接,锚标签有 REL 和 REV 两个属性,一个说这条链接从这头看是什么关系,另一个说从那头看是什么关系。指出这一点的人自己补了半句:“当然,这不等于有人在用。:)”荷兰的一位使用者接着问:谁能告诉我怎么用,它们能帮我做什么?CERN 的文档写得很含糊,当时最流行的图形浏览器 Xmosaic 支持吗?存档里没有人回答第二个问题。同一个月,Berners-Lee 在讨论文档命名和版本号时顺口加了个括号:多级的版本号“(我想这基本上就是 Ted Nelson 的 tumblers)”,那是 Xanadu 给每个文档和版本编号的办法。他读过 Nelson,记得 Nelson 的词,随手就用,只是没有照着做。14

12 月 6 日,加州大学尔湾分校的 Roy Fielding 在列表上征求意见,他要写一个程序,叫 MOMspider,替多个站主做维护的蜘蛛。它替一批站主定期遍历各自的网页,从一个顶层页面往下爬到每一片叶子,找出三种东西:“无法访问的被引对象(断链)”,最近改动过的对象,过了有效期的对象,然后给每位站主生成一份索引页,本身也是超文本。Berners-Lee 当天晚上回信,“我来唱唱反调”,争的只是网页该用哪个标签标明自己的主人,好让机器知道断链该通知谁。Fielding 说用现成的 LINK 标签写主人太牵强,他回答 LINK 本来就是设计来写任何两头的关系的,随手举例:Jack 爱 Jill,Jill 爱 Jack,Jack 喜欢派,Jill 做派,Jack 吃派,Jack 离不开派,Jack 需要派。一个人在争一个标签的用法时写出这么一串,我想他那天晚上心情不坏。至于蜘蛛本身,他没有反对。15

Fielding 的 MOMspider 征求意见稿,1993 年 12 月 6 日

1993 年 12 月 6 日 Fielding 征求意见稿的“问题”与“部分解决方案”两节。文字取自 www-talk 1993 年第四季度第 710 号,以等宽字体重新渲染,省去开头的说明与末尾的遍历规则,两处底色为本文所加;不是 1993 年终端上的显示效果。邮件作者为 Roy T. Fielding,此处作史料节选引用。

程序做了出来,半年后在日内瓦的第一届 WWW 会议上发表。在我读到的材料里,它是 Web 这边第一个专门为断链写的程序。Xanadu 的设计承诺链接不会断,Web 的做法是让一台机器定期去看哪些已经断了,再通知主人。责任从系统挪到了站主,从事前挪到了事后。今天网站用的死链检查工具做的就是这件事。Fielding 发出征求意见的这一天,离教堂山那通电话过去了两年。16

从教堂山到 MOMspider,1991 至 1993

这一篇覆盖的两年。日期取自各信、论文集、新闻稿与 CERN 网页;教堂山一站只知“1991 年深秋”,据 Jones 2013 年的回忆。依据上述材料自制,非同期图表。

圣安东尼奥那些评审后来怎么想,教堂山电话那头的人后来怎么想,1993 年的材料里没有。留下来的是一个括号。CERN 那页介绍 Nelson 的网页,两个版本里都有一句署名 TBL 的话:“我有一本 LM 90.1。”《Literary Machines》,Nelson 自费出版、一版再版的那本书,90.1 是版次,把一套不会断的链接从头到尾想了一遍。Berners-Lee 读过,然后做了一套会断的。他不是不会做另一种:1980 年那个只有他一个人用的 ENQUIRE,关系就是成对的,站在哪个节点上都看得见谁指向这里。理由,在我读到的材料里他只写过一次,在 7 月 15 日那封凌晨的信里:非分布式的情况下你可以,分布式的不行。他要的是分布式的那一种。我想他不是没动过心。一个把对手的书买回来、在自己网页上写“我有一本”的人,是把那套设想认真想过一遍的人;想过,然后放下,放下的时候大概也没有多少戏剧性,就像他在那封信里的语气,说完做不到,转身去讲自己热衷的下一个模型。断掉的那一半,从此由读者自己承担。

Xanadu 保证链接不会断,代码 1992 年底还在“随时发布”的路上,到了 1993 年,连 CERN 那页也只能写不清楚那边会怎样。Web 承认链接会断,Fielding 在征求意见稿里把这一点写成了病历:维护“很少做,做也做得不一致,信息库最终会烂掉”。他写这份病历的时候,Web 公开发布才两年多。Web 就是带着这份病历长起来的。剧透一下:这个在行家眼里天生残疾的东西,后来成了全世界的信息都要经过的地方。链接照样在断,谁也没有回去把它治好,也没有人等它治好。15

文中主角的想法与情绪,凡未注出处的,是作者依据同期材料的推想,标有“我想”“我猜”“我读到的”;史实与引文均见脚注。

Footnotes

  1. Paul Jones,《The Story Behind the WWW Hypertext 91 Demo Page and UNC and me》,2013 年 5 月 29 日,博客。事后回忆,距事件二十二年。Jones 当时与 Judd Knott 共同负责北卡大学信息技术办公室的网络服务研究小组;Berners-Lee 来访在 “late Fall of 1991 on his way to San Antonio”;Jones 在来访之前打电话给 “a nearby Computer Science department”,六条意见在那通电话里;演示用 Jones 自己的 NeXT 和 Berners-Lee 带来的 “floptical drive” 上的 Hypertext ‘91 演示页,Jones 注 “NeXT pioneered a read-write optical disk in a case. No one followed”;请求经 CERN 转到 “a database in the next room” 的 WAIS 网关再回来。那位计算机系教授未具名,六条意见按 Jones 的转述,第一条原文 “Links in hypertext must be bidirectional. WWW’s are one way only.”,第五条 “It’s obvious that whoever wrote the hypertext engine doesn’t understand SGML. This HTML is done all wrong.”,末条 “he’s giving this away for free. That means it has no value at all. We have our own version and a strong licensing partner.” Jones 另记 Berners-Lee 行前 “was confident given the immediate acceptance of WWW on newsgroups and as seen in his logs that he would get a good speaking slot at the conference”,同为事后回忆。本文只用作 1991 年行家意见的一个样本,不据此认定其代表性;引文为本文自译。 2

  2. 牛津 1976 年毕业、用烙铁和旧电视机拼第一台计算机、Plessey 两年做分布式事务系统与消息中继、1978 年在 D.G. Nash 写智能打印机的排版软件、1980 年 6 至 12 月在 CERN 做合同软件工程师、1984 年到 CERN 做 “distributed real-time systems for scientific data acquisition and system control” 并 “designed a heterogeneous remote procedure call system”,均据 W3C 网站上的 Berners-Lee 长版履历。这是机构事后整理的履历,本文只取年份与职务,不用它证明他当时怎么想。“超文本是他业余的事”是本文据 1989 年提案“for my own private use”与履历的概括;“见识过一致性保不住”是本文的推想。

  3. 会议为 ACM Hypertext ‘91,1991 年 12 月 15 至 18 日,圣安东尼奥。论文只得到海报与演示位,据 W3C 的 A Little History of the World Wide Web 1991 年 12 月条 “Presented poster and demonstration at Hypertext’91”;评审人 Mark Frisse 的说法出自他 2015 年 4 月 26 日在 Mike Caulfield 博客下的留言,事后自述,本文用其“委员会决定”“像写作系统”“争论链接是否必须双向”与 “Tim had a demo and really rocked the house” 四点;论文集目录见 DBLP,无 Web 条目,Samuelson 与 Glushko 一文在第 39 至 50 页;“反响热烈”出自 Berners-Lee 1992 年 1 月 24 日的项目通讯(www-talk 1992 年第 1 号),原文 “The W3 demonstration had an enthusiastic reception at ‘HyperText’91’ in San Antonio, Texas.”,同一节接着写 “Jean-Francois Groff presented W3 live at the Software Engineering and AI for High-Energy Physics workshop in La Londe, France. We’ve also been asked to demonstrate, as well as present a paper, at the Joint European Networking Conference (JENC3) in Innsbruck, Austria, in May.”,通讯全文未提海报。“不打算在这上头花时间”是本文的读法。SLAC 服务器与演示的关系见 第二篇。证据整理见 Hypertext ‘91 上的 WWW 论文待遇与演示。

  4. Nelson 1960 年得到念头、1963 年选词、1965 年发表,据他 1999 年 8 月 20 日的 Xanadu 官方年表“1960: Ted Nelson gets the idea of hypertext. (Word chosen 1963, published 1965.)”,事后自述。1965 年论文 “Complex Information Processing: A File Structure for the Complex, the Changing, and the Indeterminate”,Proceedings of the ACM 20th National Conference,1965 年,第 84 至 100 页,本文只核题名与出处。“还没有做出来”以 1991 年 Samuelson 与 Glushko 一文称其正由 Autodesk 商业化、1992 年 CERN 页面称代码“随时”发布为据。1960 至 1988 年的来龙去脉见 Dotcom 编年史 - 番外二 代码随时发布。

  5. Tim Berners-Lee,《The ENQUIRE System》手册,1980 年 10 月,W3C 保存的人工转录本。§3 “when altering one part of the system, it is useful to know by which other parts it is used”;§5.2 列出关系类型,成对标为 “Complementary”:uses/used-by,includes/part-of,made/made-by,describes/described-by;同节 “person - those strange unreliable beings on which all systems eventually depend”。手册没有说明反向的那条关系是自动生成还是编辑时手工填入,本文只说“成对”,不说“自动双向”。“正是 Kappe 十二年后要的反向追踪”是本文的对照。1980 年只有他一个人用、从未发表、“not realising that a term had already been coined for the idea: ‘hypertext’”,见 Information Management: A Proposal,1989 年 3 月,“Personal Experience with Hypertext” 一节;六个月合同工的时间(1980 年 6 至 12 月)见 bio 脚注。

  6. Pamela Samuelson 与 Robert J. Glushko,《Intellectual Property Rights for Digital Library and Hypertext Publishing Systems: An Analysis of Xanadu》,Hypertext ‘91 Proceedings 第 39 至 50 页,1991 年 12 月;Glushko 存档的 PDF。同期文献,但是法学与工程角度对 Nelson 设想的转述,不是 Nelson 本人的文字。本文用其摘要与第 41 至 43 页:“By far the most ambitious proposal for a digital library and hypertext publishing environment is Ted Nelson’s Xanadu system”“a vast digital library containing all of the world’s literature”“writing environment, publishing environment, library, and bookstore in one”;按字节收费、一到两成归作者;衍生文档与链接作为作品的版税;已发表文档不可撤回;发表需签字;“Xanadu is being commercialized by Autodesk”;“some aspects of the Xanadu model of author and user behavior may be unworkable”。“引用嵌入”是本文对“compound documents consisting of portions of a number of different documents”的概括,Nelson 自己的术语是 transclusion,该文未用此词。

  7. Tim Berners-Lee、Robert Cailliau、Jean-François Groff、Bernd Pollermann,《World-Wide Web: The Information Universe》,Electronic Networking 第 1 卷第 2 期,1992 年春。“The Dream”一节起于 “Since Vannevar Bush’s article, men have dreamed of extending their intellect…”,有 “The Xanadu system is an ambitious distributed hypertext project”;“W3 Architecture”一节问 “why a global system has not already come into existence”,答以缺少 “A common naming scheme for documents / Common network access protocols / Common data formats for hypertext”,并有 “Most research in hypertext systems (the Xanadu project excepted) has focussed on the user interface and authoring questions, rather than the questions of wide-area and long-term distribution.” 1989 年提案对 Nelson 与 docuverse 的引用见 第一篇

  8. Jean-François Groff,《Re: Raisch’s Attention link》,1992 年 6 月 30 日(www-talk 1992 年第 129 号),原话 “a read-based charging scheme (which was to be implemented in Xanadu as an answer to the Copyright issues)”“unfortunately not available online to my knowledge”;“付费链接”指 Raisch 提出、Jim Davis 讨论的 attention link。Berners-Lee,《HTTP2: caching and copyright》,1993 年 1 月 8 日(1993 年第一季度第 22 号),原话 “Have you read ‘Litterary Machines?’ That goes into this in a lot of detail, or at least Xanadu should have done.” Groff 说的“据我所知网上没有”指那篇论文不在网上,不指 Xanadu 软件;“只存在于纸上”是本文据 Groff 的 “was to be implemented” 与 CERN 页面 11 月仍称代码 “due out ‘any time now’” 作出的判断。Berners-Lee 原句 “That goes into this in a lot of detail, or at least Xanadu should have done.”,正文译作“或者说,至少 Xanadu 本该把这些做细”。 2

  9. Autodesk 1992 年 8 月 20 日新闻稿,收于 John Walker 编《The Autodesk File》第五版,网络版 Farewell, Xanadu:“Autodesk, Inc. announced today that it will divest itself of two companies … the American Information Exchange (AMIX) and Xanadu Operating Company”“they do not fit into Autodesk’s core business”,过渡期约三十天。同期一手文件,出自撤资方。CERN 页面两个版本:1992 年 11 月 3 日快照写 “The Xanadu Operating Company is now owned by Autodesk, but the project continues. Code is due out ‘any time now’.”,并已有 “(I have a copy of LM 90.1 - TBL)”;后来的版本写 “was owned for a while by Autodesk, but later dropped. (Not clear in 1993 what is going to happen there)” 及 “(I have a copy of LM 90.1 -TBL)”,后一版本页面本身未注日期,本文按括号内的“1993”系年;“我有一本 LM 90.1”两版皆有。“把一套不会断的链接从头到尾想了一遍”是本文对《Literary Machines》所述 Xanadu 设计的概括,依据是 Samuelson 与 Glushko 的转述,本文未读该书原文。撤资后的去向本文不写,同期报道未核。整理见 Autodesk 1992 年撤出 Xanadu 与 CERN 同期对 Xanadu 的描述。

  10. Robert Raisch,《Links and Type》与《Links, Types and Documents (Third time’s a charm)》,1992 年 5 月 21 日、6 月 22 日(第 65104 号),原话 “ever since I first had the pleasure of hearing Ted Nelson speak in 1977”“Inclusion — when the document is created, elements from other documents are collection to be included in the representation of the current document”“When might we expect extensions to WWW that support collaboration?”。Frank Kappe,《HTML DTD and related problems (rather long)》,6 月 25 日(第 118 号),原话 “backwards-tracing of links, which is essential for maintaining the integrity of the hypertext”。Berners-Lee,《Re: Links that refer to a range of text, not just a point.》,6 月 25 日 22:50,回复的是 Jim Davis 关于链接指向一段文字的问题,非直接回复 Kappe(第 120 号),“in principle, there is no reason why one shouldn’t have overlapping anchors, or at least nested ones. But not now.” 2

  11. Berners-Lee,《Re: HTML DTD and related problems (rather long)》,1992 年 7 月 15 日 00:33(第 149 号),开头 “I am replying very late to a message of Frank Kappe, dated 25 Jun 1992.”,论交叠锚 “This of course is counter to the SGML philosophy of strict nesting (SGML people can get quite religeous about this, but I can’t.) I think it is useful to be able to refer to two separate overlapping anchors.”,原话 “the ‘link database’ model you propose is the Intermedia model of Norman Meyrowitz et al.”“If you expand that system to more than one web server, and scale it to global, then you find that the same problems of ensuring consistency occur between the multiple link databases when before they occured between dcouments. You can’t set up a system of bidirectional links for example, which you could in the non-distributed case.”“Link databases have their advantages, though. A model I am rather keen on atthe moment is of servers which are both link databases and source code control (sccs, rcs etc) systems”,末段 “you can go a small extra step and make the server coordinate simultaneous edits by many people, which gives you a group editor”。“压了二十天”按 6 月 25 日至 7 月 15 日算;“列表上的问题差不多都归他一个人答”是本文据 1992 年存档的印象,未统计;“写成了他下一个想做的东西”是本文的读法。《Re: Citations Using Message Ids for Notes in Logs》,7 月 14 日(第 145 号),“a really useful project which is up for grabs right now is a server which hoards mail, inexes it, and fills in all the back-links … This would be a cool excercise in the management of unruly information … Any takers?”,发出时间 7 月 14 日 20:51。Edward Vielmetti,《saving documents, losing links》,10 月 31 日(第 247 号),“all of the cross reference links were just gone”。“没有一个系统替你保证链接两头都在”一句是本文的解释,不出自信件。 2

  12. Eliot Kimber(署名 drmacro@vnet.IBM.COM),《Explicit Linking is Impossible》,comp.text.sgml,1993 年 5 月 4 日,经 Marc Andreessen 5 月 5 日转至 www-talk(1993 年第二季度第 225 号),原话 “cross-enterprise linking … is so clearly impossible as to be not worth considering”,Andreessen 附注 “[emphasis added -marc]” 与 “Didn’t you lose $5 billion last year?”;aronsson@lysator.liu.se 5 月 5 至 6 日(第 226229 号),“next to impossible”“like pulling the rug away from under my feet”“ISHN”;Vielmetti(第 227236 号),“pre-load a search”“spidey”“(you hope)”;Tony Sanders(第 230 号),“I agree that massive explicit linking is impossible, but it isn’t desirable either”;Andreessen(第 228 号),“Limitations of current technology should not be extrapolated to judge possibility or impossibility; I would have thought the Wright brothers taught us that principle”。Rob Raisch,《Re: group annotation server》,6 月 17 日(第 539 号),“Ahhhh… Dreams of XANADU. (Where’s my laudanum?)”“They might well change your life. I know they changed mine.” 线程整理见 1993-05 www-talk 线程 Explicit Linking is Impossible,第 225 至 236 号内没有 Berners-Lee 的发言;“他不必说”以下是本文的读法。Kimber 帖中另有 “Even if you apply tools at one order of magnitude to make the impossible possible (say a database system to track links and manage changes), the next order of magnitude increase will be impossible”,可见他不认为工具能解决;“Xanadu 承诺的正是把这件事从人手里拿走”是本文的判断,Kimber 本人未提 Xanadu。Raisch 6 月 17 日原句 “Ahhhh… Dreams of XANADU. (Where’s my laudanum?)”,鸦片酊一语指柯勒律治《忽必烈汗》一诗的来历,正文略去。Andreessen 生于 1971 年 7 月,1993 年 5 月时 21 岁,据通行传记记载;“莱特兄弟不用维护链接”是本文的话。 2 3

  13. Christopher McRae 语经 Kevin Altis 转引,《Re: URN/URL file links》,1993 年 9 月 14 日(第三季度第 896 号),“HTML does support two-way links. See the discussion of the REV attribute … Of course, that doesn’t mean that anybody’s using them. :)”;frans van hoesel 同日(第 903 号),“can someone explain to me how to use them … Is it supported in browsers like Xmosaic?”,本文检索该线程后续未见对 Xmosaic 一问的回答,“没有人回答”以存档为限。Berners-Lee,《Re: URN single or multiple variants》,9 月 21 日(第 982 号),“(I think these are basically Ted Nelson’s ‘tumblers’)”,括号为原文所有。tumblers 的解释据 Samuelson 与 Glushko 一文所述 Xanadu 的文档编号,非 Nelson 原文。

  14. Roy T. Fielding,《RFC: Multi-Owner Maintenance robot (MOMspider)》,1993 年 12 月 6 日(第四季度第 710 号),原话 “referenced objects which cannot be accessed (broken links)”“recursively traverse each owner’s web from a specified ‘top’ document down to each leaf node”“build a special index document for each owner”;Berners-Lee 同日回复(第 729 号),20:48 发出,“I’ll play devil’s advocate here”;Fielding 说用 LINK 写主人是 “a contrived reverse LINK relationship”,Berners-Lee 答 “The LINK elementt was designed to define any two-ended relationship, or binary predicate. It was designed for relationships like Jack loves Jill / Jill loves Jack / Jack likes pie / Jill makes pie / Jack eats pie / Jack adicted to pie / Jack needs pie”。“心情不坏”是本文的推想;“没有反对”指该信未反对蜘蛛本身,只议标签。结尾所引病历一句出自 Fielding 同一封信:“maintenance is rarely or inconsistently performed and the infobase eventually becomes corrupted”。此前列表上有零星的死链讨论,未逐一核对。“今天网站用的死链检查工具做的就是这件事”一句是本文的对照,不出自信件。末尾“剧透”两句是本文的话,“天生残疾”是借教堂山那六条与评审意见的口气,不是任何一位当时人的原话。 2

  15. Roy T. Fielding,《Maintaining Distributed Hypertext Infostructures: Welcome to MOMspider’s Web》,第一届国际 WWW 会议论文集,日内瓦,1994 年 5 月,第 147 至 156 页;修订版载 Computer Networks and ISDN Systems 第 27 卷第 2 期,1994 年 11 月(ACM 数字图书馆条目)。本文只用它证明程序做了出来并在半年后发表,未读全文;“第一个专门为断链写的程序”限于本文读到的 www-talk 材料,1992 年 7 月 Berners-Lee 提议的邮件反向链接服务器是提议,未见有人接手。