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,590 · Prerequisite edges: 3,221 · Subjects: 8

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.
Most curriculum data is either a flat list of standards or locked inside a product. This dataset is a connected graph of learning:
hard/soft and carrying a one-line reason.| Subject | Topics |
|---|---|
| Science | 547 |
| Mathematics | 503 |
| English | 286 |
| History | 90 |
| Personal & Social Development | 88 |
| Life Skills | 37 |
| Computing | 21 |
| Learning to Learn | 18 |
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/manifest.json |
Counts, per-subject breakdown, per-file checksums. |
{
"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 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 into curriculum-standards.json ("<curriculum-slug>:<code>").assessmentPrompt — a natural-language check for the idea. Contains a `` placeholder (the child’s name); substitute or strip before display.{ "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”.
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);
Validate structure + referential integrity:
node scripts/validate.mjs
This repository includes a dependency-free browser explorer that can track learning progress privately on one device. It supports multiple child profiles, learning and known states, evidence-based assessments, subject/age/search filters, and dimming or hiding concepts a child already knows.
Two complementary views share the same local profile:
npm run serve
Then open http://localhost:4173/explorer/. A child’s name is requested once and substituted automatically into every assessment prompt. Profiles, progress, and the most recent 500 logbook activities are versioned and stored only in the browser’s localStorage; the explorer makes no network requests after loading the taxonomy JSON. Use Manage beside the profile picker to explicitly edit a name, delete a profile, or reset its progress and activity trail.
The explorer is intentionally a static ES-module application with no build step. Its persistence layer lives in explorer/src/profile-store.js, independently of the graph renderer, so a server-backed profile adapter can replace it later without changing the taxonomy data or graph interaction.
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 |
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.
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.
Deliberately excluded from this release: semantic embeddings (derived, recomputable) and any per-child / user data (never published). See CHANGELOG.md.