一、当下文档树与笔记本的概念矛盾?
讨论文档树、笔记本的时候,需要明确这两个概念的底层逻辑。
参照《文件与文件夹的区别是什么?-常见问题-PHP 中文网》中的解释:
区别:文件是以计算机硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序等等。而文件夹是用来组织和管理磁盘文件的一种数据结构,相当于文件分类存储的“抽屉”;每一个文件夹对应一块磁盘空间,它提供了指向对应空间的地址。2
因此我们可以弄清楚两个概念范畴:一是文件是信息的集合,或者说是一种信息的容器,二是文件夹是组织数据的结构。
那么讨论 文档树
与 笔记本
:
文档树
是用来描述多级目录的树形结构。
树型目录结构又称为多级目录结构,它是由根目录、多级目录以及数据文件组成的。在多级目录系统中(除最末一级外),任何一级目录的登记项可以对应一个目录文件,也可以对一个非目录文件,而信息文件一定在树叶上,这样,就构成了一个树型层次结构。
笔记本
是用来记录的本子1,在计算机里面概念就泛化成了记录信息的容器
我们抽象一点:文件
是信息的容器,笔记本
也是信息的容器,那么组织 文件
的 目录
结构是 数据
,组织 笔记本
的 目录
结构也是 数据
。因此我们可以抽象出两个简单概念的类:容器
和 数据
,这样在面向用户的时候,就更加简洁。
其实在讨论的过程中,笔记本
这个概念很有争议:拿纸质的日记本为例,如果把一页一页的日记看成文件可以吗?当然可以。那么这些一页页日记的集合的实体——日记本是文件还是文件的目录?或许都对吧。
为什么?从某种角度讲,日记本是文件,它是所有日记页面的集合,只是这个集合的名称叫做 日记本
,是装载日记内容的容器;从另一个角度讲,日记本也可以是目录,它像一个柜子一样,按照一定的序列组织了日记。
回归本质:实体都可以简单描述成容器和内容的关系,为了研究容器与容器之间的关系,自然而然地引入一个新的容器或者集合的概念,反而让概念的理解更加复杂。
代入思源笔记的产品中进行讨论:文档树是什么?笔记本是什么?文件是什么?
就会发现 笔记本
扮演的角色有些尴尬。它既不是文件,也不是纯粹的目录,扮演者一个"国家边境线"的角色,虽然现在已经支持文档“移民”了。
实际:在用户界面上,功能的区分度并不是很明显,而在同一棵树上具有不同的操作交互,是不够友好的。
二、跳出离散文件夹的思维以数据库的思维看待笔记文档吧
传统的文件管理,总是跳不出微软的文件夹思维,而现实的信息、数据是复杂的立体网状结构,文件作为信息的容器,聚合了关联性极强的一堆信息,实际文件之间信息怎么关联是一个难题。
原始解决方案:文件夹
第一种解决方案:硬链接
第二种解决方案:微软的库
第三种解决方案:标签
第四种解决方案:Linux 的思想,玩物皆文件,但不是割裂的文件,而是可以相互索引的文件。
第五种解决方案(未来):文件式数据库 + 标签 + 网状图谱
第六种解决方案:未来的未来……
思源文档树的概念;就应当是第五种解决方案的一个实践。
之前大家包括我也讨论过思源 文件夹
式管理的一些体验问题,现在想来,我们更应该去深入思考 ID
式数据基础的构建,理解 D 大 文档树
概念的底层逻辑,支撑将来实现立体式的个人知识图谱管理系统的实现。
那么当下用户的习惯(包括我本人)依然是基于文件夹式管理的,所以实现从文件夹式导入思源系统,再以文件夹或文档式导出迁出思源系统才是完整的闭环。至于导入思源后的数据存储,或许用户不必太过纠结了。
总之:在思源笔记内,弱化传统文件夹式的使用思路,不要引入太多的冗余的概念。
三、总结
- 文件是信息的集合(容器),文件夹(目录)是组织数据的结构。
笔记本
不是本质的概念,回到只有一个隐藏的根节点的文档树
来。 - 移除笔记本概念,统一文档树子节点及叶子节点操作逻辑。
移除笔记本的概念后,原 笔记本
概念就变成了 第一级子节点
,这样就解决了笔记本间文档互移的问题。同时也引出了新的问题:第一级子节点是否能够移动道其他第一级子节点下面?我的考虑是:能。
如有其他看法,也请各位参与讨论。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于