一个与课程标准对齐的 K–12 学习知识图谱

探索一个静态、便于离线使用的学习平台,涵盖数千个与课程标准映射的概念、先修关系、练习题和自适应诊断。

学生答错一道题时,接下来最有用的做法未必是在同一主题上再做一道题。真正的知识缺口可能早在几个年级之前:例如,学生若难以配方法,可能需要先复习完全平方公式。若课程不仅呈现学生应该学什么,还说明各个概念之间如何相互依赖,就能更有效地指导学习。

这正是 cn-math-taxonomy 背后的理念:这是一个面向中国学校课程的开源知识图谱与诊断工具。它将课程标准、教材编排、概念级先修关系和题库整合为结构化数据,再利用这些关系追溯学习缺口可能的根源。

从主题列表到学习图谱

传统教学大纲按年级、单元和课时排列内容。这有助于教学规划,却无法呈现概念之间的依赖关系。这个项目将每个主题建模为一个节点,将每项先修关系建模为一条有向边:

{
  "topicId": "cnm_h027",
  "prerequisiteId": "cnm_...",
  "strength": "hard",
  "reason": "This concept is needed to ..."
}

这里的方向表示 topicId 依赖于 prerequisiteId。hard 边表示该先修知识被认为是学习后续主题所必需的;soft 边则表示相关知识有帮助,但并非绝对门槛。这些标签都有明确说明,但仓库也提醒,它们属于判断,并非经教师验证的事实。

图谱保留直接先修关系,并采用一种传递约简方式。如果一个主题已经通过足够强的路径依赖另一个主题,就可以省略冗余链接。这让局部图谱更易阅读,同时仍可在需要时沿着更长的链条进行诊断。

例如,图谱可以将高中函数概念连接到初中二次函数,再继续向前追溯更早的基础知识。英语和数学分别使用独立的图谱;物理也与数学图谱分开,通过 mathLinks 记录相关数学概念,而不是将其作为先修边。

丰富的多学科数据集

仓库介绍了一个范围广泛、早已超出最初数学重点的数据集。其中包括小学至高中的数学、三年级至高中的英语、小学至初中的语文,以及物理、化学、生物、历史、地理、道德与法治等学科。

README 当前的学科数据表列出:数学有 870 个概念和 3,627 道题;英语有 791 个概念和 3,164 道题;物理有 269 个概念和 1,076 道题;语文有 682 个概念和 2,728 道题。其他学科还包括 222 个小学科学主题、159 个小学道德与法治主题、85 个初中道德与法治主题、134 个历史主题、59 个地理主题、66 个生物主题和 45 个化学主题。这些数量有助于了解数据集的规模,但并不意味着所有教材课时或课程标准条目都已穷尽收录。

数据覆盖范围与特定版本和课程标准资料相对应。数学方面,仓库将小学和初中内容映射到修订后的 2022 年义务教育课程标准,将高中内容映射到 2017 年课程标准,并采用项目中说明的修订版本和来源文件。仓库还记录了教材版本的选择,例如人民教育出版社的数学教材,包括高中 A 版系列。其他学科也各有教材和课程标准说明。

版本信息很重要。教材会不断更新,主题的年级、章节或名称也可能随版本而变。项目会记录教材目录何时经过官方核对、何时使用第三方索引,以及哪些部分仍属暂定。在某些情况下,文本是对公开资料的转述,并非经核实的官方标准逐字引文。将这些差异作为元数据记录,比把所有映射都说成同样权威,更有用也更诚实。

自适应诊断如何运作

诊断工具从一个目标概念或更广泛的章节、年级范围开始。它会提出问题、更新对掌握程度的估计,并在答案显示存在基础知识缺口时沿先修关系追溯。文档所述的默认设置是连续答对三题后判定主题已掌握,并跳过其祖先节点;用户也可选择两题、三题或五题作为门槛。每个主题在一次诊断中最多出现两道题。如果学生答错,系统会通过同等或更简单难度的后续题,区分持续性薄弱与偶然失误。确认存在薄弱环节后,系统会追溯先修知识,并优先检查硬性先修关系,再检查软性先修关系。

