Learning Graph Quality Metrics Report¶
Overview¶
- Total Concepts: 100
- Foundational Concepts (no prerequisites, other concepts depend on them): 7
- Terminal Nodes (nothing depends on them, but have prerequisites): 45
- Orphaned Nodes (completely disconnected, no edges): 0
- Concepts with Dependencies: 93
- Average Dependencies per Concept: 1.82
Graph Structure Validation¶
- Valid DAG Structure: ✅ Yes
- Self-Dependencies: None detected ✅
- Cycles Detected: 0
Foundational Concepts¶
These concepts have no prerequisites:
- 1: Hierarchical Data
- 2: Relational Tables
- 5: Python Dataclasses
- 6: Python Protocols
- 11: YAML Configuration
- 12: Decorator Pattern
- 88: UniversalType Enum
Dependency Chain Analysis¶
- Maximum Dependency Chain Length: 8
Longest Learning Path:¶
- Python Dataclasses (ID: 5)
- StreamingConfig (ID: 25)
- SettingsConfig (ID: 15)
- TreeSpec Dataclass (ID: 13)
- TreeFlattener Class (ID: 28)
- BatchFlattener Class (ID: 53)
- Apply Dedup (ID: 61)
- Cascade Dedup (ID: 62)
Terminal Nodes Analysis¶
Terminal nodes are concepts that nothing else depends on but have prerequisites. They represent natural endpoints of learning paths — culminating or specialized concepts.
- Total Terminal Nodes: 45 (45.0% of all concepts)
- Healthy Range: 5-40% of total concepts
Concepts at the end of learning paths:
- 4: Round Trip Fidelity
- 7: Polars DataFrames
- 20: PivotEntry
- 26: Spec Loader
- 27: Spec Validator
- 30: Flatten Many Method
- 35: Routed Child Dispatch
- 37: Synthetic Key Generation
- 39: Snake Case Naming
- 40: Prefixed Name Builder
- 41: Null Handling Strategy
- 44: Build Many Method
- 47: Node Construction
- 49: Class Registry Lookup
- 51: Inline Child Rebuild
- 52: Separate Table Rebuild
- 54: BatchBuilder Class
- 56: Source Column Injection
- 58: Vertical Concat
- 59: Horizontal Concat
...and 25 more
Orphaned Nodes Analysis¶
Orphaned nodes are completely disconnected concepts with no inbound AND no outbound edges. These indicate a quality problem — every concept should connect to the graph.
- Total Orphaned Nodes: 0
✅ No orphaned nodes detected. All concepts are connected to the graph.
Connected Components¶
- Number of Connected Components: 1
✅ All concepts are connected in a single graph.
Indegree Analysis¶
Top 10 concepts that are prerequisites for the most other concepts:
| Rank | Concept ID | Concept Label | Indegree |
|---|---|---|---|
| 1 | 5 | Python Dataclasses | 16 |
| 2 | 65 | SchemaHandler Protocol | 12 |
| 3 | 17 | ChildSpec Dataclass | 8 |
| 4 | 1 | Hierarchical Data | 7 |
| 5 | 2 | Relational Tables | 7 |
| 6 | 16 | NodeSpec Dataclass | 7 |
| 7 | 42 | TreeBuilder Class | 6 |
| 8 | 10 | Primary Keys | 5 |
| 9 | 66 | SchemaFieldInfo Protocol | 5 |
| 10 | 88 | UniversalType Enum | 5 |
Outdegree Distribution¶
| Dependencies | Number of Concepts |
|---|---|
| 0 | 7 |
| 1 | 34 |
| 2 | 46 |
| 3 | 9 |
| 4 | 4 |
Recommendations¶
- ℹ️ High terminal node percentage (45.0%): Consider if some terminal concepts should be prerequisites for advanced concepts
- ✅ DAG structure verified: Graph supports valid learning progressions
Report generated by learning-graph-reports/analyze_graph.py