教育产品各自定义知识点,于是每个孩子在每个产品里都要从零开始。 这个项目做的是那层公共坐标系:5,349 条可判定的能力断言, 依据教育部课标构建,开放数据。
底座里有 5,349 条,但没有任何一条经过教师复核。 其中 4,231 条标为「可用」,靠的是机械可判定(字表词表这类数得清的东西) 或 AI 裁定待异议 —— 那是「没人反对」,不是「有人认可」。 这个数字放在最显眼的位置,是因为把它藏起来太容易了。
问题不在没有知识图谱,而在每家都有一份自己的
一个孩子用作文批改、用古诗背诵、用数学练习,三个产品各自记着他的进度。 换一个产品,进度归零 —— 不是数据没导出,是「什么」这件事三家说的不是一回事。 A 家的「理解分数」和 B 家的「分数的意义」,没有任何办法对齐。
所以底座要解决的不是「有多少知识点」,而是「知识点能不能被寻址」。 它只做一件事:给每一条能力一个无语义、永不复用的 ID, 让所有产品的档案写在同一套 ID 空间里。
[L4] 应用层 作文批改 │ 诗歌 │ 课程库 │ …
↓ 只允许引用 ID,禁止自造知识点
[L3] 档案层 每个孩子会什么、不会什么 ← 私有,永不进仓库
↓ 用 L0 的 ID 做谓词
[L2] 编排层 教材版本 × 年级 × 单元 ← 不做(版权)
[L1] 映射层 课标条目 │ 字表词表 │ 背诵篇目
[L0] 锚点层 可判定的能力断言 + 依赖关系 ← 唯一稳定 ID 空间
L3 永不进仓库。未成年人信息属敏感个人信息。分层让这件事变成架构问题 而不是政策问题:L0–L2 是公共知识、零隐私,L3 是全部隐私。 所以可以做到 —— 知识库在云上,孩子的数据一步不出校门。
课标 · 知识 · 能力 · 认知,它们不是并列的四层
这四个词经常被并排提起,好像是四种平行的东西。在这个底座里只有「能力」是主干, 其余三个都是挂在它上面的维度。这不是分类偏好,是被一条判据逼出来的。
判据只有一个:能不能对一个具体孩子在某一时刻回答「会 / 不会」。
| 拒绝 | 通过 |
|---|---|
| 分数的意义 | 能在 0 到 1 的数轴上标出四分之三并说明理由 |
| 培养观察能力 | 能举例说明举头与低头的动作对比表达了什么情绪 |
| 了解古代中国的政治制度 | 能默写《静夜思》全诗且无错别字 |
左边是章节名和口号,右边是能挂档案的东西。 这道闸在 CI 里是硬门禁,砍掉了机器抽取输出的六到七成。
3,500 个常用字如果各自成一个 ID,档案里就是 3,500 条互不相干的记录; 挂在「能正确书写常用字表一中的汉字」下面,就是一条能力 + 一个进度。
| 清单 | 条目 |
|---|---|
| 常用字表 | 3,500 |
| 英语三级词汇 | 1,543 |
| 英语二级词汇 | 458 |
| 基本字表 | 299 |
| 背诵篇目 | 135 |
| 不规则动词 | 106 |
共 6,339 条。这类东西数得清、判得准, 是底座里唯一不需要教师复核的一类。
5,117 条锚点带着课标原文引文和页码,可以翻回教育部文件某一页核对。 课标条目本身不能当主干:它是文档结构(第几章第几节),改版就全废; 而能力断言可以跨版本存活。
依据两份文件:《义务教育课程方案和课程标准(2022年版)》15 份 1,594 页, 《普通高中课程方案和课程标准(2017年版2020年修订)》21 份 2,276 页。 前者是零文字层的扫描件,逐页多模态识读;后者有文字层,纯规则解析、零模型调用。
同一条能力可以既是「应用」层级、又练「找规律」这个横切概念、又属「运算能力」这个核心素养。 它们互不排斥,所以只能是标签,不能是层 —— 做成层就得强行二选一。
认知层级 掌握 3,298 · 了解 571 · 应用 1011 · 理解 469 核心素养 90 种取值,闭合词表,逐科摘自课标「学科核心素养」正文 横切维度 7 个通用概念 + 8 项科学实践(参照 NGSS 三维度设计) 课程类型 必修 / 选择性必修 / 选修 —— 只有高中有
6,635 条先修依赖里,跨学科的只有 11 条。这个数在两轮重跑里都没变 —— 它是对的,不是漏建。真正的跨学科先修关系本来就罕见: 必须是「学这条时现场用得到那条,用不出来就卡住」。 「都需要观察力」这种一律不算,那样建出来的是好听的假边。
那「能力是跨界融合的」怎么表达?换一层。 练「找规律」的语文锚点和练「找规律」的数学锚点之间确实有关联, 但那关联没有方向、没有先后 —— 它画不成有向边。
先修关系 有向、有先后 A 必须排在 B 之前 6,635 条 横切关联 无向、同时 A 和 B 练的是同一件事 数十万对
所以图上它们长得不一样:先修走连线,横切走金色虚线光环,不连边。 连边会撒谎 —— 在这张图里边一律表示先修。
把没验过的和验过的画成一样,就是用视觉掩盖数据质量
| 核对到哪一步 | 条数 | 能不能拿去引用 |
|---|---|---|
| 还没有人读过 | 0 | 不能 |
| AI 读过,没挑出毛病 | 3,767 | 能 —— 但含义是「没人挑出毛病」,不是「有人认可」 |
| AI 挑出了毛病,已挂起 | 1,118 | 不能 |
| 判定标准客观(字表词表这类数得清的) | 223 | 能 |
| 有过异议,已裁决 | 241 | 能 —— 有过异议,已裁决 |
| 教师逐条签署 | 0 | 能 —— 唯一一档「有人认可」 |
「能引用」这一栏不是这里写死的,是从 mappings/citable.json
读出来的 —— 那份文件是全项目唯一定义可引用集合的地方。
这一页曾经把「AI 读过没挑出毛病」写死成「不能」,而口径早在 2026-08-20 就改了,
于是首页说 2,589 条可引用、这一页说其中 2,201 条不能,
同一个站的两页互相打架。散文里的判断迟早和数据分家,除非它根本不由散文来写。
这五档在图谱上用填充深浅区分,不是只标出有问题的那一档。 0 条「一个人都没看过」如果和「过了 AI 审查」长得一样, 那张图就在替数据质量打掩护。
课标只要求「知道中国传统工艺来自民间」, 我们在它之上提了一条「能举例说出两种中国民间传统工艺及其产地」。 这是我们自己的教育判断,不是教育部写的。 所以它单独统计、图上单独描边、可以被单独撤掉 —— 底座的全部价值在那条溯源链上,这一层不能悄悄混进去看着和别的一样。
包括英语、日语、俄语、德语、法语、西班牙语六种外语 —— 后三种是 2017 版新增的,给开设小语种的高中用。全部出自教育部制定的课标。
高中课标按模块给内容,不按年级。所以这批锚点的学段一律是 G10–G12, 真实区分放在课程类型上:必修是所有学生都该有的,选修不是。 不记这一维,档案里「他没掌握 X」就分不清是没学过还是学了没会。
不发明年级精度。「必修 1 就是高一」是教学惯例,不是课标条文。
接进你的 AI 应用(MCP,只读) npx --yes degit qiuyiwu1989-star/k12-knowledge-substrate k12 && node k12/mcp/server.mjs 四个工具:查锚点 / 取全文与出处 / 走前置链 / 取分片 每个返回都带课标出处、核对程度、粒度警告 数据集直取(允许跨域,不用 clone) https://k12.yongle.school/data/manifest.json https://k12.yongle.school/data/anchors/*.jsonl 固定到某个版本(数据只增不改,ID 永不复用) git clone … && git checkout v1.2 已发布:v1.0 · v1.1 · v1.2 许可 L0 锚点 + 依赖图、L1 映射 ODbL 1.0 本项目撰写的文本 CC BY-SA 4.0 课标原文引文 权利归教育部,按合理引用附带
一条铁律:应用层不得自己定义知识点,只能引用 L0 的 ID。 这条一破,底座立刻退化成又一个数据集,所有产品的档案重新变成互相读不懂的孤岛。