给 AI 与人类的知识库:只存有据可查的知识。 每条内容都带三样东西——它的来源、它的状态、对它的反驳。
English → README.en.md
| 你是 | 从这里开始 |
|---|---|
| 想学东西的人 | START.md —— 按学科索引 · 怎么读一条 · 现在有什么、没什么 |
| AI agent(在本仓库工作) | AGENTS.md —— 铁律 · 怎么改 · 怎么跑校验 |
| AI / 程序(读内容) | llms.txt + index.json(导航)· citations.json(按 id 取引用材料)· evidence.json(证据登记) |
| 想把这个库挂到 agent | python tools/scholia_mcp.py --print-config —— 零依赖 MCP server(只读),配置直接打印出来 |
| 想加一条(贡献者) | templates/ + python tools/new_entry.py —— 一条命令出骨架 |
| 想建自己的一份(个人) | templates/ —— 复制骨架即可,不用 fork、不用联网 |
| 想知道库是怎么做出来的 | 本页往下 |
噪音不是「错的东西」,是「无法追溯的东西」。 一条来源不明的断言比一条有据可查的错误更危险——后者能被改,前者连从哪下手都不知道。
| 它不做 | 它做 |
|---|---|
| ❌ 判定「什么是真的」 | ✅ 让每个主张带上它的证据与它的反驳 |
| ❌ 由多数人或权威裁定 | ✅ 由证据等级 + 反驳关系按规则算出状态 |
| ❌ 声称自己可靠 | ✅ 让可核验性可见:谁署名 · 从哪来 · 被谁攻击过 · 攻不攻得倒 |
这不是宣言,已经跑过三次:为演示格式编造的示例数据差点被当证据引用(已作废、编号保留);一条 n=2 同源归因的命题被判 失据;一条号称 15 条支持的命题被查出全部来自同一本书。三次都是机制发现的。
教材里有错,老师会口头告诉你哪一处错了。Scholia 把这件事制度化:协议层只回答三件事——这份内容是谁署名的?它从哪里来?它和谁冲突?——永不回答「什么是真的」。真伪由每个读者裁决。知识图是唯一的;教科书是这张图对某个具体读者的一次投影。
三条判断:
- 投票不能决定真理。 少数方只要证据够硬,就不会被人数抹掉。
- 知识要收敛,教法要并存。 强行给教法排名就是制造教条。
- 可退出。 任何人可带全部历史 fork 离开,不需要任何人同意。
最小目标:先做完一本教材的一章——200 条勘误,跑通从 0 到 200 的全过程。不是「备份人类知识」。
Note
2026-10-20:最小目标已达成。 本库新增「数学」学科,并导入 OpenStax《Calculus Volume 3》第 6 章(Vector Calculus) 全部 308 条 Approved / Textbook 勘误——同一章 308 条 ≥ 200。 此前《University Physics Volume 1》第 1–5 章的 200 条批次跨五章,仍如实记录在 决策记录;数学批次的来源、构成与结构改动见 另一份决策记录。
一个知识点 = 一个 .md 文件:front-matter 存机器需要的,正文存人需要的;GitHub 原生渲染,论证图用 Mermaid 直接画出来。完整规范见 FORMAT.md;规则清单见 docs/RULES.md。
python tools/kbcheck.py # 零依赖、不联网;提交前手动跑一次它查两类东西:文件级(front-matter、状态合法性、撞 id、断链与锚点、必备小节与顺序、来源非空、学段/水平档/日期/署名取值、医学免责块)与图级(先修无环、攻击边锚点、路径缺口、目标覆盖度——有成果没被覆盖直接判失败)。每一项都注入错误验证过,不是「写了就算」。 另有 CI(.github/workflows/kbcheck.yml,只读、零依赖)在每次 PR 上自动跑。
| 你想做什么 | 去哪里 | 影响结论吗 |
|---|---|---|
| 提问、聊方法论、不成熟的想法 | Discussions | ❌ 不影响 |
| 报告疑似错误、提交教法 | Issue(用模板) | 间接 |
| 真的修改知识本身 | PR | ✅ 唯一能改变结论的通道 |
两条护栏:status 只能由 PR 作者按规则写入(写「已确证」需一名非作者独立复核);👍 只作注意力排序,绝不作判定依据。
| 部分 | 许可 |
|---|---|
知识内容(knowledge/ evidence/ README.md CONTRIBUTING.md) |
CC BY-SA 4.0(可商用,衍生品须同样开放) |
代码(tools/)与格式规范(FORMAT.md) |
MIT |
署名见各条目 author 字段与提交历史;复用时保留一条指向本仓库的链接即满足。
Caution
- 这不是教材,也不是教学处方。「已确证」不表示绝对正确——且目前一条都没有(见下)。
争议是诚实的结果,不是缺陷。 教法全部是条件性的,用前必核对「禁忌」栏。- 绝不上传教材原文或扫描页,只存定位、短引用与原创摘要——事实不受版权保护,表达受。
- 医学条目带人群限定与免责块,转述时必须连同限定一起给出。
- 来源本身也要过审:登记一条证据要答得上「谁发布 · 是哪个版本、什么时候生效 · 是不是为这次引用现造的」—— 链接打得开不等于它是真的(见证据门槛)。
- 内容按「现状」提供,无任何担保。
| 对象 / Objects | 746 —— 教法 methods 62 · 知识点 concepts 71 · 命题 claims 579 · 误解 misconceptions 9 · 资源 resources 8 · 路径 paths 17 |
| 事件 / Events | 2 —— 顶层 events/,与对象分开(无论证、无真值) |
| 学科 / Subjects | 物理 Physics 370 · 生活 Life 8 · 医学 Medicine 8 · 地理 Geography 6 · 科学 Science 1 · 交通 Transport 4 · 计算机 Computing 29 · 经济 Economics 8 · 法律 Law 4 · 数学 Mathematics 308 |
| 证据 / Evidence | 188(含作废 / void 5) |
| 已确证 / Confirmed | 0 |
来源:OpenStax《Physics》(CC BY) · Utah 7 年级科学 · 出版社勘误表 · AASM 临床指南 · 随机对照试验(RCT)。 已闭环 Issue / PR:见已合并的 Pull requests(不写死编号——它会漂移)。
Note
上表由 kbcheck.py 生成(唯一来源是 index.json),不手写——
手写的数字会漂移,而漂移的数字就是断言。
Important
没有一条是「已确证」。 那需要一名非作者的独立复核,而目前只有一位贡献者。 这是规则被遵守,不是内容缺失。
- 双语一条能否压到 5 分钟以内 ← 决定项目生死。门槛单位已定(2026-10-20,作者):
那个「5 分钟」= 双语一条(中文正文 + 英文译本 + 两份登记),不是单语言一条。
已给
templates/+tools/new_entry.py(结构交给脚本,内容留给人)。 第一次试测(速度—时间图的面积等于位移) 只留下总数:约 12 分钟——按已定门槛约 2.4 倍。第二次试测(2026-10-20, HTTP 451 因法律要求拒绝访问且不暗示资源存在与否) 按阶段打点:双语一条墙钟 13 分 16 秒,按墙钟算至多 2.6 倍,未达标。其中 选题 → 中文正文写完 4 分 9 秒(这段没有中断),其后到索引完成是 9 分 7 秒, 几乎全花在双语平行结构、证据登记与索引计数上;骨架 319 ms、全量校验 2.2 秒—— 工具链不是瓶颈(复现)。但 9 分 7 秒里含一次会话中断(完成时刻为补记), 所以「至多要省 8 分 16 秒」只是上界,纯工作量的倍数尚未测出; 要省的部分只可能在平行结构里,而本轮核掉了本库自己的一个假设:「P7→P9 是纯结构抄写、可以整段脚本化」只对一半—— 各学科 README 的索引表共 7 种表头形状,其中 4 种的列(证据等级/位置+错误类型/目标+自检/禁忌) 是内容,不是格式;证据表分 3 个批次块,定位列是手写核读记录(正是它抓住那次错标题)。 人类计时仍未测:代理计时把「读完 283 行原文」记成 17 秒,这对人不成立。 2026-10-21 第三次试测把 P7→P9 拆成四段:代理墙钟 3 分 44 秒,其中双语尾部 61 秒; 但来源小、题目由仓库指定、英文为即时译写,不是达标读数——它只证明四段可分、工具链仍不是瓶颈。 分段数据、结论与压缩范围 → 决策记录 已确证/争议/已推翻全是 0。这仍然不是能靠写代码补的缺口——补的是人(复核者、守方)。 但代码可以让这个 0 可核对:新增R-SCHEMA-19校验三个状态各自的结构前提 (已确证需author+ 变更记录里 ≥2 个不同署名;争议需 ≥2 论证且有进攻击边;已推翻需攻击方可引用,否则请写失据)。实测:全库攻击边 4 条,4 个被攻击条目 全部满足「≥2 论证」——差的只是「攻击没有对手」。署名统计是同一件事的另一半:@hpleapfrog1379 次,其余三个@只活在历史变更记录里。→ 决策记录- 前置在学科之外时表达不了(Issue #17):
例数已从 1 攒到 7——「几何的角」×4(反射 · 反射教法 · 折射 · 折射教法)、
「矢量」×2(力-高中 · 加速度)、「角速度矢量方向」×1(匀速圆周运动);
「进阶」也有 3 处实例,正文里甚至自发长出了
后续这个惯例——「等 3–5 例再动结构」的触发条件已过。 推荐 Issue #17 的选项 1(可选字段外部先修,只机检「是否声明过」与「同名反复出现」)。 schema 改动需单独评审,本轮未动:这里交出的是一次评审的输入,不是评审的结果。 → 决策记录 支持边的独立性算不出来;目标覆盖度只算「有没有」,不算「够不够」。两句都拆成了「能算的一半」与「要人判的一半」:R-GRAPH-06算得出同一来源标识(实测:教材内建分组教学变体#a3有 42 条支持边 · 21 份证据 · 1 个来源标识—— 本库那句「同一个来源重复 26 次」如今长到 42 条,仍然全出自一本书);R-GRAPH-07算得出冗余度与阅读深度(15 个学习成果全部「有」覆盖,其中 11 个(73%)只讲一次)。 跨来源是否真独立仍归M-03(人判)。这一项还留下一次假干净的教训:第一版按列位解析编排表, 把一条读不懂的路径报成「没有冗余问题」——如今这一支有两条注入样本,第二条专门把「覆盖」列挤出末列, 并在退回第一版实现时实测到「报出单环节覆盖的路径从 4 条掉到 2 条」 → support-count · coverage
knowledge/ 知识对象:知识点 · 命题 · 教法 · 误解 · 路径 · 资源
index.json 机器入口(导航 + 能不能引用)
citations.json 引用材料(按 id 取:定位 · 限定 · 免责块)
evidence.json 证据登记(等级 · 核验深度 · 定位 · 许可)
evidence/ 证据索引与可复算的原始数据
docs/RULES.md 规则注册表(机械校验 / 人工复核)
docs/decisions/ 规则的「为什么」——案例 · 事故 · 推断(从规范里搬出,不删)
tools/ kbcheck.py(校验器)· scholia_mcp.py(MCP server)