diff --git a/docs/course-to-pack.md b/docs/course-to-pack.md index 5f2ad6d..6158a44 100644 --- a/docs/course-to-pack.md +++ b/docs/course-to-pack.md @@ -51,11 +51,17 @@ The pack emitter writes: - `conflict_report.md` - `license_attribution.json` - `source_corpus.json` +- `knowledge_graph.json` `source_corpus.json` is the main grounded-text artifact. It preserves lesson bodies, objectives, exercises, and source references from the ingested material so downstream tutoring or evaluation can rely on source-derived text instead of only the distilled concept graph. +`knowledge_graph.json` is the graph-first artifact. It preserves typed nodes and justified edges +for sources, modules, lessons, concepts, assessment signals, and prerequisite/support relations. +Later Didactopus retrieval and tutoring flows can use this graph to explain why a concept appears, +what supports it, and which source material grounds it. + ## Rule layer The current default rules: diff --git a/domain-packs/mit-ocw-information-entropy/knowledge_graph.json b/domain-packs/mit-ocw-information-entropy/knowledge_graph.json new file mode 100644 index 0000000..e6dd130 --- /dev/null +++ b/domain-packs/mit-ocw-information-entropy/knowledge_graph.json @@ -0,0 +1,2917 @@ +{ + "course_title": "MIT OCW Information and Entropy", + "rights_note": "Derived from MIT OpenCourseWare 6.050J Information and Entropy (Spring 2008). Retain MIT OCW attribution and applicable Creative Commons terms before redistribution.", + "summary": { + "node_count": 98, + "edge_count": 178, + "concept_count": 34, + "source_count": 3 + }, + "nodes": [ + { + "id": "source::examples-ocw-information-entropy-course-course-home-md", + "type": "source", + "title": "Course Home", + "source_path": "examples/ocw-information-entropy/course/course-home.md", + "source_type": "markdown" + }, + { + "id": "source::examples-ocw-information-entropy-course-syllabus-md", + "type": "source", + "title": "Syllabus", + "source_path": "examples/ocw-information-entropy/course/syllabus.md", + "source_type": "markdown" + }, + { + "id": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "type": "source", + "title": "Unit Sequence", + "source_path": "examples/ocw-information-entropy/course/unit-sequence.md", + "source_type": "markdown" + }, + { + "id": "concept::mit-ocw-6-050j-information-and-entropy-course-home", + "type": "concept", + "title": "MIT OCW 6.050J Information and Entropy: Course Home", + "description": "Source: https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/\nAttribution: adapted from the MIT OpenCourseWare course home page for 6.050J Information and Entropy.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "MIT OCW 6.050J Information and Entropy: Course Home" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ] + }, + { + "id": "concept::information-and-entropy", + "type": "concept", + "title": "Information and Entropy", + "description": "- Objective: Identify the course title, instructors, departments, level, and major topical areas.\n- Exercise: Summarize the course in one paragraph for a prospective learner.\nMIT OpenCourseWare presents 6.050J Information and Entropy as a S", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::paul", + "type": "concept", + "title": "Paul", + "description": "Candidate concept extracted from lesson 'Information and Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::penfield", + "type": "concept", + "title": "Penfield", + "description": "Candidate concept extracted from lesson 'Information and Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::seth", + "type": "concept", + "title": "Seth", + "description": "Candidate concept extracted from lesson 'Information and Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::lloyd", + "type": "concept", + "title": "Lloyd", + "description": "Candidate concept extracted from lesson 'Information and Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::electrical", + "type": "concept", + "title": "Electrical", + "description": "Candidate concept extracted from lesson 'Information and Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::engineering", + "type": "concept", + "title": "Engineering", + "description": "Candidate concept extracted from lesson 'Information and Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::ultimate-limits-to-communication-and-computation", + "type": "concept", + "title": "Ultimate Limits to Communication and Computation", + "description": "- Objective: Explain the broad intellectual scope of the course.\n- Exercise: List the main topic clusters that connect communication, computation, and entropy.\nThe course examines the ultimate limits to communication and computation with em", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Ultimate Limits to Communication and Computation" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Explain the broad intellectual scope of the course." + ] + }, + { + "id": "concept::entropy", + "type": "concept", + "title": "Entropy", + "description": "Candidate concept extracted from lesson 'Ultimate Limits to Communication and Computation'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Ultimate Limits to Communication and Computation" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Explain the broad intellectual scope of the course." + ] + }, + { + "id": "concept::open-textbooks-problem-sets-and-programming-work", + "type": "concept", + "title": "Open Textbooks, Problem Sets, and Programming Work", + "description": "- Objective: Identify the main kinds of learning resources supplied through the course.\n- Exercise: Explain how these resource types support both conceptual study and practice.\nThe course home lists open textbooks, problem sets, problem set", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Open Textbooks, Problem Sets, and Programming Work" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the main kinds of learning resources supplied through the course." + ] + }, + { + "id": "concept::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "concept", + "title": "MIT OCW 6.050J Information and Entropy: Syllabus", + "description": "Source: https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/pages/syllabus/\nAttribution: adapted from the MIT OpenCourseWare syllabus page for 6.050J Information and Entropy.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "MIT OCW 6.050J Information and Entropy: Syllabus" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ] + }, + { + "id": "concept::prerequisites-and-mathematical-background", + "type": "concept", + "title": "Prerequisites and Mathematical Background", + "description": "- Objective: Explain the mathematical maturity expected by the course.\n- Exercise: Decide whether a learner needs review in probability, linear algebra, or signals before beginning.\nThe syllabus expects a foundation comparable to MIT subjec", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Prerequisites and Mathematical Background" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "mastery_signals": [ + "Explain the mathematical maturity expected by the course." + ] + }, + { + "id": "concept::assessment-structure", + "type": "concept", + "title": "Assessment Structure", + "description": "- Objective: Identify the role of problem sets, exams, and programming work in the course.\n- Exercise: Build a study schedule that alternates reading, derivation, and worked exercises.\nThe syllabus emphasizes regular problem solving and qua", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Assessment Structure" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "mastery_signals": [ + "Identify the role of problem sets, exams, and programming work in the course." + ] + }, + { + "id": "concept::course-notes-and-reference-texts", + "type": "concept", + "title": "Course Notes and Reference Texts", + "description": "- Objective: Explain how the course notes and textbook references supply the core conceptual sequence.\n- Exercise: Compare when to use course notes versus outside references for clarification.\nMIT OCW links course notes and textbook-style r", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Course Notes and Reference Texts" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "mastery_signals": [ + "Explain how the course notes and textbook references supply the core conceptual sequence." + ] + }, + { + "id": "concept::independent-reasoning-and-careful-comparison", + "type": "concept", + "title": "Independent Reasoning and Careful Comparison", + "description": "- Objective: Explain why the course requires precise comparison of related but non-identical concepts.\n- Exercise: Write a short note distinguishing Shannon entropy, channel capacity, and thermodynamic entropy.\nThe syllabus framing implies", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Independent Reasoning and Careful Comparison" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "mastery_signals": [ + "Explain why the course requires precise comparison of related but non-identical concepts." + ] + }, + { + "id": "concept::shannon", + "type": "concept", + "title": "Shannon", + "description": "Candidate concept extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Independent Reasoning and Careful Comparison" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "mastery_signals": [ + "Explain why the course requires precise comparison of related but non-identical concepts." + ] + }, + { + "id": "concept::learners", + "type": "concept", + "title": "Learners", + "description": "Candidate concept extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Independent Reasoning and Careful Comparison" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "mastery_signals": [ + "Explain why the course requires precise comparison of related but non-identical concepts." + ] + }, + { + "id": "concept::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "concept", + "title": "MIT OCW 6.050J Information and Entropy: Unit Sequence", + "description": "Source: https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/pages/syllabus/\nAttribution: adapted from the MIT OpenCourseWare unit progression and resource organization for 6.050J Information and Entropy.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "MIT OCW 6.050J Information and Entropy: Unit Sequence" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "concept::counting-and-probability", + "type": "concept", + "title": "Counting and Probability", + "description": "- Objective: Explain how counting arguments, probability spaces, and random variables support later information-theory results.\n- Exercise: Derive a simple counting argument for binary strings and compute an event probability.\nEarly units e", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Counting and Probability" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain how counting arguments, probability spaces, and random variables support later information-theory results." + ] + }, + { + "id": "concept::derive", + "type": "concept", + "title": "Derive", + "description": "Candidate concept extracted from lesson 'Counting and Probability'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Counting and Probability" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain how counting arguments, probability spaces, and random variables support later information-theory results." + ] + }, + { + "id": "concept::shannon-entropy", + "type": "concept", + "title": "Shannon Entropy", + "description": "- Objective: Explain Shannon entropy as a measure of uncertainty and compare high-entropy and low-entropy sources.\n- Exercise: Compute the entropy of a Bernoulli source and interpret the result.\nThe course then introduces entropy as a quant", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Shannon Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain Shannon entropy as a measure of uncertainty and compare high-entropy and low-entropy sources." + ] + }, + { + "id": "concept::bernoulli", + "type": "concept", + "title": "Bernoulli", + "description": "Candidate concept extracted from lesson 'Shannon Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Shannon Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain Shannon entropy as a measure of uncertainty and compare high-entropy and low-entropy sources." + ] + }, + { + "id": "concept::mutual-information", + "type": "concept", + "title": "Mutual Information", + "description": "- Objective: Explain mutual information and relate it to dependence between signals or observations.\n- Exercise: Compare independent variables with dependent variables using mutual-information reasoning.\nThese units ask the learner to under", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Mutual Information" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain mutual information and relate it to dependence between signals or observations." + ] + }, + { + "id": "concept::source-coding-and-compression", + "type": "concept", + "title": "Source Coding and Compression", + "description": "- Objective: Explain lossless compression in terms of entropy, redundancy, and coding choices.\n- Exercise: Describe when compression succeeds and when it fails on already-random data.\nThe course develops the idea that structured sources can", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Source Coding and Compression" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain lossless compression in terms of entropy, redundancy, and coding choices." + ] + }, + { + "id": "concept::huffman-coding", + "type": "concept", + "title": "Huffman Coding", + "description": "- Objective: Explain Huffman coding and justify why likely symbols receive shorter descriptions.\n- Exercise: Build a Huffman code for a small source alphabet.\nLearners use trees and expected length arguments to connect probability models to", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Huffman Coding" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain Huffman coding and justify why likely symbols receive shorter descriptions." + ] + }, + { + "id": "concept::channel-capacity", + "type": "concept", + "title": "Channel Capacity", + "description": "- Objective: Explain channel capacity as a limit on reliable communication over a noisy channel.\n- Exercise: State why reliable transmission above capacity is impossible in the long run.\nThe course treats capacity as a fundamental upper bou", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Channel Capacity" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain channel capacity as a limit on reliable communication over a noisy channel." + ] + }, + { + "id": "concept::channel-coding", + "type": "concept", + "title": "Channel Coding", + "description": "- Objective: Explain how channel coding adds redundancy to protect messages from noise.\n- Exercise: Contrast uncoded transmission with coded transmission on a noisy channel.\nThese units emphasize that redundancy can be wasteful in compressi", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Channel Coding" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain how channel coding adds redundancy to protect messages from noise." + ] + }, + { + "id": "concept::contrast", + "type": "concept", + "title": "Contrast", + "description": "Candidate concept extracted from lesson 'Channel Coding'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Channel Coding" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain how channel coding adds redundancy to protect messages from noise." + ] + }, + { + "id": "concept::error-correcting-codes", + "type": "concept", + "title": "Error Correcting Codes", + "description": "- Objective: Explain how error-correcting codes detect or repair corrupted symbols.\n- Exercise: Describe a simple parity-style code and its limits.\nThe learner must connect abstract limits to concrete coding mechanisms and understand both s", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Error Correcting Codes" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain how error-correcting codes detect or repair corrupted symbols." + ] + }, + { + "id": "concept::cryptography-and-information-hiding", + "type": "concept", + "title": "Cryptography and Information Hiding", + "description": "- Objective: Explain the relationship between secrecy, information leakage, and coded communication.\n- Exercise: Compare a secure scheme with a weak one in terms of revealed information.\nThe course extends information-theoretic reasoning to", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Cryptography and Information Hiding" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain the relationship between secrecy, information leakage, and coded communication." + ] + }, + { + "id": "concept::thermodynamics-and-entropy", + "type": "concept", + "title": "Thermodynamics and Entropy", + "description": "- Objective: Explain how thermodynamic entropy relates to, and differs from, Shannon entropy.\n- Exercise: Compare the two entropy notions and identify what is preserved across the analogy.\nThe course uses entropy as a bridge concept between", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Thermodynamics and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain how thermodynamic entropy relates to, and differs from, Shannon entropy." + ] + }, + { + "id": "concept::reversible-computation-and-quantum-computation", + "type": "concept", + "title": "Reversible Computation and Quantum Computation", + "description": "- Objective: Explain why the physical implementation of computation matters for information processing limits.\n- Exercise: Summarize how reversible computation changes the discussion of dissipation and information loss.\nLater units connect", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Reversible Computation and Quantum Computation" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain why the physical implementation of computation matters for information processing limits." + ] + }, + { + "id": "concept::course-synthesis", + "type": "concept", + "title": "Course Synthesis", + "description": "- Objective: Synthesize the course by connecting entropy, coding, reliability, secrecy, and physical interpretation in one coherent narrative.\n- Exercise: Produce a final study guide that links source coding, channel coding, secrecy, thermo", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Course Synthesis" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Synthesize the course by connecting entropy, coding, reliability, secrecy, and physical interpretation in one coherent narrative." + ] + }, + { + "id": "module::imported-from-markdown", + "type": "module", + "title": "Imported from MARKDOWN" + }, + { + "id": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-course-home", + "type": "lesson", + "title": "MIT OCW 6.050J Information and Entropy: Course Home", + "module_title": "Imported from MARKDOWN", + "body": "Source: https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/\nAttribution: adapted from the MIT OpenCourseWare course home page for 6.050J Information and Entropy.", + "source_refs": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "key_terms": [ + "Information", + "Entropy" + ] + }, + { + "id": "lesson::imported-from-markdown::information-and-entropy", + "type": "lesson", + "title": "Information and Entropy", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Identify the course title, instructors, departments, level, and major topical areas.\n- Exercise: Summarize the course in one paragraph for a prospective learner.\nMIT OpenCourseWare presents 6.050J Information and Entropy as a Spring 2008 undergraduate subject taught by Paul Penfield and Seth Lloyd in Electrical Engineering and Computer Science together with Mechanical Engineering. The catalog framing emphasizes theory of computation, signal processing, and mathematical reasoning about information.", + "source_refs": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "key_terms": [ + "Information", + "Entropy", + "Paul", + "Penfield", + "Seth", + "Lloyd", + "Electrical", + "Engineering" + ] + }, + { + "id": "objective::information-and-entropy::1", + "type": "assessment_signal", + "title": "Identify the course title, instructors, departments, level, and major topical areas.", + "signal_kind": "objective" + }, + { + "id": "exercise::information-and-entropy::1", + "type": "assessment_signal", + "title": "Summarize the course in one paragraph for a prospective learner.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "type": "lesson", + "title": "Ultimate Limits to Communication and Computation", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain the broad intellectual scope of the course.\n- Exercise: List the main topic clusters that connect communication, computation, and entropy.\nThe course examines the ultimate limits to communication and computation with emphasis on the physical nature of information processing. The source description highlights information and computation, digital signals, codes and compression, noise, probability, error correction, reversible and irreversible operations, physics of computation, and quantum computation. Entropy is explicitly connected both to channel capacity and to the second law of thermodynamics.", + "source_refs": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "key_terms": [ + "Entropy" + ] + }, + { + "id": "objective::ultimate-limits-to-communication-and-computation::1", + "type": "assessment_signal", + "title": "Explain the broad intellectual scope of the course.", + "signal_kind": "objective" + }, + { + "id": "exercise::ultimate-limits-to-communication-and-computation::1", + "type": "assessment_signal", + "title": "List the main topic clusters that connect communication, computation, and entropy.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "type": "lesson", + "title": "Open Textbooks, Problem Sets, and Programming Work", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Identify the main kinds of learning resources supplied through the course.\n- Exercise: Explain how these resource types support both conceptual study and practice.\nThe course home lists open textbooks, problem sets, problem set solutions, and programming assignments. A learner using Didactopus should treat these as complementary evidence sources rather than relying on one summary alone.", + "source_refs": [ + "examples/ocw-information-entropy/course/course-home.md" + ] + }, + { + "id": "objective::open-textbooks-problem-sets-and-programming-work::1", + "type": "assessment_signal", + "title": "Identify the main kinds of learning resources supplied through the course.", + "signal_kind": "objective" + }, + { + "id": "exercise::open-textbooks-problem-sets-and-programming-work::1", + "type": "assessment_signal", + "title": "Explain how these resource types support both conceptual study and practice.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "lesson", + "title": "MIT OCW 6.050J Information and Entropy: Syllabus", + "module_title": "Imported from MARKDOWN", + "body": "Source: https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/pages/syllabus/\nAttribution: adapted from the MIT OpenCourseWare syllabus page for 6.050J Information and Entropy.", + "source_refs": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "key_terms": [ + "Information", + "Entropy" + ] + }, + { + "id": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "type": "lesson", + "title": "Prerequisites and Mathematical Background", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain the mathematical maturity expected by the course.\n- Exercise: Decide whether a learner needs review in probability, linear algebra, or signals before beginning.\nThe syllabus expects a foundation comparable to MIT subjects in calculus and linear algebra, together with comfort in probability, signals, and basic programming. Didactopus should therefore surface prerequisite review when those foundations appear weak.", + "source_refs": [ + "examples/ocw-information-entropy/course/syllabus.md" + ] + }, + { + "id": "objective::prerequisites-and-mathematical-background::1", + "type": "assessment_signal", + "title": "Explain the mathematical maturity expected by the course.", + "signal_kind": "objective" + }, + { + "id": "exercise::prerequisites-and-mathematical-background::1", + "type": "assessment_signal", + "title": "Decide whether a learner needs review in probability, linear algebra, or signals before beginning.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::assessment-structure", + "type": "lesson", + "title": "Assessment Structure", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Identify the role of problem sets, exams, and programming work in the course.\n- Exercise: Build a study schedule that alternates reading, derivation, and worked exercises.\nThe syllabus emphasizes regular problem solving and quantitative reasoning. The course is not only a reading list: learners are expected to derive results, solve structured problems, and connect abstract arguments to implementation-oriented tasks.", + "source_refs": [ + "examples/ocw-information-entropy/course/syllabus.md" + ] + }, + { + "id": "objective::assessment-structure::1", + "type": "assessment_signal", + "title": "Identify the role of problem sets, exams, and programming work in the course.", + "signal_kind": "objective" + }, + { + "id": "exercise::assessment-structure::1", + "type": "assessment_signal", + "title": "Build a study schedule that alternates reading, derivation, and worked exercises.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "type": "lesson", + "title": "Course Notes and Reference Texts", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain how the course notes and textbook references supply the core conceptual sequence.\n- Exercise: Compare when to use course notes versus outside references for clarification.\nMIT OCW links course notes and textbook-style resources through the syllabus and resource pages. The intended use is cumulative: earlier notes establish counting, probability, and entropy, while later materials expand into coding, noise, secrecy, thermodynamics, and computation.", + "source_refs": [ + "examples/ocw-information-entropy/course/syllabus.md" + ] + }, + { + "id": "objective::course-notes-and-reference-texts::1", + "type": "assessment_signal", + "title": "Explain how the course notes and textbook references supply the core conceptual sequence.", + "signal_kind": "objective" + }, + { + "id": "exercise::course-notes-and-reference-texts::1", + "type": "assessment_signal", + "title": "Compare when to use course notes versus outside references for clarification.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "type": "lesson", + "title": "Independent Reasoning and Careful Comparison", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain why the course requires precise comparison of related but non-identical concepts.\n- Exercise: Write a short note distinguishing Shannon entropy, channel capacity, and thermodynamic entropy.\nThe syllabus framing implies a style of work where analogy is useful but dangerous when used loosely. Learners must compare models carefully, state assumptions, and notice where similar mathematics does not imply identical interpretation.", + "source_refs": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "key_terms": [ + "Shannon", + "Learners" + ] + }, + { + "id": "objective::independent-reasoning-and-careful-comparison::1", + "type": "assessment_signal", + "title": "Explain why the course requires precise comparison of related but non-identical concepts.", + "signal_kind": "objective" + }, + { + "id": "exercise::independent-reasoning-and-careful-comparison::1", + "type": "assessment_signal", + "title": "Write a short note distinguishing Shannon entropy, channel capacity, and thermodynamic entropy.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "lesson", + "title": "MIT OCW 6.050J Information and Entropy: Unit Sequence", + "module_title": "Imported from MARKDOWN", + "body": "Source: https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/pages/syllabus/\nAttribution: adapted from the MIT OpenCourseWare unit progression and resource organization for 6.050J Information and Entropy.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "key_terms": [ + "Information", + "Entropy" + ] + }, + { + "id": "lesson::imported-from-markdown::counting-and-probability", + "type": "lesson", + "title": "Counting and Probability", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain how counting arguments, probability spaces, and random variables support later information-theory results.\n- Exercise: Derive a simple counting argument for binary strings and compute an event probability.\nEarly units establish counting, combinatorics, and probability as the language used to reason about uncertainty, messages, and evidence.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "key_terms": [ + "Derive" + ] + }, + { + "id": "objective::counting-and-probability::1", + "type": "assessment_signal", + "title": "Explain how counting arguments, probability spaces, and random variables support later information-theory results.", + "signal_kind": "objective" + }, + { + "id": "exercise::counting-and-probability::1", + "type": "assessment_signal", + "title": "Derive a simple counting argument for binary strings and compute an event probability.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::shannon-entropy", + "type": "lesson", + "title": "Shannon Entropy", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain Shannon entropy as a measure of uncertainty and compare high-entropy and low-entropy sources.\n- Exercise: Compute the entropy of a Bernoulli source and interpret the result.\nThe course then introduces entropy as a quantitative measure of uncertainty for a source model and uses it to reason about representation cost and surprise.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "key_terms": [ + "Shannon", + "Bernoulli" + ] + }, + { + "id": "objective::shannon-entropy::1", + "type": "assessment_signal", + "title": "Explain Shannon entropy as a measure of uncertainty and compare high-entropy and low-entropy sources.", + "signal_kind": "objective" + }, + { + "id": "exercise::shannon-entropy::1", + "type": "assessment_signal", + "title": "Compute the entropy of a Bernoulli source and interpret the result.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::mutual-information", + "type": "lesson", + "title": "Mutual Information", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain mutual information and relate it to dependence between signals or observations.\n- Exercise: Compare independent variables with dependent variables using mutual-information reasoning.\nThese units ask the learner to understand how observation changes uncertainty and what it means for one variable to carry information about another.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::mutual-information::1", + "type": "assessment_signal", + "title": "Explain mutual information and relate it to dependence between signals or observations.", + "signal_kind": "objective" + }, + { + "id": "exercise::mutual-information::1", + "type": "assessment_signal", + "title": "Compare independent variables with dependent variables using mutual-information reasoning.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::source-coding-and-compression", + "type": "lesson", + "title": "Source Coding and Compression", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain lossless compression in terms of entropy, redundancy, and coding choices.\n- Exercise: Describe when compression succeeds and when it fails on already-random data.\nThe course develops the idea that structured sources can often be described more efficiently, but only up to limits implied by entropy.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::source-coding-and-compression::1", + "type": "assessment_signal", + "title": "Explain lossless compression in terms of entropy, redundancy, and coding choices.", + "signal_kind": "objective" + }, + { + "id": "exercise::source-coding-and-compression::1", + "type": "assessment_signal", + "title": "Describe when compression succeeds and when it fails on already-random data.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::huffman-coding", + "type": "lesson", + "title": "Huffman Coding", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain Huffman coding and justify why likely symbols receive shorter descriptions.\n- Exercise: Build a Huffman code for a small source alphabet.\nLearners use trees and expected length arguments to connect probability models to practical code design.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "key_terms": [ + "Huffman", + "Learners" + ] + }, + { + "id": "objective::huffman-coding::1", + "type": "assessment_signal", + "title": "Explain Huffman coding and justify why likely symbols receive shorter descriptions.", + "signal_kind": "objective" + }, + { + "id": "exercise::huffman-coding::1", + "type": "assessment_signal", + "title": "Build a Huffman code for a small source alphabet.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::channel-capacity", + "type": "lesson", + "title": "Channel Capacity", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain channel capacity as a limit on reliable communication over a noisy channel.\n- Exercise: State why reliable transmission above capacity is impossible in the long run.\nThe course treats capacity as a fundamental upper bound and frames noisy communication in terms of rates, inference, and uncertainty reduction.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::channel-capacity::1", + "type": "assessment_signal", + "title": "Explain channel capacity as a limit on reliable communication over a noisy channel.", + "signal_kind": "objective" + }, + { + "id": "exercise::channel-capacity::1", + "type": "assessment_signal", + "title": "State why reliable transmission above capacity is impossible in the long run.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::channel-coding", + "type": "lesson", + "title": "Channel Coding", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain how channel coding adds redundancy to protect messages from noise.\n- Exercise: Contrast uncoded transmission with coded transmission on a noisy channel.\nThese units emphasize that redundancy can be wasteful in compression but essential in communication under uncertainty.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "key_terms": [ + "Contrast" + ] + }, + { + "id": "objective::channel-coding::1", + "type": "assessment_signal", + "title": "Explain how channel coding adds redundancy to protect messages from noise.", + "signal_kind": "objective" + }, + { + "id": "exercise::channel-coding::1", + "type": "assessment_signal", + "title": "Contrast uncoded transmission with coded transmission on a noisy channel.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::error-correcting-codes", + "type": "lesson", + "title": "Error Correcting Codes", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain how error-correcting codes detect or repair corrupted symbols.\n- Exercise: Describe a simple parity-style code and its limits.\nThe learner must connect abstract limits to concrete coding mechanisms and understand both strengths and failure modes.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::error-correcting-codes::1", + "type": "assessment_signal", + "title": "Explain how error-correcting codes detect or repair corrupted symbols.", + "signal_kind": "objective" + }, + { + "id": "exercise::error-correcting-codes::1", + "type": "assessment_signal", + "title": "Describe a simple parity-style code and its limits.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "type": "lesson", + "title": "Cryptography and Information Hiding", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain the relationship between secrecy, information leakage, and coded communication.\n- Exercise: Compare a secure scheme with a weak one in terms of revealed information.\nThe course extends information-theoretic reasoning to adversarial settings where controlling what an observer can infer becomes central.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::cryptography-and-information-hiding::1", + "type": "assessment_signal", + "title": "Explain the relationship between secrecy, information leakage, and coded communication.", + "signal_kind": "objective" + }, + { + "id": "exercise::cryptography-and-information-hiding::1", + "type": "assessment_signal", + "title": "Compare a secure scheme with a weak one in terms of revealed information.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "type": "lesson", + "title": "Thermodynamics and Entropy", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain how thermodynamic entropy relates to, and differs from, Shannon entropy.\n- Exercise: Compare the two entropy notions and identify what is preserved across the analogy.\nThe course uses entropy as a bridge concept between communication theory and physics while insisting on careful interpretation.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "key_terms": [ + "Shannon" + ] + }, + { + "id": "objective::thermodynamics-and-entropy::1", + "type": "assessment_signal", + "title": "Explain how thermodynamic entropy relates to, and differs from, Shannon entropy.", + "signal_kind": "objective" + }, + { + "id": "exercise::thermodynamics-and-entropy::1", + "type": "assessment_signal", + "title": "Compare the two entropy notions and identify what is preserved across the analogy.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "type": "lesson", + "title": "Reversible Computation and Quantum Computation", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain why the physical implementation of computation matters for information processing limits.\n- Exercise: Summarize how reversible computation changes the discussion of dissipation and information loss.\nLater units connect information, entropy, and computation more directly by considering reversible logic, irreversibility, and quantum information themes.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::reversible-computation-and-quantum-computation::1", + "type": "assessment_signal", + "title": "Explain why the physical implementation of computation matters for information processing limits.", + "signal_kind": "objective" + }, + { + "id": "exercise::reversible-computation-and-quantum-computation::1", + "type": "assessment_signal", + "title": "Summarize how reversible computation changes the discussion of dissipation and information loss.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::course-synthesis", + "type": "lesson", + "title": "Course Synthesis", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Synthesize the course by connecting entropy, coding, reliability, secrecy, and physical interpretation in one coherent narrative.\n- Exercise: Produce a final study guide that links source coding, channel coding, secrecy, thermodynamic analogies, and computation.\nThe end of the course asks the learner to unify the mathematical and physical perspectives rather than treating the units as disconnected topics.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::course-synthesis::1", + "type": "assessment_signal", + "title": "Synthesize the course by connecting entropy, coding, reliability, secrecy, and physical interpretation in one coherent narrative.", + "signal_kind": "objective" + }, + { + "id": "exercise::course-synthesis::1", + "type": "assessment_signal", + "title": "Produce a final study guide that links source coding, channel coding, secrecy, thermodynamic analogies, and computation.", + "signal_kind": "exercise" + } + ], + "edges": [ + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-course-home", + "type": "contains_lesson", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Course Home' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-course-home-md", + "target": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-course-home", + "type": "derived_lesson", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Course Home' was ingested from source 'examples/ocw-information-entropy/course/course-home.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-course-home", + "target": "concept::mit-ocw-6-050j-information-and-entropy-course-home", + "type": "teaches_concept", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Course Home' yields the lesson-level concept 'MIT OCW 6.050J Information and Entropy: Course Home'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-course-home", + "target": "concept::entropy", + "type": "mentions_concept", + "justification": "Key term 'Entropy' was extracted from lesson 'MIT OCW 6.050J Information and Entropy: Course Home'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::information-and-entropy", + "type": "contains_lesson", + "justification": "Lesson 'Information and Entropy' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-course-home-md", + "target": "lesson::imported-from-markdown::information-and-entropy", + "type": "derived_lesson", + "justification": "Lesson 'Information and Entropy' was ingested from source 'examples/ocw-information-entropy/course/course-home.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "objective::information-and-entropy::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "exercise::information-and-entropy::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::information-and-entropy", + "type": "teaches_concept", + "justification": "Lesson 'Information and Entropy' yields the lesson-level concept 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::entropy", + "type": "mentions_concept", + "justification": "Key term 'Entropy' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::paul", + "type": "mentions_concept", + "justification": "Key term 'Paul' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::penfield", + "type": "mentions_concept", + "justification": "Key term 'Penfield' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::seth", + "type": "mentions_concept", + "justification": "Key term 'Seth' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::lloyd", + "type": "mentions_concept", + "justification": "Key term 'Lloyd' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::electrical", + "type": "mentions_concept", + "justification": "Key term 'Electrical' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::engineering", + "type": "mentions_concept", + "justification": "Key term 'Engineering' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "type": "contains_lesson", + "justification": "Lesson 'Ultimate Limits to Communication and Computation' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-course-home-md", + "target": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "type": "derived_lesson", + "justification": "Lesson 'Ultimate Limits to Communication and Computation' was ingested from source 'examples/ocw-information-entropy/course/course-home.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "target": "objective::ultimate-limits-to-communication-and-computation::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Ultimate Limits to Communication and Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "target": "exercise::ultimate-limits-to-communication-and-computation::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Ultimate Limits to Communication and Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "target": "concept::ultimate-limits-to-communication-and-computation", + "type": "teaches_concept", + "justification": "Lesson 'Ultimate Limits to Communication and Computation' yields the lesson-level concept 'Ultimate Limits to Communication and Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "target": "concept::entropy", + "type": "mentions_concept", + "justification": "Key term 'Entropy' was extracted from lesson 'Ultimate Limits to Communication and Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "type": "contains_lesson", + "justification": "Lesson 'Open Textbooks, Problem Sets, and Programming Work' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-course-home-md", + "target": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "type": "derived_lesson", + "justification": "Lesson 'Open Textbooks, Problem Sets, and Programming Work' was ingested from source 'examples/ocw-information-entropy/course/course-home.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "target": "objective::open-textbooks-problem-sets-and-programming-work::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Open Textbooks, Problem Sets, and Programming Work'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "target": "exercise::open-textbooks-problem-sets-and-programming-work::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Open Textbooks, Problem Sets, and Programming Work'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "target": "concept::open-textbooks-problem-sets-and-programming-work", + "type": "teaches_concept", + "justification": "Lesson 'Open Textbooks, Problem Sets, and Programming Work' yields the lesson-level concept 'Open Textbooks, Problem Sets, and Programming Work'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "contains_lesson", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Syllabus' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-syllabus-md", + "target": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "derived_lesson", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Syllabus' was ingested from source 'examples/ocw-information-entropy/course/syllabus.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-syllabus", + "target": "concept::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "teaches_concept", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Syllabus' yields the lesson-level concept 'MIT OCW 6.050J Information and Entropy: Syllabus'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-syllabus", + "target": "concept::entropy", + "type": "mentions_concept", + "justification": "Key term 'Entropy' was extracted from lesson 'MIT OCW 6.050J Information and Entropy: Syllabus'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "type": "contains_lesson", + "justification": "Lesson 'Prerequisites and Mathematical Background' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-syllabus-md", + "target": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "type": "derived_lesson", + "justification": "Lesson 'Prerequisites and Mathematical Background' was ingested from source 'examples/ocw-information-entropy/course/syllabus.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "target": "objective::prerequisites-and-mathematical-background::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Prerequisites and Mathematical Background'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "target": "exercise::prerequisites-and-mathematical-background::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Prerequisites and Mathematical Background'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "target": "concept::prerequisites-and-mathematical-background", + "type": "teaches_concept", + "justification": "Lesson 'Prerequisites and Mathematical Background' yields the lesson-level concept 'Prerequisites and Mathematical Background'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::assessment-structure", + "type": "contains_lesson", + "justification": "Lesson 'Assessment Structure' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-syllabus-md", + "target": "lesson::imported-from-markdown::assessment-structure", + "type": "derived_lesson", + "justification": "Lesson 'Assessment Structure' was ingested from source 'examples/ocw-information-entropy/course/syllabus.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::assessment-structure", + "target": "objective::assessment-structure::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Assessment Structure'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::assessment-structure", + "target": "exercise::assessment-structure::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Assessment Structure'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::assessment-structure", + "target": "concept::assessment-structure", + "type": "teaches_concept", + "justification": "Lesson 'Assessment Structure' yields the lesson-level concept 'Assessment Structure'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "type": "contains_lesson", + "justification": "Lesson 'Course Notes and Reference Texts' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-syllabus-md", + "target": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "type": "derived_lesson", + "justification": "Lesson 'Course Notes and Reference Texts' was ingested from source 'examples/ocw-information-entropy/course/syllabus.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "target": "objective::course-notes-and-reference-texts::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Course Notes and Reference Texts'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "target": "exercise::course-notes-and-reference-texts::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Course Notes and Reference Texts'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "target": "concept::course-notes-and-reference-texts", + "type": "teaches_concept", + "justification": "Lesson 'Course Notes and Reference Texts' yields the lesson-level concept 'Course Notes and Reference Texts'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "type": "contains_lesson", + "justification": "Lesson 'Independent Reasoning and Careful Comparison' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-syllabus-md", + "target": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "type": "derived_lesson", + "justification": "Lesson 'Independent Reasoning and Careful Comparison' was ingested from source 'examples/ocw-information-entropy/course/syllabus.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "objective::independent-reasoning-and-careful-comparison::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "exercise::independent-reasoning-and-careful-comparison::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "concept::independent-reasoning-and-careful-comparison", + "type": "teaches_concept", + "justification": "Lesson 'Independent Reasoning and Careful Comparison' yields the lesson-level concept 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "concept::shannon", + "type": "mentions_concept", + "justification": "Key term 'Shannon' was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "concept::learners", + "type": "mentions_concept", + "justification": "Key term 'Learners' was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "contains_lesson", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Unit Sequence' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "derived_lesson", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Unit Sequence' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "target": "concept::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "teaches_concept", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Unit Sequence' yields the lesson-level concept 'MIT OCW 6.050J Information and Entropy: Unit Sequence'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "target": "concept::entropy", + "type": "mentions_concept", + "justification": "Key term 'Entropy' was extracted from lesson 'MIT OCW 6.050J Information and Entropy: Unit Sequence'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::counting-and-probability", + "type": "contains_lesson", + "justification": "Lesson 'Counting and Probability' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::counting-and-probability", + "type": "derived_lesson", + "justification": "Lesson 'Counting and Probability' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::counting-and-probability", + "target": "objective::counting-and-probability::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Counting and Probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::counting-and-probability", + "target": "exercise::counting-and-probability::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Counting and Probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::counting-and-probability", + "target": "concept::counting-and-probability", + "type": "teaches_concept", + "justification": "Lesson 'Counting and Probability' yields the lesson-level concept 'Counting and Probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::counting-and-probability", + "target": "concept::derive", + "type": "mentions_concept", + "justification": "Key term 'Derive' was extracted from lesson 'Counting and Probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::shannon-entropy", + "type": "contains_lesson", + "justification": "Lesson 'Shannon Entropy' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::shannon-entropy", + "type": "derived_lesson", + "justification": "Lesson 'Shannon Entropy' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "objective::shannon-entropy::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "exercise::shannon-entropy::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "concept::shannon-entropy", + "type": "teaches_concept", + "justification": "Lesson 'Shannon Entropy' yields the lesson-level concept 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "concept::shannon", + "type": "mentions_concept", + "justification": "Key term 'Shannon' was extracted from lesson 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "concept::bernoulli", + "type": "mentions_concept", + "justification": "Key term 'Bernoulli' was extracted from lesson 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::mutual-information", + "type": "contains_lesson", + "justification": "Lesson 'Mutual Information' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::mutual-information", + "type": "derived_lesson", + "justification": "Lesson 'Mutual Information' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mutual-information", + "target": "objective::mutual-information::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Mutual Information'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mutual-information", + "target": "exercise::mutual-information::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Mutual Information'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mutual-information", + "target": "concept::mutual-information", + "type": "teaches_concept", + "justification": "Lesson 'Mutual Information' yields the lesson-level concept 'Mutual Information'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::source-coding-and-compression", + "type": "contains_lesson", + "justification": "Lesson 'Source Coding and Compression' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::source-coding-and-compression", + "type": "derived_lesson", + "justification": "Lesson 'Source Coding and Compression' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::source-coding-and-compression", + "target": "objective::source-coding-and-compression::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Source Coding and Compression'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::source-coding-and-compression", + "target": "exercise::source-coding-and-compression::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Source Coding and Compression'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::source-coding-and-compression", + "target": "concept::source-coding-and-compression", + "type": "teaches_concept", + "justification": "Lesson 'Source Coding and Compression' yields the lesson-level concept 'Source Coding and Compression'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::huffman-coding", + "type": "contains_lesson", + "justification": "Lesson 'Huffman Coding' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::huffman-coding", + "type": "derived_lesson", + "justification": "Lesson 'Huffman Coding' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::huffman-coding", + "target": "objective::huffman-coding::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Huffman Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::huffman-coding", + "target": "exercise::huffman-coding::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Huffman Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::huffman-coding", + "target": "concept::huffman-coding", + "type": "teaches_concept", + "justification": "Lesson 'Huffman Coding' yields the lesson-level concept 'Huffman Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::huffman-coding", + "target": "concept::learners", + "type": "mentions_concept", + "justification": "Key term 'Learners' was extracted from lesson 'Huffman Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::channel-capacity", + "type": "contains_lesson", + "justification": "Lesson 'Channel Capacity' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::channel-capacity", + "type": "derived_lesson", + "justification": "Lesson 'Channel Capacity' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-capacity", + "target": "objective::channel-capacity::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Channel Capacity'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-capacity", + "target": "exercise::channel-capacity::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Channel Capacity'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-capacity", + "target": "concept::channel-capacity", + "type": "teaches_concept", + "justification": "Lesson 'Channel Capacity' yields the lesson-level concept 'Channel Capacity'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::channel-coding", + "type": "contains_lesson", + "justification": "Lesson 'Channel Coding' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::channel-coding", + "type": "derived_lesson", + "justification": "Lesson 'Channel Coding' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-coding", + "target": "objective::channel-coding::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Channel Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-coding", + "target": "exercise::channel-coding::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Channel Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-coding", + "target": "concept::channel-coding", + "type": "teaches_concept", + "justification": "Lesson 'Channel Coding' yields the lesson-level concept 'Channel Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-coding", + "target": "concept::contrast", + "type": "mentions_concept", + "justification": "Key term 'Contrast' was extracted from lesson 'Channel Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::error-correcting-codes", + "type": "contains_lesson", + "justification": "Lesson 'Error Correcting Codes' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::error-correcting-codes", + "type": "derived_lesson", + "justification": "Lesson 'Error Correcting Codes' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::error-correcting-codes", + "target": "objective::error-correcting-codes::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Error Correcting Codes'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::error-correcting-codes", + "target": "exercise::error-correcting-codes::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Error Correcting Codes'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::error-correcting-codes", + "target": "concept::error-correcting-codes", + "type": "teaches_concept", + "justification": "Lesson 'Error Correcting Codes' yields the lesson-level concept 'Error Correcting Codes'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "type": "contains_lesson", + "justification": "Lesson 'Cryptography and Information Hiding' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "type": "derived_lesson", + "justification": "Lesson 'Cryptography and Information Hiding' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "target": "objective::cryptography-and-information-hiding::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Cryptography and Information Hiding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "target": "exercise::cryptography-and-information-hiding::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Cryptography and Information Hiding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "target": "concept::cryptography-and-information-hiding", + "type": "teaches_concept", + "justification": "Lesson 'Cryptography and Information Hiding' yields the lesson-level concept 'Cryptography and Information Hiding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "type": "contains_lesson", + "justification": "Lesson 'Thermodynamics and Entropy' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "type": "derived_lesson", + "justification": "Lesson 'Thermodynamics and Entropy' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "target": "objective::thermodynamics-and-entropy::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Thermodynamics and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "target": "exercise::thermodynamics-and-entropy::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Thermodynamics and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "target": "concept::thermodynamics-and-entropy", + "type": "teaches_concept", + "justification": "Lesson 'Thermodynamics and Entropy' yields the lesson-level concept 'Thermodynamics and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "target": "concept::shannon", + "type": "mentions_concept", + "justification": "Key term 'Shannon' was extracted from lesson 'Thermodynamics and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "type": "contains_lesson", + "justification": "Lesson 'Reversible Computation and Quantum Computation' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "type": "derived_lesson", + "justification": "Lesson 'Reversible Computation and Quantum Computation' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "target": "objective::reversible-computation-and-quantum-computation::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Reversible Computation and Quantum Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "target": "exercise::reversible-computation-and-quantum-computation::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Reversible Computation and Quantum Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "target": "concept::reversible-computation-and-quantum-computation", + "type": "teaches_concept", + "justification": "Lesson 'Reversible Computation and Quantum Computation' yields the lesson-level concept 'Reversible Computation and Quantum Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::course-synthesis", + "type": "contains_lesson", + "justification": "Lesson 'Course Synthesis' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::course-synthesis", + "type": "derived_lesson", + "justification": "Lesson 'Course Synthesis' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::course-synthesis", + "target": "objective::course-synthesis::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Course Synthesis'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::course-synthesis", + "target": "exercise::course-synthesis::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Course Synthesis'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::course-synthesis", + "target": "concept::course-synthesis", + "type": "teaches_concept", + "justification": "Lesson 'Course Synthesis' yields the lesson-level concept 'Course Synthesis'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-course-home", + "target": "concept::mit-ocw-6-050j-information-and-entropy-course-home", + "type": "supports_concept", + "justification": "Concept 'MIT OCW 6.050J Information and Entropy: Course Home' was extracted from lesson 'MIT OCW 6.050J Information and Entropy: Course Home'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::mit-ocw-6-050j-information-and-entropy-course-home", + "target": "concept::information-and-entropy", + "type": "prerequisite", + "justification": "Concept 'Information and Entropy' depends on prerequisite 'mit-ocw-6-050j-information-and-entropy-course-home'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::information-and-entropy", + "type": "supports_concept", + "justification": "Concept 'Information and Entropy' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.9 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::paul", + "type": "supports_concept", + "justification": "Concept 'Paul' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::penfield", + "type": "supports_concept", + "justification": "Concept 'Penfield' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::seth", + "type": "supports_concept", + "justification": "Concept 'Seth' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::lloyd", + "type": "supports_concept", + "justification": "Concept 'Lloyd' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::electrical", + "type": "supports_concept", + "justification": "Concept 'Electrical' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::engineering", + "type": "supports_concept", + "justification": "Concept 'Engineering' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "concept::information-and-entropy", + "target": "concept::ultimate-limits-to-communication-and-computation", + "type": "prerequisite", + "justification": "Concept 'Ultimate Limits to Communication and Computation' depends on prerequisite 'information-and-entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "target": "concept::ultimate-limits-to-communication-and-computation", + "type": "supports_concept", + "justification": "Concept 'Ultimate Limits to Communication and Computation' was extracted from lesson 'Ultimate Limits to Communication and Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.9 + }, + { + "source": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "target": "concept::entropy", + "type": "supports_concept", + "justification": "Concept 'Entropy' was extracted from lesson 'Ultimate Limits to Communication and Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "concept::ultimate-limits-to-communication-and-computation", + "target": "concept::open-textbooks-problem-sets-and-programming-work", + "type": "prerequisite", + "justification": "Concept 'Open Textbooks, Problem Sets, and Programming Work' depends on prerequisite 'ultimate-limits-to-communication-and-computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "target": "concept::open-textbooks-problem-sets-and-programming-work", + "type": "supports_concept", + "justification": "Concept 'Open Textbooks, Problem Sets, and Programming Work' was extracted from lesson 'Open Textbooks, Problem Sets, and Programming Work'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::open-textbooks-problem-sets-and-programming-work", + "target": "concept::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "prerequisite", + "justification": "Concept 'MIT OCW 6.050J Information and Entropy: Syllabus' depends on prerequisite 'open-textbooks-problem-sets-and-programming-work'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-syllabus", + "target": "concept::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "supports_concept", + "justification": "Concept 'MIT OCW 6.050J Information and Entropy: Syllabus' was extracted from lesson 'MIT OCW 6.050J Information and Entropy: Syllabus'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::mit-ocw-6-050j-information-and-entropy-syllabus", + "target": "concept::prerequisites-and-mathematical-background", + "type": "prerequisite", + "justification": "Concept 'Prerequisites and Mathematical Background' depends on prerequisite 'mit-ocw-6-050j-information-and-entropy-syllabus'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "target": "concept::prerequisites-and-mathematical-background", + "type": "supports_concept", + "justification": "Concept 'Prerequisites and Mathematical Background' was extracted from lesson 'Prerequisites and Mathematical Background'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::prerequisites-and-mathematical-background", + "target": "concept::assessment-structure", + "type": "prerequisite", + "justification": "Concept 'Assessment Structure' depends on prerequisite 'prerequisites-and-mathematical-background'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::assessment-structure", + "target": "concept::assessment-structure", + "type": "supports_concept", + "justification": "Concept 'Assessment Structure' was extracted from lesson 'Assessment Structure'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::assessment-structure", + "target": "concept::course-notes-and-reference-texts", + "type": "prerequisite", + "justification": "Concept 'Course Notes and Reference Texts' depends on prerequisite 'assessment-structure'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "target": "concept::course-notes-and-reference-texts", + "type": "supports_concept", + "justification": "Concept 'Course Notes and Reference Texts' was extracted from lesson 'Course Notes and Reference Texts'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::course-notes-and-reference-texts", + "target": "concept::independent-reasoning-and-careful-comparison", + "type": "prerequisite", + "justification": "Concept 'Independent Reasoning and Careful Comparison' depends on prerequisite 'course-notes-and-reference-texts'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "concept::independent-reasoning-and-careful-comparison", + "type": "supports_concept", + "justification": "Concept 'Independent Reasoning and Careful Comparison' was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.9 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "concept::shannon", + "type": "supports_concept", + "justification": "Concept 'Shannon' was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "concept::learners", + "type": "supports_concept", + "justification": "Concept 'Learners' was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.7 + }, + { + "source": "concept::independent-reasoning-and-careful-comparison", + "target": "concept::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "prerequisite", + "justification": "Concept 'MIT OCW 6.050J Information and Entropy: Unit Sequence' depends on prerequisite 'independent-reasoning-and-careful-comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "target": "concept::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "supports_concept", + "justification": "Concept 'MIT OCW 6.050J Information and Entropy: Unit Sequence' was extracted from lesson 'MIT OCW 6.050J Information and Entropy: Unit Sequence'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "target": "concept::counting-and-probability", + "type": "prerequisite", + "justification": "Concept 'Counting and Probability' depends on prerequisite 'mit-ocw-6-050j-information-and-entropy-unit-sequence'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::counting-and-probability", + "target": "concept::counting-and-probability", + "type": "supports_concept", + "justification": "Concept 'Counting and Probability' was extracted from lesson 'Counting and Probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "lesson::imported-from-markdown::counting-and-probability", + "target": "concept::derive", + "type": "supports_concept", + "justification": "Concept 'Derive' was extracted from lesson 'Counting and Probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "concept::counting-and-probability", + "target": "concept::shannon-entropy", + "type": "prerequisite", + "justification": "Concept 'Shannon Entropy' depends on prerequisite 'counting-and-probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "concept::shannon-entropy", + "type": "supports_concept", + "justification": "Concept 'Shannon Entropy' was extracted from lesson 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "concept::bernoulli", + "type": "supports_concept", + "justification": "Concept 'Bernoulli' was extracted from lesson 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "concept::shannon-entropy", + "target": "concept::mutual-information", + "type": "prerequisite", + "justification": "Concept 'Mutual Information' depends on prerequisite 'shannon-entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::mutual-information", + "target": "concept::mutual-information", + "type": "supports_concept", + "justification": "Concept 'Mutual Information' was extracted from lesson 'Mutual Information'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::mutual-information", + "target": "concept::source-coding-and-compression", + "type": "prerequisite", + "justification": "Concept 'Source Coding and Compression' depends on prerequisite 'mutual-information'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::source-coding-and-compression", + "target": "concept::source-coding-and-compression", + "type": "supports_concept", + "justification": "Concept 'Source Coding and Compression' was extracted from lesson 'Source Coding and Compression'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::source-coding-and-compression", + "target": "concept::huffman-coding", + "type": "prerequisite", + "justification": "Concept 'Huffman Coding' depends on prerequisite 'source-coding-and-compression'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::huffman-coding", + "target": "concept::huffman-coding", + "type": "supports_concept", + "justification": "Concept 'Huffman Coding' was extracted from lesson 'Huffman Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::huffman-coding", + "target": "concept::channel-capacity", + "type": "prerequisite", + "justification": "Concept 'Channel Capacity' depends on prerequisite 'huffman-coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::channel-capacity", + "target": "concept::channel-capacity", + "type": "supports_concept", + "justification": "Concept 'Channel Capacity' was extracted from lesson 'Channel Capacity'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::channel-capacity", + "target": "concept::channel-coding", + "type": "prerequisite", + "justification": "Concept 'Channel Coding' depends on prerequisite 'channel-capacity'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::channel-coding", + "target": "concept::channel-coding", + "type": "supports_concept", + "justification": "Concept 'Channel Coding' was extracted from lesson 'Channel Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "lesson::imported-from-markdown::channel-coding", + "target": "concept::contrast", + "type": "supports_concept", + "justification": "Concept 'Contrast' was extracted from lesson 'Channel Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "concept::channel-coding", + "target": "concept::error-correcting-codes", + "type": "prerequisite", + "justification": "Concept 'Error Correcting Codes' depends on prerequisite 'channel-coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::error-correcting-codes", + "target": "concept::error-correcting-codes", + "type": "supports_concept", + "justification": "Concept 'Error Correcting Codes' was extracted from lesson 'Error Correcting Codes'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::error-correcting-codes", + "target": "concept::cryptography-and-information-hiding", + "type": "prerequisite", + "justification": "Concept 'Cryptography and Information Hiding' depends on prerequisite 'error-correcting-codes'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "target": "concept::cryptography-and-information-hiding", + "type": "supports_concept", + "justification": "Concept 'Cryptography and Information Hiding' was extracted from lesson 'Cryptography and Information Hiding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::cryptography-and-information-hiding", + "target": "concept::thermodynamics-and-entropy", + "type": "prerequisite", + "justification": "Concept 'Thermodynamics and Entropy' depends on prerequisite 'cryptography-and-information-hiding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "target": "concept::thermodynamics-and-entropy", + "type": "supports_concept", + "justification": "Concept 'Thermodynamics and Entropy' was extracted from lesson 'Thermodynamics and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::thermodynamics-and-entropy", + "target": "concept::reversible-computation-and-quantum-computation", + "type": "prerequisite", + "justification": "Concept 'Reversible Computation and Quantum Computation' depends on prerequisite 'thermodynamics-and-entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "target": "concept::reversible-computation-and-quantum-computation", + "type": "supports_concept", + "justification": "Concept 'Reversible Computation and Quantum Computation' was extracted from lesson 'Reversible Computation and Quantum Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::reversible-computation-and-quantum-computation", + "target": "concept::course-synthesis", + "type": "prerequisite", + "justification": "Concept 'Course Synthesis' depends on prerequisite 'reversible-computation-and-quantum-computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::course-synthesis", + "target": "concept::course-synthesis", + "type": "supports_concept", + "justification": "Concept 'Course Synthesis' was extracted from lesson 'Course Synthesis'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + } + ] +} \ No newline at end of file diff --git a/domain-packs/mit-ocw-information-entropy/pack.yaml b/domain-packs/mit-ocw-information-entropy/pack.yaml index 7317be6..721fed9 100644 --- a/domain-packs/mit-ocw-information-entropy/pack.yaml +++ b/domain-packs/mit-ocw-information-entropy/pack.yaml @@ -14,3 +14,4 @@ profile_templates: {} cross_pack_links: [] supporting_artifacts: - source_corpus.json +- knowledge_graph.json diff --git a/skills/ocw-information-entropy-agent/assets/generated/pack/knowledge_graph.json b/skills/ocw-information-entropy-agent/assets/generated/pack/knowledge_graph.json new file mode 100644 index 0000000..e6dd130 --- /dev/null +++ b/skills/ocw-information-entropy-agent/assets/generated/pack/knowledge_graph.json @@ -0,0 +1,2917 @@ +{ + "course_title": "MIT OCW Information and Entropy", + "rights_note": "Derived from MIT OpenCourseWare 6.050J Information and Entropy (Spring 2008). Retain MIT OCW attribution and applicable Creative Commons terms before redistribution.", + "summary": { + "node_count": 98, + "edge_count": 178, + "concept_count": 34, + "source_count": 3 + }, + "nodes": [ + { + "id": "source::examples-ocw-information-entropy-course-course-home-md", + "type": "source", + "title": "Course Home", + "source_path": "examples/ocw-information-entropy/course/course-home.md", + "source_type": "markdown" + }, + { + "id": "source::examples-ocw-information-entropy-course-syllabus-md", + "type": "source", + "title": "Syllabus", + "source_path": "examples/ocw-information-entropy/course/syllabus.md", + "source_type": "markdown" + }, + { + "id": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "type": "source", + "title": "Unit Sequence", + "source_path": "examples/ocw-information-entropy/course/unit-sequence.md", + "source_type": "markdown" + }, + { + "id": "concept::mit-ocw-6-050j-information-and-entropy-course-home", + "type": "concept", + "title": "MIT OCW 6.050J Information and Entropy: Course Home", + "description": "Source: https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/\nAttribution: adapted from the MIT OpenCourseWare course home page for 6.050J Information and Entropy.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "MIT OCW 6.050J Information and Entropy: Course Home" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ] + }, + { + "id": "concept::information-and-entropy", + "type": "concept", + "title": "Information and Entropy", + "description": "- Objective: Identify the course title, instructors, departments, level, and major topical areas.\n- Exercise: Summarize the course in one paragraph for a prospective learner.\nMIT OpenCourseWare presents 6.050J Information and Entropy as a S", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::paul", + "type": "concept", + "title": "Paul", + "description": "Candidate concept extracted from lesson 'Information and Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::penfield", + "type": "concept", + "title": "Penfield", + "description": "Candidate concept extracted from lesson 'Information and Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::seth", + "type": "concept", + "title": "Seth", + "description": "Candidate concept extracted from lesson 'Information and Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::lloyd", + "type": "concept", + "title": "Lloyd", + "description": "Candidate concept extracted from lesson 'Information and Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::electrical", + "type": "concept", + "title": "Electrical", + "description": "Candidate concept extracted from lesson 'Information and Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::engineering", + "type": "concept", + "title": "Engineering", + "description": "Candidate concept extracted from lesson 'Information and Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Information and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the course title, instructors, departments, level, and major topical areas." + ] + }, + { + "id": "concept::ultimate-limits-to-communication-and-computation", + "type": "concept", + "title": "Ultimate Limits to Communication and Computation", + "description": "- Objective: Explain the broad intellectual scope of the course.\n- Exercise: List the main topic clusters that connect communication, computation, and entropy.\nThe course examines the ultimate limits to communication and computation with em", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Ultimate Limits to Communication and Computation" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Explain the broad intellectual scope of the course." + ] + }, + { + "id": "concept::entropy", + "type": "concept", + "title": "Entropy", + "description": "Candidate concept extracted from lesson 'Ultimate Limits to Communication and Computation'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Ultimate Limits to Communication and Computation" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Explain the broad intellectual scope of the course." + ] + }, + { + "id": "concept::open-textbooks-problem-sets-and-programming-work", + "type": "concept", + "title": "Open Textbooks, Problem Sets, and Programming Work", + "description": "- Objective: Identify the main kinds of learning resources supplied through the course.\n- Exercise: Explain how these resource types support both conceptual study and practice.\nThe course home lists open textbooks, problem sets, problem set", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Open Textbooks, Problem Sets, and Programming Work" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "mastery_signals": [ + "Identify the main kinds of learning resources supplied through the course." + ] + }, + { + "id": "concept::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "concept", + "title": "MIT OCW 6.050J Information and Entropy: Syllabus", + "description": "Source: https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/pages/syllabus/\nAttribution: adapted from the MIT OpenCourseWare syllabus page for 6.050J Information and Entropy.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "MIT OCW 6.050J Information and Entropy: Syllabus" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ] + }, + { + "id": "concept::prerequisites-and-mathematical-background", + "type": "concept", + "title": "Prerequisites and Mathematical Background", + "description": "- Objective: Explain the mathematical maturity expected by the course.\n- Exercise: Decide whether a learner needs review in probability, linear algebra, or signals before beginning.\nThe syllabus expects a foundation comparable to MIT subjec", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Prerequisites and Mathematical Background" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "mastery_signals": [ + "Explain the mathematical maturity expected by the course." + ] + }, + { + "id": "concept::assessment-structure", + "type": "concept", + "title": "Assessment Structure", + "description": "- Objective: Identify the role of problem sets, exams, and programming work in the course.\n- Exercise: Build a study schedule that alternates reading, derivation, and worked exercises.\nThe syllabus emphasizes regular problem solving and qua", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Assessment Structure" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "mastery_signals": [ + "Identify the role of problem sets, exams, and programming work in the course." + ] + }, + { + "id": "concept::course-notes-and-reference-texts", + "type": "concept", + "title": "Course Notes and Reference Texts", + "description": "- Objective: Explain how the course notes and textbook references supply the core conceptual sequence.\n- Exercise: Compare when to use course notes versus outside references for clarification.\nMIT OCW links course notes and textbook-style r", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Course Notes and Reference Texts" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "mastery_signals": [ + "Explain how the course notes and textbook references supply the core conceptual sequence." + ] + }, + { + "id": "concept::independent-reasoning-and-careful-comparison", + "type": "concept", + "title": "Independent Reasoning and Careful Comparison", + "description": "- Objective: Explain why the course requires precise comparison of related but non-identical concepts.\n- Exercise: Write a short note distinguishing Shannon entropy, channel capacity, and thermodynamic entropy.\nThe syllabus framing implies", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Independent Reasoning and Careful Comparison" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "mastery_signals": [ + "Explain why the course requires precise comparison of related but non-identical concepts." + ] + }, + { + "id": "concept::shannon", + "type": "concept", + "title": "Shannon", + "description": "Candidate concept extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Independent Reasoning and Careful Comparison" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "mastery_signals": [ + "Explain why the course requires precise comparison of related but non-identical concepts." + ] + }, + { + "id": "concept::learners", + "type": "concept", + "title": "Learners", + "description": "Candidate concept extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Independent Reasoning and Careful Comparison" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "mastery_signals": [ + "Explain why the course requires precise comparison of related but non-identical concepts." + ] + }, + { + "id": "concept::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "concept", + "title": "MIT OCW 6.050J Information and Entropy: Unit Sequence", + "description": "Source: https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/pages/syllabus/\nAttribution: adapted from the MIT OpenCourseWare unit progression and resource organization for 6.050J Information and Entropy.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "MIT OCW 6.050J Information and Entropy: Unit Sequence" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "concept::counting-and-probability", + "type": "concept", + "title": "Counting and Probability", + "description": "- Objective: Explain how counting arguments, probability spaces, and random variables support later information-theory results.\n- Exercise: Derive a simple counting argument for binary strings and compute an event probability.\nEarly units e", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Counting and Probability" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain how counting arguments, probability spaces, and random variables support later information-theory results." + ] + }, + { + "id": "concept::derive", + "type": "concept", + "title": "Derive", + "description": "Candidate concept extracted from lesson 'Counting and Probability'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Counting and Probability" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain how counting arguments, probability spaces, and random variables support later information-theory results." + ] + }, + { + "id": "concept::shannon-entropy", + "type": "concept", + "title": "Shannon Entropy", + "description": "- Objective: Explain Shannon entropy as a measure of uncertainty and compare high-entropy and low-entropy sources.\n- Exercise: Compute the entropy of a Bernoulli source and interpret the result.\nThe course then introduces entropy as a quant", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Shannon Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain Shannon entropy as a measure of uncertainty and compare high-entropy and low-entropy sources." + ] + }, + { + "id": "concept::bernoulli", + "type": "concept", + "title": "Bernoulli", + "description": "Candidate concept extracted from lesson 'Shannon Entropy'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Shannon Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain Shannon entropy as a measure of uncertainty and compare high-entropy and low-entropy sources." + ] + }, + { + "id": "concept::mutual-information", + "type": "concept", + "title": "Mutual Information", + "description": "- Objective: Explain mutual information and relate it to dependence between signals or observations.\n- Exercise: Compare independent variables with dependent variables using mutual-information reasoning.\nThese units ask the learner to under", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Mutual Information" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain mutual information and relate it to dependence between signals or observations." + ] + }, + { + "id": "concept::source-coding-and-compression", + "type": "concept", + "title": "Source Coding and Compression", + "description": "- Objective: Explain lossless compression in terms of entropy, redundancy, and coding choices.\n- Exercise: Describe when compression succeeds and when it fails on already-random data.\nThe course develops the idea that structured sources can", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Source Coding and Compression" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain lossless compression in terms of entropy, redundancy, and coding choices." + ] + }, + { + "id": "concept::huffman-coding", + "type": "concept", + "title": "Huffman Coding", + "description": "- Objective: Explain Huffman coding and justify why likely symbols receive shorter descriptions.\n- Exercise: Build a Huffman code for a small source alphabet.\nLearners use trees and expected length arguments to connect probability models to", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Huffman Coding" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain Huffman coding and justify why likely symbols receive shorter descriptions." + ] + }, + { + "id": "concept::channel-capacity", + "type": "concept", + "title": "Channel Capacity", + "description": "- Objective: Explain channel capacity as a limit on reliable communication over a noisy channel.\n- Exercise: State why reliable transmission above capacity is impossible in the long run.\nThe course treats capacity as a fundamental upper bou", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Channel Capacity" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain channel capacity as a limit on reliable communication over a noisy channel." + ] + }, + { + "id": "concept::channel-coding", + "type": "concept", + "title": "Channel Coding", + "description": "- Objective: Explain how channel coding adds redundancy to protect messages from noise.\n- Exercise: Contrast uncoded transmission with coded transmission on a noisy channel.\nThese units emphasize that redundancy can be wasteful in compressi", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Channel Coding" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain how channel coding adds redundancy to protect messages from noise." + ] + }, + { + "id": "concept::contrast", + "type": "concept", + "title": "Contrast", + "description": "Candidate concept extracted from lesson 'Channel Coding'.", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Channel Coding" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain how channel coding adds redundancy to protect messages from noise." + ] + }, + { + "id": "concept::error-correcting-codes", + "type": "concept", + "title": "Error Correcting Codes", + "description": "- Objective: Explain how error-correcting codes detect or repair corrupted symbols.\n- Exercise: Describe a simple parity-style code and its limits.\nThe learner must connect abstract limits to concrete coding mechanisms and understand both s", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Error Correcting Codes" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain how error-correcting codes detect or repair corrupted symbols." + ] + }, + { + "id": "concept::cryptography-and-information-hiding", + "type": "concept", + "title": "Cryptography and Information Hiding", + "description": "- Objective: Explain the relationship between secrecy, information leakage, and coded communication.\n- Exercise: Compare a secure scheme with a weak one in terms of revealed information.\nThe course extends information-theoretic reasoning to", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Cryptography and Information Hiding" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain the relationship between secrecy, information leakage, and coded communication." + ] + }, + { + "id": "concept::thermodynamics-and-entropy", + "type": "concept", + "title": "Thermodynamics and Entropy", + "description": "- Objective: Explain how thermodynamic entropy relates to, and differs from, Shannon entropy.\n- Exercise: Compare the two entropy notions and identify what is preserved across the analogy.\nThe course uses entropy as a bridge concept between", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Thermodynamics and Entropy" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain how thermodynamic entropy relates to, and differs from, Shannon entropy." + ] + }, + { + "id": "concept::reversible-computation-and-quantum-computation", + "type": "concept", + "title": "Reversible Computation and Quantum Computation", + "description": "- Objective: Explain why the physical implementation of computation matters for information processing limits.\n- Exercise: Summarize how reversible computation changes the discussion of dissipation and information loss.\nLater units connect", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Reversible Computation and Quantum Computation" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Explain why the physical implementation of computation matters for information processing limits." + ] + }, + { + "id": "concept::course-synthesis", + "type": "concept", + "title": "Course Synthesis", + "description": "- Objective: Synthesize the course by connecting entropy, coding, reliability, secrecy, and physical interpretation in one coherent narrative.\n- Exercise: Produce a final study guide that links source coding, channel coding, secrecy, thermo", + "source_modules": [ + "Imported from MARKDOWN" + ], + "source_lessons": [ + "Course Synthesis" + ], + "source_courses": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "mastery_signals": [ + "Synthesize the course by connecting entropy, coding, reliability, secrecy, and physical interpretation in one coherent narrative." + ] + }, + { + "id": "module::imported-from-markdown", + "type": "module", + "title": "Imported from MARKDOWN" + }, + { + "id": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-course-home", + "type": "lesson", + "title": "MIT OCW 6.050J Information and Entropy: Course Home", + "module_title": "Imported from MARKDOWN", + "body": "Source: https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/\nAttribution: adapted from the MIT OpenCourseWare course home page for 6.050J Information and Entropy.", + "source_refs": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "key_terms": [ + "Information", + "Entropy" + ] + }, + { + "id": "lesson::imported-from-markdown::information-and-entropy", + "type": "lesson", + "title": "Information and Entropy", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Identify the course title, instructors, departments, level, and major topical areas.\n- Exercise: Summarize the course in one paragraph for a prospective learner.\nMIT OpenCourseWare presents 6.050J Information and Entropy as a Spring 2008 undergraduate subject taught by Paul Penfield and Seth Lloyd in Electrical Engineering and Computer Science together with Mechanical Engineering. The catalog framing emphasizes theory of computation, signal processing, and mathematical reasoning about information.", + "source_refs": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "key_terms": [ + "Information", + "Entropy", + "Paul", + "Penfield", + "Seth", + "Lloyd", + "Electrical", + "Engineering" + ] + }, + { + "id": "objective::information-and-entropy::1", + "type": "assessment_signal", + "title": "Identify the course title, instructors, departments, level, and major topical areas.", + "signal_kind": "objective" + }, + { + "id": "exercise::information-and-entropy::1", + "type": "assessment_signal", + "title": "Summarize the course in one paragraph for a prospective learner.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "type": "lesson", + "title": "Ultimate Limits to Communication and Computation", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain the broad intellectual scope of the course.\n- Exercise: List the main topic clusters that connect communication, computation, and entropy.\nThe course examines the ultimate limits to communication and computation with emphasis on the physical nature of information processing. The source description highlights information and computation, digital signals, codes and compression, noise, probability, error correction, reversible and irreversible operations, physics of computation, and quantum computation. Entropy is explicitly connected both to channel capacity and to the second law of thermodynamics.", + "source_refs": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "key_terms": [ + "Entropy" + ] + }, + { + "id": "objective::ultimate-limits-to-communication-and-computation::1", + "type": "assessment_signal", + "title": "Explain the broad intellectual scope of the course.", + "signal_kind": "objective" + }, + { + "id": "exercise::ultimate-limits-to-communication-and-computation::1", + "type": "assessment_signal", + "title": "List the main topic clusters that connect communication, computation, and entropy.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "type": "lesson", + "title": "Open Textbooks, Problem Sets, and Programming Work", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Identify the main kinds of learning resources supplied through the course.\n- Exercise: Explain how these resource types support both conceptual study and practice.\nThe course home lists open textbooks, problem sets, problem set solutions, and programming assignments. A learner using Didactopus should treat these as complementary evidence sources rather than relying on one summary alone.", + "source_refs": [ + "examples/ocw-information-entropy/course/course-home.md" + ] + }, + { + "id": "objective::open-textbooks-problem-sets-and-programming-work::1", + "type": "assessment_signal", + "title": "Identify the main kinds of learning resources supplied through the course.", + "signal_kind": "objective" + }, + { + "id": "exercise::open-textbooks-problem-sets-and-programming-work::1", + "type": "assessment_signal", + "title": "Explain how these resource types support both conceptual study and practice.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "lesson", + "title": "MIT OCW 6.050J Information and Entropy: Syllabus", + "module_title": "Imported from MARKDOWN", + "body": "Source: https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/pages/syllabus/\nAttribution: adapted from the MIT OpenCourseWare syllabus page for 6.050J Information and Entropy.", + "source_refs": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "key_terms": [ + "Information", + "Entropy" + ] + }, + { + "id": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "type": "lesson", + "title": "Prerequisites and Mathematical Background", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain the mathematical maturity expected by the course.\n- Exercise: Decide whether a learner needs review in probability, linear algebra, or signals before beginning.\nThe syllabus expects a foundation comparable to MIT subjects in calculus and linear algebra, together with comfort in probability, signals, and basic programming. Didactopus should therefore surface prerequisite review when those foundations appear weak.", + "source_refs": [ + "examples/ocw-information-entropy/course/syllabus.md" + ] + }, + { + "id": "objective::prerequisites-and-mathematical-background::1", + "type": "assessment_signal", + "title": "Explain the mathematical maturity expected by the course.", + "signal_kind": "objective" + }, + { + "id": "exercise::prerequisites-and-mathematical-background::1", + "type": "assessment_signal", + "title": "Decide whether a learner needs review in probability, linear algebra, or signals before beginning.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::assessment-structure", + "type": "lesson", + "title": "Assessment Structure", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Identify the role of problem sets, exams, and programming work in the course.\n- Exercise: Build a study schedule that alternates reading, derivation, and worked exercises.\nThe syllabus emphasizes regular problem solving and quantitative reasoning. The course is not only a reading list: learners are expected to derive results, solve structured problems, and connect abstract arguments to implementation-oriented tasks.", + "source_refs": [ + "examples/ocw-information-entropy/course/syllabus.md" + ] + }, + { + "id": "objective::assessment-structure::1", + "type": "assessment_signal", + "title": "Identify the role of problem sets, exams, and programming work in the course.", + "signal_kind": "objective" + }, + { + "id": "exercise::assessment-structure::1", + "type": "assessment_signal", + "title": "Build a study schedule that alternates reading, derivation, and worked exercises.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "type": "lesson", + "title": "Course Notes and Reference Texts", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain how the course notes and textbook references supply the core conceptual sequence.\n- Exercise: Compare when to use course notes versus outside references for clarification.\nMIT OCW links course notes and textbook-style resources through the syllabus and resource pages. The intended use is cumulative: earlier notes establish counting, probability, and entropy, while later materials expand into coding, noise, secrecy, thermodynamics, and computation.", + "source_refs": [ + "examples/ocw-information-entropy/course/syllabus.md" + ] + }, + { + "id": "objective::course-notes-and-reference-texts::1", + "type": "assessment_signal", + "title": "Explain how the course notes and textbook references supply the core conceptual sequence.", + "signal_kind": "objective" + }, + { + "id": "exercise::course-notes-and-reference-texts::1", + "type": "assessment_signal", + "title": "Compare when to use course notes versus outside references for clarification.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "type": "lesson", + "title": "Independent Reasoning and Careful Comparison", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain why the course requires precise comparison of related but non-identical concepts.\n- Exercise: Write a short note distinguishing Shannon entropy, channel capacity, and thermodynamic entropy.\nThe syllabus framing implies a style of work where analogy is useful but dangerous when used loosely. Learners must compare models carefully, state assumptions, and notice where similar mathematics does not imply identical interpretation.", + "source_refs": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "key_terms": [ + "Shannon", + "Learners" + ] + }, + { + "id": "objective::independent-reasoning-and-careful-comparison::1", + "type": "assessment_signal", + "title": "Explain why the course requires precise comparison of related but non-identical concepts.", + "signal_kind": "objective" + }, + { + "id": "exercise::independent-reasoning-and-careful-comparison::1", + "type": "assessment_signal", + "title": "Write a short note distinguishing Shannon entropy, channel capacity, and thermodynamic entropy.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "lesson", + "title": "MIT OCW 6.050J Information and Entropy: Unit Sequence", + "module_title": "Imported from MARKDOWN", + "body": "Source: https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/pages/syllabus/\nAttribution: adapted from the MIT OpenCourseWare unit progression and resource organization for 6.050J Information and Entropy.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "key_terms": [ + "Information", + "Entropy" + ] + }, + { + "id": "lesson::imported-from-markdown::counting-and-probability", + "type": "lesson", + "title": "Counting and Probability", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain how counting arguments, probability spaces, and random variables support later information-theory results.\n- Exercise: Derive a simple counting argument for binary strings and compute an event probability.\nEarly units establish counting, combinatorics, and probability as the language used to reason about uncertainty, messages, and evidence.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "key_terms": [ + "Derive" + ] + }, + { + "id": "objective::counting-and-probability::1", + "type": "assessment_signal", + "title": "Explain how counting arguments, probability spaces, and random variables support later information-theory results.", + "signal_kind": "objective" + }, + { + "id": "exercise::counting-and-probability::1", + "type": "assessment_signal", + "title": "Derive a simple counting argument for binary strings and compute an event probability.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::shannon-entropy", + "type": "lesson", + "title": "Shannon Entropy", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain Shannon entropy as a measure of uncertainty and compare high-entropy and low-entropy sources.\n- Exercise: Compute the entropy of a Bernoulli source and interpret the result.\nThe course then introduces entropy as a quantitative measure of uncertainty for a source model and uses it to reason about representation cost and surprise.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "key_terms": [ + "Shannon", + "Bernoulli" + ] + }, + { + "id": "objective::shannon-entropy::1", + "type": "assessment_signal", + "title": "Explain Shannon entropy as a measure of uncertainty and compare high-entropy and low-entropy sources.", + "signal_kind": "objective" + }, + { + "id": "exercise::shannon-entropy::1", + "type": "assessment_signal", + "title": "Compute the entropy of a Bernoulli source and interpret the result.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::mutual-information", + "type": "lesson", + "title": "Mutual Information", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain mutual information and relate it to dependence between signals or observations.\n- Exercise: Compare independent variables with dependent variables using mutual-information reasoning.\nThese units ask the learner to understand how observation changes uncertainty and what it means for one variable to carry information about another.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::mutual-information::1", + "type": "assessment_signal", + "title": "Explain mutual information and relate it to dependence between signals or observations.", + "signal_kind": "objective" + }, + { + "id": "exercise::mutual-information::1", + "type": "assessment_signal", + "title": "Compare independent variables with dependent variables using mutual-information reasoning.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::source-coding-and-compression", + "type": "lesson", + "title": "Source Coding and Compression", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain lossless compression in terms of entropy, redundancy, and coding choices.\n- Exercise: Describe when compression succeeds and when it fails on already-random data.\nThe course develops the idea that structured sources can often be described more efficiently, but only up to limits implied by entropy.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::source-coding-and-compression::1", + "type": "assessment_signal", + "title": "Explain lossless compression in terms of entropy, redundancy, and coding choices.", + "signal_kind": "objective" + }, + { + "id": "exercise::source-coding-and-compression::1", + "type": "assessment_signal", + "title": "Describe when compression succeeds and when it fails on already-random data.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::huffman-coding", + "type": "lesson", + "title": "Huffman Coding", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain Huffman coding and justify why likely symbols receive shorter descriptions.\n- Exercise: Build a Huffman code for a small source alphabet.\nLearners use trees and expected length arguments to connect probability models to practical code design.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "key_terms": [ + "Huffman", + "Learners" + ] + }, + { + "id": "objective::huffman-coding::1", + "type": "assessment_signal", + "title": "Explain Huffman coding and justify why likely symbols receive shorter descriptions.", + "signal_kind": "objective" + }, + { + "id": "exercise::huffman-coding::1", + "type": "assessment_signal", + "title": "Build a Huffman code for a small source alphabet.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::channel-capacity", + "type": "lesson", + "title": "Channel Capacity", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain channel capacity as a limit on reliable communication over a noisy channel.\n- Exercise: State why reliable transmission above capacity is impossible in the long run.\nThe course treats capacity as a fundamental upper bound and frames noisy communication in terms of rates, inference, and uncertainty reduction.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::channel-capacity::1", + "type": "assessment_signal", + "title": "Explain channel capacity as a limit on reliable communication over a noisy channel.", + "signal_kind": "objective" + }, + { + "id": "exercise::channel-capacity::1", + "type": "assessment_signal", + "title": "State why reliable transmission above capacity is impossible in the long run.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::channel-coding", + "type": "lesson", + "title": "Channel Coding", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain how channel coding adds redundancy to protect messages from noise.\n- Exercise: Contrast uncoded transmission with coded transmission on a noisy channel.\nThese units emphasize that redundancy can be wasteful in compression but essential in communication under uncertainty.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "key_terms": [ + "Contrast" + ] + }, + { + "id": "objective::channel-coding::1", + "type": "assessment_signal", + "title": "Explain how channel coding adds redundancy to protect messages from noise.", + "signal_kind": "objective" + }, + { + "id": "exercise::channel-coding::1", + "type": "assessment_signal", + "title": "Contrast uncoded transmission with coded transmission on a noisy channel.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::error-correcting-codes", + "type": "lesson", + "title": "Error Correcting Codes", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain how error-correcting codes detect or repair corrupted symbols.\n- Exercise: Describe a simple parity-style code and its limits.\nThe learner must connect abstract limits to concrete coding mechanisms and understand both strengths and failure modes.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::error-correcting-codes::1", + "type": "assessment_signal", + "title": "Explain how error-correcting codes detect or repair corrupted symbols.", + "signal_kind": "objective" + }, + { + "id": "exercise::error-correcting-codes::1", + "type": "assessment_signal", + "title": "Describe a simple parity-style code and its limits.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "type": "lesson", + "title": "Cryptography and Information Hiding", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain the relationship between secrecy, information leakage, and coded communication.\n- Exercise: Compare a secure scheme with a weak one in terms of revealed information.\nThe course extends information-theoretic reasoning to adversarial settings where controlling what an observer can infer becomes central.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::cryptography-and-information-hiding::1", + "type": "assessment_signal", + "title": "Explain the relationship between secrecy, information leakage, and coded communication.", + "signal_kind": "objective" + }, + { + "id": "exercise::cryptography-and-information-hiding::1", + "type": "assessment_signal", + "title": "Compare a secure scheme with a weak one in terms of revealed information.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "type": "lesson", + "title": "Thermodynamics and Entropy", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain how thermodynamic entropy relates to, and differs from, Shannon entropy.\n- Exercise: Compare the two entropy notions and identify what is preserved across the analogy.\nThe course uses entropy as a bridge concept between communication theory and physics while insisting on careful interpretation.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "key_terms": [ + "Shannon" + ] + }, + { + "id": "objective::thermodynamics-and-entropy::1", + "type": "assessment_signal", + "title": "Explain how thermodynamic entropy relates to, and differs from, Shannon entropy.", + "signal_kind": "objective" + }, + { + "id": "exercise::thermodynamics-and-entropy::1", + "type": "assessment_signal", + "title": "Compare the two entropy notions and identify what is preserved across the analogy.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "type": "lesson", + "title": "Reversible Computation and Quantum Computation", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Explain why the physical implementation of computation matters for information processing limits.\n- Exercise: Summarize how reversible computation changes the discussion of dissipation and information loss.\nLater units connect information, entropy, and computation more directly by considering reversible logic, irreversibility, and quantum information themes.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::reversible-computation-and-quantum-computation::1", + "type": "assessment_signal", + "title": "Explain why the physical implementation of computation matters for information processing limits.", + "signal_kind": "objective" + }, + { + "id": "exercise::reversible-computation-and-quantum-computation::1", + "type": "assessment_signal", + "title": "Summarize how reversible computation changes the discussion of dissipation and information loss.", + "signal_kind": "exercise" + }, + { + "id": "lesson::imported-from-markdown::course-synthesis", + "type": "lesson", + "title": "Course Synthesis", + "module_title": "Imported from MARKDOWN", + "body": "- Objective: Synthesize the course by connecting entropy, coding, reliability, secrecy, and physical interpretation in one coherent narrative.\n- Exercise: Produce a final study guide that links source coding, channel coding, secrecy, thermodynamic analogies, and computation.\nThe end of the course asks the learner to unify the mathematical and physical perspectives rather than treating the units as disconnected topics.", + "source_refs": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ] + }, + { + "id": "objective::course-synthesis::1", + "type": "assessment_signal", + "title": "Synthesize the course by connecting entropy, coding, reliability, secrecy, and physical interpretation in one coherent narrative.", + "signal_kind": "objective" + }, + { + "id": "exercise::course-synthesis::1", + "type": "assessment_signal", + "title": "Produce a final study guide that links source coding, channel coding, secrecy, thermodynamic analogies, and computation.", + "signal_kind": "exercise" + } + ], + "edges": [ + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-course-home", + "type": "contains_lesson", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Course Home' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-course-home-md", + "target": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-course-home", + "type": "derived_lesson", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Course Home' was ingested from source 'examples/ocw-information-entropy/course/course-home.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-course-home", + "target": "concept::mit-ocw-6-050j-information-and-entropy-course-home", + "type": "teaches_concept", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Course Home' yields the lesson-level concept 'MIT OCW 6.050J Information and Entropy: Course Home'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-course-home", + "target": "concept::entropy", + "type": "mentions_concept", + "justification": "Key term 'Entropy' was extracted from lesson 'MIT OCW 6.050J Information and Entropy: Course Home'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::information-and-entropy", + "type": "contains_lesson", + "justification": "Lesson 'Information and Entropy' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-course-home-md", + "target": "lesson::imported-from-markdown::information-and-entropy", + "type": "derived_lesson", + "justification": "Lesson 'Information and Entropy' was ingested from source 'examples/ocw-information-entropy/course/course-home.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "objective::information-and-entropy::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "exercise::information-and-entropy::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::information-and-entropy", + "type": "teaches_concept", + "justification": "Lesson 'Information and Entropy' yields the lesson-level concept 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::entropy", + "type": "mentions_concept", + "justification": "Key term 'Entropy' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::paul", + "type": "mentions_concept", + "justification": "Key term 'Paul' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::penfield", + "type": "mentions_concept", + "justification": "Key term 'Penfield' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::seth", + "type": "mentions_concept", + "justification": "Key term 'Seth' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::lloyd", + "type": "mentions_concept", + "justification": "Key term 'Lloyd' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::electrical", + "type": "mentions_concept", + "justification": "Key term 'Electrical' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::engineering", + "type": "mentions_concept", + "justification": "Key term 'Engineering' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "type": "contains_lesson", + "justification": "Lesson 'Ultimate Limits to Communication and Computation' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-course-home-md", + "target": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "type": "derived_lesson", + "justification": "Lesson 'Ultimate Limits to Communication and Computation' was ingested from source 'examples/ocw-information-entropy/course/course-home.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "target": "objective::ultimate-limits-to-communication-and-computation::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Ultimate Limits to Communication and Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "target": "exercise::ultimate-limits-to-communication-and-computation::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Ultimate Limits to Communication and Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "target": "concept::ultimate-limits-to-communication-and-computation", + "type": "teaches_concept", + "justification": "Lesson 'Ultimate Limits to Communication and Computation' yields the lesson-level concept 'Ultimate Limits to Communication and Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "target": "concept::entropy", + "type": "mentions_concept", + "justification": "Key term 'Entropy' was extracted from lesson 'Ultimate Limits to Communication and Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "type": "contains_lesson", + "justification": "Lesson 'Open Textbooks, Problem Sets, and Programming Work' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-course-home-md", + "target": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "type": "derived_lesson", + "justification": "Lesson 'Open Textbooks, Problem Sets, and Programming Work' was ingested from source 'examples/ocw-information-entropy/course/course-home.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "target": "objective::open-textbooks-problem-sets-and-programming-work::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Open Textbooks, Problem Sets, and Programming Work'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "target": "exercise::open-textbooks-problem-sets-and-programming-work::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Open Textbooks, Problem Sets, and Programming Work'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "target": "concept::open-textbooks-problem-sets-and-programming-work", + "type": "teaches_concept", + "justification": "Lesson 'Open Textbooks, Problem Sets, and Programming Work' yields the lesson-level concept 'Open Textbooks, Problem Sets, and Programming Work'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "contains_lesson", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Syllabus' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-syllabus-md", + "target": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "derived_lesson", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Syllabus' was ingested from source 'examples/ocw-information-entropy/course/syllabus.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-syllabus", + "target": "concept::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "teaches_concept", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Syllabus' yields the lesson-level concept 'MIT OCW 6.050J Information and Entropy: Syllabus'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-syllabus", + "target": "concept::entropy", + "type": "mentions_concept", + "justification": "Key term 'Entropy' was extracted from lesson 'MIT OCW 6.050J Information and Entropy: Syllabus'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "type": "contains_lesson", + "justification": "Lesson 'Prerequisites and Mathematical Background' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-syllabus-md", + "target": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "type": "derived_lesson", + "justification": "Lesson 'Prerequisites and Mathematical Background' was ingested from source 'examples/ocw-information-entropy/course/syllabus.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "target": "objective::prerequisites-and-mathematical-background::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Prerequisites and Mathematical Background'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "target": "exercise::prerequisites-and-mathematical-background::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Prerequisites and Mathematical Background'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "target": "concept::prerequisites-and-mathematical-background", + "type": "teaches_concept", + "justification": "Lesson 'Prerequisites and Mathematical Background' yields the lesson-level concept 'Prerequisites and Mathematical Background'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::assessment-structure", + "type": "contains_lesson", + "justification": "Lesson 'Assessment Structure' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-syllabus-md", + "target": "lesson::imported-from-markdown::assessment-structure", + "type": "derived_lesson", + "justification": "Lesson 'Assessment Structure' was ingested from source 'examples/ocw-information-entropy/course/syllabus.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::assessment-structure", + "target": "objective::assessment-structure::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Assessment Structure'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::assessment-structure", + "target": "exercise::assessment-structure::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Assessment Structure'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::assessment-structure", + "target": "concept::assessment-structure", + "type": "teaches_concept", + "justification": "Lesson 'Assessment Structure' yields the lesson-level concept 'Assessment Structure'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "type": "contains_lesson", + "justification": "Lesson 'Course Notes and Reference Texts' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-syllabus-md", + "target": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "type": "derived_lesson", + "justification": "Lesson 'Course Notes and Reference Texts' was ingested from source 'examples/ocw-information-entropy/course/syllabus.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "target": "objective::course-notes-and-reference-texts::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Course Notes and Reference Texts'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "target": "exercise::course-notes-and-reference-texts::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Course Notes and Reference Texts'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "target": "concept::course-notes-and-reference-texts", + "type": "teaches_concept", + "justification": "Lesson 'Course Notes and Reference Texts' yields the lesson-level concept 'Course Notes and Reference Texts'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "type": "contains_lesson", + "justification": "Lesson 'Independent Reasoning and Careful Comparison' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-syllabus-md", + "target": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "type": "derived_lesson", + "justification": "Lesson 'Independent Reasoning and Careful Comparison' was ingested from source 'examples/ocw-information-entropy/course/syllabus.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "objective::independent-reasoning-and-careful-comparison::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "exercise::independent-reasoning-and-careful-comparison::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "concept::independent-reasoning-and-careful-comparison", + "type": "teaches_concept", + "justification": "Lesson 'Independent Reasoning and Careful Comparison' yields the lesson-level concept 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "concept::shannon", + "type": "mentions_concept", + "justification": "Key term 'Shannon' was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "concept::learners", + "type": "mentions_concept", + "justification": "Key term 'Learners' was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "contains_lesson", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Unit Sequence' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "derived_lesson", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Unit Sequence' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "target": "concept::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "teaches_concept", + "justification": "Lesson 'MIT OCW 6.050J Information and Entropy: Unit Sequence' yields the lesson-level concept 'MIT OCW 6.050J Information and Entropy: Unit Sequence'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "target": "concept::entropy", + "type": "mentions_concept", + "justification": "Key term 'Entropy' was extracted from lesson 'MIT OCW 6.050J Information and Entropy: Unit Sequence'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::counting-and-probability", + "type": "contains_lesson", + "justification": "Lesson 'Counting and Probability' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::counting-and-probability", + "type": "derived_lesson", + "justification": "Lesson 'Counting and Probability' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::counting-and-probability", + "target": "objective::counting-and-probability::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Counting and Probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::counting-and-probability", + "target": "exercise::counting-and-probability::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Counting and Probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::counting-and-probability", + "target": "concept::counting-and-probability", + "type": "teaches_concept", + "justification": "Lesson 'Counting and Probability' yields the lesson-level concept 'Counting and Probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::counting-and-probability", + "target": "concept::derive", + "type": "mentions_concept", + "justification": "Key term 'Derive' was extracted from lesson 'Counting and Probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::shannon-entropy", + "type": "contains_lesson", + "justification": "Lesson 'Shannon Entropy' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::shannon-entropy", + "type": "derived_lesson", + "justification": "Lesson 'Shannon Entropy' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "objective::shannon-entropy::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "exercise::shannon-entropy::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "concept::shannon-entropy", + "type": "teaches_concept", + "justification": "Lesson 'Shannon Entropy' yields the lesson-level concept 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "concept::shannon", + "type": "mentions_concept", + "justification": "Key term 'Shannon' was extracted from lesson 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "concept::bernoulli", + "type": "mentions_concept", + "justification": "Key term 'Bernoulli' was extracted from lesson 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::mutual-information", + "type": "contains_lesson", + "justification": "Lesson 'Mutual Information' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::mutual-information", + "type": "derived_lesson", + "justification": "Lesson 'Mutual Information' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mutual-information", + "target": "objective::mutual-information::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Mutual Information'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mutual-information", + "target": "exercise::mutual-information::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Mutual Information'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mutual-information", + "target": "concept::mutual-information", + "type": "teaches_concept", + "justification": "Lesson 'Mutual Information' yields the lesson-level concept 'Mutual Information'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::source-coding-and-compression", + "type": "contains_lesson", + "justification": "Lesson 'Source Coding and Compression' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::source-coding-and-compression", + "type": "derived_lesson", + "justification": "Lesson 'Source Coding and Compression' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::source-coding-and-compression", + "target": "objective::source-coding-and-compression::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Source Coding and Compression'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::source-coding-and-compression", + "target": "exercise::source-coding-and-compression::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Source Coding and Compression'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::source-coding-and-compression", + "target": "concept::source-coding-and-compression", + "type": "teaches_concept", + "justification": "Lesson 'Source Coding and Compression' yields the lesson-level concept 'Source Coding and Compression'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::huffman-coding", + "type": "contains_lesson", + "justification": "Lesson 'Huffman Coding' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::huffman-coding", + "type": "derived_lesson", + "justification": "Lesson 'Huffman Coding' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::huffman-coding", + "target": "objective::huffman-coding::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Huffman Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::huffman-coding", + "target": "exercise::huffman-coding::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Huffman Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::huffman-coding", + "target": "concept::huffman-coding", + "type": "teaches_concept", + "justification": "Lesson 'Huffman Coding' yields the lesson-level concept 'Huffman Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::huffman-coding", + "target": "concept::learners", + "type": "mentions_concept", + "justification": "Key term 'Learners' was extracted from lesson 'Huffman Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::channel-capacity", + "type": "contains_lesson", + "justification": "Lesson 'Channel Capacity' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::channel-capacity", + "type": "derived_lesson", + "justification": "Lesson 'Channel Capacity' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-capacity", + "target": "objective::channel-capacity::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Channel Capacity'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-capacity", + "target": "exercise::channel-capacity::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Channel Capacity'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-capacity", + "target": "concept::channel-capacity", + "type": "teaches_concept", + "justification": "Lesson 'Channel Capacity' yields the lesson-level concept 'Channel Capacity'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::channel-coding", + "type": "contains_lesson", + "justification": "Lesson 'Channel Coding' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::channel-coding", + "type": "derived_lesson", + "justification": "Lesson 'Channel Coding' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-coding", + "target": "objective::channel-coding::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Channel Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-coding", + "target": "exercise::channel-coding::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Channel Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-coding", + "target": "concept::channel-coding", + "type": "teaches_concept", + "justification": "Lesson 'Channel Coding' yields the lesson-level concept 'Channel Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::channel-coding", + "target": "concept::contrast", + "type": "mentions_concept", + "justification": "Key term 'Contrast' was extracted from lesson 'Channel Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::error-correcting-codes", + "type": "contains_lesson", + "justification": "Lesson 'Error Correcting Codes' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::error-correcting-codes", + "type": "derived_lesson", + "justification": "Lesson 'Error Correcting Codes' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::error-correcting-codes", + "target": "objective::error-correcting-codes::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Error Correcting Codes'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::error-correcting-codes", + "target": "exercise::error-correcting-codes::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Error Correcting Codes'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::error-correcting-codes", + "target": "concept::error-correcting-codes", + "type": "teaches_concept", + "justification": "Lesson 'Error Correcting Codes' yields the lesson-level concept 'Error Correcting Codes'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "type": "contains_lesson", + "justification": "Lesson 'Cryptography and Information Hiding' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "type": "derived_lesson", + "justification": "Lesson 'Cryptography and Information Hiding' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "target": "objective::cryptography-and-information-hiding::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Cryptography and Information Hiding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "target": "exercise::cryptography-and-information-hiding::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Cryptography and Information Hiding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "target": "concept::cryptography-and-information-hiding", + "type": "teaches_concept", + "justification": "Lesson 'Cryptography and Information Hiding' yields the lesson-level concept 'Cryptography and Information Hiding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "type": "contains_lesson", + "justification": "Lesson 'Thermodynamics and Entropy' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "type": "derived_lesson", + "justification": "Lesson 'Thermodynamics and Entropy' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "target": "objective::thermodynamics-and-entropy::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Thermodynamics and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "target": "exercise::thermodynamics-and-entropy::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Thermodynamics and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "target": "concept::thermodynamics-and-entropy", + "type": "teaches_concept", + "justification": "Lesson 'Thermodynamics and Entropy' yields the lesson-level concept 'Thermodynamics and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "target": "concept::shannon", + "type": "mentions_concept", + "justification": "Key term 'Shannon' was extracted from lesson 'Thermodynamics and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "type": "contains_lesson", + "justification": "Lesson 'Reversible Computation and Quantum Computation' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "type": "derived_lesson", + "justification": "Lesson 'Reversible Computation and Quantum Computation' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "target": "objective::reversible-computation-and-quantum-computation::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Reversible Computation and Quantum Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "target": "exercise::reversible-computation-and-quantum-computation::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Reversible Computation and Quantum Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "target": "concept::reversible-computation-and-quantum-computation", + "type": "teaches_concept", + "justification": "Lesson 'Reversible Computation and Quantum Computation' yields the lesson-level concept 'Reversible Computation and Quantum Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "module::imported-from-markdown", + "target": "lesson::imported-from-markdown::course-synthesis", + "type": "contains_lesson", + "justification": "Lesson 'Course Synthesis' appears under module 'Imported from MARKDOWN'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "source::examples-ocw-information-entropy-course-unit-sequence-md", + "target": "lesson::imported-from-markdown::course-synthesis", + "type": "derived_lesson", + "justification": "Lesson 'Course Synthesis' was ingested from source 'examples/ocw-information-entropy/course/unit-sequence.md'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::course-synthesis", + "target": "objective::course-synthesis::1", + "type": "has_objective", + "justification": "Objective 1 was extracted from lesson 'Course Synthesis'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::course-synthesis", + "target": "exercise::course-synthesis::1", + "type": "has_exercise", + "justification": "Exercise 1 was extracted from lesson 'Course Synthesis'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::course-synthesis", + "target": "concept::course-synthesis", + "type": "teaches_concept", + "justification": "Lesson 'Course Synthesis' yields the lesson-level concept 'Course Synthesis'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 1.0 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-course-home", + "target": "concept::mit-ocw-6-050j-information-and-entropy-course-home", + "type": "supports_concept", + "justification": "Concept 'MIT OCW 6.050J Information and Entropy: Course Home' was extracted from lesson 'MIT OCW 6.050J Information and Entropy: Course Home'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::mit-ocw-6-050j-information-and-entropy-course-home", + "target": "concept::information-and-entropy", + "type": "prerequisite", + "justification": "Concept 'Information and Entropy' depends on prerequisite 'mit-ocw-6-050j-information-and-entropy-course-home'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::information-and-entropy", + "type": "supports_concept", + "justification": "Concept 'Information and Entropy' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.9 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::paul", + "type": "supports_concept", + "justification": "Concept 'Paul' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::penfield", + "type": "supports_concept", + "justification": "Concept 'Penfield' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::seth", + "type": "supports_concept", + "justification": "Concept 'Seth' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::lloyd", + "type": "supports_concept", + "justification": "Concept 'Lloyd' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::electrical", + "type": "supports_concept", + "justification": "Concept 'Electrical' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::information-and-entropy", + "target": "concept::engineering", + "type": "supports_concept", + "justification": "Concept 'Engineering' was extracted from lesson 'Information and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "concept::information-and-entropy", + "target": "concept::ultimate-limits-to-communication-and-computation", + "type": "prerequisite", + "justification": "Concept 'Ultimate Limits to Communication and Computation' depends on prerequisite 'information-and-entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "target": "concept::ultimate-limits-to-communication-and-computation", + "type": "supports_concept", + "justification": "Concept 'Ultimate Limits to Communication and Computation' was extracted from lesson 'Ultimate Limits to Communication and Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.9 + }, + { + "source": "lesson::imported-from-markdown::ultimate-limits-to-communication-and-computation", + "target": "concept::entropy", + "type": "supports_concept", + "justification": "Concept 'Entropy' was extracted from lesson 'Ultimate Limits to Communication and Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.7 + }, + { + "source": "concept::ultimate-limits-to-communication-and-computation", + "target": "concept::open-textbooks-problem-sets-and-programming-work", + "type": "prerequisite", + "justification": "Concept 'Open Textbooks, Problem Sets, and Programming Work' depends on prerequisite 'ultimate-limits-to-communication-and-computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::open-textbooks-problem-sets-and-programming-work", + "target": "concept::open-textbooks-problem-sets-and-programming-work", + "type": "supports_concept", + "justification": "Concept 'Open Textbooks, Problem Sets, and Programming Work' was extracted from lesson 'Open Textbooks, Problem Sets, and Programming Work'.", + "provenance": [ + "examples/ocw-information-entropy/course/course-home.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::open-textbooks-problem-sets-and-programming-work", + "target": "concept::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "prerequisite", + "justification": "Concept 'MIT OCW 6.050J Information and Entropy: Syllabus' depends on prerequisite 'open-textbooks-problem-sets-and-programming-work'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-syllabus", + "target": "concept::mit-ocw-6-050j-information-and-entropy-syllabus", + "type": "supports_concept", + "justification": "Concept 'MIT OCW 6.050J Information and Entropy: Syllabus' was extracted from lesson 'MIT OCW 6.050J Information and Entropy: Syllabus'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::mit-ocw-6-050j-information-and-entropy-syllabus", + "target": "concept::prerequisites-and-mathematical-background", + "type": "prerequisite", + "justification": "Concept 'Prerequisites and Mathematical Background' depends on prerequisite 'mit-ocw-6-050j-information-and-entropy-syllabus'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::prerequisites-and-mathematical-background", + "target": "concept::prerequisites-and-mathematical-background", + "type": "supports_concept", + "justification": "Concept 'Prerequisites and Mathematical Background' was extracted from lesson 'Prerequisites and Mathematical Background'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::prerequisites-and-mathematical-background", + "target": "concept::assessment-structure", + "type": "prerequisite", + "justification": "Concept 'Assessment Structure' depends on prerequisite 'prerequisites-and-mathematical-background'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::assessment-structure", + "target": "concept::assessment-structure", + "type": "supports_concept", + "justification": "Concept 'Assessment Structure' was extracted from lesson 'Assessment Structure'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::assessment-structure", + "target": "concept::course-notes-and-reference-texts", + "type": "prerequisite", + "justification": "Concept 'Course Notes and Reference Texts' depends on prerequisite 'assessment-structure'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::course-notes-and-reference-texts", + "target": "concept::course-notes-and-reference-texts", + "type": "supports_concept", + "justification": "Concept 'Course Notes and Reference Texts' was extracted from lesson 'Course Notes and Reference Texts'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::course-notes-and-reference-texts", + "target": "concept::independent-reasoning-and-careful-comparison", + "type": "prerequisite", + "justification": "Concept 'Independent Reasoning and Careful Comparison' depends on prerequisite 'course-notes-and-reference-texts'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "concept::independent-reasoning-and-careful-comparison", + "type": "supports_concept", + "justification": "Concept 'Independent Reasoning and Careful Comparison' was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.9 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "concept::shannon", + "type": "supports_concept", + "justification": "Concept 'Shannon' was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.7 + }, + { + "source": "lesson::imported-from-markdown::independent-reasoning-and-careful-comparison", + "target": "concept::learners", + "type": "supports_concept", + "justification": "Concept 'Learners' was extracted from lesson 'Independent Reasoning and Careful Comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/syllabus.md" + ], + "confidence": 0.7 + }, + { + "source": "concept::independent-reasoning-and-careful-comparison", + "target": "concept::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "prerequisite", + "justification": "Concept 'MIT OCW 6.050J Information and Entropy: Unit Sequence' depends on prerequisite 'independent-reasoning-and-careful-comparison'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "target": "concept::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "type": "supports_concept", + "justification": "Concept 'MIT OCW 6.050J Information and Entropy: Unit Sequence' was extracted from lesson 'MIT OCW 6.050J Information and Entropy: Unit Sequence'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::mit-ocw-6-050j-information-and-entropy-unit-sequence", + "target": "concept::counting-and-probability", + "type": "prerequisite", + "justification": "Concept 'Counting and Probability' depends on prerequisite 'mit-ocw-6-050j-information-and-entropy-unit-sequence'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::counting-and-probability", + "target": "concept::counting-and-probability", + "type": "supports_concept", + "justification": "Concept 'Counting and Probability' was extracted from lesson 'Counting and Probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "lesson::imported-from-markdown::counting-and-probability", + "target": "concept::derive", + "type": "supports_concept", + "justification": "Concept 'Derive' was extracted from lesson 'Counting and Probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "concept::counting-and-probability", + "target": "concept::shannon-entropy", + "type": "prerequisite", + "justification": "Concept 'Shannon Entropy' depends on prerequisite 'counting-and-probability'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "concept::shannon-entropy", + "type": "supports_concept", + "justification": "Concept 'Shannon Entropy' was extracted from lesson 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "lesson::imported-from-markdown::shannon-entropy", + "target": "concept::bernoulli", + "type": "supports_concept", + "justification": "Concept 'Bernoulli' was extracted from lesson 'Shannon Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "concept::shannon-entropy", + "target": "concept::mutual-information", + "type": "prerequisite", + "justification": "Concept 'Mutual Information' depends on prerequisite 'shannon-entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::mutual-information", + "target": "concept::mutual-information", + "type": "supports_concept", + "justification": "Concept 'Mutual Information' was extracted from lesson 'Mutual Information'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::mutual-information", + "target": "concept::source-coding-and-compression", + "type": "prerequisite", + "justification": "Concept 'Source Coding and Compression' depends on prerequisite 'mutual-information'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::source-coding-and-compression", + "target": "concept::source-coding-and-compression", + "type": "supports_concept", + "justification": "Concept 'Source Coding and Compression' was extracted from lesson 'Source Coding and Compression'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::source-coding-and-compression", + "target": "concept::huffman-coding", + "type": "prerequisite", + "justification": "Concept 'Huffman Coding' depends on prerequisite 'source-coding-and-compression'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::huffman-coding", + "target": "concept::huffman-coding", + "type": "supports_concept", + "justification": "Concept 'Huffman Coding' was extracted from lesson 'Huffman Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::huffman-coding", + "target": "concept::channel-capacity", + "type": "prerequisite", + "justification": "Concept 'Channel Capacity' depends on prerequisite 'huffman-coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::channel-capacity", + "target": "concept::channel-capacity", + "type": "supports_concept", + "justification": "Concept 'Channel Capacity' was extracted from lesson 'Channel Capacity'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::channel-capacity", + "target": "concept::channel-coding", + "type": "prerequisite", + "justification": "Concept 'Channel Coding' depends on prerequisite 'channel-capacity'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::channel-coding", + "target": "concept::channel-coding", + "type": "supports_concept", + "justification": "Concept 'Channel Coding' was extracted from lesson 'Channel Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "lesson::imported-from-markdown::channel-coding", + "target": "concept::contrast", + "type": "supports_concept", + "justification": "Concept 'Contrast' was extracted from lesson 'Channel Coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.7 + }, + { + "source": "concept::channel-coding", + "target": "concept::error-correcting-codes", + "type": "prerequisite", + "justification": "Concept 'Error Correcting Codes' depends on prerequisite 'channel-coding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::error-correcting-codes", + "target": "concept::error-correcting-codes", + "type": "supports_concept", + "justification": "Concept 'Error Correcting Codes' was extracted from lesson 'Error Correcting Codes'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::error-correcting-codes", + "target": "concept::cryptography-and-information-hiding", + "type": "prerequisite", + "justification": "Concept 'Cryptography and Information Hiding' depends on prerequisite 'error-correcting-codes'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::cryptography-and-information-hiding", + "target": "concept::cryptography-and-information-hiding", + "type": "supports_concept", + "justification": "Concept 'Cryptography and Information Hiding' was extracted from lesson 'Cryptography and Information Hiding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::cryptography-and-information-hiding", + "target": "concept::thermodynamics-and-entropy", + "type": "prerequisite", + "justification": "Concept 'Thermodynamics and Entropy' depends on prerequisite 'cryptography-and-information-hiding'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::thermodynamics-and-entropy", + "target": "concept::thermodynamics-and-entropy", + "type": "supports_concept", + "justification": "Concept 'Thermodynamics and Entropy' was extracted from lesson 'Thermodynamics and Entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::thermodynamics-and-entropy", + "target": "concept::reversible-computation-and-quantum-computation", + "type": "prerequisite", + "justification": "Concept 'Reversible Computation and Quantum Computation' depends on prerequisite 'thermodynamics-and-entropy'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::reversible-computation-and-quantum-computation", + "target": "concept::reversible-computation-and-quantum-computation", + "type": "supports_concept", + "justification": "Concept 'Reversible Computation and Quantum Computation' was extracted from lesson 'Reversible Computation and Quantum Computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + }, + { + "source": "concept::reversible-computation-and-quantum-computation", + "target": "concept::course-synthesis", + "type": "prerequisite", + "justification": "Concept 'Course Synthesis' depends on prerequisite 'reversible-computation-and-quantum-computation'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.85 + }, + { + "source": "lesson::imported-from-markdown::course-synthesis", + "target": "concept::course-synthesis", + "type": "supports_concept", + "justification": "Concept 'Course Synthesis' was extracted from lesson 'Course Synthesis'.", + "provenance": [ + "examples/ocw-information-entropy/course/unit-sequence.md" + ], + "confidence": 0.9 + } + ] +} \ No newline at end of file diff --git a/skills/ocw-information-entropy-agent/assets/generated/pack/pack.yaml b/skills/ocw-information-entropy-agent/assets/generated/pack/pack.yaml index 7317be6..721fed9 100644 --- a/skills/ocw-information-entropy-agent/assets/generated/pack/pack.yaml +++ b/skills/ocw-information-entropy-agent/assets/generated/pack/pack.yaml @@ -14,3 +14,4 @@ profile_templates: {} cross_pack_links: [] supporting_artifacts: - source_corpus.json +- knowledge_graph.json diff --git a/skills/ocw-information-entropy-agent/assets/generated/run/run_summary.json b/skills/ocw-information-entropy-agent/assets/generated/run/run_summary.json index a5d9609..6ce3d7e 100644 --- a/skills/ocw-information-entropy-agent/assets/generated/run/run_summary.json +++ b/skills/ocw-information-entropy-agent/assets/generated/run/run_summary.json @@ -11,6 +11,12 @@ ], "concept_count": 34, "source_fragment_count": 60, + "knowledge_graph_summary": { + "node_count": 98, + "edge_count": 178, + "concept_count": 34, + "source_count": 3 + }, "target_concept": "mit-ocw-information-and-entropy::thermodynamics-and-entropy", "curriculum_path": [ "mit-ocw-information-and-entropy::mit-ocw-6-050j-information-and-entropy-course-home", diff --git a/src/didactopus/graph_retrieval.py b/src/didactopus/graph_retrieval.py new file mode 100644 index 0000000..67c385c --- /dev/null +++ b/src/didactopus/graph_retrieval.py @@ -0,0 +1,91 @@ +from __future__ import annotations + +from dataclasses import dataclass + + +@dataclass +class GraphBundle: + knowledge_graph: dict + source_corpus: dict + + +def concept_node_id(concept_id: str) -> str: + return f"concept::{concept_id}" + + +def _node_index(bundle: GraphBundle) -> dict[str, dict]: + return {node["id"]: node for node in bundle.knowledge_graph.get("nodes", [])} + + +def _edges(bundle: GraphBundle) -> list[dict]: + return list(bundle.knowledge_graph.get("edges", [])) + + +def get_concept_node(bundle: GraphBundle, concept_id: str) -> dict | None: + return _node_index(bundle).get(concept_node_id(concept_id)) + + +def concept_neighborhood(bundle: GraphBundle, concept_id: str) -> dict: + node_id = concept_node_id(concept_id) + nodes = _node_index(bundle) + incoming = [] + outgoing = [] + for edge in _edges(bundle): + if edge["target"] == node_id: + incoming.append(edge) + if edge["source"] == node_id: + outgoing.append(edge) + return { + "concept": nodes.get(node_id, {}), + "incoming": incoming, + "outgoing": outgoing, + "incoming_nodes": [nodes[edge["source"]] for edge in incoming if edge["source"] in nodes], + "outgoing_nodes": [nodes[edge["target"]] for edge in outgoing if edge["target"] in nodes], + } + + +def source_fragments_for_concept(bundle: GraphBundle, concept_id: str, limit: int = 3) -> list[dict]: + neighborhood = concept_neighborhood(bundle, concept_id) + lesson_titles = { + node.get("title", "") + for node in neighborhood["incoming_nodes"] + if node.get("type") == "lesson" + } + lesson_titles.update( + node.get("title", "") + for node in neighborhood["outgoing_nodes"] + if node.get("type") == "lesson" + ) + fragments = [] + for fragment in bundle.source_corpus.get("fragments", []): + if fragment.get("lesson_title") in lesson_titles: + fragments.append(fragment) + if len(fragments) >= limit: + break + return fragments + + +def prerequisite_titles(bundle: GraphBundle, concept_id: str) -> list[str]: + neighborhood = concept_neighborhood(bundle, concept_id) + titles = [] + seen = set() + for edge, node in zip(neighborhood["incoming"], neighborhood["incoming_nodes"]): + if edge.get("type") == "prerequisite": + title = node.get("title", node.get("id", "")) + if title not in seen: + seen.add(title) + titles.append(title) + return titles + + +def lesson_titles_for_concept(bundle: GraphBundle, concept_id: str) -> list[str]: + neighborhood = concept_neighborhood(bundle, concept_id) + titles = [] + seen = set() + for edge, node in zip(neighborhood["incoming"], neighborhood["incoming_nodes"]): + if edge.get("type") in {"supports_concept", "teaches_concept"} and node.get("type") == "lesson": + title = node.get("title", node.get("id", "")) + if title not in seen: + seen.add(title) + titles.append(title) + return titles diff --git a/src/didactopus/knowledge_graph.py b/src/didactopus/knowledge_graph.py new file mode 100644 index 0000000..fb54bd2 --- /dev/null +++ b/src/didactopus/knowledge_graph.py @@ -0,0 +1,219 @@ +from __future__ import annotations + +import json +import re +from pathlib import Path + +from .course_schema import ConceptCandidate, NormalizedCourse + + +def _slugify(text: str) -> str: + cleaned = re.sub(r"[^a-zA-Z0-9]+", "-", text.strip().lower()).strip("-") + return cleaned or "untitled" + + +def _source_node_id(source_path: str) -> str: + return f"source::{_slugify(source_path)}" + + +def _module_node_id(module_title: str) -> str: + return f"module::{_slugify(module_title)}" + + +def _lesson_node_id(module_title: str, lesson_title: str) -> str: + return f"lesson::{_slugify(module_title)}::{_slugify(lesson_title)}" + + +def _concept_node_id(concept_id: str) -> str: + return f"concept::{concept_id}" + + +def _signal_node_id(kind: str, lesson_title: str, idx: int) -> str: + return f"{kind}::{_slugify(lesson_title)}::{idx}" + + +def _add_node(nodes: dict[str, dict], node_id: str, node_type: str, **attrs) -> None: + node = nodes.setdefault(node_id, {"id": node_id, "type": node_type}) + for key, value in attrs.items(): + if value not in (None, "", [], {}): + node[key] = value + + +def _add_edge(edges: list[dict], source: str, target: str, edge_type: str, justification: str, provenance: list[str] | None = None, confidence: float = 1.0) -> None: + edges.append( + { + "source": source, + "target": target, + "type": edge_type, + "justification": justification, + "provenance": list(provenance or []), + "confidence": confidence, + } + ) + + +def build_knowledge_graph(course: NormalizedCourse, concepts: list[ConceptCandidate]) -> dict: + nodes: dict[str, dict] = {} + edges: list[dict] = [] + + for source in course.source_records: + source_id = _source_node_id(source.source_path) + _add_node( + nodes, + source_id, + "source", + title=source.title or source.source_path, + source_path=source.source_path, + source_type=source.source_type, + metadata=getattr(source, "metadata", {}), + ) + + concept_ids = {concept.id for concept in concepts} + for concept in concepts: + concept_node_id = _concept_node_id(concept.id) + _add_node( + nodes, + concept_node_id, + "concept", + title=concept.title, + description=concept.description, + source_modules=list(concept.source_modules), + source_lessons=list(concept.source_lessons), + source_courses=list(concept.source_courses), + mastery_signals=list(concept.mastery_signals), + ) + + for module in course.modules: + module_id = _module_node_id(module.title) + _add_node(nodes, module_id, "module", title=module.title) + for lesson in module.lessons: + lesson_id = _lesson_node_id(module.title, lesson.title) + _add_node( + nodes, + lesson_id, + "lesson", + title=lesson.title, + module_title=module.title, + body=lesson.body, + source_refs=list(lesson.source_refs), + key_terms=list(lesson.key_terms), + ) + _add_edge( + edges, + module_id, + lesson_id, + "contains_lesson", + justification=f"Lesson '{lesson.title}' appears under module '{module.title}'.", + provenance=list(lesson.source_refs), + ) + for source_ref in lesson.source_refs: + source_id = _source_node_id(source_ref) + if source_id in nodes: + _add_edge( + edges, + source_id, + lesson_id, + "derived_lesson", + justification=f"Lesson '{lesson.title}' was ingested from source '{source_ref}'.", + provenance=[source_ref], + ) + + for idx, objective in enumerate(lesson.objectives, start=1): + objective_id = _signal_node_id("objective", lesson.title, idx) + _add_node(nodes, objective_id, "assessment_signal", title=objective, signal_kind="objective") + _add_edge( + edges, + lesson_id, + objective_id, + "has_objective", + justification=f"Objective {idx} was extracted from lesson '{lesson.title}'.", + provenance=list(lesson.source_refs), + ) + + for idx, exercise in enumerate(lesson.exercises, start=1): + exercise_id = _signal_node_id("exercise", lesson.title, idx) + _add_node(nodes, exercise_id, "assessment_signal", title=exercise, signal_kind="exercise") + _add_edge( + edges, + lesson_id, + exercise_id, + "has_exercise", + justification=f"Exercise {idx} was extracted from lesson '{lesson.title}'.", + provenance=list(lesson.source_refs), + ) + + lesson_concept_id = _concept_node_id(_slugify(lesson.title)) + if lesson_concept_id in nodes: + _add_edge( + edges, + lesson_id, + lesson_concept_id, + "teaches_concept", + justification=f"Lesson '{lesson.title}' yields the lesson-level concept '{lesson.title}'.", + provenance=list(lesson.source_refs), + ) + + for term in lesson.key_terms: + term_id = _concept_node_id(_slugify(term)) + if term_id in nodes: + _add_edge( + edges, + lesson_id, + term_id, + "mentions_concept", + justification=f"Key term '{term}' was extracted from lesson '{lesson.title}'.", + provenance=list(lesson.source_refs), + confidence=0.7, + ) + + for concept in concepts: + concept_node_id = _concept_node_id(concept.id) + for prereq in concept.prerequisites: + prereq_id = _concept_node_id(prereq) + if prereq_id in nodes: + _add_edge( + edges, + prereq_id, + concept_node_id, + "prerequisite", + justification=f"Concept '{concept.title}' depends on prerequisite '{prereq}'.", + provenance=list(concept.source_courses), + confidence=0.85, + ) + for lesson_title in concept.source_lessons: + lesson_sources = [module.title for module in course.modules if any(lesson.title == lesson_title for lesson in module.lessons)] + for module in course.modules: + for lesson in module.lessons: + if lesson.title != lesson_title: + continue + lesson_id = _lesson_node_id(module.title, lesson.title) + if concept_node_id in nodes and lesson_id in nodes: + _add_edge( + edges, + lesson_id, + concept_node_id, + "supports_concept", + justification=f"Concept '{concept.title}' was extracted from lesson '{lesson.title}'.", + provenance=list(lesson.source_refs), + confidence=0.9 if concept.id == _slugify(lesson.title) else 0.7, + ) + + return { + "course_title": course.title, + "rights_note": course.rights_note, + "summary": { + "node_count": len(nodes), + "edge_count": len(edges), + "concept_count": len(concepts), + "source_count": len(course.source_records), + }, + "nodes": list(nodes.values()), + "edges": edges, + } + + +def write_knowledge_graph(course: NormalizedCourse, concepts: list[ConceptCandidate], outdir: str | Path) -> None: + out = Path(outdir) + out.mkdir(parents=True, exist_ok=True) + payload = build_knowledge_graph(course, concepts) + (out / "knowledge_graph.json").write_text(json.dumps(payload, indent=2), encoding="utf-8") diff --git a/src/didactopus/ocw_information_entropy_demo.py b/src/didactopus/ocw_information_entropy_demo.py index 068cd2d..9fb3201 100644 --- a/src/didactopus/ocw_information_entropy_demo.py +++ b/src/didactopus/ocw_information_entropy_demo.py @@ -15,6 +15,7 @@ from .mastery_ledger import ( export_capability_profile_json, export_capability_report_markdown, ) +from .knowledge_graph import write_knowledge_graph from .pack_emitter import build_draft_pack, write_draft_pack, write_source_corpus from .rule_policy import RuleContext, build_default_rules, run_rules from .topic_ingest import build_topic_bundle, document_to_course, extract_concept_candidates, merge_courses_into_topic_course @@ -167,6 +168,7 @@ def run_ocw_information_entropy_demo( ) write_draft_pack(draft, pack_dir) write_source_corpus(merged, pack_dir) + write_knowledge_graph(merged, ctx.concepts, pack_dir) if source_inventory.exists(): inventory = load_sources(source_inventory) compliance_manifest = build_pack_compliance_manifest(draft.pack["name"], draft.pack["display_name"], inventory) @@ -210,6 +212,7 @@ def run_ocw_information_entropy_demo( "review_flags": list(ctx.review_flags), "concept_count": len(ctx.concepts), "source_fragment_count": len(json.loads((pack_dir / "source_corpus.json").read_text(encoding="utf-8")).get("fragments", [])), + "knowledge_graph_summary": json.loads((pack_dir / "knowledge_graph.json").read_text(encoding="utf-8")).get("summary", {}), "target_concept": target_key, "curriculum_path": concept_path, "mastered_concepts": sorted(state.mastered_concepts), diff --git a/src/didactopus/ocw_rolemesh_transcript_demo.py b/src/didactopus/ocw_rolemesh_transcript_demo.py index 0b104f8..bb0863f 100644 --- a/src/didactopus/ocw_rolemesh_transcript_demo.py +++ b/src/didactopus/ocw_rolemesh_transcript_demo.py @@ -5,6 +5,7 @@ from pathlib import Path import sys from .config import load_config +from .graph_retrieval import lesson_titles_for_concept, prerequisite_titles, source_fragments_for_concept from .model_provider import ModelProvider from .ocw_skill_agent_demo import load_ocw_skill_context from .role_prompts import evaluator_system_prompt, learner_system_prompt, mentor_system_prompt, practice_system_prompt @@ -153,6 +154,34 @@ def _path_titles(context, limit: int | None = None) -> list[str]: return titles[:limit] if limit is not None else titles +def _concept_by_title(context, title: str) -> dict | None: + lowered = title.strip().lower() + for concept in context.concepts: + if str(concept.get("title", "")).strip().lower() == lowered: + return concept + return None + + +def _grounding_text_for_title(context, title: str) -> str: + concept = _concept_by_title(context, title) + if concept is None: + return "" + concept_id = concept.get("id", "") + prereqs = prerequisite_titles(context.graph_bundle, concept_id) + lessons = lesson_titles_for_concept(context.graph_bundle, concept_id) + fragments = source_fragments_for_concept(context.graph_bundle, concept_id, limit=2) + fragment_lines = [fragment.get("text", "") for fragment in fragments if fragment.get("text")] + lines = [ + f"Concept focus: {title}", + f"Prerequisites: {', '.join(prereqs) if prereqs else 'none explicit'}", + f"Supporting lessons: {', '.join(lessons) if lessons else title}", + ] + if fragment_lines: + lines.append("Grounding fragments:") + lines.extend(f"- {line}" for line in fragment_lines) + return "\n".join(lines) + + def _healthy_rolemesh_models(provider: ModelProvider) -> set[str]: config = provider.config if config.provider.lower() != "rolemesh": @@ -240,6 +269,8 @@ def build_ocw_rolemesh_transcript(config_path: str | Path, skill_dir: str | Path mentor_guidance = _generate_checked( provider, + f"{_grounding_text_for_title(context, path_titles[1])}\n\n" + f"{_grounding_text_for_title(context, path_titles[2])}\n\n" "Given the learner reflection, explain the first two concepts to study from the generated path and why. " f"Path reference: {path_titles[:4]}", role="mentor", @@ -254,6 +285,8 @@ def build_ocw_rolemesh_transcript(config_path: str | Path, skill_dir: str | Path practice_task = _generate_checked( provider, + f"{_grounding_text_for_title(context, path_titles[1])}\n\n" + f"{_grounding_text_for_title(context, path_titles[2])}\n\n" "Generate one short practice task that forces the learner to connect counting/probability with Shannon entropy, " "without giving away the full answer.", role="practice", @@ -282,6 +315,7 @@ def build_ocw_rolemesh_transcript(config_path: str | Path, skill_dir: str | Path evaluator_feedback = _generate_checked( provider, + f"{_grounding_text_for_title(context, path_titles[2])}\n\n" "Evaluate this learner attempt for correctness, explanation quality, and limitations. " f"Task: {practice_task}\nAttempt: {learner_attempt}", role="evaluator", @@ -296,6 +330,7 @@ def build_ocw_rolemesh_transcript(config_path: str | Path, skill_dir: str | Path mentor_next_step = _generate_checked( provider, + f"{_grounding_text_for_title(context, 'Channel Capacity')}\n\n" "Given the evaluator feedback, tell the learner what to do next before moving on to channel capacity. " "Use the course path to show what comes next.", role="mentor", @@ -313,18 +348,21 @@ def build_ocw_rolemesh_transcript(config_path: str | Path, skill_dir: str | Path "topic": "Channel Capacity", "path_slice": path_titles[4:7] or path_titles, "practice_anchor": "binary symmetric channel", + "grounding_title": "Channel Capacity", "required_terms": ["channel", "capacity", "entropy", "noise"], }, { "topic": "Coding and Compression", "path_slice": path_titles[5:9] or path_titles, "practice_anchor": "compression and error-correcting code", + "grounding_title": "Source Coding and Compression", "required_terms": ["coding", "compression", "redundancy", "error"], }, { "topic": "Thermodynamic Entropy and Synthesis", "path_slice": path_titles[8:] or path_titles, "practice_anchor": "thermodynamic entropy", + "grounding_title": "Thermodynamics and Entropy", "required_terms": ["thermodynamic", "entropy", "information", "physical"], }, ] @@ -332,6 +370,7 @@ def build_ocw_rolemesh_transcript(config_path: str | Path, skill_dir: str | Path for stage in stage_specs: mentor_stage = _generate_checked( provider, + f"{_grounding_text_for_title(context, stage['grounding_title'])}\n\n" f"The learner is continuing through the MIT OCW Information and Entropy course. " f"Bridge from the previous work into {stage['topic']}. " f"Reference this path segment: {stage['path_slice']}. " @@ -362,6 +401,7 @@ def build_ocw_rolemesh_transcript(config_path: str | Path, skill_dir: str | Path practice_stage = _generate_checked( provider, + f"{_grounding_text_for_title(context, stage['grounding_title'])}\n\n" f"Create one short reasoning task about {stage['practice_anchor']} for the learner. " "Keep it course-relevant and do not provide the full solution.", role="practice", @@ -376,6 +416,7 @@ def build_ocw_rolemesh_transcript(config_path: str | Path, skill_dir: str | Path evaluator_stage = _generate_checked( provider, + f"{_grounding_text_for_title(context, stage['grounding_title'])}\n\n" f"Give short evaluator feedback on this learner reflection in the context of {stage['topic']}: " f"{learner_stage}\nTask context: {practice_stage}", role="evaluator", @@ -393,6 +434,7 @@ def build_ocw_rolemesh_transcript(config_path: str | Path, skill_dir: str | Path "skill": context.skill_name, "course": context.pack.get("display_name", context.pack.get("name", "")), "curriculum_path_titles": path_titles, + "graph_grounding_summary": context.run_summary.get("knowledge_graph_summary", {}), "role_fallbacks": role_fallbacks, "status_updates": status_updates, "transcript": turns, diff --git a/src/didactopus/ocw_skill_agent_demo.py b/src/didactopus/ocw_skill_agent_demo.py index 0b5608c..c797fe9 100644 --- a/src/didactopus/ocw_skill_agent_demo.py +++ b/src/didactopus/ocw_skill_agent_demo.py @@ -7,6 +7,7 @@ from pathlib import Path import yaml from .evaluator_pipeline import CritiqueEvaluator, LearnerAttempt, RubricEvaluator, SymbolicRuleEvaluator, aggregate, run_pipeline +from .graph_retrieval import GraphBundle, lesson_titles_for_concept, prerequisite_titles, source_fragments_for_concept @dataclass @@ -17,6 +18,7 @@ class SkillContext: capability_summary: str pack: dict concepts: list[dict] + graph_bundle: GraphBundle capability_profile: dict run_summary: dict @@ -46,6 +48,10 @@ def load_ocw_skill_context(skill_dir: str | Path) -> SkillContext: capability_summary=(skill_dir / "references" / "generated-capability-summary.md").read_text(encoding="utf-8"), pack=yaml.safe_load((pack_dir / "pack.yaml").read_text(encoding="utf-8")) or {}, concepts=(yaml.safe_load((pack_dir / "concepts.yaml").read_text(encoding="utf-8")) or {}).get("concepts", []), + graph_bundle=GraphBundle( + knowledge_graph=json.loads((pack_dir / "knowledge_graph.json").read_text(encoding="utf-8")), + source_corpus=json.loads((pack_dir / "source_corpus.json").read_text(encoding="utf-8")), + ), capability_profile=json.loads((run_dir / "capability_profile.json").read_text(encoding="utf-8")), run_summary=json.loads((run_dir / "run_summary.json").read_text(encoding="utf-8")), ) @@ -88,8 +94,16 @@ def build_skill_grounded_study_plan(context: SkillContext, target_task: str) -> "concept_key": concept_key, "title": concept["title"], "status": "mastered" if concept_key in context.capability_profile.get("mastered_concepts", []) else "review-needed", - "prerequisites": [ - _concept_key(pack_name, prereq) for prereq in concept.get("prerequisites", []) + "prerequisites": [_concept_key(pack_name, prereq) for prereq in concept.get("prerequisites", [])], + "prerequisite_titles": prerequisite_titles(context.graph_bundle, concept_id), + "supporting_lessons": lesson_titles_for_concept(context.graph_bundle, concept_id), + "source_fragments": [ + { + "lesson_title": fragment.get("lesson_title", ""), + "kind": fragment.get("kind", ""), + "text": fragment.get("text", ""), + } + for fragment in source_fragments_for_concept(context.graph_bundle, concept_id, limit=2) ], "recommended_action": ( f"Use {concept['title']} as the primary teaching anchor." @@ -115,10 +129,14 @@ def build_skill_grounded_explanation(context: SkillContext, concept_id: str) -> concept_key = _concept_key(pack_name, concept_id) summary = context.capability_profile.get("evaluator_summary_by_concept", {}).get(concept_key, {}) + prereqs = prerequisite_titles(context.graph_bundle, concept_id) + lessons = lesson_titles_for_concept(context.graph_bundle, concept_id) + fragments = source_fragments_for_concept(context.graph_bundle, concept_id, limit=2) explanation = ( f"{concept['title']} is represented in the Information and Entropy skill as part of a progression from " f"foundational probability ideas toward communication limits and physical interpretation. " - f"It depends on {', '.join(concept.get('prerequisites', []) or ['no explicit prerequisites in the generated pack'])}. " + f"It depends on {', '.join(prereqs or concept.get('prerequisites', []) or ['no explicit prerequisites in the generated pack'])}. " + f"It is grounded by lessons such as {', '.join(lessons or [concept['title']])}. " f"The current demo learner already mastered this concept, with evaluator means {summary}, so the skill can use it as a stable explanation anchor." ) return { @@ -126,6 +144,17 @@ def build_skill_grounded_explanation(context: SkillContext, concept_id: str) -> "title": concept["title"], "explanation": explanation, "source_description": concept.get("description", ""), + "grounding": { + "supporting_lessons": lessons, + "source_fragments": [ + { + "lesson_title": fragment.get("lesson_title", ""), + "kind": fragment.get("kind", ""), + "text": fragment.get("text", ""), + } + for fragment in fragments + ], + }, } @@ -154,6 +183,7 @@ def evaluate_submission_with_skill(context: SkillContext, concept_id: str, submi "skill_reference": { "skill_name": context.skill_name, "mastered_by_demo_agent": mastered_reference, + "supporting_lessons": lesson_titles_for_concept(context.graph_bundle, concept_id), }, "follow_up": ( "Extend the answer with an explicit limitation or assumption." @@ -205,6 +235,7 @@ def run_ocw_skill_agent_demo(skill_dir: str | Path, out_dir: str | Path) -> dict "", "## Explanation Demo", explanation["explanation"], + f"- Supporting lessons: {explanation['grounding']['supporting_lessons']}", "", "## Evaluation Demo", f"- Verdict: {evaluation['verdict']}", diff --git a/src/didactopus/pack_emitter.py b/src/didactopus/pack_emitter.py index 37dcc6a..3f6c76a 100644 --- a/src/didactopus/pack_emitter.py +++ b/src/didactopus/pack_emitter.py @@ -87,7 +87,7 @@ def build_draft_pack( "overrides": [], "profile_templates": {}, "cross_pack_links": [], - "supporting_artifacts": ["source_corpus.json"], + "supporting_artifacts": ["source_corpus.json", "knowledge_graph.json"], } concepts_yaml = { "concepts": [ diff --git a/tests/test_knowledge_graph.py b/tests/test_knowledge_graph.py new file mode 100644 index 0000000..f8e55b9 --- /dev/null +++ b/tests/test_knowledge_graph.py @@ -0,0 +1,44 @@ +from pathlib import Path +import json + +from didactopus.course_ingest import parse_markdown_course, extract_concept_candidates +from didactopus.knowledge_graph import build_knowledge_graph, write_knowledge_graph +from didactopus.rule_policy import RuleContext, build_default_rules, run_rules + + +SAMPLE = """ +# Sample Course + +## Module 1 +### Lesson A +- Objective: Explain Topic A. +- Exercise: Do task A. +Topic A body. + +### Lesson B +- Objective: Explain Topic B. +Lesson B body. +""" + + +def test_build_knowledge_graph_contains_typed_nodes_and_edges(tmp_path: Path) -> None: + course = parse_markdown_course(SAMPLE, "Sample Course") + concepts = extract_concept_candidates(course) + ctx = RuleContext(course=course, concepts=concepts) + run_rules(ctx, build_default_rules()) + + payload = build_knowledge_graph(course, ctx.concepts) + node_types = {node["type"] for node in payload["nodes"]} + edge_types = {edge["type"] for edge in payload["edges"]} + + assert payload["summary"]["concept_count"] >= 2 + assert "source" in node_types + assert "lesson" in node_types + assert "concept" in node_types + assert "assessment_signal" in node_types + assert "contains_lesson" in edge_types + assert "teaches_concept" in edge_types or "supports_concept" in edge_types + + write_knowledge_graph(course, ctx.concepts, tmp_path) + written = json.loads((tmp_path / "knowledge_graph.json").read_text(encoding="utf-8")) + assert written["summary"]["node_count"] >= len(payload["nodes"]) diff --git a/tests/test_ocw_rolemesh_transcript_demo.py b/tests/test_ocw_rolemesh_transcript_demo.py index 83a6429..d045021 100644 --- a/tests/test_ocw_rolemesh_transcript_demo.py +++ b/tests/test_ocw_rolemesh_transcript_demo.py @@ -28,11 +28,13 @@ def test_ocw_rolemesh_transcript_demo_writes_artifacts(tmp_path: Path) -> None: assert payload["provider"] == "stub" assert len(payload["transcript"]) >= 16 assert len(payload["curriculum_path_titles"]) >= 8 + assert payload["graph_grounding_summary"]["node_count"] >= 1 assert payload["role_fallbacks"] == {} assert payload["status_updates"] == [] assert any(turn["speaker"] == "Didactopus Evaluator" for turn in payload["transcript"]) assert any("channel" in turn["content"].lower() for turn in payload["transcript"]) assert any("thermodynamic" in turn["content"].lower() for turn in payload["transcript"]) + assert any("supporting lessons" in turn["content"].lower() or "grounding fragments" in turn["content"].lower() for turn in payload["transcript"]) assert all(not _looks_truncated(turn["content"]) for turn in payload["transcript"]) assert (tmp_path / "rolemesh_transcript.json").exists() assert (tmp_path / "rolemesh_transcript.md").exists() diff --git a/tests/test_ocw_skill_agent_demo.py b/tests/test_ocw_skill_agent_demo.py index b8720ba..a724960 100644 --- a/tests/test_ocw_skill_agent_demo.py +++ b/tests/test_ocw_skill_agent_demo.py @@ -17,6 +17,9 @@ def test_run_ocw_skill_agent_demo(tmp_path: Path) -> None: assert (tmp_path / "skill_demo.json").exists() assert (tmp_path / "skill_demo.md").exists() assert payload["study_plan"]["steps"] + assert payload["study_plan"]["steps"][0]["supporting_lessons"] + assert "grounding" in payload["explanation"] + assert payload["explanation"]["grounding"]["supporting_lessons"] assert payload["evaluation"]["verdict"] in {"acceptable", "needs_revision"} @@ -30,4 +33,5 @@ def test_skill_demo_flags_weak_submission() -> None: ) assert result["verdict"] == "needs_revision" + assert result["skill_reference"]["supporting_lessons"] assert "Rework the answer" in result["follow_up"] diff --git a/tests/test_pack_emitter.py b/tests/test_pack_emitter.py index 5db707a..b1ff8b0 100644 --- a/tests/test_pack_emitter.py +++ b/tests/test_pack_emitter.py @@ -1,7 +1,8 @@ from pathlib import Path from didactopus.course_ingest import parse_markdown_course, extract_concept_candidates +from didactopus.knowledge_graph import write_knowledge_graph from didactopus.rule_policy import RuleContext, build_default_rules, run_rules -from didactopus.pack_emitter import build_draft_pack, write_draft_pack +from didactopus.pack_emitter import build_draft_pack, write_draft_pack, write_source_corpus SAMPLE = ''' # Sample Course @@ -20,5 +21,9 @@ def test_emit_pack(tmp_path: Path) -> None: run_rules(ctx, build_default_rules()) draft = build_draft_pack(course, ctx.concepts, "Tester", "REVIEW", ctx.review_flags) write_draft_pack(draft, tmp_path) + write_source_corpus(course, tmp_path) + write_knowledge_graph(course, ctx.concepts, tmp_path) assert (tmp_path / "pack.yaml").exists() assert (tmp_path / "review_report.md").exists() + assert (tmp_path / "source_corpus.json").exists() + assert (tmp_path / "knowledge_graph.json").exists()