Appearance
SDD-004 — Curriculum Storage & Learning Experiences
Nguyên tắc: Hierarchy để tổ chức · Graph để biểu diễn quan hệ · Registry để quản lý identity · R2 chứa nội dung lớn · Learning Experiences là reusable objects, không khóa cứng trong course. Load structure first, content on demand.
2. Curriculum Hierarchy
School → Subject → Area → Grade Band → Unit → Topic → {Knowledge Nodes, Skills, Learning Packages, Learning Experiences}. Grade là metadata/context, không phải ownership boundary (một node dùng G7–G9).
3. Registry, không phải cây document khổng lồ
Mỗi entity một record: subjects, areas, units, topics, knowledge_nodes, skills, learning_packages, learning_experiences, labs. Quan hệ ở bảng riêng entity_relations {parent_of, contains, prerequisite_of, teaches, assesses, related_to} — một Skill tái sử dụng ở nhiều grade/school/package/assessment/lab. (Fix RISK-014: cấm content-as-migrations kiểu mori 15.9k SQL trộn DDL + data.)
4. Storage 3 lớp (REQ-KNW-06)
| Lớp | Chứa |
|---|---|
| D1 | IDs, hierarchy, relations, metadata (type, title, grade_min/max, difficulty, duration, status, version, quality score), content_ref |
| R2 | Markdown, JSON payload lớn, images/diagrams/audio/video, simulations, lab assets, datasets, PDFs — key dạng r2://learning-experiences/math/algebra/lx-283/v7/content.json |
| KV/Cache | published manifests, config, resolved learning paths, static catalogs |
5–8. Learning Experience types (REQ-KNW-04)
LearningExperience {identity, targets, prerequisites, metadata, experience_type, content_ref, evidence_contract} — experience_type quyết định renderer/behavior:
- Micro (30s–5'): chọn đáp án, điền, matching, reorder, prediction; session nối 5–20 micro.
- Practice (10–30'): 10–20 items từ Item Bank, không duplicate content.
- Assessment (subtype riêng): blueprint + item selection + scoring + timing + evidence + interpretation; các dạng Diagnostic/Placement/Readiness/Mastery Check/Adaptive/Exam Simulation/Quick Check/Oral/Writing/Project/Performance.
Blueprint → Item Bank → Selection Engine → Assessment Instance(mỗi learner một đề khác nhau). - Lab (asset lớn nhất): objective, concepts, skills, instructions, materials, stages, observations, data, questions, reflection, evidence. Curriculum chỉ reference lab — chi tiết Lab Platform: SDD-010.
- Project / Simulation tương tự — entity độc lập, metadata hóa (
target_skill, difficulty, estimated_time, pedagogy, prerequisites, expected_evidence, age_range, interaction_type) để Recommendation Engine chọn experience, không chỉ course.
9. Item Bank (REQ-KNW-05)
Registry riêng: MCQ, multi-select, short answer, numeric, ordering, matching, essay, coding, drawing, interactive. Một question xuất hiện trong practice/assessment/micro/diagnostic — không duplicate. (Hợp nhất 4 item stores legacy — RISK-006; kho đề thi thật exam_problems giữ registry riêng thuộc Shark, liên kết qua relations — Q-041.)
10. Manifest (REQ-KNW-06)
Unit/Package publish manifest nhẹ (danh sách experience IDs); frontend tải manifest trước, heavy content chỉ tải khi mở experience.
11. Versioning (REQ-KNW-12)
Asset immutable theo version (lab-0042/v3); learner session ghi {experience_id, experience_version} — sửa content sau vẫn biết learner học bản nào.
Trace
| REQ | Mục |
|---|---|
| REQ-KNW-04 | §5–§8 |
| REQ-KNW-05 | §9 |
| REQ-KNW-06 | §4, §10 |
| REQ-KNW-12 | §11 |