结果不只是一个分数。系统会区分可能的薄弱点和尚不确定的主题,提供一条从较早的基础知识逐步通向目标的学习路径,并可显示课程标准参考资料和路径图。进度保存在浏览器本地;项目表示诊断记录会留在设备上,不会上传。结果可以导出为 JSON、打印,或生成可分享的图片。

这种设计的价值在于,它把答错一道题转化为关于“为什么会答错”的假设,但并不能证明原因。一次简短的自适应诊断可以缩小调查范围,却无法取代教师的判断或完整评估。

静态数据、浏览器工具与可复现检查

该仓库采用静态网站架构。主要数据文件都是直观易读的 JSON 数组:

  • data/topics.json 存储概念、描述、掌握标准、诊断题、课程标准映射和教材位置。
  • data/dependencies.json 存储先修关系边及其强度和依据。
  • data/cn-curriculum-standards.json 存储课程标准记录。
  • data/questions.json 存储题库。

浏览器端包含主页、知识图谱浏览器和诊断工具。图谱浏览器使用 Cytoscape 3.30.4、dagre 0.8.5 和 cytoscape-dagre 2.5.0,在本地生成图布局。项目将浏览器依赖一并存放在仓库中,不会从外部 CDN 加载脚本、样式或字体。渐进式 Web 应用配置支持安装和离线缓存。

如要在本地试用网站,可在仓库根目录启动静态服务器:

python3 -m http.server 8000

然后打开 http://localhost:8000/,或直接访问 http://localhost:8000/diagnose/。诊断引擎使用纯 JavaScript,并提供 Node 测试命令:

node tests/test_engine.js

Python 验证器会检查 JSON 结构、标识符是否唯一、字段是否合法、边的端点是否存在、是否有重复边或环,以及每个非外部主题是否具有先修主题或有记录的根节点理由。运行命令如下:

python3 scripts/validate.py

也可以验证题目:

python3 scripts/verify_questions.py

项目报告称,当前验证已自动核验 2,823 道题,没有发现不匹配项,另有 532 道题无法验证,其中大多是缺少机器可检查验证表达式的初中题目。自动检查成功,只能确认验证器能够表达和检查的内容;它既不能证明题目的教学质量,也不能保证答案在所有情境下都正确。

重要局限:图谱是一个方案,并非课程权威

README 对仍需审查的内容说明得相当坦诚。先修关系、硬性与软性标签、主题粒度以及诊断题尚未通过课堂数据验证。许多题目由 AI 生成。小学和初中数学题接受了额外的自动或独立检查,但高中和英语题没有经过盲测;在这些情况下,验证表达式和答案可能源自同一套构建过程。部分教材目录和课程标准映射仍属暂定,或依据公开资料转述而成。

因此,最好将该项目视为一个结构化且可检查的起点:它适合用于探索依赖关系、构建学习工具,以及找出值得教育工作者审查的问题,而非官方教学大纲的替代品,也不是经过验证的分班测验。贡献者可以通过 GitHub Issues 报告可疑的措辞、答案或关系边。仓库采用 CC BY-NC 4.0 许可:注明来源后,可用于个人学习、教学和研究;商业用途则需另行获得许可。

更广泛的启示是,课程数据若能明确呈现关联关系与不确定性,就会更有价值。先修知识图谱可以帮助软件从“答错了,再试一次”迈向“可能缺少哪项基础知识?”但这种帮助的质量取决于严谨的来源记录、透明的局限说明,以及熟悉学生实际学习方式的教师持续参与审查。

来源

xiaoyang111222/cn-math-taxonomy:数学(小学到高中)、英语(三年级到高中)、初中物理的知识图谱:1644 个知识点、2403 条先修边、6723 道题,对齐课标,附自适应前置诊断。