Un graphe de connaissances aligné sur les programmes scolaires pour les élèves de la maternelle au lycée
Découvrez une plateforme d’apprentissage statique, utilisable hors ligne, qui propose des milliers de notions alignées sur les programmes, des liens de prérequis, des exercices et des diagnostics adaptatifs.
Lorsqu’un élève se trompe à une question, l’étape suivante utile n’est pas toujours de lui en poser une autre sur le même sujet. La véritable lacune peut remonter plusieurs années en arrière : un élève qui a du mal à compléter le carré, par exemple, devra peut-être d’abord revoir la formule du carré parfait. Un programme scolaire devient beaucoup plus exploitable lorsqu’il représente non seulement ce que les élèves doivent apprendre, mais aussi les liens de dépendance entre les notions.
C’est l’idée derrière cn-math-taxonomy, un graphe de connaissances et un outil de diagnostic open source pour les programmes scolaires chinois. Il rassemble des référentiels curriculaires, l’organisation des manuels, les prérequis au niveau des notions et des banques de questions dans des données structurées, puis s’appuie sur ces relations pour remonter d’une lacune d’apprentissage à ses causes probables.
D’une liste de sujets à un graphe d’apprentissage
Un programme classique organise les contenus par niveau scolaire, unité et leçon. C’est utile pour la planification, mais cela ne décrit pas les dépendances entre les notions. Ce projet modélise chaque sujet comme un nœud et chaque prérequis comme une arête orientée :
{
"topicId": "cnm_h027",
"prerequisiteId": "cnm_...",
"strength": "hard",
"reason": "This concept is needed to ..."
}
Le sens de l’arête indique que topicId dépend de prerequisiteId. Une arête hard correspond à un prérequis jugé nécessaire à l’apprentissage du sujet ultérieur ; une arête soft signale une connaissance utile, mais qui ne constitue pas un passage obligé. Ces catégories sont explicites, mais le dépôt précise qu’il s’agit de jugements, et non de faits validés par des enseignants.
Le graphe conserve les liens directs de prérequis et applique une forme de réduction transitive. Si un sujet dépend déjà d’un autre par l’intermédiaire d’un chemin suffisamment fort, les liens redondants peuvent être omis. Le graphe local reste ainsi plus facile à lire, tout en permettant au diagnostic de parcourir la chaîne complète lorsque c’est nécessaire.
Par exemple, le graphe peut relier une notion de fonction du lycée aux fonctions quadratiques du collège, puis remonter vers des bases plus anciennes. L’anglais et les mathématiques sont représentés par des graphes distincts ; la physique reste elle aussi indépendante du graphe de mathématiques et consigne les notions mathématiques associées dans mathLinks plutôt que sous forme d’arêtes de prérequis.
Un jeu de données conséquent couvrant plusieurs matières
Le dépôt décrit une vaste collection qui dépasse largement son périmètre initial, centré sur les mathématiques. Ses données couvrent les mathématiques de l’école primaire au lycée, l’anglais de la troisième année du primaire au lycée, le chinois de l’école primaire au collège, ainsi que des matières scientifiques, notamment la physique, la chimie, la biologie, l’histoire, la géographie, et l’éducation morale et civique.
Les tableaux actuels du README recensent 870 notions de mathématiques et 3 627 questions ; 791 notions d’anglais et 3 164 questions ; 269 notions de physique et 1 076 questions ; ainsi que 682 notions de chinois et 2 728 questions. Les autres collections comprennent 222 sujets de sciences au primaire, 159 sujets d’éducation morale et civique au primaire, 85 sujets de cette même matière au collège, 134 sujets d’histoire, 59 de géographie, 66 de biologie et 45 de chimie. Ces chiffres donnent une indication de l’ampleur du projet ; ils ne signifient pas que chaque leçon de manuel ou chaque élément du programme a été intégralement recensé.
La couverture est liée à des éditions et à des références curriculaires précises. Pour les mathématiques, le dépôt associe les contenus de l’école primaire et du collège au référentiel révisé de 2022 pour l’enseignement obligatoire, et ceux du lycée au référentiel de 2017, en s’appuyant sur les révisions et les documents sources décrits dans le projet. Il indique également les éditions des manuels retenues : par exemple, ceux de mathématiques des Presses de l’éducation du peuple, y compris la série A du lycée. Les autres matières disposent de leurs propres notes sur les manuels et les référentiels.
Ces précisions sur les versions sont importantes. Les manuels évoluent, et le niveau, le chapitre ou le nom d’une notion peuvent varier d’une édition à l’autre. Le projet indique quand un répertoire a été vérifié auprès d’une source officielle, quand il s’appuie sur un index tiers et quand une section reste provisoire. Dans certains cas, le texte est une reformulation publique et non une citation mot à mot vérifiée du référentiel officiel. Consigner ces distinctions dans les métadonnées rend le jeu de données plus utile — et plus honnête — que de présenter toutes les correspondances comme également fiables.
Fonctionnement du diagnostic adaptatif
L’outil de diagnostic part d’une notion cible ou d’un chapitre ou niveau scolaire plus large. Il pose des questions, actualise son estimation de la maîtrise et suit les liens de prérequis lorsque les réponses révèlent une lacune fondamentale. Par défaut, trois bonnes réponses consécutives suffisent à considérer une notion comme maîtrisée et à ignorer ses prérequis ; l’utilisateur peut choisir un seuil de deux, trois ou cinq réponses. Chaque notion est limitée à deux questions maximum par session de diagnostic. Si l’élève se trompe, une question de suivi de même niveau ou plus facile permet de distinguer une difficulté persistante d’une simple erreur ponctuelle. Une difficulté confirmée déclenche l’exploration des prérequis, en examinant d’abord les prérequis « hard », puis les « soft ».
Le résultat ne se limite pas à un score. Il distingue les points faibles probables des notions incertaines, présente un parcours d’apprentissage allant des bases les plus anciennes jusqu’à l’objectif et peut afficher les références du programme ainsi qu’un graphe du parcours. La progression est enregistrée localement dans le navigateur ; selon le projet, les données du diagnostic restent sur l’appareil et ne sont pas téléversées. Les résultats peuvent être exportés en JSON, imprimés ou rendus sous forme d’image à partager.
Cette approche est utile, car elle transforme une mauvaise réponse en hypothèse sur la raison de l’erreur. Elle n’en établit toutefois pas la cause avec certitude. Une courte session adaptative peut aider à cerner les points à examiner, mais elle ne remplace ni le jugement d’un enseignant ni une évaluation complète.
Données statiques, outils de navigateur et vérifications reproductibles
Le dépôt est conçu pour fonctionner comme un site statique. Ses principaux fichiers de données sont de simples tableaux JSON :
data/topics.jsoncontient les notions, descriptions, critères de maîtrise, questions de diagnostic, correspondances avec les programmes et emplacement dans les manuels.data/dependencies.jsoncontient les arêtes de prérequis, leur force et leur justification.data/cn-curriculum-standards.jsoncontient les données des référentiels.data/questions.jsoncontient la banque de questions.
L’expérience dans le navigateur comprend une page d’accueil, un explorateur du graphe de connaissances et l’outil de diagnostic. L’explorateur utilise Cytoscape 3.30.4 avec dagre 0.8.5 et cytoscape-dagre 2.5.0 pour produire des mises en page locales du graphe. Le projet inclut les dépendances du navigateur dans le dépôt au lieu de charger scripts, feuilles de style ou polices depuis un CDN externe. Une configuration d’application web progressive permet l’installation et la mise en cache hors ligne.
Pour essayer le site localement, lancez un serveur statique depuis la racine du dépôt :
python3 -m http.server 8000
Ouvrez ensuite http://localhost:8000/ ou accédez directement à http://localhost:8000/diagnose/. Le moteur de diagnostic est écrit en JavaScript pur et dispose d’une commande de test Node :
node tests/test_engine.js
Le validateur Python vérifie la structure JSON, l’unicité des identifiants, la validité des champs, l’existence des extrémités des arêtes, les arêtes en double, les cycles et la présence d’un prérequis ou d’une justification de racine documentée pour chaque notion non externe. Lancez-le avec :
python3 scripts/validate.py
La vérification des questions est également disponible :
python3 scripts/verify_questions.py
Le projet indique que la vérification actuelle a validé automatiquement 2 823 questions, sans aucune divergence, tandis que 532 questions restent invérifiables — principalement des questions de collège sans expression de vérification contrôlable par une machine. La réussite d’une vérification automatique ne confirme que ce que le validateur est capable d’exprimer ; elle n’établit pas la qualité pédagogique et ne prouve pas qu’un corrigé est exact dans tous les contextes.
Limite essentielle : un graphe est une proposition, pas une autorité en matière de programme
Le README indique très clairement les points qui doivent encore être examinés. Les relations de prérequis, les catégories « hard » et « soft », le niveau de granularité des notions et les questions de diagnostic n’ont pas été validés à partir de données recueillies en classe. De nombreuses questions ont été générées par l’IA. Les questions de mathématiques du primaire et du collège ont fait l’objet de vérifications automatisées ou indépendantes supplémentaires, mais les questions du lycée et d’anglais n’ont pas été résolues à l’aveugle ; dans ces cas, l’expression de vérification et la réponse peuvent provenir de la même construction sous-jacente. Certains répertoires de manuels et certaines correspondances avec les référentiels restent provisoires ou s’appuient sur des reformulations publiques.
Il vaut donc mieux considérer le projet comme un point de départ structuré et inspectable : utile pour explorer les dépendances, créer des outils d’apprentissage et repérer les questions à soumettre aux enseignants, mais pas comme un remplacement officiel d’un programme scolaire ni comme un test de niveau validé. Les contributeurs peuvent signaler sur GitHub les formulations, réponses ou liens discutables. Le dépôt est sous licence CC BY-NC 4.0 : l’apprentissage personnel, l’enseignement et la recherche sont autorisés avec attribution, tandis que tout usage commercial nécessite une autorisation distincte.
La leçon générale est que les données curriculaires gagnent en puissance lorsqu’elles rendent explicites à la fois les relations entre notions et les incertitudes. Un graphe de prérequis peut aider un logiciel à dépasser le simple « mauvaise réponse, réessayez » pour demander « quelle base pourrait manquer ? ». Mais l’utilité de cette aide dépend de la rigueur des sources, de la transparence sur ses limites et d’un examen continu par les enseignants qui connaissent la manière dont les élèves apprennent réellement.