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

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

思源 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. 选中文档中的部分内容块后,可通过快捷键或右键菜单将选中部分用特定颜色高亮,并提取出来作为当前文档的子文档,并将这篇子文档的顶级标题制作为卡片。(在生成子文档的时候需注意,新生成的子文档应位于文档树末尾而不是最前面)

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

  • 思源笔记

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

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

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

相关帖子

欢迎来到这里!

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

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

    1 回复
  • wxtgood via Redmi K20 Pro Premium Edition

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

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

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

    2.7.6 预览版闪卡功能改进建议 - 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 模板制卡的好处就是不用依靠原文也能辅助制卡,在模板提问里表达自己已有的知识,然后组织发展它们,真的很不错

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

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

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

    1 回复
  • dammy 1 赞同

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

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

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

    image.png

    image.png

    image.png

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

    1 回复
  • openAI via Android

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

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

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

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

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

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

    1 回复
  • Spade7 1 评论

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

    1 回复
    文档树位置
    openAI
  • openAI via Linux

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

    1 回复
  • Spade7 1 赞同

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

    1 回复
  • openAI via Android

    有道理

  • zazuone

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

请输入回帖内容 ...

推荐标签 标签

  • 笔记

    好记性不如烂笔头。

    310 引用 • 794 回帖
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    500 引用 • 1395 回帖 • 243 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 9 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • 京东

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

    14 引用 • 102 回帖 • 314 关注
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 515 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    115 引用 • 318 回帖
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    45 引用 • 114 回帖 • 170 关注
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 144 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 35 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖 • 3 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    54 引用 • 37 回帖
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 1 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    89 引用 • 1251 回帖 • 395 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 2 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 60 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖 • 1 关注
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    151 引用 • 257 回帖 • 1 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1443 引用 • 10082 回帖 • 497 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖 • 4 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    92 引用 • 752 回帖
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖 • 1 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    172 引用 • 534 回帖
  • Vue.js

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

    268 引用 • 666 回帖 • 2 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    211 引用 • 358 回帖
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 735 关注
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖 • 2 关注