计算脑——如何构建个人知识库

2,508 阅读20分钟

前言

互联网时代,如何如何更好的利用信息是一个非常重要的事情。信息的利用可以拆解为下面这些行为:获取、加工、存储、搜索、使用、泛化。 今天我将从信息的 自我加工、本地存储、内部搜索 这个三个方面来讲一讲如何通过构建个人知识库来更好的利用信息。

下图是我通过个人知识库,沉淀出的文档数量 知识库文档数量

一、定义

先来讲讲我理解的 加工、存储、搜索 这三个行为的定义以及衡量这些行为实现方式的纬度。

1. 行为定义

  • 加工:顾名思义,我们的各种感官每天会收到各种各样的原始信息,我们通过大脑加工后也会通过器官输出信息。加工有两种方式:转换和衍生
    • 转换:指的基本保留原始信息的含义,但是会将其翻译成我们理解的形式。比如一个盲人问你某张图片上有什么,我们可能说上面有女人或者男人。上面有女人和男人就是保留了原始信息的含义,但是将其翻译成了人类能够理解的形式。
    • 衍生:我们的大脑指的是通过原始信息再加上个人的理解,表达出原始信息中没有的信息。还是刚刚那一张照片,如果我们和盲人说上面有美女,这个就是我们加上了个人理解后表达出的新信息。
  • 存储:我们将原始信息加工出来了之后,需要有一个地方能够存储我们的信息,方便以后对现在的信息进行重新利用。存储的地方也有两种:本地和云端
    • 本地:指的是我们个人电脑、硬盘等等我们能够掌握其物理形式的地方。
    • 云端:和本地相反,云端是我们掌握不到的其物理形式的地方。典型的云端有百度云盘、阿里云、腾讯云、Github等等。
  • 搜索:这个就比较简单了,我们将信息存储之后,如果某个时刻又想要利用信息的话,就可以通过搜索存储来找到我们需要的信息。需要注意的是,这里的搜索只是指搜索我们自己的数据,而不是百度搜索那种搜索。

2. 维度定义

有了行为的定义,接下来我们可以再定义一些纬度,以衡量我们实现这几个行为的方式的好坏。

  • 加工:对于信息加工,我们大脑加工的效率每个人已经固定了,但是如果我们能够用一些工具来辅助我们加工后信息的输出效率,或者工具能够帮助我们的大脑进行信息加工,那么我们可以用信息输出效率(编辑和收集内容的效率)、便捷性(是否各个平台都能方便的进行数据加工)这两个纬度来衡量实现信息加工方式的好坏。
  • 存储:对于信息存储,我们可以通过安全性(是否会被黑客截获)、私密性(是否信息会被贩卖)、容灾性(是否信息容易丢失)这三个纬度来衡量实现信息存储方式的好坏。
  • 搜索:对于信息搜索,我们可以通过准确性(以最少的输入搜索到最精确的内容)、便捷性(是否在各平台都能搜索使用)这两个纬度来衡量实现信息搜索方式的好坏。

个人知识库能够很好的承接上面三个行为,所以接下来我将用上面定义的那些纬度,来衡量如何构建一个更好的个人知识库。

二、常用的方案

常见的知识库方案有下面四种:古老法、跨平台法、类苹果法、软件法。

1. 古老法

古老法指的是:

  • 将所有文件存储在自己的电脑上,然后通过文件夹来分类管理
  • 加工时依照文件类型的不同,新建文件或者打开已有文件,使用对应的软件进行编辑。
  • 搜索时通过文件管理器来搜索对应的文件名,然后使用对应的软件来打开文件获取信息。

下面是我对古老法在三个方面的评价:

  • 加工:效率中等,依赖本地程序。便捷性低,只能在当前电脑加工。
  • 存储:安全性中等私密性高容灾性低,电脑或者硬盘坏了就gg。
  • 搜索:准确性中等,只能搜索文件名。便捷性低,只能在当前电脑搜索。
加工效率加工便捷性存储安全性存储私密性存储容灾性搜索准确性搜索便捷性
古老法

2. 跨平台法

