Skip to content

Learning Graph Quality Metrics Report

Overview

  • Total Concepts: 200
  • Foundational Concepts (no prerequisites, other concepts depend on them): 7
  • Terminal Nodes (nothing depends on them, but have prerequisites): 81
  • Orphaned Nodes (completely disconnected, no edges): 0
  • Concepts with Dependencies: 193
  • Average Dependencies per Concept: 1.98

Graph Structure Validation

  • Valid DAG Structure: ✅ Yes
  • Self-Dependencies: None detected ✅
  • Cycles Detected: 0

Foundational Concepts

These concepts have no prerequisites:

  • 1: Python Type Hints
  • 4: DataFrames
  • 8: SQL Databases
  • 9: Lazy Evaluation
  • 10: Method Chaining
  • 11: Visitor Pattern
  • 12: Directed Acyclic Graph

Dependency Chain Analysis

  • Maximum Dependency Chain Length: 11

Longest Learning Path:

  1. Method Chaining (ID: 10)
  2. col Function (ID: 25)
  3. Expression Building (ID: 27)
  4. BaseExpressionAPI (ID: 28)
  5. API Builder Protocols (ID: 76)
  6. Expression System Protocols (ID: 77)
  7. PolarsExpressionSystem (ID: 79)
  8. Polars Expr Compilation (ID: 82)
  9. Expression Testing (ID: 90)
  10. Cross-Backend Parametrize (ID: 91)
  11. xfail Known Quirks (ID: 92)

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: 81 (40.5% of all concepts)
  • Healthy Range: 5-40% of total concepts

Concepts at the end of learning paths:

  • 17: DataFrame Type Guards
  • 19: Lazy Import System
  • 21: BaseFactoryMixin
  • 30: Fluent Expression Chain
  • 35: List Namespace
  • 36: Name Namespace
  • 39: coalesce Function
  • 40: greatest Function
  • 41: least Function
  • 42: native Function
  • 43: Comparison Operations
  • 44: Arithmetic Operations
  • 45: Boolean Operations
  • 46: String Operations
  • 52: duration Function
  • 53: count_records Function
  • 54: corr Function
  • 56: ScalarFunctionNode
  • 57: FieldReferenceNode
  • 58: LiteralNode

...and 61 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 1 Python Type Hints 19
2 28 BaseExpressionAPI 18
3 96 Relation Class 17
4 115 RelationNode Base 15
5 4 DataFrames 10
6 2 Protocol Classes 9
7 55 ExpressionNode Base 9
8 169 RelationDAG 9
9 3 Pydantic Models 8
10 27 Expression Building 8

Outdegree Distribution

Dependencies Number of Concepts
0 7
1 38
2 128
3 21
4 4
5 2

Recommendations

  • ℹ️ High terminal node percentage (40.5%): 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