📌 项目地址:withmarbleapp/os-taxonomy | ⭐ 5,997 颗星 | 🔧 JavaScript | 📜 未标注
见下
课程标准是清单,这份数据是地图
NGSS、Common Core、英国国家课程,这些标准文件有个共同问题:它们是一份份平铺的清单。“三年级学会分数加法”和“四年级学会分数乘法”写在两页纸上,但两者的依赖关系得靠老师自己脑补。
Marble(一家教育科技公司)开源的 Skill Taxonomy 换了个思路:把小学阶段要学的内容拆成 1,591 个微主题,再用 3,225 条前置依赖边连成一张有向无环图。每个知识点都知道自己依赖什么、被什么依赖。近 6,000 星,v1 版本。
微主题的粒度可以感受一下:“造句”(Building sentences)、“恒星的视星等”(Apparent brightness of stars)。一个微主题就是一个可以直接拿来教的单点概念,附带通俗描述、掌握判据(怎么判断学生学会了)、类型标签(概念性 / 程序性 / 表征性 / 语言 / 元认知)、学科领域、大致年龄。
依赖边是这份数据最值钱的部分
只给节点列表的知识图谱很多,这份的边做得比较认真:每条依赖边标注 hard(硬性前置,不学就不会)或 soft(软性建议),还带一句话说明为什么依赖。这意味着这张图是可解释的,做学习路径推荐时能说清楚理由,而不是黑盒拓扑。
每个微主题还回链到它提炼自的课程标准条目。知识点不是拍脑袋编的,是从 NGSS、Common Core 等标准里蒸馏出来再做结构化的。
数据结构
全在 data/ 目录,UTF-8 JSON,配套 JSON Schema 放在 schema/,manifest.json 里有各文件的数量统计和 SHA-256 校验和:
| 文件 | 内容 |
|---|---|
data/topics.json |
微主题(图的节点) |
data/dependencies.json |
前置依赖(图的边) |
data/curriculum-standards.json |
来源课程标准 |
data/clusters.json |
176 条面向家长的领域摘要 |
data/teaching-research.json |
1,051 条教学研究记录(约 24 MB) |
学科分布:科学 547、数学 504,两者占了约三分之二;英语 286、历史 90、个人与社会发展 88、生活技能 37、计算 21、学习如何学习 18。重心明显在 STEM。
教学研究这块要说清楚:目前只覆盖科学和数学主题,包含教学方法、具体课堂活动、反馈与评估建议及文献来源。剩下 540 个主题在 v1 里还没有研究数据。想做全覆盖应用的人要知道这个缺口。
怎么看懂这张图
官方做了交互式可视化:withmarble.com/curriculum。每个点是一个微主题,颜色代表学科,纵向高度代表年龄,每条线是一条前置依赖。点任意一个概念,能看到学会它之前需要掌握的全部内容。仓库里还有一段完整视频(media/curriculum-viz.mp4)。
这是个纯数据仓库,README 没有给安装命令或 API,用法就是直接读 JSON:
const topics = require('./data/topics.json');
const deps = require('./data/dependencies.json');
// 每条边: { topicId, prerequisiteId, hardness, reason }
动手前先看 schema/ 里的字段定义,用 manifest.json 的校验和确认数据完整性。
我觉得的三种实际用法
自适应学习系统。知识追踪和路径推荐最缺的就是干净的前置图。自己从课程标准手工建图要花几个月,这里 3,225 条带 hard/soft 标注的边直接可用。
学习诊断工具。给定一个学生的掌握状态,沿依赖图反向走,能定位到卡壳的具体前置知识点断在哪里。官网演示的就是这个功能。
LLM 教育能力评估。带年龄范围和掌握判据的细粒度知识点,天然适合构造分级测试集:模型在四年级数学上表现如何,在六年级科学上呢?这类基准目前很少有人做。
两个注意点
一是许可证。README 没有标注 license,商用前需要先去仓库确认。二是数据质量。1,591 个微主题和 3,225 条边是 Marble 自己拆解和标注的,依赖关系是否符合你认可的教学法,建议抽样检查后再接入生产系统。