关于利用思源实现渐进阅读的设想

本贴最后更新于 346 天前,其中的信息可能已经天翻地覆

思源 2.7.6 预览版已经可以做到按文档树对卡片分类了,在此基础上进一步改进的话,完全可以做到渐进阅读(增量阅读),从而取代 supermemo(以下简称 SM)。在阅读后面的内容之前,还请读者先看一下 SM 实现渐进阅读的演示视频:

https://www.bilibili.com/video/BV1L741197iu/?p=6

https://www.zhihu.com/zvideo/1345302166383382528

我先根据视频简单总结一下 SM 渐进阅读的流程。

  1. 导入文章(这个没什么好说的)
  2. 对文章进行格式调整、改写、精简、加粗、高亮等
  3. 选中文章中你认为有价值的部分,通过快捷键(Alt+X)将选中的部分用特定颜色高亮,并生成一张摘抄卡片,将这张卡片作为当前文档的子文档(注意,不一定挖空的才叫卡片)
  4. 对上一步做好的卡片进行加工,包括批注、改写、精简、加粗、高亮等
  5. 第二天对前一天做好的卡片通过间隔重复算法进行回顾
  6. 进一步对卡片进行加工
  7. 重复上述第 3 步的操作,生成更细的摘抄卡片,作为父卡片的子文档
  8. 几天后,可对摘抄卡片进行挖空了(挖空快捷键 Alt+Z),生成的挖空卡片将作为父卡片的子文档
  9. 继续通过排期算法复习,直到完全掌握这篇文章

那思源应怎样改进才能实现渐进阅读呢?
我认为就仿照上述流程来进行就行了,需要做到以下改进:

  1. 当文档标题缺省时,在文档树中,将文档的标题显示为文档最前面的文字内容,而不是 Untitled
  2. 可以将文档的顶级标题(即整篇文档)制作为卡片,目前只能将一级、二级标题制作为卡片
  3. 选中文档中的部分内容块后,可通过快捷键或右键菜单将选中部分用特定颜色高亮,并提取出来作为当前文档的子文档,并将这篇子文档的顶级标题制作为卡片。(在生成子文档的时候需注意,新生成的子文档应位于文档树末尾而不是最前面)

