个人知识管理系统需求文档

林一二2024年08月13日 19:24
2015年记于印象笔记

一、愿景目标

「作为一个经常需要解各种题的学生,我希望有一个以使用为导向的知识管理系统,以便在需要解决方案的时候能快速查找到相关的干货。」

「作为一个健忘的人,我经常忘记跟谁说过什么话,但是我记得一些模糊的信息,如果有东西能让我通过模糊的描述找到我想想起的东西就好了,这样面对客户的时候我就不会因为健忘而尴尬了。」

「作为一个需要看大量资料的人,我希望有一个系统能帮我处理海量知识之间的联系,不管这个知识是来自网上的碎片、来自成现代物理学体系,还是来自成 T 上 E 的基因测序,这样我可以更有效率地形成自己的知识体系,从不同角度进行洞察。」

「作为一个知识分享者,我希望有一个知识库能让我直接利用别人添加的信息,这样可以避免在搜集信息上重新造轮子。」

需要对知识进行权限管理

二、用户及目标市场

本应用主要针对需要处理大量文档、参考资料的用户,面向海外写手市场、国内外工程机构、情报机构。

同时,本应用也可面向喜欢做书摘的阅读者、经常保存网页的重度 EverNote Clip 用户、有很多碎片信息需要整合的情报人员、需要归档大量相互关联的信息的 HR 等人群,提供处理碎片信息的手段。

对于只需要普通笔记功能、只需要把本应用当做 todo 列表的人群,本应用也可以以轻量版的形式出现。

三、竞争对手分析

非线性写作做得较大的有 weavi ,笔记功能较完善的有 EverNote ,识别和搜索优秀的有 OneNote 。

四、功能性需求

四一、工作流与功能概述

1.直接输入文字或将图片、声音转换成文字

使用者在进行采访时开启录音功能,自动将环境声音粗略转换成文字。使用者对印刷品或场景拍照,系统识别出各个物体并加上标签。

涉及功能:「声音识别」「图像识别」

2.通过Agenda获得语境

使用者查询笔记时,系统根据TodoList或定位信息获得当前语境,根据语境协同搜索。

用例:使用者查询「车」,因为当前进行的任务是「上物理课」关联到上科大,所以搜索结果就是与上科大和车同时有关的班车时刻表。

涉及功能:「todoList模块」「语境识别」

3.将文字抽象成概念

系统自动生成对文字内容的抽象概念索引,或是使用者自己新建写作区,记录自己对这篇笔记的感想,以及这篇笔记的抽象用法,将笔记内化,然后将新笔记和原笔记关联在一起。

使用者将整篇笔记或笔记中的一个段落与另一个笔记关联起来,方便以后参考时能提醒自己其间的联系。

笔记中有涉及到别的同学的内容,系统自动将本条内容与该同学关联起来。

涉及功能:「基于图论的存储结构」「语义识别」

4.将概念相似的内容聚合

系统会给出一个个对已有大量知识的洞察,使用者从洞察中获得启发。

涉及功能:「聚合」

5.支持非线性编辑

涉及功能:「非线性编辑系统」

6.定期回顾

通过记忆曲线等原理,帮助使用者定期复习笔记中的信息。

涉及功能:「遗忘预测」

- 将内容授权给其他人查看

graphql服务器和neo4j服务器处在一个内网里,禁止直接访问neo4j服务器、记忆文件。graphQL服务器可以检查浏览者的权限是否足够,权限信息放在neo4J服务器里

次要功能点:

使用者在网上看到有兴趣的内容,使用网页截取插件将内容截取同步到系统内,并设置以后网页如果更新了内容就自动抓取保存。阅读保存的笔记或文章时,如果文内有类似论文的引用、参考文献或脚注,使用者将鼠标移动到标注上能快速查看。

涉及功能:「与Evernote Clip协作」「整合爬虫」「引用模式识别」「全局快速查看系统」

四二、用户界面

主界面由两个元件组成:「功能栏」、「分页」

移动端主界面空白处下拉,桌面端将鼠标移动到页面顶部出现环形菜单,环形菜单包含「搜索」、「输入」等选项以及自定义快捷方式,在环形菜单内的选择决定了出现的功能栏中多功能输入框的模式。

「功能栏」由两个元件组成:「多功能输入框」「快捷栏」

「多功能输入框」在输入模式内用于添加新文字信息拖入文件。在搜索模式内将在第二页打开一个搜索聚类,实时显示当前输入内容的搜索结果,按下回车后判定此次搜索完成,再输入内容则打开新的搜索聚类。

「快捷栏」中有信息或聚类的快捷方式,点击后打开一个信息或是聚类。也包含撤销功能,点击打开z-index比功能栏高的非线性撤销页面,可以对之前任意一步或多步,增加的就删除,删除的就增加,修改的就逆转。也包含刷新功能,点击后相当于刷新网页,重新排列首页。

「分页」含有多个瓷砖,形成一个向右的流式布局使新出现的内容将旧有内容顶向右侧,但瓷砖可以被固定,长按瓷砖将打开环形菜单,瓷砖有多种类别:

「包含信息的瓷砖」是一个窗口,从中可以看到一个长条形的和瓷砖等宽的文档,在其上用鼠标滚轮或是上划可以滑动窗口后的文档,从而快速查看文档。点击瓷砖将使瓷砖展开成一页的大小,如果这一页已经有其它展开了的瓷砖,刚被点击的瓷砖将只会恰好填满页面。

「展开的包含信息的瓷砖」是一个包含大量信息节点的窗口,从中可以看到长条形的和瓷砖等宽的文档,文档由很多「信息节点」组成,每个节点都可以单独编辑或拖入文档,每个节点可以通过拖拽右下角快速拖动到其它位置或成为其它节点的子节点或拖动复制到其它文档。

「作为搜索结果的瓷砖」是一个窗口,从中可以看到文档组成的列表,在其上用鼠标滚轮或是上划可以滑动窗口后的列表,从而快速查看搜索结果。点击列表中任何一项将在第二页展开文档,并将搜索结果等第一页后面的内容推向信息流的右侧。

「日程瓷砖」是一个窗口,从中可以看到一个长条形的和瓷砖等宽的日历,默认显示以当前时间为中心的一段时间,在其上用鼠标滚轮或是上划可以滑动窗口后的日历,从而查看其它任务。瓷砖上有日、月按钮,可以切换视图。点击瓷砖将展开日历。

「Todo瓷砖」是一个窗口,从中可以看到一个长条形的和瓷砖等宽的TodoList,在其上用鼠标滚轮或是上划可以滑动窗口后的TodoList,从而快速查看TodoList。在某条Todo上右划可以标记本条Todo完成。点击瓷砖将展开TodoList。

「环形菜单」是一个由手指或鼠标动作触发的,由同心扇形组成的菜单,一般出现在页面偏向中心的位置,并在手指或鼠标的方向留有扇形空缺,方便手指移入。每个扇形代表一个选项或选项组,通过手指或鼠标通过扇形外边缘来选定这个选项,或打开新的选项组。松开手指或点击其他位置或鼠标离开环形菜单一段距离一段时间后环形菜单关闭并认为未选中当前菜单内的任何新选项,之前若有餐单则其中被通过的扇形所代表的选项仍然被认为被选中。菜单包含的选项可能有:拖动、关联、删除、文档内部搜索、样式、自我分屏、锁定解锁。在环形菜单的中间是最近最常用的选项,左键点击即可打开。

在环形菜单的设置界面内,可以把各个菜单项或是功能项拖入环形菜单,其中菜单项被选中后会显示下一级菜单和功能

「信息节点」是一个非线性编辑单元,呈现方式可参考 wewavi ,内部编辑菜单呈现方式可参考 evernote 。

应用打开后,第一页显示系统推荐的复习内容、最近添加的信息、最近添加量最大的抽象聚类

第一页左边负一页示不断下落的垂直信息流,内容和第一页打开的内容一定程度上有关,并且混杂有一定相关性的广告、网络内容,供写作者或是需要休闲的使用者快速获取信息。当使用者不再观察负一页的70%左右显示空间时瀑布流停止滚动

当一个瓷砖被拖动时,其它瓷砖会以符合流式布局的行为模式移动。

当一个展开的瓷砖被拖动到另一个展开的瓷砖下时,页面会自动分屏

「环形菜单解锁」通过多级环形菜单连续穿过多个选项组,选中多个选项后,解锁内容。

六、非功能性需求

匿名评分和非匿名赞

通过匿名评分让读者能客观地表达自己感受而不受社交影响,非匿名赞让读者能社交地提高所读信息的权重。

视觉效果良好的字体渲染

保证阅读体验

用 MathJax 做搜索引擎,搜索类似的解题方法 https://github.com/mathjax/MathJax ,也可以用上 https://github.com/KWARC/mws 、 https://github.com/CLLKazan/MathSearch 等

加入REPL,类似https://github.com/replit/repl.it 或 https://tonicdev.com/

nginx 防图片盗链

系统不直接带工具栏,可以通过插件添加,但平时工具都在右键环形菜单内。环形菜单留一个位置给插件的特有菜单,移动到此菜单上展开这个插件特有的功能

某个用户使用的插件在Neo4j数据库里声明,服务端渲染时根据声明运行这个插件的初始化javascript文件,把一些比如从 store get 东西的函数塞给插件,然后

单一数据源,所有数据都来自store,插件和主要功能的数据来源都是store