📌 项目地址: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 自己拆解和标注的,依赖关系是否符合你认可的教学法,建议抽样检查后再接入生产系统。

这篇文章对你有帮助吗?

发表回复