Skip to content

Difficulty / Depth Metric for Mathematical Objects #5

Description

@eugnes03

Problem

MathAtlas currently lists objects without any indication of their relative difficulty or abstraction level.

However, mathematical results naturally form layers of increasing complexity.

For example:

Group
  ↓
Representation
  ↓
Irreducible Representation
  ↓
Schur's Lemma

Users studying from their notes often want to understand:

  • which objects are foundational
  • which results are more advanced
  • the natural learning order of concepts

Right now the site does not expose this structural information.


Proposed Solution

Compute a difficulty score for each object based on its position in the dependency graph.

A simple definition:

difficulty = length of the longest dependency chain ending at that object

Example:

Group → difficulty 1
Representation → difficulty 2
Irreducible Representation → difficulty 3
Schur's Lemma → difficulty 4

This metric reflects how many conceptual layers are required before reaching the object.


Implementation

Extend mathatlas.graph to compute node depth.

The dependency graph is already a directed acyclic graph (DAG), so we can compute the longest path.

Suggested function:

compute-difficulty

Output should be a map:

object-id → depth

Example:

{"abc123" 3
 "def456" 1
 "ghi789" 4}

This value can then be attached to objects during site generation.


UI

Display difficulty on object pages.

Example:

Difficulty: ★★★★☆

or alternatively:

Difficulty Level: 4

Objects could also be sortable by difficulty on index pages.


Site Generation Changes

During site generation:

  1. compute difficulty values for all objects
  2. attach difficulty metadata when rendering object pages
  3. optionally allow sorting objects by difficulty

Acceptance Criteria

  • a difficulty score is computed for every object
  • difficulty values reflect dependency depth
  • difficulty is displayed on object pages
  • computation works across files and areas
  • the feature does not slow down site generation significantly

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions