关于树状结构与双链的思考

来自Github Zettelkasten Navigation插件 PR【一个笔记多个编号】的讨论。

背景:核心插件关系图谱是以双链为基础的无序网状图谱,而 zettelkasten-navigation插件(插件介绍)是通过将卢曼式笔记编号(ID)转化为树状结构,形成有序的图谱。

基于zettelkasten navigation 插件现有的功能,有网友提出,是否可以支持一个笔记有多个编号。这样,一个笔记就可以挂到不同的树/分支下面,从而到达笔记复用且结构化提取的目的。

这个PR里面有很多讨论,其中激发我对树状结构和双链网络的思考,以下是我的主要观点:

详细的讨论可以参见:一个笔记多个编号

电子笔记,不应该纠结到底是树状的,还是网状的吧?
1.[[笔记a]]中的某一点,与[[笔记b]]中的某一点非常相似
1.1 [[笔记a]]是[[笔记c]]的x方向的分类之一
2.[[笔记c]]是该类笔记的宏观概念
……每个笔记就是一个点,是树状排列,还是点点相联的网状排列,作为电子笔记应该没有什么关系,实体卡片笔记才有关系,因为要明确放到哪里,才能怎么按规则找到。电子笔记最重要的是一个不与其他笔记重复的笔记名,找到和怎么关联不是问题。

要看具体的场景和需求

场景:假设1个笔记就是1个知识点,库里的笔记已达到一定量级。有一天我们需要输出(写文章),想要从笔记库里找材料。这个时候,我们希望笔记库返回给我们的是一些松散的知识点,还是已经形成一定结构的笔记串。

如果是用双链的方式,我们大概会得到,以某个笔记为中心的一堆散开的知识点

如果是用树,我们得到的是已经形成一定结构的笔记串

相比较之下,从带树结构的笔记串(组件)开始组织文章,比从松散知识点堆(原子堆)开始,要来得更有效率。这个就是我认为树状结构更具有实用价值的原因之一。

当然,这个只是我的输出场景,跟你的实际应用场景不一定相同。欢迎交流。

感谢, 我获得了不少启发

双链确实是个快捷的关系表示法, 但是 Ob 的链接网络缺失了不少信息, 比如在 Ob 风格的链接图里:

  • 出自同一来源的多个兄弟笔记, 无法表示先后顺序 (我理解 Zettelkasten 以局部数字序号表示了这信息, 或者 MOC 也做了类似的事)
  • 视觉上很难 “总览” 所关注的节点, 也不方便显隐过滤等
  • 不体现链接强度, 笔记A多次引用笔记B, 少量引用笔记C, 无法体现B权重更高
  • 没有引用意图, 类似论文引用网的 Citation Intent (如 Semantic Schalar 会返回 background method result 等几种意图, 还有些站会记录该引用是为 “支持” 或 “反对”)

树状结构以严格的约束条件, 换来了更多秩序, 展示了更具体的逻辑关系, 对于启发思考应该是比较有效的