Didactopus/docs/learning-graph.md

62 lines
1.8 KiB
Markdown

# Merged Learning Graph
The merged learning graph is the pack-composition layer that connects validated domain packs into one learner-facing prerequisite model.
## What the code builds today
`didactopus.learning_graph.build_merged_learning_graph(...)` produces a `MergedLearningGraph` containing:
- `concept_data`
- `stage_catalog`
- `project_catalog`
- `load_order`
- `graph`
Concept keys are namespaced as:
```text
pack-name::concept-id
```
## Inputs
The merged graph is built from validated `PackValidationResult` objects, typically discovered through `didactopus.artifact_registry.discover_domain_packs(...)`.
## Overrides
Pack manifests can explicitly replace a previously defined concept through:
```yaml
overrides:
- foundations-statistics::descriptive-statistics
```
If the overriding pack defines `descriptive-statistics`, the merged graph will store that concept under the overridden namespaced key.
## Current exported behaviors
The learning-graph and graph-builder layers currently support:
- merged prerequisite DAG construction
- namespaced prerequisite edges
- stage catalog aggregation
- project catalog aggregation
- concept-graph export through `didactopus.graph_builder`
- learner roadmap generation through `generate_learner_roadmap(...)`
## Relationship to the concept graph
`didactopus.graph_builder.build_concept_graph(...)` takes the merged graph inputs and produces the learner-facing `ConceptGraph`, which powers:
- curriculum path extraction
- ready concept detection
- semantic-link suggestions
- planner scoring
## Known limitations
- stage dependencies are still implicit rather than separately modeled
- cross-pack links are supported but still lightweight
- roadmap generation is pack-derived rather than learner-personalized
- richer graph export/visualization is still evolving