关于栏目

越是复杂强大的生产力工具,其背后的概念就越多、框架就越大。在使用这些工具的功能之前,如果没有想过这些工具涉及的那些基本的、底层的概念和框架,只是单纯地用,就很容易越用越乱,反而对自己没有任何帮助。

这个栏目里的文章,就是与大家探讨这些效率相关的基本概念,减少大家自己摸索所走的弯路。


不论是在现实世界还是计算机中,标签都是很重要的整理途径。但另一方面,在现实里和计算机中,标签的能力已经完全不同。进一步的,在计算机系统里,不同的软件对标签也有不一样的应用。

也因此,不少人不能很好地处理计算机系统,或不同软件里的标签与文件夹的分工。那么我希望通过这篇文章,对你在认识标签这件个事物上有所启发。

现实世界中的标签和计算机中的标签

标签这个东西,是从我们的现实世界、日常生活中出来的。我们用它贴标价、给书籍分类、整理文件等。在现实世界,它的特性是:

  • 标记某个东西(文件)的特殊属性
  • 需要贴附在物品上
  • 每一样具有这个属性的物品都要贴一个这样的标签
  • 它不能作为「容器」,所以在定位上是从属地位

最后这一点很重要,是标签在现实世界和计算机系统中地位的核心区别。

在现实世界里,决定一个东西位置的是房间、货架、书架、文件夹这样能够盛放东西的地方。所以我们找一本书的时候,会问哪个书架第几排,而不会是从标签找起。因为在现实世界,标签不能作为「容器」出现。标签不能决定一个东西的绝对位置,它只能被贴在东西上,跟随着这个东西。我们把一个东西扔到哪,那个标签就跟着它到哪。

总结一下是:你不能把一个东西「放进」标签里,你只能把标签「贴」在这个东西上。

但计算机世界的标签,却拥有了「容器」的特性,你把标签「贴」在那个文件上的时候,你同时也把那个东西「放进」了那个标签。因为只要你在你的软件里上选择这个标签,所有这个标签之下的内容就会出现在你眼前的屏幕里。

所以在计算机中的很多情境下,理论上,标签是完全可以代替文件夹的。但也有些情况,标签又无法代替文件夹。我们先说这种绝对无法代替的情况——文件夹作为「路径」时的情况。

当文件夹是系统文件路径时——无法代替

文件夹系统——一对一,标签系统——多对多

计算机上的文件在最顶层是我们人类可以看得懂的图形界面,而图形界面稍微往下一点,就是一个基于路径(path)的命令行世界。

在图形界面,路径这个概念就已经非常重要了,我的 Todoist 教程 第一篇文章里有个例子是: D盘/学习资料/高等数学上/未命名文件夹/xx老师.avi ,我们一直都是这么定位一个文件的。

而在命令行世界,路径就更重要。这个界面没有鼠标也没有图像,你可以认为所有花花绿绿的图像都还原成了文件所在的路径。所以想要使用命令行,你脑子里就需要对文件路径有一点的概念。

命令行世界

而这种文件路径,是标签没办法代替的。虽然标签也可以有层级,但标签还有一个特殊的属性——不排他。一个文件可以打上多个标签,多个文件也可以打上同一标签,但是一个文件却只能存在于一个位置。文件和标签是多对多的关系,文件和路径却是一对一的关系。

在计算机里,理论上,除了这种情况标签无法替代文件夹以外,其它的情况,尤其是在存储文件的软件里,标签都可以替代文件夹。

Pocket 里压根就没文件夹

Pocket 里的标签

我应该是在用了 Pocket 之后意识到「存文件的软件可以用标签代替文件夹」的。

Pocket 里面根本就没有文件夹这个概念。Pocket 可是存文章的地方,现实世界里你能想象一个存文章的地方不用文件夹吗?根据标签在计算机世界的「容器」属性和「标记」属性,它完全可以胜任文章整理这一项任务。

Instapaper 还很保守地保留着文件夹系统,而且非常纯粹,我们可以把它的归档也看作一个文件夹。因为归档的文章会丧失它原有的文件夹,这就是文件夹作为容器这个身份的排他性。在 Pocket 里,归档后的文章和未读的文章都会有你给它们打好的标签。

「排他性」真的很不适合储存文章,因为一篇文章经常不止有一种属性。比如一篇讲爱因斯坦的文章,它可以标上「人物」这个标签,也可以标上「科学史」这个标签,说不定还能标上「冷知识」的标签。排他性要求你在这几个不同的类别里必须选择其中的一个。

除此之外标签还有一个自动化的用处 1 。我从 Pocket 读到的需要进一步处理的文章,都会标记上一套「0 todo」的标签。比如需要打印的,会标上「0–1 print」,然后通过 IFTTT,这个文章会以 打印:[文章名](文章链接) 自动发到 Todoist 的相应列表中 2 ,而因为 Todoist 的任务名部分支持 Markdown,所以任务名是可点的超链接状态(对于整个流程有兴趣的可以看我之前写过的这篇文章《在线阅读处理流程:从需求、到方法、再到工具》)。

