# 词根织网：资料与边界

这个网页完整收录 exam_words.csv 的 14,942 个词。它采用保守的学习层拆解：能核实构词与拼写对应的才拆，无法核实的保留为整体学习单位。整体基础词不意味着历史上绝无更细词源。

## 数据来源与许可

- MorphoLex-en：Sánchez-Gutiérrez, C. H., Mailhot, H., Deacon, S. H., & Wilson, M. (2018). MorphoLex: A derivational morphological database for 70,000 English words. Behavior Research Methods, 50, 1568–1580. https://doi.org/10.3758/s13428-017-0981-8
- 项目：https://github.com/hugomailhot/MorphoLex-en 。上游实际包含 68,624 条记录。许可为 **CC BY-NC-SA 4.0**。本页 network.json 中派生自 MorphoLex 的数据及其中文改编按该许可提供，须署名、限非商业、以相同方式共享。完整许可见 [MORPHOLEX-LICENSE.md](MORPHOLEX-LICENSE.md)。这不改变其他独立资料原有许可。
- ECDICT：https://github.com/skywind3000/ECDICT 。中文释义、音标、考试标签、词频及词形字段取自本仓库 ecdict.csv。词根资料取自 wordroot.txt。原 MIT 许可见 [ECDICT-LICENSE.txt](ECDICT-LICENSE.txt)。
- Wiktionary/Kaikki：https://kaikki.org/dictionary/English/ 。调研过其下载数据，本版**没有导入**该大型数据集，也没有把它标为已校验来源；逐词外链仅供进一步查询。

## 本项目的处理

1. 使用 Python 标准库读取 MorphoLex 构词字段；不把前缀字符串匹配当作构词证据。
2. 为部件整理中文解释；同形多义部件保留含义范围，能依据本词资料缩小的在卡片中展示。
3. 以显式规则对应实际拼写（例如 happy → happi、responsible → responsibil），保留原始标注与每段表面字形。
4. ECDICT 明确列出的词形可用于补充 MorphoLex 未展开的屈折变化，如 run → running。
5. 每个词的片段逐字拼回原词；没有任何未解释的尾巴。未通过对应检查的词保留整体，详见 [audit.json](audit.json)。
6. 原始分析、中文解释与学习层拆分不等同于词源学最终审定。含义可发生引申或弱化，构词关系不保证能机械推出整词义。

network.json 和 audit.json 可通过 `python scripts/build_root_network.py` 重建。下载快照的 URL 与 SHA-256 记录在仓库 data_sources/manifest.json 中。

## 学习设计

采用短轮次、先回想后揭晓和间隔复习。研究参考：Miyatsu & McDaniel (2019), Adding the keyword mnemonic to retrieval practice: A potent combination for foreign language vocabulary learning? https://pubmed.ncbi.nlm.nih.gov/31077068/ 。研究结果有条件与材料边界，不能解释为保证永久记忆。

本应用使用 1、3、7、14、30、60 天的简单间隔，忘记后 10 分钟再复习。它不是经过个人校准的记忆预测模型。

## 进度

单词进度与同源旧页面共享 `word-connections` IndexedDB；短轮次存在独立的 `word-atlas-state` 数据库。相同单词在多个词族出现时仍只有一条进度。导出包含进度、个人笔记和当前轮次；导入按更新时间合并，不清空其他词。

不同浏览器、设备、端口或 IP 地址的存储独立。请用导出／导入迁移。词库和页面均本地提供，无远程字体、分析或模型请求；朗读依赖浏览器与系统可用的英语语音。
# 界面与调度（2026-10 更新）

- [Seasonley/spatang](https://github.com/Seasonley/spatang)，MIT，Copyright 2026 seasonley。参考其 `src/scheduler.ts` 的 FSRS Good/Again 映射，以及 `web/src/App.tsx` 的 4 秒自动揭晓、提前点击和持续队列交互。本项目重新实现前端与存储适配。
- [ts-fsrs](https://github.com/open-spaced-repetition/ts-fsrs) 5.4.1，MIT：现代遗忘曲线调度，默认目标保持率 0.9。
- [Sigma.js](https://www.sigmajs.org/docs/) 3.0.2，MIT：WebGL 网络渲染；[Graphology](https://graphology.github.io/) 0.26.0 与 graphology-layout-forceatlas2 0.10.1，MIT：图数据与后台布局。
- 所有运行依赖打包在 `vendor`，许可证随文件保存；不在运行时请求 CDN。

## 词频与例句

词频为 ECDICT frq 排名，缺失时回退 bnc；前 3000 高频，3001–10000 中频，之后低频，无数据明确标注。

例句当前来自 [ManyThings 中英句对](https://www.manythings.org/anki/)（Tatoeba 社区资料），遵循 [CC BY 2.0 FR](https://creativecommons.org/licenses/by/2.0/fr/)。每条保留英文、中文、双方原句 ID 和贡献者署名，页面可展开查看署名。使用 scripts/build_examples.py 按完整词匹配，从 32,028 个句对中选择 4–22 词短句，每词最多两句，覆盖 4,253 个词。为保证每条展示例句都有中文，替换了原先仅英文的 CC0 例句集；未匹配双语例句的词明确显示缺失，不生成模板或冒充人工翻译。下载文件哈希见 examples.json。

首次评价即记得标记 mastered=true、due=0，后续不进入待复习；选择忘记重新进入 FSRS。旧学习记录不追溯推定熟记；标记随 IndexedDB 与备份持久化。


## 离线安装

PWA 离线包缓存全部本地页面、词库、例句、图布局 Worker 与依赖；进度仍存在 IndexedDB，更新缓存不清除进度。设置中显示安装、缓存重试与版本更新入口。外部来源与词典网站需要联网；朗读依赖设备安装的英语语音。首次加载必须联网等待离线包完成，存储空间不足或被系统清理后需要重新缓存。
