K–12学習のためのカリキュラム準拠ナレッジグラフ
数千のカリキュラム対応概念、前提知識リンク、練習問題、適応型診断を備えた、静的でオフライン利用にも適した学習プラットフォームを紹介します。
生徒が問題を間違えたとき、次にすべきことが、必ずしも同じトピックの問題をもう一問解くこととは限りません。本当のつまずきは、何学年も前の内容にあるかもしれません。たとえば、平方完成に苦戦している学習者は、まず完全平方の公式を復習する必要があるかもしれません。生徒が何を学ぶべきかだけでなく、概念同士がどのように依存しているかも表現すれば、カリキュラムはより実践的なものになります。
これが、 cn-math-taxonomyの発想です。中国の学校カリキュラムを対象とした、オープンソースのナレッジグラフ兼診断ツールです。カリキュラム基準、教科書の構成、概念レベルの前提知識、問題バンクを構造化データにまとめ、それらの関係を使って、学習上のつまずきの根本原因と思われる箇所をたどります。
トピックの一覧から学習グラフへ
従来のシラバスは、学年、単元、授業の順に構成されています。計画を立てるうえでは役立ちますが、概念間の依存関係までは示しません。このプロジェクトでは、各トピックをノード、各前提知識を有向エッジとしてモデル化します。
{
"topicId": "cnm_h027",
"prerequisiteId": "cnm_...",
"strength": "hard",
"reason": "This concept is needed to ..."
}
矢印の向きは、topicIdがprerequisiteIdに依存することを表します。hardエッジは、後のトピックを学ぶために必要と考えられる前提知識を示し、softエッジは、絶対条件ではないものの役立つ知識を示します。これらのラベルは明示されていますが、リポジトリは、それらが教師によって検証された事実ではなく、判断に基づくものだと注意を促しています。
このグラフでは、直接の前提知識リンクを保持しつつ、推移簡約の一種を適用しています。あるトピックが、十分に強い経路を通じてすでに別のトピックに依存している場合、冗長なリンクは省略できます。これにより、必要に応じて診断で長い連鎖をたどりながら、個々のグラフを読みやすく保てます。
たとえば、高校の関数に関する概念を、中学の二次関数につなぎ、さらに過去の基礎へとさかのぼることができます。英語と数学は別々のグラフであり、物理も数学のグラフとは独立しています。物理では、前提知識のエッジではなくmathLinksを使って、関連する数学概念を記録します。
複数教科にまたがる充実したデータセット
リポジトリによると、当初の数学中心の範囲を大きく超える、幅広いデータを収録しています。小学校から高校までの数学、小学3年生から高校までの英語、小学校から中学校までの国語に加え、物理、化学、生物、歴史、地理、道徳・法治などの理科・社会系教科も含まれます。
READMEに掲載された現在の教科別表では、数学は概念870件・問題3,627問、英語は概念791件・問題3,164問、物理は概念269件・問題1,076問、国語は概念682件・問題2,728問となっています。その他の教科には、小学校理科のトピック222件、小学校の道徳・法治のトピック159件、中学校の道徳・法治のトピック85件、歴史のトピック134件、地理のトピック59件、生物のトピック66件、化学のトピック45件が含まれます。これらの数は収録範囲の目安であり、すべての教科書の授業やカリキュラム上の記述を網羅したという主張ではありません。
収録範囲は、特定の版やカリキュラム資料に基づいています。数学では、小学校および中学校の内容を2022年改訂の義務教育課程基準に、高校の内容を2017年基準に対応付けており、プロジェクトに記載された改訂情報や出典資料を使用しています。また、教科書の版も記録されています。たとえば人民教育出版社の数学教科書には、高校のA版シリーズも含まれます。他教科にも、それぞれ教科書と基準に関する注記があります。
この版管理の詳細は重要です。教科書は改訂され、トピックの学年、章、名称は版によって変わることがあります。このプロジェクトでは、公式資料との照合が確認済みの時期、第三者の索引を利用した箇所、暫定的なままの章を記録しています。また、公式基準からの逐語的な引用ではなく、公開情報に基づく言い換えを掲載している場合もあります。こうした違いをメタデータとして扱うことで、すべての対応付けを同じ権威性があるかのように示すよりも、データセットの有用性と誠実さが高まります。
適応型診断の仕組み
診断ツールは、目標とする概念、またはより広い章や学年の範囲から始めます。問題を出し、習熟度の推定を更新し、解答から基礎的なつまずきが示唆された場合には、前提知識のリンクをたどります。文書化されている既定の設定では、同じトピックに3問連続で正解すると習得済みと判定し、その祖先トピックを省略します。ユーザーは、しきい値を2問、3問、5問から選べます。診断セッションでは、各トピックにつき最大2問までです。学習者が間違えた場合、同じ難易度またはより易しい問題を追加で出し、継続的な弱点なのか、単発のミスなのかを見分けます。弱点が確認されると、前提知識をたどり、まずハードな前提知識を検討し、次にソフトな前提知識を確認します。
結果は単なる得点ではありません。弱点の可能性が高い箇所と、判断が不確かなトピックを分け、基礎から目標へ向かう順序で学習経路を提示します。カリキュラムの参照情報や経路のグラフも表示できます。進捗はブラウザー内にローカル保存され、診断記録はアップロードされず端末内にとどまるとプロジェクトは説明しています。結果はJSONとしてエクスポートしたり、印刷したり、共有可能な画像として出力したりできます。
この設計が有用なのは、間違いを「なぜ間違えたのか」という仮説に変えるからです。ただし、原因を証明するものではありません。短時間の適応型セッションによって調査すべき箇所を絞り込むことはできますが、教師の判断や、より包括的な評価に取って代わることはできません。
静的データ、ブラウザーツール、再現可能な検証
このリポジトリは、静的サイトとして動作するように設計されています。中心となるデータファイルは、シンプルなJSON配列です。
data/topics.jsonには、概念、説明、習得基準、診断問題、カリキュラムとの対応付け、教科書上の位置付けが格納されています。data/dependencies.jsonには、前提知識のエッジと、その強さおよび根拠が格納されています。data/cn-curriculum-standards.jsonには、基準に関する記録が含まれています。data/questions.jsonには、問題バンクが含まれています。
ブラウザー上では、ホームページ、ナレッジグラフの探索ツール、診断ツールを利用できます。探索ツールは、ローカルでグラフを配置するためにCytoscape 3.30.4、dagre 0.8.5、cytoscape-dagre 2.5.0を使用します。外部CDNからスクリプト、スタイル、フォントを読み込むのではなく、ブラウザー依存パッケージをリポジトリに同梱しています。プログレッシブウェブアプリの仕組みにより、インストールとオフラインキャッシュにも対応します。
サイトをローカルで試すには、リポジトリのルートから静的サーバーを起動します。
python3 -m http.server 8000
次に、http://localhost:8000/を開くか、直接http://localhost:8000/diagnose/にアクセスします。診断エンジンはプレーンなJavaScriptで実装されており、Node.jsのテストコマンドを利用できます。
node tests/test_engine.js
Pythonの検証スクリプトは、JSON構造、一意な識別子、有効なフィールド、エッジの接続先の存在、エッジの重複、循環の有無、および外部参照ではない各トピックに前提知識または根拠付きのルートがあるかを確認します。次のコマンドで実行できます。
python3 scripts/validate.py
問題の検証も利用できます。
python3 scripts/verify_questions.py
プロジェクトによると、現在の検証では、2,823問が自動検証済みで、不一致はゼロ、検証不能な問題は532問です。検証不能な問題の多くは、中学校の問題で、機械検証可能な式が用意されていません。自動チェックの成功が確認するのは、検証スクリプトで表現できる範囲に限られます。教育的な質が保証されるわけでも、あらゆる状況で解答が正しいと証明されるわけでもありません。
重要な限界:グラフは提案であり、カリキュラムの権威ではない
READMEでは、まだ検証が必要な点について率直に説明しています。前提知識の関係、ハードとソフトの区分、トピックの粒度、診断問題は、教室でのデータを用いた検証を受けていません。問題の多くはAIで生成されています。小学校と中学校の数学には、追加の自動検証や独立検証が行われていますが、高校と英語の問題には、解答を伏せた状態での検証が行われていません。そのため、これらの問題では、検証式と解答が同じ元データから作られている可能性があります。教科書の章や基準との対応付けの一部は、暫定的なもの、または公開情報に基づく言い換えです。
したがって、このプロジェクトは、構造化され、内容を確認できる出発点として活用するのが最適です。依存関係の探索、学習ツールの構築、教育関係者が検討すべき問題の特定には役立ちますが、公式シラバスや検証済みのプレースメントテストの代替ではありません。貢献者は、疑問のある表現、解答、エッジをGitHubのIssueで報告できます。リポジトリのライセンスはCC BY-NC 4.0です。個人の学習、教育、研究であれば出典表示を条件に利用できますが、商用利用には別途許可が必要です。
より大きな教訓は、カリキュラムデータは、関係性と不確実性の両方を明示することで、いっそう力を発揮するということです。前提知識のグラフを使えば、ソフトウェアは「不正解。もう一度」から一歩進み、「どの基礎が身についていない可能性があるか?」を考えられます。ただし、その支援の質は、出典の慎重な記録、限界の透明な開示、そして生徒の実際の学びを知る教師による継続的な見直しにかかっています。