Add France: full-text curriculum source, Français literacy track, French history/civics + cross-language crosswalks - #23
Open
dahbiahmed wants to merge 3 commits into
Conversation
3,179 standards extracted from the official programmes d'enseignement for cycles 1-3 (école maternelle through CM2/6e), as in force for the 2026-2027 school year (BO 2020-2026), including the renewed 2024-2026 français/mathématiques/EPS/histoire-géographie/sciences/langues vivantes programmes. Text is in French, shipped verbatim under the Licence Ouverte / Open Licence Etalab 2.0 (attribution, no share-alike) — same shape as the existing UK OGL source. Codes (e.g. C2.Fr.CP.Lect.3) are invented for this dataset, mirroring how uk-nc-2013 codes were minted. See PROVENANCE.md for per-BO sourcing and the rolling-reform note.
Maps 923 of 1,590 micro-topics to fr-programmes-2026 standards. Links were added only where the standard teaches substantially the same idea as the topic (conservative, genuine-match rule): - Mathematics and Science map densely (France's annualised objectives align closely with the micro-topic granularity). - English topics link only via language-agnostic literacy skills (comprehension, composition, oral) to Français standards, plus a few functional-EFL matches to langues vivantes; English-specific phonics/spelling/grammar deliberately left unlinked. - Anglo-centric History topics link only where the same period/concept is taught (Greece, Rome, prehistory, world wars, chronology). - Unlinked topics reflect real curricular differences (e.g. French primary defers plate tectonics, formal algebra, and negative numbers to cycle 4; conceptual financial literacy is not taught).
…nguage crosswalks - Français subject: 252 micro-topics across 9 domains (langage oral, décodage, compréhension, culture littéraire, écriture & graphisme, rédaction, grammaire & conjugaison, orthographe, vocabulaire), distilled from the fr-programmes-2026 standards, wired with 614 new prerequisite edges including cross-domain chains (e.g. grammaire concepts -> orthographe agreement). - History: 54 topics in two new French-history domains, reusing existing shared-period nodes (Rome, Greece, world wars) as prerequisites instead of duplicating them. - PSD: 26 Citizenship & la République topics from the EMC programme. - data/crosswalks.json (+ schema + validator support): 139 same-skill-different-language links pairing Français <-> English literacy topics, tagged transfer high|partial — per-language mastery with explicit transfer priors (Cummins interdependence). - 41 new parent-friendly domain clusters; README/CHANGELOG updated. centrality for new topics is approximated (normalized descendant count) pending canonical recomputation upstream. validate.mjs green: 1,922 topics, 3,835 edges, 224 clusters, 139 crosswalks.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add France: full-text curriculum source, Français literacy track, French history/civics + cross-language crosswalks
What this adds (three layers, three commit groups)
1. A new 🟢 full-text curriculum source — the French programmes d'enseignement for cycles 1–3 (école maternelle → CM2/6e), as in force for the 2026-2027 school year:
2. A native
Françaissubject — 252 new micro-topics: French-as-first-language literacy as a parallel track toEnglish, in 9 domains mirroring the English literacy architecture where the science is shared and diverging where the languages diverge (décodage syllabique, orthographe grammaticale, conjugaison…). Every topic is distilled from the French standards (carries itsfr-programmes-2026:*codes), has evidence criteria, anassessmentPrompt, and sits in the prerequisite graph (614 new edges, including cross-domain chains like grammaire → orthographe agreement).3. French history & civics growth of existing subjects — 54 History topics (two new domains: French History: Origins to Revolution / Revolution to Today) and 26 PSD topics (Citizenship & la République). Shared periods (Rome, Greece, world wars) reuse the existing topic nodes — e.g. Gaule romaine takes Daily Life in a Roman Town as a prerequisite instead of duplicating it.
Plus
data/crosswalks.json(new file, schema, and validator support — additive, optional): 139same-skill-different-languagelinks pairing Français ↔ English literacy topics, taggedtransfer: high|partial. Rationale: mastery is observed per language, but transfer is real and asymmetric (Cummins' interdependence) — comprehension strategies and composition transfer nearly fully; decoding partially; conventions barely. Two nodes + a typed link preserves per-language mastery state while letting an app treat mastery in one language as a strong prior in the other. The same pattern extends to any L1 (Spanish, German…).validate.mjspasses (structure, referential integrity, cycles, checksums, crosswalk integrity).centralityfor new topics is approximated (normalized descendant count) pending your canonical recomputation.Licensing
The ministry publishes these texts under Licence Ouverte / Open Licence (Etalab) 2.0 — attribution-only, commercial reuse permitted, no share-alike (education.gouv.fr: "Sauf mention contraire, tous les contenus de ce site sont sous licence etalab-2.0"). Same shape as the existing UK OGL v3 source, so full text ships. Required notice added to PROVENANCE.md.
Design decisions (feedback welcome)
C2.Fr.CP.Lect.3= cycle 2, français, CP, lecture, item 3) — the French programmes define no official statement codes, mirroring howuk-nc-2013codes were minted.data.boand in PROVENANCE.md.The English ↔ Français question
The taxonomy's
Englishsubject is English-as-first-language literacy; the French programmes contain French-as-first-language literacy (Français) and English-as-a-foreign-language (langues vivantes). No pair is the same construct, so links follow a skill-transferability rule:Net effect: 135/286 English topics carry French links. This PR now also ships the cleaner long-term answer — the native
Françaistrack (layer 2) — with the crosswalk expressing the English↔Français relationship explicitly at skill level. The English-topic→Français-standard links from layer 1 remain as a complementary, coarser signal; happy to re-cut or drop either layer if you'd rather keep a single mechanism.Provenance of the extraction
Extracted from the official PDFs published by éduscol / education.gouv.fr (two sciences PDFs had no text layer and were OCR'd). Extraction and topic mapping were LLM-assisted with human-defined rules and spot-check review; happy to share the intermediate artifacts or re-run against different granularity choices if the maintainers prefer.