完成上述改进后,就可以利用思源进行渐进阅读了。欢迎讨论。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    17505 引用 • 63590 回帖
3 操作
openAI 在 2023-03-18 11:55:20 更新了该帖
openAI 在 2023-03-12 17:36:44 更新了该帖
openAI 在 2023-03-12 11:21:41 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 已经制卡的块有没有标记啊,或者按有些朋友的建议,有没有新的挖空语法/提问语法,而不用每次都点击,加入卡组?

    1 回复
  • 思源估计难了,sm 的渐进阅读的优势在算法,好像他的算法可以将摘录但未制卡的卡片定期呈现给你,并且防止积压

    2 回复
  • openAI

    D 大回复我的,只要内容块制作为了闪卡,在内容块的右边就会有一条竖线。

    我也赞同挖空自动生成卡片,前提是要将“挖空”和“高亮”这两个功能分开,可以看我前一个帖子的讨论:

    2.7.6 预览版闪卡功能改进建议 - openAI 的回帖

  • openAI

    思源的排期算法不是叶神写的嘛,叶神就是国内渐进阅读的推动者。

  • 正好分享下在思源里的制卡和对渐进阅读功能的补充。

    根据渐进阅读的最小定义 - 知乎 (zhihu.com),思源目前缺三个功能就达到定义中“基本选项”的要求了。

    在 SM 里进行 ALT+X 的摘录、改写操作不一定要在文档树上进行,我之前也纠结了很久,因为思源有一个“选中文字新建文档块内容为”的功能(默认快捷键 F4),它的生成位置默认是当前文档块的子级(没有被全局设置覆盖的话),也会以文字内容命名,和在 SM 里进行摘录的操作很像。但是在 SM 里进行摘录生成 topic 的作用是这样的:

    1. 聚焦摘抄材料

    2. 继承复习间隔,加入复习队列

    3. 继承引用来源

    4. 继承优先级属性

    5. 提供回到原文的入口,能从摘录的 topic 跳到原文

      • 通过返回父级回到原文
      • 通过引用来源返回原文
    6. 在改写后进行挖空生成 item

    继承复习间隔还好说,有些用户是不想要这个功能,是用手动安排摘录 topic 时间的,在思源里不能直接安排进复习队列和继承优先级属性也就是麻烦了点,但有个痛点是目前依靠文档树制卡做不了的:在复习界面里没法通过子文档块跳到原文

    这一点很重要,因为渐进阅读是从材料的语境中制卡,回到原文能保证改写的 topic 、生成的 item 不丢失其原意,sm 的引用来源、返回父级、**Ancestors **窗口就是为了防止卡片(元素)孤立,丢失其语义,如下图:

    • image
    • image
    • image

    大纲双链软件里的面包屑反链的核心是上下文跟这三个功能的作用同理,都是补足上下文语境,准确描述并帮助定位当前内容块(卡片、元素)的语义。

    所以其实可以不用局限于文档树制卡,目前是能通过其它方法补充上下文语境的(这也是思源“文档包围大纲”路线的魅力)。

    利用列表大纲提供的面包屑:

    1. 在思源阅读原文(并不一定要在复习界面阅读,可以把要阅读的内容块引用一下安排进复习队列等推送,当然能在复习界面阅读也是好的,不是刚需)

      • 比如像这样
        image
    2. 通过触发块引用浮窗进行阅读(浮窗可以使用新窗口打开,这样不会挡到制卡),再将原文转换为列表大纲的模式
      image

    3. 在列表大纲里制卡

      • image
      • image
    4. 在闪卡界面复习、改卡、补充材料、继续制卡

      • 复习image

      • image

      • 补充材料image

      • 对材料进行改写制卡image

      • 通过面包屑(可以触发浮窗进入上下文,也可以退出聚焦回到上下文里)提供的上下文语境确定语义,知道在问什么,比如这里是在问支配可满足什么样的需求image

      • 在对长文材料也可以列表大纲也可以做到像文档树一样,父级为原材料,子级不断改写的形式进行渐进处理

        • 思源文档树在部分系统上有个七层的限制

    利用块引用进行制卡:

    利用文档树、列表大纲制卡都是要和原文有内容上的物理逻辑关系的,要么是成为子文档块,要么是成为列表大纲里的子级,但是块引用很自由,可以跳出来任意组合上下文

    RR 的块引用一直有个功能,是能转换块引用锚文本为“文本 *”的格式,这样能保留原文,还能对原文本进行改写留下跳回原文的“*”链接,我们就可以利用这一点完成块引用制卡

    • image
    • image
    • image
    • image
    • image

    在这里块引用就可以用作返回上下文语境

    在处理长材料的时候,块引用制卡是这么做的:

    • 第一次块引用原文,转换为“文本 *”进行改写
    • 第二次引用第一次改写的内容,转换后继续改写
    • ...
    • 改写至满意后进行制卡

    这个过程很自由,不用拘泥于在什么位置记录、处理材料

    用块引用不断改写的效果跟在 SM 里渐进处理摘录 topic 是一样的,是两个人( woz 和 conor )用不同的方式实现了同一种效果

    所以目前在思源里,是能通过列表大纲和块引用实现渐进摘录的,而只利用文档树是不行的。

    1 回复
  • dammy 1 赞同

    根据渐进阅读的最小定义 - 知乎 (zhihu.com)来看,在思源里实现渐进阅读基本选项目前还缺三个功能:

    它们是一套功能,也是上面渐进阅读最小定义里提到的超负荷工具,目的是为了减压,优化“复习环节及其内容的情感联系****”,间隔重复里我遇到的超负荷工具还有手动安排复习间隔、手动安排卡片当天的队列位置,都是很棒的功能

    优先级是选择重要的知识,自动排序会让卡片按照优先级排序,自动延迟会将低优先级材料推迟复习,可以防止卡片的堆积

    目前对于怎么实现这三个特性我没有思路,优先级可以靠块属性解决,但是怎么做进制卡流程里、如何让文档块里所有块继承优先级、让交互变得丝滑都是问题

    还有个致命问题是,只有卡片堆积(某几天没复习,回来复习量巨大)、阅读量大的重度用户会很急需这些功能,轻度用户是用不到的

    在做间隔重复之前我有提过建议,关于将来优化制卡的需求会是刚需,只能慢慢来,思源不像 RN 从一开始就敲定了奔着往制卡方向走,连编辑器也适配了制卡,只能像其他双链软件一样以不大改的方式完成需求

    值得一提的是,和渐进阅读从原材料制卡不同,RN 推荐的制卡工作流依靠概念描述符框架,它是一种模板制卡,这种制卡方式可能更适合思源这类笔记软件

    在 RemNote 中构建知识 https://zhuanlan.zhihu.com/p/242322075
    在 RN 中使用概念描述符框架 https://help.remnote.com/en/articles/6751778-how-to-use-the-concept-descriptor-framework
    RN 的模板制卡真的挺棒的,挺适合在笔记软件用,目前的间隔重复制卡大致可分为三种:

    1. 专家制卡,像编写教材一样精心打造卡片,例如 Andy 的提出的助记符媒介,这是他的量子国度项目 https://quantum.country/
    2. 通过原文材料辅助制卡,像 SM 的渐进阅读就是
    3. 通过模板制卡,如 RN

    在笔记软件里阅读原文材料进行制卡会遇到性能以及搜索的问题,我之前有尝试过在思源里剪藏了大量文章,也把思源当成本地图床使思源作为本地图床导入材料至 SuperMemo,以网页为例 - 链滴 (ld246.com),但是块引搜索的时候会出来很多我不认识的内容干扰我,思源的性能也是个问题, 之后我就放弃进剪藏进思源。这促使了我只在思源里保留我要表达的内容,其它一切“夹生饭”都放到别的软件里。RN 模板制卡的好处就是不用依靠原文也能辅助制卡,在模板提问里表达自己已有的知识,然后组织发展它们,真的很不错

  • openAI

    利用文档树渐进摘录有个好处就是不会污染原文。

    如果采用列表大纲来渐进摘录的话,就会污染原文。比如说,原文第一段落和第二段落本身是连贯的,但渐进摘录后,第一段落和第二段落之间就会有很多摘录信息,并且这些摘录信息的内容是和第一段落重复的,影响对原文的阅读。

    感觉最好的方案还是文档树再结合你提到的块引用。

    1 回复
  • dammy 1 赞同

    文档树 + 块引用是个不错的方法,块引用可以替 SM 里 摘抄 ALT+X返回父级引用来源 功能,如果后面有更快捷的生成子文档块 + 块引用原文的功能就好了。

    还有一种思路是靠块引用的反链,选中文字按下 F3 会在生成子文档的同时生成块引用,这时候通过在子文档标题处的反链提醒浮窗、或者在反链面板里回到原文的语境,但目前的问题是:

    1. 只能生成所选内容的标题,不在子文档正文生成所选内容
    2. 在原文生成的块引用是动态锚文本,更改子文档标题原文也会跟着更改

    image.png

    image.png

    image.png

  • sm 只有问答卡(item)才会应用算法,“摘录卡”(topic)只是简单的递增

    1 回复
  • openAI

    这个也很好解决,在不改变算法的情况下,摘录卡只提供“good”或“easy”按钮,不提供“hard”和“again”按钮。

    1 回复
  • openAI

    再提一个点,在生成摘录卡的时候,会先选中文字。这时候如果能做到下面这种效果就最好不过了:

    1. 在段落块内选中部分文字,那生成的摘录卡就只含选中的部分。
    2. 如果是跨段落块选中文字,而最前面或最后面的段落块只选中了部分文字,那只截取选中的部分。

    可以先不急着实现这一效果,等渐进阅读的基本功能做好了,再慢慢改进。

  • 最好还是分开,对一小部分摘录卡有个操作是 手动设定下次出现的间隔(Ctrl+J),而且,只提供 good 和 easy 我觉得不能替代 Done(Ctrl+Shift+Enter DismissCtrl+D

  • openAI

    我补充一点,渐进阅读生成子文档的时候需注意,新生成的子文档应位于末尾而不是最前面。这一点和日记的逻辑恰恰相反,对于日记来说,用户自然是希望离今天越近的日记越靠前显示。而渐进阅读不同,用户是按照文章顺序来阅读的,自然子文档也应该按照文章顺序(而不是逆序)来排列。

    1 回复
  • Spade7 1 评论

    你指的是 文档树位置 还是 排期顺序位置?

    1 回复
    文档树位置
    openAI
  • openAI

    不过我想了下,不仅仅是文档树位置,排期顺序位置也应该和原文的顺序一致,并且父文档要排在子文档前面,因为渐进阅读的顺序就是由粗到细,由前向后。

    1 回复
  • Spade7 1 赞同

    渐进阅读只是总体上从前到后,实际上是根据个人情况乱序的,学习者经常学到后面的内容后再回到前面的段落进行摘录 或者 在后面粗摘录的同时对前面精摘录,如果一旦前面有摘录内容就优先显示,那绝大部分时间都会在处理前面的内容,严格按照文章顺序排期,其实隐含的是:必须将前面的内容理解完全才能对后面内容进行学习。这实际上有悖渐进学习的理念。

    1 回复
  • openAI

    有道理

  • zazuone

    obsidian 中的间隔重复是不是已经有这个功能了?

请输入回帖内容 ...

推荐标签 标签

  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 583 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    14 引用 • 67 回帖 • 386 关注
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    53 引用 • 85 回帖
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    178 引用 • 120 回帖 • 1 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    3 引用 • 49 回帖 • 2 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 306 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 252 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    70 引用 • 532 回帖 • 688 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    82 引用 • 893 回帖
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 415 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 396 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 7 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 548 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 443 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    34 引用 • 24 回帖 • 1 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 263 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 285 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    76 引用 • 37 回帖
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    261 引用 • 662 回帖 • 2 关注
  • Sillot

    Sillot (汐洛)孵化自思源笔记,致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点
    Github 地址:https://github.com/Hi-Windom/Sillot

    11 引用 • 14 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • CodeMirror
    1 引用 • 2 回帖 • 103 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 532 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    283 引用 • 247 回帖 • 238 关注
  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    206 引用 • 2027 回帖
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 450 关注