跳转到正文

数据与学习规则 ​

词遇把公共词典、用户事实、当前投影和设备设置分开。积分表示熟悉程度,学习阶段保留经历,FSRS 建议回忆时机,提醒频率控制打扰。它们共用一次练习输入,但不是同一个状态字段。

先分清四类数据 ​

数据例子保存和更新方式
公共资源单词释义、例句、词书成员固定 release / schema / SHA,个人不能写回
用户事实遇见句子、真实作答、撤销、笔记、词本关系稳定 ID;操作和相关实体同事务提交
可重建投影积分、阶段、今日完成量、FSRS 当前状态从有效事件和明确 asOf 时刻计算
设备偏好主题、通知节流、API 凭据、系统权限本机管理,不冒充学习事实或通用同步字段

Desktop 使用 SQLite,Browser 独立使用 IndexedDB。同步需要统一领域语义、身份与事件,但不要求两个数据库使用相同的物理表。1.0.0 连接直接读写 Desktop,当前不导入 Browser 的学习事件。

一个词如何被稳定识别 ​

公共词使用 WordRef {kind: dictionary, entryId, release, entrySchema};entryId 来自 Dictionary,词头用于显示和检索。自定义词保留 UUID、词头和语言。分片文件名、SQL 行号、网页拼写及归一词头均不能代替公共身份。

同名词、不同公共词条或个人自定义词可能有不同身份;公共词包不可用时返回缺资源,私人笔记和遇见仍保留。更新词包不应静默把历史记录换到另一个 release。

ID / 版本解决什么问题
公共 entryId / release / entrySchema哪个词条、当时依据哪个公共资源
用户实体 UUID哪个个人词、遇见或笔记
mutationId哪一次命令;同载荷重试拿原结果
eventId哪一次遇见;不同请求也不能多保存同一事件
attemptId / submissionId哪一道题、哪一次首次反馈
workspace / generation / authorizationEpoch哪份资料、哪一代授权;缓存不能串用户或空间
应用版本 / 规则版本 / 资源版本软件交付、算法口径和词包分别管理

从 10 分到学习完成,再到熟悉 ​

初始 10 分并不表示生词,而是尚未测试。假设用户第一次学习 system:

  1. 尚未作答:new、10 分;若今日选中,额外标记待学习。
  2. 看词选义独立正确:11 分、learning;有一条真实回忆事实。
  3. 之后第一次从 19 分默写正确 +2:21 分,完成初学;保存首次毕业日,最早明日有复习资格。
  4. 后续实际达到 30:进入 mastered 休息期。保护 72 小时,再每完整 48 小时扣 1,最低自然衰减到 20。
  5. 无其他操作时第 23 天到 20:回到 review。还要检查 FSRS 到期时间,才进入自动队列。

分数最低 0、最高 30。不熟悉筛选是 0 分条件,可与学习中或待复习共存。已经毕业的词答错降到 10 或 0,仍保留初学完成经历,不再次占新学额度。仅凭当前分数,无法判断一个词是否未学习,也无法确定它的学习经历。

只有从不足 30 再次实际达到 30才重开保护计时;30→30 不重置。衰减先计算到练习发生时刻,再应用这次分数;读取不伪造答错事件。撤销满分事件时要重建整个周期,不能只把分数减回去。

同一次练习,两种计算 ​

默写和语境填空独立正确 +2,其余模式 +1;首次错误、不熟悉或揭示 −1。提示后订正 0;同题首答只结算一次。采集、阅读词卡、播放发音、通知展示/忽略均不计分。

练习证据积分FSRS
独立成功或列表熟练按模式加分Good;提前成功不延后现有排期
独立失败或列表不熟悉−1Again,可以拉回短期巩固
临摹正确可 +1不证明独立回忆,不虚构 S/D
揭示 / 辅助订正揭示 −1,订正不补分不推进独立回忆排程
通知投递 / 忽略0没有练习事件

FSRS-6 依据真实回忆估计记忆的稳定性和难度,不依据「通知弹过几次」更新。词遇固定算法配置、保持率与规则版本;两端通过共享规则和 FSRS 向量核对结果,不能只检查同名字段。

复习资格、到期和当日完成 ​

首次毕业资格是学习时区的下一个自然日零点;满分休息结束资格是实际降至 20 的时刻。自动候选同时满足资格和算法建议:

text
automaticDueAt = max(reviewEligibleAt, fsrsDueAt ?? firstRecallDueAt)
候选 = 阶段为 review 且 now >= automaticDueAt

没有独立回忆的临摹毕业词,用首次回忆验证时间,不伪造 FSRS 状态。每天复习额度限制自动安排数量;用户随时可以自由练习。

例如明天已有复习资格,但 FSRS 建议三天后提醒:明天主动首次无辅助答对,积分增加,当日复习完成 1;原 FSRS 时间不延后,也不会因此提前进入自动队列。同日再答对同词,完成量仍是 1。临摹、辅助订正、失败、毕业当天和熟悉休息期不冒充有效复习完成。实时写入和事件重放使用相同口径。

每日新学完成按当天第一次跨越 20 的不同词计;复习完成按有资格的独立成功不同词计。完成数量是投影,不能把两台设备的最终数量直接相加。失败词可短期巩固,即使当天已完成,也不会二次增加完成量。

题目、事务与回执 ​

UI 不提交权威分数,不靠前端判断的 correct 结算。相同提交同内容返回原回执,换内容冲突;响应未知先恢复同一结果。辅助揭示也先提交事件,不能换提交 ID 把同题订正当作独立首答。

事件全序按 (logicalClock, deviceId, deviceSeq, entityId) 排列,十进制逻辑序号按数值比较。撤销保留原事件并重放;分数、阶段、满分周期和 FSRS 一起重建。比较跨端结果时,契约、有效事件、水位和 asOf 都必须相同,不能直接比较读取时刻不同的两份缓存。

当前结构与未来同步 ​

Desktop 当前个人数据库使用 schema 100;Browser 独立资料使用明确版本的 IndexedDB,只保留 meta、words、encounters、reviews、practice、notebooks 六个 store。完成额度从练习事件计算,不另存规划完成表。个人编辑只支持笔记和多个单词本关联,公共释义只读。

未发布的旧库不转换、不双读;旧格式或未知结构拒绝打开并保留原资料。首发前的试验格式不属于正式兼容范围。正式发布后的资料升级、回滚与跨版本兼容需要独立设计和真实升级验证;当前模型以 Browser架构与数据为准。

2.0.0 要处理稳定实体身份、设备事件、逻辑时钟、撤销和并发编辑。公共资源缺失不删除用户事实;本地连接的 owner 与云端账号是不同边界。Browser 当前 normalized 唯一索引还需在云同步前改造;当前本机连接已经用 Desktop 的权威 WordRef。

具体字段、时间边界和回归向量以 Core 统一学习规则、Browser 学习规则和 Desktop 学习与复习为准。本站提供跨项目解释,不维护第二套可独立修改的规范。

自有代码与文档使用 AGPL-3.0-only;词典数据和第三方素材保留原许可。