打个比方,如果你在笔记里写了一句「参见周一的会议记录」,那么应该能给「会议记录」四个字加上链接,点击后就能直接打开当时做记录的Word文档;在任务清单里写了一条「阅读某篇论文」,应该可以把「论文」链接到想要看的那份PDF文件。更理想地,你应该还能在上述Word或PDF文件中加一个反方向的链接,点击即可直接打开提到了它们的笔记或清单,方便继续写作、标记任务完成等。
如果你对近年红得发紫的「双向链接」笔记有所耳闻,应该会觉得上面的描述看着挺眼熟——这差不多就是将笔记场景中的双向链接推广和化用到了系统的各个角落。
确实,这些效果本来也不是什么「黑科技」,目前都能在某种程度上实现,只是远不够完美:要么依赖于应用和平台的特殊支持,但老死不相往来;要么薄如蝉翼,容易随着文件移动、设备更换而失效;要么晦涩难用,让普通用户一看就打消了学习的念头。
《泛在链接宣言》所呼吁的,正是让这种灵活的链接用法变得更通用、开放、稳固和易用。
那么,这份宣言的背后都是何许人也,他们又为何要为这种「泛在链接」的未来而奔走呢?
学术方面,Beaudoin持有认知科学Ph.D.学位,在加拿大西蒙菲莎大学(SimonFraserUniversity)担任认知科学和教育学的兼职教授。他的主要研究兴趣是「认知效率」(cognitiveproductivity),即利用知识解决问题、创造产出和提高自我的效率和效果。他认为,对于效率的讨论不应局限于技术,还应当引入动机、情绪和自我调节等心理学的方法和概念。
认知科学如何为提倡链接提供依据呢?你一定听说或经历过这样的「悲剧」:外出游玩,满心期待地踏上旅途,但却被漫长而坎坷的交通消磨了兴致;等终于到达目的地,已经精疲力竭、无心游玩了。
我们习以为常的超链接就可以起到这种「任意门」的功能。
尽管在大多数人印象中,「超链接」(hyperlink)就是「网址」的同义词,链接的另一头就是一个网页;但实际上,超链接的触角所及远超出万维网的范围,可以指向任何可识别的资源——无论其位于远程还是本机、存放在网页上还是应用内、性质是开放还是私有、形态是数字还是实体。
[协议名]://[用户名]:[密码]@[主机名]:[端口]/[路径][查询参数]#[片段ID]用这种格式,我们可以给电脑上任何应用内的任何资源编排一个地址。例如:
当一个链接不只是简单地打开一个网站、启动一个应用,而是直指网页、应用内部的特定内容时,这样的链接就成为了「深度链接」(deeplink)。将深度链接恰当放置在需要来回参考跳转的位置上,它就可以充当理想中的那扇「任意门」。
因此,深度链接与其说是一种技术创新,不如说是互联网早期技术理想的落地实施。
然而,问题到这里只解决了一半。上述设想和标准的共同问题在于,它们只提出了一种「可能性」;但落到实际使用中,深度链接能否被创建和触发,都依赖于具体软件的支持。
如果一个软件从设计上就没有清晰的数据结构,那就像一座缺乏道路和区域规划的城市,很难为其中的建筑物——软件中的信息资源——编制出有逻辑、有规律的地址。如果厂商没有开放的态度和意识,软件就会成为围墙高筑的私家花园,要么根本不对外公开内部构造和联系方式,要么只对自己人开放,而让「慕名而来」的访客吃闭门羹。
例如,PDFExpert没有提供任何自动化的能力,Hook就自动帮用户点击其菜单中的的「在Finder中显示」,然后从Finder中复制路径,这才能获得当前阅读的PDF文件链接。类似地,为了生成Notion的链接,Hook只能通过模拟按下其「复制链接」的快捷键(Command+L)来实现。
值得一提的是,《宣言》的技术要求尽管细致,但也不失「分寸」。与常见的技术规范、技术文档相比,它「不要求使用特定的API,使用特定的的编程语言或技术」,也「不要求使用符合RFC-3986标准的链接」。
这种做法似乎很「佛系」,但在我看来是一种必要的妥协:这样一来,开发者就不用对现有的技术架构伤筋动骨,也可以灵活决定链接格式、API的开放程度。这保证了开放和自利之间的平衡,更有利于吸引开发者加入。
我为此专门请教了Beaudoin:链接对于用户的益处固然是没什么争议的,但在这样的大环境下,拥抱链接功能对开发者的好处是什么呢?他们有什么动机去花功夫实现《宣言》的技术要求呢?
对此,Beaudoin持乐观态度。他表示,「优秀的软件开发者必然想要开发优秀的软件」,而链接能力是优秀软件的必备特质。那种「围墙花园」式的开发思路是「自大」的,不存在绝对的光荣孤立、自给自足。Beaudoin还希望,随着《宣言》的推广,能有更多用户意识到链接的意义和价值,从而反向促使开发者更好地支持链接。
多元化也是需要解决的问题。查阅《宣言》发起人的背景,不难发现清一色都是Apple生态中的开发者。这是有意为之的选择吗?有没有考虑过在其他平台上实现《宣言》的前景?
Beaudoin将这种「扎堆」的原因归结为社区和技术两方面。他说,macOS是一个对独立开发者颇具吸引力的平台。开发者通过博客、播客、邮件通讯等渠道,和用户形成了紧密的互动,双方对于Mac软硬件都有较高忠实度。技术上,经典的AppleScript内置在系统中,多年来一脉相承,加上x-callback-url、快捷指令等自动化框架,让macOS平台上的跨应用协作相对便捷。
相比之下,Windows平台规模更大,但社区也相对松散,缺少一个连贯的、系统内置的自动化框架。尽管实现链接功能在技术上是可行的,但开发者从文化和收益角度都没有足够的动力。Beaudoin认为,要化解这一问题,还需要微软作为第一方有更多担当。
Beaudoin的解释与我的理解基本一致。实际上,Windows(以及回答中未提到的Android)都支持深度链接机制,本就可以直接执行一些跨平台应用的深度链接。
《泛在链接宣言》是一个值得尊敬的项目。一方面,它以互联网早期设想和学术理论为基础,反映出一种理想主义的思索;另一方面,它的具体主张也体现了务实、谦抑的态度,具有可操作性和灵活度。
从技术上看,《宣言》所选择的载体——链接并不高深,与其他能实现类似效果的途径相比,甚至可谓简陋。但在我看来,这反而是一种优势:普通用户即使对深度链接一无所知,也能根据对网址的朴素认知,大致推断其含义和作用;链接在各种系统中都能获得支持,开发者实现起来也只需考虑好链接格式,而无需担心平台专属功能的限制;纯文本的形态,也让链接的存储和传输方便而低廉。
当然,比起简单的振臂一呼,更重要的是付诸实践。如果你是软件开发者,那么最好的支持和参与方式莫过是在自己的作品中践行《宣言》的倡议,或者根据自己的经验为它的修订完善建言献策。
愿链接的未来长青。
我们承认,大量有用信息可以通过数字方式获得,且将其连接起来可以获得巨大价值。互联的知识能使人创造出色的产品、解决重要问题,并提升自我。
我们肯认,为促进认知效率,复制资源链接是与复制其他类型信息——包括所有非暂时性的数字信息——同等重要的功能。
我们邀请软件开发者通过下列方式尽一己之力:
为帮助人们受益于经软件处理的信息,我们倡导对信息资源的链接提供广泛支持。这将有助于实现TedNelson和DouglasEnglebart等信息技术先驱所设想的「超媒体」(hypermedia)的潜力。
本文档规定了为满足「泛在链接」所需,软件应达到的技术要求。