@Ryrenz: 一家做儿童教育产品的公司把自己内部那张小学知识图谱整个开源了,项目叫 os-taxonomy,等于把「孩子该按什么顺序学什么」摊开给所有人用。 os-taxonomy 今年 7 月才建的仓库,现在 5881 star、986 个 fork…
摘要
Marble 将其内部小学知识图谱 os-taxonomy 整个开源,包含 1591 个细粒度知识点、3225 条先修依赖构成的有向无环图,覆盖 8 个学科并对齐 NGSS、Common Core 等课程标准,许可允许研究与商用。该项目上线不久已获 5881 star、986 fork,为教育类产品提供可直接复用的先修关系底稿。
查看缓存全文
缓存时间: 2026/10/20 09:38
🧸 一家做儿童教育产品的公司把自己内部那张小学知识图谱整个开源了,项目叫 os-taxonomy,等于把「孩子该按什么顺序学什么」摊开给所有人用。
os-taxonomy 今年 7 月才建的仓库,现在 5881 star、986 个 fork,这个 fork 比例说明是真有人在拿它搭东西。
做教育类产品最头疼的不是界面,是知识结构。你想加一个自适应学习的功能,就得先回答「这孩子到底卡在哪一步」,而这需要一张完整的先修关系网——通常得请教研团队花几个月人工梳理,还未必梳理得全。
os-taxonomy 直接把这张网给了你:1590 个细粒度知识点、3221 条先修依赖,整理成有向无环图,每条边还标了是 hard 还是 soft 依赖并写明理由。覆盖科学、数学、英语、历史等 8 个学科,每个知识点都带稳定标识符、掌握证据标准、评估提示和大致适龄区间,并链接到 NGSS、Common Core、英国国家课程这些来源。另外还有 183 段专门写给家长看的领域总结。
许可也交代得很清楚:数据库部分 ODbL 1.0,Marble 自己写的文本部分 CC BY-SA 4.0,研究和商用都行,署名加上、衍生数据库保持开放就可以,基于它做出来的产品本身不用开源。这一版里没有嵌入向量,也没有任何孩子的个人数据。
教研的底稿被人无偿摊开,这事比多一个 App 有用。
GitHub:
withmarbleapp/os-taxonomy
Source: https://github.com/withmarbleapp/os-taxonomy
Marble Skill Taxonomy
An open, structured taxonomy of what children learn across the primary/elementary years — decomposed into fine-grained “micro-topics”, wired into a prerequisite graph, and aligned to national curriculum standards. Produced by Marble.
Version:
v1· Topics: 1,591 · Prerequisite edges: 3,225 · Subjects: 8
See it