互联网时代很多白领喜欢使用一些云笔记平台来作为自己的个人知识库。常用的云笔记平台有:有道云笔记、为知、印象笔记、OneNote等等。这些云笔记平台主要的工作是为用户积累的信息提供跨平台能力。

下面是我对跨平台法在三个方面的评价:

  • 加工:效率低,文件格式只能是平台定义的,且编辑器简陋。便捷性高,因为跨平台所以基本上所有平台都能操作。
  • 存储:安全性中等私密性低,个人信息容易被转卖。容灾性中等,需要看公司的体量。
  • 搜索:准确性高,允许搜索内容、文件名等等。便捷性高,因为跨平台所以基本上所有平台都能操作。
加工效率加工便捷性存储安全性存储私密性存储容灾性搜索准确性搜索便捷性
跨平台法

3. 类苹果法

苹果生态为用户提供了icloud,微软生态为用户提供了 OneDrive。这些方案我这里统称为类苹果法。因为这些方案本质上是各个巨头公司为了打通自己旗下操作系统间的文件壁垒而提供的,并不是专门为了解决个人知识库构建的方案,所以如果用来实现个人知识库的构建,那么在信息加工和搜索方面,就存在一些局限性。

下面是我对类苹果法在三个方面的评价:

  • 加工:效率中等,依赖本地程序。便捷性中等,没有完全跨平台。
  • 存储:安全性高私密性中等,公司体量大所以有监管。容灾性高,公司体量大容灾措施齐备。
  • 搜索:准确性中等,只能搜索文件名。便捷性中等,没有完全跨平台。
加工效率加工便捷性存储安全性存储私密性存储容灾性搜索准确性搜索便捷性
类苹果法

4. 软件法

在我寻找个人知识库构建方案时。常常会搜索到一些软件,例如 notion,obsibian 等等。这些软件有开源的也有免费的,在知识库构建方面都有一些特别之处。例如 obsibian 可以构建出网络状的知识图谱,notion 的笔记中可以添加各种各样的媒体资源。

下面是我对软件法在三个方面的评价:

  • 加工:效率高,提供的编辑器还是比较强大的。便捷性中等,没有完全跨平台。
  • 存储:安全性中等私密性高,因为数据可以都在我们自己手上。容灾性低,和古老法一样,数据容易丢失。
  • 搜索:准确性高,可以搜索内容。便捷性中等,没有完全跨平台。
加工效率加工便捷性存储安全性存储私密性存储容灾性搜索准确性搜索便捷性
软件法

5. 评分

简单总结一下:

  • 古老法:不跨平台,数据易丢,搜索低效
  • 跨平台法:私密性低,加工低效
  • 类苹果法:不完全跨平台,搜索低效
  • 软件法:不完全跨平台,数据易丢

那么有没有一种:跨平台、高效率、强容灾、强私密、快搜索的个人知识库方案呢?

三、新方案

方案当然是有的,但是在介绍方案之前,我们先来介绍几个其他的东西。

1. Markdown、VScode、Wiki.js

  • Markdown:Markdown是一种轻量级标记语言。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档。
  • VScode:一个插件生态异常丰富的跨平台编辑器。绝大部分的文件格式都它都兼容,上面说到的 Markdown 也有插件能够支持。
  • Wiki.js:一个基于 React、NodeJs 的开源 Wiki Web 程序。支持 Markdown,可以使用 Docker 进行部署。

2. 融合

有了 Markdown、VScode、Wiki.js 这三大利器,我们就能够开始构建一个最完美的方案了,我取名为:MVW法,取自三大利器的首字母缩写。接下来跟我一起见证一个互联网产品的诞生吧!

(1).需求调研

第一步的需求调研,其实第一章我们已经做了一大部分了,我们在第一章调研了目前市面上主流的四种知识库构建方案。四种方案可以说各有千秋,但是却都不完美,所以我们现在主要调研一下,MVW法的评分。

方案整体的架构如上图,这里我解释一下:

  • Wiki.js
    • 1.因为是一个 Web 程序,所以他能够起到一个跨平台的作用。
    • 2.因为数据都在我们手上所以它的私密性也是最强的。
    • 3.因为 Wiki.js 有备份功能,所以我们可以将加密后的压缩文件自动备份到各种"云"上,所以容灾性也是最强的。
  • Markdown:
    • 1.Markdown 作为本方案推荐的文件格式,是非常能够提升我们的输出效率的,这是我们这个方案高效率的一个方面。
    • 2.归功于 Markdown 语言的轻量简单,我们的 Wiki.js 可以对 Markdown 文件中的内容进行搜索,这是我们这个方案高效率的另一个方面。
  • VScode:作为一个编辑器,VScode 绝对是最强的,他的插件生态也是最丰富的。
    • 1.如果你熟练使用 Vim,你可以安装 Vim 插件,享受极致的无鼠标码字体验。
    • 2.如果你喜欢绘制流程图、思维导图来辅助思考,你可以安装 drawio 插件,享受到图文并茂的快感。
  • 总结:
    • 至此,一个跨平台、高效率、强容灾、强私密、快搜索的个人知识库方案,已经初步成型了。
    • 但是聪明的同学发现,虽然 Wiki.js 和 VScode 都支持 Markdown,但是 Wiki.js 和 VScode 之间并不相通,难道我们在 VScode 上写过的东西还要在 Wiki.js 上面再写一遍吗?
    • 这就是我们接下来的重头戏:为 VScode 开发一个插件,让 VScode 中修改的文件内容能够实时上传到 Wiki.js 中。
加工效率加工便捷性存储安全性存储私密性存储容灾性搜索准确性搜索便捷性
古老法
跨平台法
类苹果法
软件法
MVW法

(2).架构设计

wiki-ws-架构设计 下面我将通过上面这张图来介绍一下MVW方案的整体架构设计:

  • 方案整体分为三个部分:VSCode,Wiki.js网页,Wiki.js服务器
    • VSCode 和 Wiki.js 服务器可以被安装在 Mac OS,Windows 和 Linux 上。
    • Wiki.js 网页是依附与浏览器的,而浏览器在几乎所有系统上都有,可以算是真正的跨平台了。
  • VSCode:
    • 用户可以通过 Wiki-WS 插件进行很多操作:
      • 一键将 Wiki.js 服务器部署在当前电脑上。
      • 增删改取资源文件,例如图片,word,压缩包之类的。
      • 通过 MarkDown 协议来增删改取文件。
    • Wiki-WS 启动的时候可能会创建两个工作空间:wiki 和 wiki-local
      • wiki:这个工作空间完全基于内存。它负责存储与 Wiki.js 服务器增删改取的文件。
      • wiki-local:这个工作空间基于硬盘。它和我们普通的目录没啥区别。因为我们需要一个地方存储资源或者本地文件,所以就有了这个工作空间,如果你在初始化 Wiki-WS 插件的时候已经有了一个本地的工作空间的话,这个工作空间就不会创建。
    • VSCode 的编辑器可以给我们提供 Wiki.js 服务器中的文件的预览和编辑。我们可以装上各种插件来提升编辑器的效率,例如 VIM 插件。
  • Wiki.js 网页:用户可以在任何有浏览器的系统上,通过网页来对 Wiki.js 服务器中的文件和资源进行增删改查。也可以预览和编辑文件和资源。
  • Wiki.js 服务器:
    • 知识库的一切数据都是存储在这里的,VSCode 和 Wiki.js 网页只是起操作里面数据的作用。
    • 我们通过 Docker 来部署 Wiki.js 服务器,所以在使用插件的部署功能之前,需要在当前电脑上安装 Docker。如果你已经有了 Wiki.js 服务器,那么就不需要安装 Docker 了,只需要依照插件提示输入一些 Wiki.js 服务器的参数即可。
    • 基于 Docker 部署后的 Wiki.js 服务器有很强的容灾能力,服务器里所有的数据都在一个文件夹里,我们只需要定时压缩和备份文件夹。即使现有数据遭受到了毁灭性打击,我们也可以在几分钟内重新在新电脑上部署新的 Wiki.js 服务,里面的一切数据和配置都不会丢失。

(3).功能细化

wiki-ws-功能 我将这款插件命名为:Wiki-WS,接下来我结合上面的功能图来简单介绍一下这款插件具备的功能。

  • 初始化和清理:
    • Wiki.js一键部署:因为我们这款插件需要结合 Wiki.js。而 Wiki.js 的安装和部署的门槛比较高。所以这里插件提供了一键部署的功能。只需要跟着提示输入一些信息,就能基于 Docker 非常方便的在本地部署 Wiki.js。这里的部署需要依赖 Docker,所以需要大家提前安装好。
    • Wiki-ws插件初始化,Wiki-WS跟随VSCode启动初始化:这里提供了两种 Wiki-ws 的启动方式,你可以在 VSCode 启动的时候自动初始化 Wiki-WS 插件,也可以手动执行 VSCode 命令,进行启动。
  • MD文件操作:这里的 MD 文件指的就是 MarkDown 文件,只要我们将文件名后缀写为 .md 那么插件就会自动识别出该文件的格式。
    • MD文件上传:当我们在本地新建了一个 MD 文件后,我们可以将这个文件上传到 Wiki.js 上,这样就能将文件持久化了(需要注意的是,在 VSCode 中的 wiki 工作空间中所有文件都是在内存中的,VSCode 一旦关闭这些文件就没了,所以需要上传到 Wiki.js 中)。MD文件的上传提供了单个与批量两种方式。
    • MD文件删除:同样的如果我们删除了 wiki 工作空间中的文件也只是删除了本地的文件,我们需要使用这个功能对 Wiki.js 上的文件删除,才算真正的将文件删掉了。MD文件的删除也提供了单个与批量两种方式。
    • MD文件修改:
      • 文件修改实时上传:为了不丢失本地文件的修改状态,插件提供了这个功能。本功能会以一定的时间间隔将本地文件的修改内容上传到 Wiki.js 中。这个间隔是秒级的,同时如果文件没有修改,也不会重复上传。
      • 文件修改后左下角展示状态:考虑到用户体验的问题,插件在 VSCode 右下角提供了文件的状态展示,这里会展示当前文件的保存状态:已保存至Wiki.js 和 未保存至Wiki.js。
      • 文件修改后多端冲突解决:如果有多个 VSCode 实例同时更改同一个文件,那么插件会对冲突进行提示,并提供两个解决方法:本地覆盖 Wiki.js 的数据Wiki.js 的数据覆盖本地
    • MD文件获取:因为 wiki 工作空间中的文件只存在于内存中,所以下次打开 VSCode 的时候我们就需要以某种形式来获取 Wiki.js 中的文件。
      • 文件名关键字搜索并获取:我们可以通过输入文件名的一部分,以关键字的形式在 Wiki.js 中搜索并获取某个文件。
      • 文件内容关键字搜索并获取:我们可以通过输入文件中内容的一部分,以关键字的形式在 Wiki.js 中搜索并获取某个文件。
      • 批量获取某个目录中所有MD文件:我们还可以在 wiki 工作空间中批量获取 Wiki.js 中某个目录中所有的MD文件。
    • MD文件查看:
      • VSCode中文件查看:我们可以在 VSCode 中以普通文件的方式编辑和查看文件
      • 快速在浏览器中打开对应文件:因为 Wiki.js 实际上是一个网站,所以插件在右下角提供了一个按钮,点击之后就能打开浏览器并跳转到 Wiki.js 中的对应文件上。
  • 资源文件操作:这里的资源文件指的是除了 MD 文件之外的所有文件,我们将这些文件上传到 Wiki.js 后。可以通过链接访问或者下载这些文件,同时还可以将这些文件插入到 MD 文件中。比如图片格式的文件就能直接展示在 MD 文件中。
    • 资源文件上传,资源文件删除:这两个操作分别提供单个与批量两种方式。
    • 资源文件获取:我们可以通过输入资源文件的链接来下载资源文件,也可以批量获取某个目录下的所有资源文件。

(4).方案体验

3.马斯洛分类法

有了知识库之后,在日常沉淀时。我们常常需要对新增的文件进行分类,这样能提高文件查找的效率。所以这里我给大家推荐一个我自创的文件分类方法:”马斯洛分类法“

(1).马斯洛需求层次理论

马斯洛需求层次理论 心理学家马斯洛,将人类的需求分为了五个层次从低向上分别为:生理需求,安全需求,归属需求,尊重需求,自我实现。这个需求分层为我们提供了一个文件分类的方式:我们可以依照这五个层次,建立五个目录,然后再在每个目录里细化种类。这个分类方式就被我称为:马斯洛分类法

(2).目录树

Wiki-WS自动部署的时候,里面会默认给出一个马斯洛分类法的目录,我在这里列一下目录树。

  • 生理
    • 吃:民以食为天,吃是人类的基本生理需求。所以赶紧去收集与吃有关的知识吧。
    • 身体健康:身体是革命的本钱,为了活的更久,赶紧去收集与保持身体健康有关的知识吧。
    • 性:子曰:食色,性也!为了更好的繁衍后代,释放压力。所以赶紧去收集与性相关的知识吧。
    • 瘾:现代社会的诱惑越来越多,过度则为“瘾”。为了不成为“瘾君子”,赶紧去收集防止上瘾的相关知识吧。
  • 安全
    • 房子:安得广厦千万间,大庇天下寒士俱欢颜。虽然现在房价高企,但是也不妨碍我们收集房子相关的知识,以备不时之需。
  • 归属与爱
    • 家人:家是灵魂的港湾。虽然我们天天与家人见面,但是你真的知道该如何与家人相处吗?如果知道的话,那么就在这里收集与家人相关的东西吧!如果不知道的话,那么就去收集如何与家人相处的知识吧。
    • 朋友:认识的朋友越多就越喜欢狗?我不是这样的,一个好汉三个帮。所以为了交上更多知心的朋友,赶紧去收集与交朋友相关的知识吧。
    • 社交活动:不进行社交活动,怎么获得家人和朋友?希望你成为一个”社交牛逼症“患者。
    • 同事:虽然我们无法选择与谁做同事,但是我们可以决定与同事之间的关系,我们可以选择如何与同事相处。所以赶紧去学习这样的知识吧。
  • 尊重与需要
    • 工作:希望你的劳动不被”异化“成生存的需要,而是成为获取他人尊重、获取他人需要的一种途径 —— 何时夕
    • 技能
      • 产品:人人都是产品经理!
      • 写作:写作即是创造一个世界 —— 何时夕
      • 计算机:人人都需要学习计算机,即使你不以它来进行主要工作 —— 何时夕
      • 演讲与交流:让人明白你在说什么,就已经是一件很难的事情了 —— 何时夕
      • 运营:推荐一本名为《增长黑客》的书。
  • 自我实现
    • 超人:尼采所指的“超人”形象大致可以概括为:超人是超越自身、超越弱者的人,他能充分表现自己、主宰平庸之辈;超人是真理与道德的准绳,是规范与价值的创造者;超人是自由的、自私的、自足的;超人是面对人类最大的痛苦和最大的希望;超人是在不利的环境中成长起来的,憎恨、嫉妒、顽固、怀疑、严酷、贪婪和暴力只能使超人更坚强。因此我们可以得出结论:尼采所说的超人不是那种卑微琐碎软弱无力的人,超人是充实丰富伟大而完全的人。不过,尼采并没有把超人看作是绝对的 ,他所说的超人和与超人相对的“末人”, “乃是一个相对的概念”,超人既能自我超越,又能超越别人。
    • 永垂不朽:鸿毛和泰山,无人知晓与流芳千古。我希望我都是后者,你呢?
    • 有意思的事情:Just for fun
  • 杂:总有一些东西,喜欢跳出三界之外,也不在五行之中。

四、结语

本篇文章是《计算脑》系列文章的开篇,后续还会分享更多通过计算机提升我们的生产效率的文章。

最后你都看到这里了,不来点赞收藏一波吗?你们的喜欢是我写作的最大动力,我们下篇文章见!