把课标变成能对一个孩子回答「会 / 不会」的东西。

教育产品各自定义知识点,于是每个孩子在每个产品里都要从零开始。 这个项目做的是那层公共坐标系:5,349 条可判定的能力断言, 依据教育部课标构建,开放数据。

5,349能力断言
24学科 · K–12 全覆盖
6,339清单知识点
6,635先修依赖
3,290高中锚点
5,117带课标原文引文
4,231已复核
0教师签字
最后一个数字是 0,它没有写错。

底座里有 5,349 条,但没有任何一条经过教师复核。 其中 4,231 条标为「可用」,靠的是机械可判定(字表词表这类数得清的东西) 或 AI 裁定待异议 —— 那是「没人反对」,不是「有人认可」。 这个数字放在最显眼的位置,是因为把它藏起来太容易了。

为什么需要一层底座

问题不在没有知识图谱,而在每家都有一份自己的

一个孩子用作文批改、用古诗背诵、用数学练习,三个产品各自记着他的进度。 换一个产品,进度归零 —— 不是数据没导出,是「什么」这件事三家说的不是一回事。 A 家的「理解分数」和 B 家的「分数的意义」,没有任何办法对齐。

所以底座要解决的不是「有多少知识点」,而是「知识点能不能被寻址」。 它只做一件事:给每一条能力一个无语义、永不复用的 ID, 让所有产品的档案写在同一套 ID 空间里。

[L4] 应用层    作文批改 │ 诗歌 │ 课程库 │ …
                  ↓ 只允许引用 ID,禁止自造知识点
[L3] 档案层    每个孩子会什么、不会什么          ← 私有,永不进仓库
                  ↓ 用 L0 的 ID 做谓词
[L2] 编排层    教材版本 × 年级 × 单元            ← 不做(版权)
[L1] 映射层    课标条目 │ 字表词表 │ 背诵篇目
[L0] 锚点层    可判定的能力断言 + 依赖关系      ← 唯一稳定 ID 空间

L3 永不进仓库。未成年人信息属敏感个人信息。分层让这件事变成架构问题 而不是政策问题:L0–L2 是公共知识、零隐私,L3 是全部隐私。 所以可以做到 —— 知识库在云上,孩子的数据一步不出校门。

方法论:四个维度,只有一根主干

课标 · 知识 · 能力 · 认知,它们不是并列的四层

这四个词经常被并排提起,好像是四种平行的东西。在这个底座里只有「能力」是主干, 其余三个都是挂在它上面的维度。这不是分类偏好,是被一条判据逼出来的。

能力 —— 唯一的 ID 空间

判据只有一个:能不能对一个具体孩子在某一时刻回答「会 / 不会」。

拒绝通过
分数的意义能在 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 审查」长得一样, 那张图就在替数据质量打掩护。

其中 914 条明确不是课标原话能力转写层

课标只要求「知道中国传统工艺来自民间」, 我们在它之上提了一条「能举例说出两种中国民间传统工艺及其产地」。 这是我们自己的教育判断,不是教育部写的。 所以它单独统计、图上单独描边、可以被单独撤掉 —— 底座的全部价值在那条溯源链上,这一层不能悄悄混进去看着和别的一样。

高中:3,290 条,20 科

包括英语、日语、俄语、德语、法语、西班牙语六种外语 —— 后三种是 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。 这条一破,底座立刻退化成又一个数据集,所有产品的档案重新变成互相读不懂的孤岛。