Skip to content

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:

  1. Python Dataclasses (ID: 5)
  2. StreamingConfig (ID: 25)
  3. SettingsConfig (ID: 15)
  4. TreeSpec Dataclass (ID: 13)
  5. TreeFlattener Class (ID: 28)
  6. BatchFlattener Class (ID: 53)
  7. Apply Dedup (ID: 61)
  8. 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