withmarbleapp/os-taxonomy
GitHub: withmarbleapp/os-taxonomy
一个开放的小学阶段课程知识图谱数据集,将微主题分解为带前置依赖的有向无环图并与多国课程标准对齐,解决课程数据不可计算、不可互操作的问题。
Stars: 2361 | Forks: 436
# Marble 技能分类体系
一个开放的、结构化的分类体系,涵盖儿童在小学阶段**学习的内容** —— 被分解为细粒度的“微主题”,连接成前置依赖图,并与国家课程标准对齐。由 [Marble](https://withmarble.com) 制作。
## 查看它

每个点都是一个微主题,按学科着色;高度代表年龄段;每条线段是一个前置依赖([高质量视频](media/curriculum-viz.mp4))。在 [withmarble.com/curriculum](https://withmarble.com/curriculum) 进行交互式探索 —— 点击任意概念,即可追溯学习者在掌握它之前必须掌握的所有内容。
## 这是什么
大多数课程数据要么是标准的扁平列表,要么被锁定在产品中。此数据集是一个**学习连接图**:
- **1,590 个微主题** —— 单一的、可教学的概念(例如*“造句”*,*“恒星的视亮度”*),每个都包含通俗易懂的描述、掌握**证据**标准、类型(概念性 / 程序性 / 表征性 / 语言性 / 元认知)、学科 + 领域,以及大致的年龄范围。
- **3,221 个前置依赖关系** —— 一个有向无环图:*“主题 X 依赖于前置条件 Y”*,每条边都标记为 `hard`/`soft` 并附带一行**原因**。
- **课程对齐** —— 每个微主题都链接到其提炼自的源课程标准(NGSS、Common Core、英国国家课程等)。
- **领域集群** —— 每个组合(学科,领域,年龄段)包含 183 个对家长友好的单段落摘要。
### 学科
| 学科 | 主题 |
|---|---:|
| Science | 547 |
| Mathematics | 503 |
| English | 286 |
| History | 90 |
| Personal & Social Development | 88 |
| Life Skills | 37 |
| Computing | 21 |
| Learning to Learn | 18 |
## 文件
所有数据均以 UTF-8 JSON 格式存放在 [`data/`](data/) 中。请参阅 [`schema/`](schema/) 获取 JSON Schema,以及 [`manifest.json`](data/manifest.json) 获取计数 + SHA-256 校验和。
| 文件 | 包含内容 |
|---|---|
| [`data/topics.json`](data/topics.json) | 微主题(图谱**节点**)。 |
| [`data/dependencies.json`](data/dependencies.json) | 前置**边**(`topicId` 依赖于 `prerequisiteId`)。 |
| [`data/curriculum-standards.json`](data/curriculum-standards.json) | 源课程标准,按课程分组。 |
| [`data/clusters.json`](data/clusters.json) | 面向家长的领域摘要。 |
| [`data/manifest.json`](data/manifest.json) | 计数、各学科明细、各文件校验和。 |
### 主题
```
{
"id": "mt_N8CpN1EJrP",
"type": "CONCEPTUAL",
"subject": "English",
"domain": "Grammar & Punctuation",
"name": "Building sentences",
"description": "Understand that words combine to make sentences — a sentence expresses a complete thought…",
"ageRangeStart": 4,
"ageRangeEnd": 6,
"centrality": 0.257,
"evidence": [
"Distinguish between complete sentences and fragments",
"Compose a complete sentence with a subject and verb"
],
"assessmentPrompt": "If {{name}} says something like \"The dog\", can they tell you that's not a complete sentence…?",
"standards": ["ccss-ela:L.K.1f", "uk-nc-2013:Eng.App2.Y1.Sent.1"]
}
```
- `id` — 稳定标识符(`mt_…`),被依赖关系和相邻节点引用。
- `standards` — 指向 `curriculum-standards.json` 的键(`":
"`)。
- `assessmentPrompt` — 针对该概念的自然语言检查。包含 `{{name}}` 占位符(儿童姓名);在展示前进行替换或移除。
### 依赖关系
```
{ "topicId": "mt__00ZSLnB7p", "prerequisiteId": "mt_VBl1T1sFCM", "strength": "hard",
"reason": "Must understand vibrations make sound before finding volume patterns" }
```
`topicId` **依赖于** `prerequisiteId`。反转此边即可得到“解锁”关系。
## 使用方法
纯数据 —— 无 runtime,无依赖。加载 JSON 即可开始使用。
```
import topics from './data/topics.json' with { type: 'json' };
import deps from './data/dependencies.json' with { type: 'json' };
const byId = new Map(topics.topics.map(t => [t.id, t]));
const prereqs = deps.dependencies
.filter(d => d.topicId === 'mt_N8CpN1EJrP')
.map(d => byId.get(d.prerequisiteId).name);
```
验证结构和引用完整性:
```
node scripts/validate.mjs
```
## 许可证
此数据集采用**多重许可** —— 在使用或重新分发前请阅读此内容。
| 层级 | 许可证 |
|---|---|
| **数据库** —— 包括集合、结构、ID、主题↔主题和主题↔标准关系 | [**ODbL 1.0**](LICENSE) — 可免费用于研究**和**商业用途,要求**署名**,**相同方式共享**(衍生*数据库*必须在 ODbL 下保持开放)。 |
| **Marble 创作的文本内容** —— 主题的 `description`/`name`/`evidence`/`assessmentPrompt`,依赖关系的 `reason`,集群的 `summary` | [**CC BY-SA 4.0**](LICENSE-CONTENT) — 精神相同:署名 + 相同方式共享。 |
| **`curriculum-standards.json`** —— 提取自第三方框架 | **不**属于 Marble 的再许可范围。每个来源均受**其各自的上游许可证**约束 —— 参见 [**PROVENANCE.md**](PROVENANCE.md)。 |
**为什么选择相同方式共享 + 依然支持商业用途:** ODbL 区分了*衍生数据库*(扩展/修改分类体系 → 必须保持开放)和*衍生作品*(在产品、模型或 app 中使用 → 版权归你所有)。因此,你可以基于此构建商业产品,而无需开源你的产品;你只需将对*分类体系本身*的改进回馈给社区。
### 署名
任何使用都必须注明来源:
以及你使用的任何课程标准在 [PROVENANCE.md](PROVENANCE.md) 中的上游声明。请参阅 [CITATION.cff](CITATION.cff) 获取正式的引用格式。
## 哪些内容*不*在此处
在此版本中刻意排除的内容:语义 embedding(派生数据,可重新计算)以及任何特定儿童 / 用户数据(从未发布)。参见 [CHANGELOG.md](CHANGELOG.md)。标签:Homebrew安装, 教学大纲, 有向无环图, 自定义脚本, 课程体系