但 Pocket 有个问题,就是它的标签没有层级。当然这种问题也很好解决,我们只需要在标签之前加数字来表示层级就可以了,比如这样:

6 知识
6-0 逻辑学
6-1 数学
6-2 物理学
6-2-1 量子物理
…

Evernote 可以用标签代替笔记本

Evernote 里的标签和笔记本

Evernote 的标签支持层级了,不过有层级的标签系统我们也可以、甚至说是应该在前面标数字,为什么?因为输入时更容易匹配结果。

想一下输入「物理学」(或「Physics」)快还是输入「6–2」快。尤其是标签数量很多,关键字可能交叉的时候(比如同时有「Physics」和「Phone」),这些数字会解决输入时候的大问题,而且会让标签系统看着特别有层次感,而且不用担心记不住。只要你能记住第一位的数字,后面的用匹配选几次就记住了。

所以我在 Evernote 用的也是和 Pocket 一套标签,而且在这里,标签在计算机世界的另一个优势又出现了,就是它的可传输性。一个文件,从一个系统发到另一个系统,只要两者都支持标签,那么这个文件理论上就很容易将标签带着走。起码从 Pocket 到 Evernote,从 Evernote 到 DEVONthink,标签传输实现得足够理想。

在 Evernote 里,因为笔记必须存放在笔记本里,所以至少得有一个笔记本。国外有不少人在用两个笔记本,大概思路是一个用于收集一个用于归档。如果是一个人用 Evernote 的话,这种思路完全可行,最重要的一点是,Evernote 的标签和笔记本在软件的界面上基本是同一位置,显示方式也几乎一致,两个都用反而会让操作界面复杂。

不过如果你需要和别人共享笔记,那这种用法就不太适合你了,因为只有笔记本可以分享,标签不行。标签虽然在「存放文件」上可以代替文件夹,但当软件赋予文件夹更多功能的时,标签也就无能为力了。

DEVONthink 中真正用标签代替文件夹

DEVONthink 中的标签

DEVONthink 对标签的处理比 Evernote 更进一步。

因为 DEVONthink 纯粹是个人文件管理,不涉及团队分享,而且标签和文件夹的位置和显示方式也一致。所以在 DEVONthink 里,我们可以真正地用标签代替文件夹。事实上我就是这么做的。

在标签层级这一点,DEVONthink 还弥补了 Evernote 的一个缺陷。在 Evernote 里,标签虽然有层级,但是是松散层级,层级并不真地严格套用在文件上。比如我给一条笔记标了「6–2–1 量子力学」这个标签,它不会带上它上一级的标签「6–2 物理」和最顶级的标签「6 知识」。这种机制会出现的问题是:在 Evernote 里点「6 知识」这个顶级标签时不会显示所有含有它子标签的笔记。这样就很难受了,因为很明显,一个关于量子力学的文章属于物理,更属于知识。

所以在整理上,我们希望通过标签也能实现一个强层级关系,所有带有「6–2–1 量子力学」标签的文章,都存在于「6–2 物理」标签之下,也都存在于「6 知识」这个标签之下。

DEVONthink 中的标签就是这种强层级关系的标签。当你给一个文件标上「6–2–1 量子力学」时,它会自动带上「6–2 物理」、「6 知识」这两个标签。这样,你点「6 知识」这个顶级标签的时候,会出现所有标有它和它下面所有子标签的文章。

我猜大多数人是更偏爱这种效果的。

总结

在现实和计算机文件系统中,标签的最大区别在于它是否具有「容器属性」。前者的标签只能贴在文件上,而后者的标签不仅可以「贴」,也可以用来「装」。

那么这时候标签和文件夹的区别,就在于「排他性」,或者说对应关系。文件夹与文件的对应关系是一对多,同一个文件不能存在于多个文件夹,所以会出现各种分类困难与纠结。但标签不会有这种问题,你认为这个文件具有多个属性,那就可以给它打多个标签。

这时候,我们可以理解为,文件管理中,标签其实包括了文件夹。但做到这点的前提是,你能够为你的标签系统建立良好的层级关系。否则你的标签系统会非常容易混乱,完全没有任何整理的效果。

标签能不能嵌套层级在不同的工具有不同的情况,为了应付各种情况,我们可以索性将标签前面全部标记上表示层级的数字:

8 人物
8-1 政治家
8-1-1 曼德拉
...

这样就创建了层级关系,特别是在计算机系统中,一般软件都会按照数字进行排序,视觉上会非常舒服。

使用数字的另一个好处是便于搜索。大多数支持标签的工具,都可以自动补全。一旦你熟悉了你的标签系统,打标签飞快。

最后,我希望通过本文传达的思维方式是:文件系统中,理论上标签是可以代替文件夹的,因为它具备了「容器属性」,并且它更加灵活,也能某种程度上减少操作。


说说你对文件夹系统和标签系统的思考,欢迎在评论中和我们分享~