Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

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

The taxonomy as a rotating 3D graph: every dot a micro-topic, colored by subject, wired by prerequisites

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/soft and 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

SubjectTopics
Science547
Mathematics504
English286
History90
Personal & Social Development88
Life Skills37
Computing21
Learning to Learn18

Files

All data lives in data/ as UTF-8 JSON. See schema/ for JSON Schemas and manifest.json for counts + SHA-256 checksums.

FileWhat it holds
data/topics.jsonThe micro-topics (graph nodes).
data/dependencies.jsonPrerequisite edges (topicId depends on prerequisiteId).
data/curriculum-standards.jsonThe source curriculum standards, grouped by curriculum.
data/clusters.jsonParent-friendly domain summaries.
data/teaching-research.jsonTeaching research joined by topicId, with explicit coverage and publication notes (~24 MB).
data/archived-teaching-research.jsonHistorical guidance for merged or refocused topics, with original records and current topic associations.
data/manifest.jsonCounts, 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 into curriculum-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 502 Mathematics topics. coverage.missingTopicIds and per-subject counts make the 567 topics without research explicit; absence is not a judgement about whether a topic can be taught.

archived-teaching-research.json preserves two historical records excluded from active coverage after a topic merge and a change in learning scope. Each entry includes the original topic and research record, its archive reason, and related current topic IDs. The archive also records the assessment prerequisite reference redirected after the merge.

The active teaching-research.json file has schemaVersion: 1 and taxonomy version: "v1". Each records[] entry joins topics.json through topicId and contains:

FieldMeaning
pedagogyOriginal teaching summary, practices, representations and misconceptions.
learnPortable 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.
assessOriginal diagnostic/task, response levels, error patterns and next teaching moves; nullable in the public interface.
sourcesClaim, named source, optional URL and the original author's verification flag.
confidenceOriginal authoring confidence; not an independent quality score.
provenanceOriginal authoring model and source record timestamps. The update timestamp also reflects the learning-guidance rewrite.
publicationNotesPaths 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.

LayerLicense
The database — the collection, structure, IDs, topic↔topic and topic↔standard relationshipsODbL 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 proseCC BY-SA 4.0 — same spirit: attribution + share-alike.
curriculum-standards.json — extracted from third-party frameworksNot 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.

关于 About

No description, website, or topics provided.

语言 Languages

JavaScript100.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
23
Total Commits
峰值: 13次/周
Less
More

核心贡献者 Contributors