类目、标签以及文件夹的思考总结
本文源自之前对“类目、标签、文件夹”这三种结构组织方式的思考沉淀。
重新梳理分享,也算做一个阶段性的总结。
三种组织结构的介绍
- 类目(Category)
在 Obsidian 中,类目通常通过单独的类目笔记实现。每个类目是一个独立的笔记,其他笔记在元数据(YAML frontmatter)中通过双链(如category: [[游戏]]
)指向对应的类目笔记,从而建立从属关系。
这个用法出自 Kepano 的示例库分享,详情见: Obsidian的CEO是怎么做笔记的?
-
标签(Tag)
标签是一种非层级的、扁平化的元数据标记。一个内容可以有多个标签,标签之间没有父子关系,适合表达内容的属性、状态或横向关联。例如:#方法论
、#工具
、#待整理
。 -
文件夹(Folder)
文件夹是物理存储结构,决定了文件在硬盘上的实际位置。文件夹可以嵌套,形成树状结构,但主要用于管理文件的存储和查找,不直接表达内容的语义。
用例说明
以同一篇笔记《空洞骑士》为例,分别说明三种组织结构的实现方式:
-
类目用法
在《空洞骑士.md》的元数据中,通过双链指向类目笔记,实现归属关系:--- category: [[游戏]] ---
此时“游戏”本身是一个独立的 category 笔记,可以聚合所有属于该类目的内容。配合 Dataview 插件或是即将推出的 Bases 核心插件,可以快速呈现出所有归属于该笔记的子笔记。
-
标签用法
在笔记中添加标签,表达属性或横向关系:直接在正文里输入#游戏/通关佳作
这样可以通过标签快速检索所有“通关的游戏”。
标签的优势是非常灵活,你可以随意插入标签在正文的任意地方。
但相对而言也会更加“混乱”和“零散”,因为你所有的标签都会混在一起,并且表示的含义也是多种多样。 -
文件夹用法
通过物理路径归档笔记,例如将《空洞骑士.md》放在如下文件夹结构中:游戏/ 空洞骑士.md
这种方式通过文件夹表达归属,但不具备多重归属和灵活查询的能力。
基础对比
分类 category | 标签 tags | 文件夹 folder | |
---|---|---|---|
是否唯一 | 支持多个 | 支持多个 | 唯一 |
层级结构 | 通过笔记属性构建层级结构 | 支持 #a/b 的层级结构 |
单一层级结构 |
存储形式 | 元数据(指向双链的特定属性) | 元数据( tags )或 正文内直接插入 |
基于文件的物理路径 |
查询方式 | ["categories":xx] |
tag: #xx |
path:xx |
说明笔记 | 双链引用 “分类笔记” | 无(可自行建立绑定关系) | FolderNote 文件夹笔记 |
语义表达 | 强 | 较强 | 较弱 |
举例 | categories: [[人员]], [[画师]] | tags: #people #authors | 3-Resource/档案库 |
理论数量 | 适中,只给必要的类目创建 | 可以很多,甚至比笔记数量还多 创建成本低,是最“自由”的一项 |
尽量少,避免文件结构过于复杂 |
精准度 | 较为宽泛的大类 | 理论上来说是最精准和细致的 匹配度也最高 |
最宽泛,只是基础的大类 (甚至可能没有类型含义, 比如以日期作为目录) |
- 类目通过元数据双链实现归属关系,适合表达“属于什么”,且支持多重归属和灵活查询。
- 标签强调内容的属性和横向关联,适合表达“有什么特征”。
- 文件夹强调物理存储和管理,适合表达“放在哪里”。(相对而言最“弱关系”的一种组织结构)
分类结构的“类目笔记”天然就支持附加说明,或是按照特定的条件来呈现自己的子级笔记。
但是反过来,标签也可以通过手动创建一个和标签同名的“标签说明笔记”来做到类似的事儿,只是会麻烦一些。
使用「分类」的组织结构还有一个额外好处是:在知识图谱(Graph)中,你可以清晰地看到同一个类目下的不同笔记都指向同一个中心节点。
使用 ExtendedGraph 呈现的图谱
当然,在图谱上显示出标签也可以达到类似效果,不过标签在我看来还是偏向混乱(数量多且表意宽泛),我更喜欢分类笔记这种可控的组织形式。
另外也有特定的插件可以让文件夹也出现在图谱上。
这里也可以看得出来,大部分时候,「标签」和「类目」可以平替,两者都能互相实现对方的一些特性,无非是操作繁琐与否的问题。
(除了文件夹的结构由于其“单一对应”的限制,很多时候无法实现另外两者的特性)
特性差异
这里单独列举出两个比较关键性的差异。
I. 解耦
标签和分类对比来说,耦合性更强。
这里主要针对的是“一旦发生改动,会有多大的牵连”。
标签如果发生变动,所有标签的位置都需要更新
例如重庆原本在四川省内:
#location/中国/四川/重庆
而当重庆变成直辖市之后,需要改成:
#location/中国/重庆
这个时候,重命名标签会导致所有用到这个标签的地方都发生变动。
而对于分类笔记,仅仅是 重庆
笔记的 省
属性从 [[四川]]
变成了 [[直辖市]]
,所有原先的 市: [[重庆]]
的地点笔记都不会发生变动。
II. 准确性
前文提到的,标签
过于宽泛。
比如说,同样是 [[电影]]
这个分类笔记,
- 对于一部电影笔记,它用
category: [[电影]]
表示这是一部电影。 - 而对于某部电影的研究,就可以是
topic: [[电影]]
,表示它的主题是电影。 - 甚至,在记录你某个喜欢看电影的朋友时,用
hobby: [[电影]]
,表示 ta 的兴趣是看电影。
这就是 分类
的一个优势特性:它可以指定关系的类型。
但对于标签来说,它只能有一个 tags: #电影
仅能传达出「相关性」,而不能更确切地指出「怎样相关」。
这点在搜索标签的时候也能体现出来:
由于我在平时的每日笔记里也会打上 #游戏
的 tag,导致搜索的时候会出现很多“不相关”的结果。
除非把标签也专门写成 类型/游戏
,这样才能更好地区分出“类型为游戏的笔记”。
而如果你说:「标签也可以用嵌套层接来表示关系呀?」
比如 类型/游戏
表示游戏类笔记,主题/游戏
表示主题是游戏的研究……
那么就会产生“混乱”的问题,同样一个 游戏
会分散在多个不同的子级标签内,而你用 #游戏
检索时甚至没法找到它们。
总结
类目、标签和文件夹各有侧重,实际使用中可以结合:
- 用类目(category 笔记+元数据双链)梳理知识体系,保证结构清晰且灵活;
- 用标签补充属性和横向关联,提升检索效率;
- 用文件夹管理物理文件,便于归档和迁移。
还是用《空洞骑士》来举例,目前我的用法是:
创建一个单独的“游戏数据库”文件夹,所有的游戏笔记会放在里面。
空洞骑士会指向 [[游戏.md]]
笔记,这样一来,我所有的游戏都可以通过反向查询呈现出来:
并且还能带有通关时间、游玩信息等状态。
最后,对于游戏的更进一步分类(比如“通关佳作”或者“弃坑”之类的标注),使用标签最合适。
这里用了 TagFolder 插件来查看标签
其实全文最开始的起因就是在学习到 Category 类目笔记的这种结构之后,忍不住想探究它和标签的关系和差异,以及何时适合用哪种。
所以在经过各种研究和群友的探讨之后,得出了目前阶段性的结论。
目前用了一段时间下来,感觉这确实是最适合双链笔记的一种组织形式,而且也可以说是专属于双链笔记的组织形式。还是非常推荐感兴趣的用户——尤其是对笔记组织结构有一定要求的人——尝试看看的。
以上。