Learning Graph Quality Metrics Report¶
Overview¶
- Total Concepts: 130
- Foundational Concepts (no prerequisites, other concepts depend on them): 5
- Terminal Nodes (nothing depends on them, but have prerequisites): 46
- Orphaned Nodes (completely disconnected, no edges): 0
- Concepts with Dependencies: 125
- Average Dependencies per Concept: 1.84
Graph Structure Validation¶
- Valid DAG Structure: ✅ Yes
- Self-Dependencies: None detected ✅
- Cycles Detected: 0
Foundational Concepts¶
These concepts have no prerequisites:
- 1: Ternary Logic
- 3: Match Strategy Patterns
- 4: Pydantic Model Validation
- 5: Vectorized Evaluation
- 6: Backend-Agnostic Design
Dependency Chain Analysis¶
- Maximum Dependency Chain Length: 15
Longest Learning Path:¶
- Match Strategy Patterns (ID: 3)
- MatchStrategy Enum (ID: 11)
- Dimension Class (ID: 26)
- DimensionsMetadata (ID: 27)
- DimensionCompiler (ID: 31)
- ExpressionRulesEngine (ID: 40)
- AccumulatorEngine (ID: 68)
- Prime Number Encoding (ID: 69)
- Prime Table Sieve (ID: 70)
- Get Prime Function (ID: 71)
- Checked Multiply (ID: 72)
- Frontier Filter (ID: 76)
- Lattice Class (ID: 77)
- AccumulatorResult Class (ID: 83)
- Accumulated Aggregates (ID: 84)
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: 46 (35.4% of all concepts)
- Healthy Range: 5-40% of total concepts
Concepts at the end of learning paths:
- 13: NOT_EQUAL Strategy
- 24: CONSTRAINT Role
- 28: Field Resolution
- 29: Dimension Validator
- 42: Convenience vs Advanced Path
- 44: Context Binding Phase
- 50: Survivors Accessor
- 51: Best Match Accessor
- 52: Count Accessor
- 53: Active Dimensions
- 55: At Least Filter
- 56: Top N Filtering
- 57: Min Specificity Filter
- 58: Observability Columns
- 75: Canonical Ordering Guard
- 78: Lattice Combinations
- 79: Lattice Partition Key
- 80: Coalesced Columns
- 81: NA Flag Columns
- 84: Accumulated Aggregates
...and 26 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 | 11 | MatchStrategy Enum | 15 |
| 2 | 2 | Sentinel Values | 12 |
| 3 | 49 | RuleResult Class | 9 |
| 4 | 77 | Lattice Class | 9 |
| 5 | 100 | HitPolicy Enum | 9 |
| 6 | 31 | DimensionCompiler | 7 |
| 7 | 43 | Single-Pass Evaluation | 7 |
| 8 | 27 | DimensionsMetadata | 6 |
| 9 | 8 | Mountainash Expressions | 5 |
| 10 | 12 | EXACT Strategy | 5 |
Outdegree Distribution¶
| Dependencies | Number of Concepts |
|---|---|
| 0 | 5 |
| 1 | 54 |
| 2 | 52 |
| 3 | 13 |
| 4 | 2 |
| 5 | 1 |
| 6 | 1 |
| 7 | 2 |
Recommendations¶
- ✅ Terminal node percentage (35.4%): Within healthy range (5-40%)
- ✅ DAG structure verified: Graph supports valid learning progressions
Report generated by learning-graph-reports/analyze_graph.py