在网状结构笔记应用中线性记录——以 Roam Research 为例
尽管类似的概念已经存在至少十年之久,但是网状笔记工具的浪潮却在 2020 年来得猛烈了些许。随着 Roam Research 的入场,Obsidian、Athens、Foam 等竞品也纷纷跟进,而与此同时,老牌的笔记软件 TiddlyWiki、Org-mode 也纷纷在围绕着双向链接开发出的新产品、特性。一时间,人们忙于在不同的应用中比较功能、特点,迟迟无法拿定注意。
但笔记工具终究不是笔记的全部,一类笔记工具能够带来的生产力提升,是因为它更加贴合人类思考习惯、记忆习惯和使用习惯。而对于用户来说,核心问题只有一个:我应该如何使用网状笔记工具来提高生产力?
本文就将从关键概念、基本原则、工作流这三个方面,说说三个月以来我对这个问题的解答。
本文的适用人群为所有使用网状笔记的人群,包括但不限于 Roam Research、Athens Research、Obsidian、RemNote、Notion 等。
时至今日,尽管 Roam Research 早已不再是网状笔记工具中唯一闪耀的那颗星辰,但是对于我来说它依旧是目前为止体验最佳的网状笔记工具。
以反向搜索为例,Roam Research 给出的索引包括了父路径中的元素,且结果可以直接修改;而 Obsidian 给出的更像是搜索结果的跳转链接——如果我想要更改内容,就要先跳转到该页面上。
此外,Roam Research 在笔记体验上的打磨也是能见其用心的,比如从鼠标与键盘的操作优化以及其他平台格式的粘贴体验上都能满足我的需求。
因此在本文中我将会以 Roam Research 为例分享我的网状笔记工作流。这也意味着在文章中偶尔会穿插 Roam Research 的相关特性。如果你是其他网状笔记工具的用户,可以略过这些内容。
知识的结构并非完全的网状结构,而是会存在主次之分:
在我刚开始使用网状笔记工具的时候,我常常过分热衷于建立实体和关联,却忽视了知识本身的重要性。时常,我会因为没有给一个实体建立对应的页面和足够多的链接而感到焦虑。然而当新鲜感褪去,我发现自己关心的知识还是聚焦在某些特定领域之内,而且这些领域和领域之间的关联并没有那么强烈。因为我所掌握的知识只是全体知识的一个小而又小的子集,而这个子集的选择又严格依赖于我个人的喜好和需求。比如「运动」「理财」「追剧」这三个部分就具有高内聚、低耦合的特点。
因此我逐渐体会到:
建立自己的标签系统(Tags System)
使用标签建立链接是比直接在实体(页面)间建立链接更优秀的解决方案。 不论从传统的知识管理——图书馆,还是互联网时代的知识管理——微博、知乎、wiki,都印证了此观点。因为标签就是对实体的符号化,而这一过程有助于抽象出其特性,便于检索。
因此对于我来说,定制一个个性化的标签系统有助于我管理自己的知识。毕竟,哪个男孩子不希望拥有一套属于自己的标签系统呢?除了好记、统一等基础要求以外,这套标签系统还应该包括以下两个特性(基于我从程序设计语言的语法设计引申出来的经验):
基于此,我们的标签系统就可以通过相互组合,描述一些复杂的信息。比如 #todo + #question 亦或是#lessons + #[[financial management]] + #[[best practice]]。
简单来说:当我发现或者预计页面承载信息的复杂程度或者页面经历的时间跨度,需要一个单独空间来支撑时,我就需要为这些信息创建新的页面;反之则可以继续在原有的 Block 中延展内容。
比如需要跟进或不断更新的项目/文章,需要不断更新或修改的文章草稿/笔记,时间轴较长的回溯总结/管理/任务等等。最开始的关键概念中的 2 也告诉了我们:如果这些内容之于我们的意义不够明确,不必使用双向链接。
以上是根据我使用 Roam Research 的需求所总结的规则,但是另有一种情况比较特殊,那就是:试图构建某个领域的知识体系。
尽管之前的经验依然可以使用,但是我总会想:是不是需要给这个领域的每一个实体都建立一个页面,并在相应页面独立记录相关内容?
后来,在使用 Roam Research 的 Block 许久以后我渐渐有了这样的体会:Block 就是一个独立的单元。平行的 block 完全可以隔离不同的实体。双向链接和标签在 Block 和 Page 中的表现也是基本相同的。
换句话说:Block 和 Page 的区别很小很小。
那么,既然能在一个页面中使用多个 Block 灵活的映射实体,为什么要浪费力气新建一堆页面呢?
此外,RemNote 的另一处设计也为以上答案提供了佐证。简单来说,它通过引入新的语法 对象:: 对象的关键描述来将 Block 独立成一个承载名词的基本单元,以避免「新建页面 + 跳转 + 填写描述」 (甚至「创建子 Block」)的复杂步骤。(我很喜欢这个语法,因为它扩展了 Markdown 的语义表示能力)此外,它的 Flashcard(Ankicard)的基本单位也是基于以上语法结构形成的。
因此在此处的设计上我们可以看到这样的结论:当我们构建知识体系的时候,不应当强迫性的让每一个对象都拥有一个独立的页面。
不过如果你想要继续使用 RoamResearch 来完成上述的行为,我不推荐在 Roam Research 中使用 :: 的语法,实际上是为了 Attribute 而设计的。和其他平台一样,可以直接使用层级关系来体现。
「我应该何时使用双向链接/标签而不是另外一种呢?」,这个问题是困扰大多数网状笔记使用者的一个问题。
然而这个问题拥有一个隐含的陷阱:不同的网状笔记工具对于两个语法的实现程度不同,每个用户对于网状笔记的功能定位也不同——这都导致答案并不绝对。
仅就我个人而言:在 Roam Research 中,双向链接和标签的区别实际上很小。并且我对于两者没有明显偏好。所以语法的使用取决于其是否方便使用,且不破坏原本语句的语法结构。
因此我个人使用双向链接的情况有两种:1. 作为标题;2. 作为语句中的成分。反之,我则倾向于使用标签。
比如以下例子:
[[Articles/一篇平平无奇的文章]] #drafts
- 我在[[一个平平无奇的项目]]中取得了新的进展
- 两个月的付出,我才体会到“坚持就是胜利”的可贵 #lessons
Daily Notes 是网状笔记工具的杀手级特性,其重要性甚至不亚于双向链接。
为什么?原因已经在上文给出:用线性的记录成本,来获得网状的知识结构。这里的「线」就是通过 Daily Notes 串联起来的。
基于 Shu Omi 的模板,我设计了属于自己的工作流。你也可以依次作为基础构建自己的 Daily Journal。
- # Daily Journal
- ## 🌞 Morning Journal
- ### What are you grateful for?
- ### What do you want the today's highlight to be?
- ### Daily Affirmations
- ### What's on your mind?
- ## 📦 Input
- [[news]]
- ### What did I do
- ## 💡 Output
- ### [[Landmark]]
- ### Still working on
- ### [[Thoughts]]
- ### [[Questions]]
- ## 💪🏻 [[个人观察记录]]
- ## 🌙 Evening Reflection
- ### How are you feeling today? #emotion
- ### What could you have done better?
- ### Amazing things that happend
- ### What did you learn today?
- [[Thoughts]]
- ### Positivity Score
- {{[[slider]]}}
我主要根据自己学习生活的倾向,修改了「Input」和「Output」中子标题的内容。比如:
线性工作流就意味着,我可以以最舒适的写作习惯来记录一天中的各种不同的工作。
如果需要记录的内容比较细小,可以直接在左侧的 Daily Journal 中使用 Block 记录。
我能够吞下玻璃而不伤身体。 #tags
如果是一个时间跨度比较长的项目,我会选择两种方式:
这两点的区别,在于需要记录的内容更贴近时间还是项目本身。
网状笔记工具不是专门为了任务管理打造的,因此即使已经有很多达人们分享了自己的任务管理方法,我也依然不建议这样做。毕竟,有更好的工具为什么不用呢?
如果将每一个任务想象成在空间中漂浮着的独立点,那么其实他们很多时候是并无关系的。而当我作为一个「个体」出现的时候,他们和我产生了关系,形成了连接。所以从个体的角度来看,这个模型是一个一对多的连接。时间管理、任务管理就是科学而高效的安排你处理事物的时间比例,因此它离你这个「一」更近一些。而 Roam Research 的笔记工具离「多」更近一些,更适用于记录你在这些项目上的想法、进展、收获。
因此我更推荐使用网状笔记工具做轻量的面向项目的任务管理。
轻量的时间/任务管理是指:以 kanban、table、todo、date picker 为工具,以项目本身为基础,安排一些较为确定的短期或者长期目标。
如图所示,在今天的工作快结束的时候,我此时可能有一些未完成的步骤或者突然产生的灵感。我需要做的就是将这些内容记录下来(用 TODO 或者其他 Tags 做标记),并且给他安排一个截止时间。那么在之后的工作里,当我到达截止日期或者反向查询的时候,都能找到这一个需要完成的任务。
当然,这些小工具使用起来还需要实事求是。比如对于文章来说,就可以使用 kanban 来划分文章写作的不同阶段,这样整体进度一目了然。
一个 Page 能够映射的内容可以有很多种类型。比如:[[XXX 工程]]是一个工程项目,[[XYZ 阅读笔记]]是读书笔记,[[React]] 是一个具体的技术……因此针对不同的页面类型,应该灵活地采用笔记方式来解决问题。
如果是一个项目,我会专门留出[[下一步]]、[[问题]]、[[TODO]]的部分,甚至用查询语法搜索到以往的会议记录。
如果是阅读笔记,你可以专门采用 Zettalkasten、Resonance Calendar等笔记方法,制作一个笔记模板。
如果是其他的具体对象,则可以制作一个时间、地点、关键描述、索引等元信息的模板,来方便索引。
Sidebar 是 Roam Research 等网状笔记工具提供给创作者最有利的工具。原因很简单,创作在很大程度上依赖现有知识的重新整合,Sidebar 则提供给我们一个参考已有信息的面板。
当开始根据已经积累的一些灵感开始创作的时候,我首先需要将这些灵感通过一些 Query、Embed Block/Page 整合在一起。
然后就是 Remix 的阶段。而因为有了 Sidebar,我就不必让页面在「已有信息」和「正在创作的内容」中来回切换。
同理,如果是 zettelkasten 之类的笔记方法,可以将第一步替换为「剪切文字内容」(已经有很多插件可以帮助你方便的剪切网页内容)。
以上总结的种种实践经验由我从自己的笔记使用习惯中提取而来。在采用这些方法以后,我最大的发现是我每天记笔记的心智负担大大地减少了。有了原则和方法以后,就不必总是在多种可能性中反复犹豫,舍本逐末。
然而,通往罗马的道路不只有一条。也许我的这条路并不适合你,但是希望你能够找到其中有用的部分,并形成自己的笔记习惯。
> 下载少数派 客户端、关注 少数派公众号,找到数字时代更好的生活方式 🎊
> 特惠、好用的硬件产品,尽在 少数派sspai官方店铺 🛒
© 本文著作权归作者所有,并授权少数派独家使用,未经少数派许可,不得转载使用。