Every dot is a micro-topic, colored by subject; height is age; each thread is a prerequisite (full-quality video). Explore it interactively at withmarble.com/curriculum — tap any concept to trace everything a learner must master before it.
What this is
Most curriculum data is either a flat list of standards or locked inside a product. This dataset is a connected graph of learning:
- 1,591 micro-topics — a single, teachable idea (e.g. “Building sentences”, “Apparent brightness of stars”), each with a plain-language description, mastery evidence criteria, a type (conceptual / procedural / representational / language / meta), a subject + domain, and an approximate age range.
- 3,225 prerequisite dependencies — a directed acyclic graph: “topic X depends on prerequisite Y”, each edge tagged
hard/softand carrying a one-line reason. - Curriculum alignment — each micro-topic links to the standards it was distilled from (NGSS, Common Core, the UK National Curriculum, and more).
- Teaching research — 1,051 records covering the current Science and Mathematics topics: teaching approaches, concrete learning activities, feedback, assessment guidance and linked sources. Coverage is partial; the other 540 topics have no research in this release.
- Domain clusters — 176 parent-friendly one-paragraph summaries per (subject, domain, age band).
Subjects
| Subject | Topics |
|---|---|
| Science | 547 |
| Mathematics | 504 |
| English | 286 |
| History | 90 |
| Personal & Social Development | 88 |
| Life Skills | 37 |
| Computing | 21 |
| Learning to Learn | 18 |
Files
All data lives in data/ as UTF-8 JSON. See schema/ for JSON Schemas and manifest.json for counts + SHA-256 checksums.
| File | What it holds |
|---|---|
data/topics.json | The micro-topics (graph nodes). |
data/dependencies.json | Prerequisite edges (topicId depends on prerequisiteId). |
data/curriculum-standards.json | The source curriculum standards, grouped by curriculum. |
data/clusters.json | Parent-friendly domain summaries. |
data/teaching-research.json | Teaching research joined by topicId, with explicit coverage and publication notes (~24 MB). |
data/manifest.json | Counts, per-subject breakdown, per-file checksums. |
A topic
{
"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— stable identifier (mt_…), referenced by dependencies and by neighbours.standards— keys intocurriculum-standards.json("<curriculum-slug>:<code>").assessmentPrompt— a natural-language check for the idea. Contains a{{name}}placeholder (the child’s name); substitute or strip before display.
A dependency
{ "topicId": "mt__00ZSLnB7p", "prerequisiteId": "mt_VBl1T1sFCM", "strength": "hard",
"reason": "Must understand vibrations make sound before finding volume patterns" }
topicId depends on prerequisiteId. Reverse the edge to get “unlocks”.
Teaching research
data/teaching-research.json adds how a topic
might be taught to the graph of what children learn. It covers 547 Science
and 504 Mathematics topics. coverage.missingTopicIds and per-subject counts
make the 540 topics without research explicit; absence is not a judgement
about whether a topic can be taught.
The file has schemaVersion: 1 and taxonomy version: "v1". Each records[]
entry joins topics.json through topicId and contains:
| Field | Meaning |
|---|---|
pedagogy | Original teaching summary, practices, representations and misconceptions. |
learn | Portable learning guidance (schemaVersion: 2): a summary, activities, educational constraints and review notes. |
learn.activities[] | Learner actions, intended insight, feedback, rationale and supporting source claims. No product artifact types or fit rankings. |
assess | Original diagnostic/task, response levels, error patterns and next teaching moves; nullable in the public interface. |
sources | Claim, named source, optional URL and the original author’s verification flag. |
confidence | Original authoring confidence; not an independent quality score. |
provenance | Original authoring model and source record timestamps. The update timestamp also reflects the learning-guidance rewrite. |
publicationNotes | Paths and curriculum codes for text omitted under the codes-only publication policy. |
sourceClaims exactly match sources[].claim after publication transformations.
A source may support a general principle or curriculum alignment; this does not
mean the proposed activity was tested. Some activities have no directly linked
source claim.
These records were agent-authored. The learning guidance was rewritten for
portability, checked by a separate factual critic, and sampled by a second agent.
Most original pedagogy and assessment were retained and may contain claims that
the updated guidance qualifies; chart-specific alignment repairs after #30 are
recorded in the affected learning-guidance review notes; read the constraints and review notes alongside
them. Sources were not re-fetched or re-verified for this release. Historical
verified: true and confidence: "high" are not new evidence ratings. Activities
are research-informed proposals, not empirically validated interventions.
Some original research quoted restricted curriculum standards. Matched passages
are replaced with inline curriculum references, including inside citation claims;
all transformed paths are listed in publicationNotes. This is a conservative
mechanical omission pass, not comprehensive rights clearance. Consult the linked
upstream sources for their wording and terms. See PROVENANCE.md.
After the chart split in #30,
mt_bESTSBB0wK covers pie charts, mt_H6LlpWgEYS covers earlier line-graph
problem-solving, and mt_HlNSurPVDp has a separate construction-and-interpretation
record. The new record adapts existing graph research; it is not a fresh
literature review, and all reused source-verification flags are false. Its
assessment requires a complete constructed graph. The later grouped-charts
assessment routes graph-choice errors to data presentation and sector-angle
errors to pie charts.
The file is bound to the exact topics.json bytes through topicFileSha256.
Regenerate the research projection when the canonical topic file changes, even
when topic IDs remain stable.
Using it
Pure data — no runtime, no dependencies. Load the JSON and go.
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);
Join teaching guidance to a topic:
import research from './data/teaching-research.json' with { type: 'json' };
const guidanceByTopic = new Map(research.records.map(r => [r.topicId, r]));
const guidance = guidanceByTopic.get('mt_N8CpN1EJrP'); // undefined: English is not covered yet
const activities = guidance?.learn.activities ?? [];
Validate structure, research coverage, evidence links and checksums:
node scripts/validate.mjs
node --test scripts/teaching-research.test.mjs
License
This dataset is multi-licensed — read this before you use or redistribute it.
| Layer | License |
|---|---|
| The database — the collection, structure, IDs, topic↔topic and topic↔standard relationships | ODbL 1.0 — free for research and commercial use, attribution required, share-alike (derivative databases must stay open under ODbL). |
The textual content Marble authored — topic description/name/evidence/assessmentPrompt, dependency reasons, cluster summarys, original teaching-research prose | CC BY-SA 4.0 — same spirit: attribution + share-alike. |
curriculum-standards.json — extracted from third-party frameworks | Not Marble’s to relicense. Each source is under its own upstream license — see PROVENANCE.md. |
Why share-alike + still commercial-friendly: ODbL distinguishes a derivative database (extend/modify the taxonomy → must stay open) from a produced work (use it inside a product, model, or app → stays yours). So you can build a commercial product on this without open-sourcing your product; you only owe back improvements to the taxonomy itself.
Attribution
Any use must credit:
Marble Skill Taxonomy (v1) · © Generative Spark, Inc. (Marble) · https://withmarble.com · licensed under ODbL 1.0 (database) and CC BY-SA 4.0 (content).
Plus the upstream notices in PROVENANCE.md for any curriculum standards you use. See CITATION.cff for a formal citation.
What’s not here
Deliberately excluded from this release: semantic embeddings (derived, recomputable) and any per-child / user data (never published). See CHANGELOG.md.
相似文章
withmarbleapp/os-taxonomy
Marble 开源了一套结构化的小学阶段学习分类体系(os-taxonomy),包含 1,590 个微主题、3,221 条先修依赖边,并与 NGSS、Common Core、英国国家课程等标准对齐,可用 JSON 格式自由探索。
@FinanceYF5: 有团队把小学阶段孩子该学的全部内容,做成了一张开源的知识图谱。 规模是1590个概念、3221条连接,覆盖数学、科学、计算机、生活技能等8个学科,逐条对齐美国NGSS、Common Core和英国DfE的课程标准。
有团队发布了一张开源的知识图谱,覆盖小学阶段8个学科共1590个概念和3221条连接,并对齐美国NGSS、Common Core和英国DfE课程标准。
@0xCheshire: AI 教育的底层外挂来了! 这个人刚刚将整个小学阶段的超级知识图谱彻底开源。 它将 8 大学科拆解为 1590 个核心概念和 3221 条逻辑链路,精准对标英美顶尖教育标准。 高度结构化的 JSON 格式,明确的权重与评估标准,你可以让算…
一位开发者开源了涵盖小学8大学科的超级知识图谱,包含1590个核心概念和3221条逻辑链路,对标英美教育标准,可用于算法生成个性化学习路径。
@jinglian: 之前连续推荐了两次的「中小学知识图谱」开源项目,现在已经狂揽 5000+ Stars 了! 堪称自学与辅导的开源神器。 目前的知识体系已经非常能打: 数学:小学 高中 英语:小学 高中 物理:初中 高中 最新更新:加入了「小学语文」! 今…
推荐一个基于 AI 的开源「智能错题本」项目,支持拍照识题、自动解答、知识点标签与难度评级、错题管理、举一反三练习和组卷打印,可与中小学知识图谱开源项目搭配使用。
@lionel_mora: 继昨天 Marble Curriculum 获得热烈反响后,我们决定将其开源。一切……
Marble Curriculum 是一个全面的开源数据集,涵盖1,590个小学概念,跨8个学科共3,221个连接,已发布用于构建学习路径和AI驱动的教育工具。