Skip to content

Concept Map & Knowledge Graph

This page provides two visual overviews: a concept map showing how topics in this documentation connect (so you can plan your learning path), and a knowledge graph demonstrating how AI coding assistants persist structured knowledge across sessions.

How These Docs Are Organized

The site has eight sections that form a progression:

Section Purpose
Getting Started Local development setup: WSL, VS Code, Python, AI tools
OSC Basics Connecting to OSC: accounts, SSH, remote development
Working on OSC Day-to-day work: environments, job submission, pipelines
ML Workflows Machine learning stack: PyTorch, PyG, experiment tracking
Contributing How to contribute to lab docs and use GitHub effectively
Assignments Course assignments and project templates
Resources Troubleshooting, useful links, and this concept map
Tags Browse all pages by topic tag

The concept map below shows the key prerequisite relationships between pages.

Docs Concept Map

flowchart TB
  subgraph GS["Getting Started"]
    wsl["WSL2 Setup"]
    vscode["VS Code Setup"]
    pyenv["Python Env Setup"]
    ai["AI Coding Assistants"]
    agent["Agent Workflows"]
    wsl --> vscode --> pyenv
    vscode --> ai --> agent
  end

  subgraph OB["OSC Basics"]
    account["Account Setup"]
    ssh["SSH Connection"]
    remote["Remote Development"]
    account --> ssh --> remote
  end

  subgraph WO["Working on OSC"]
    envmgmt["Environment Mgmt"]
    jobs["Job Submission"]
    pipeline["Pipeline Orchestration"]
    envmgmt --> jobs
    jobs --> pipeline
  end

  subgraph ML["ML Workflows"]
    pytorch["PyTorch & GPU Setup"]
    pyg["PyG Setup"]
    rapids["RAPIDS GPU"]
    mlwf["ML Project Template"]
    tracking["Data & Experiment Tracking"]
    duckdb["DuckDB Analytics"]
    hf["Hugging Face Spaces"]
    pytorch --> pyg
    pytorch --> rapids
    mlwf --> tracking --> duckdb
    tracking --> hf
  end

  %% Cross-section prerequisite edges
  pyenv --> envmgmt
  remote --> envmgmt
  jobs --> pytorch
  pytorch --> mlwf

Hub Pages

These five pages are referenced most often across the documentation. If you're looking for something, there's a good chance one of these is the right starting point.

Page Role
Job Submission Central reference for SLURM scripts, partitions, and job arrays
PyTorch & GPU Setup GPU environment setup, CUDA troubleshooting, performance tuning
Environment Management Modules, virtual environments, uv, and dependency management
Data & Experiment Tracking W&B, DVC, and the Parquet datalake pattern
SSH Connection SSH keys, config, ProxyJump, and connection troubleshooting

What Is a Knowledge Graph?

A knowledge graph stores information as a network of entities (things) connected by relations (how they relate). Each entity can have observations — facts or notes attached to it.

This is different from flat notes or documents:

  • Entities are named objects with a type (e.g., "PyTorch Setup" of type infrastructure)
  • Relations connect entities directionally (e.g., "MapViz Build" enables "DuckDB-WASM Plan")
  • Observations are free-text facts attached to an entity, like log entries

Knowledge graphs are used in AI systems to give agents persistent, structured memory. Claude Code's MCP memory server maintains a knowledge graph in ~/.claude/knowledge-graph.json that persists across coding sessions. When you use the /save skill or Claude learns something about your project, it stores that knowledge as entities and relations — so it can recall context in future sessions without re-reading every file.

NDJSON Format

The knowledge graph is stored as newline-delimited JSON (NDJSON). Each line is either an entity or a relation:

{"type": "entity", "name": "Database Architecture", "entityType": "architecture_decision", "observations": ["KD-GAT and Map-Viz converge on DuckDB + Parquet pattern"]}
{"type": "relation", "from": "Mosaic vgplot API", "to": "KD-GAT", "relationType": "used_by"}

Lab Knowledge Graph

The diagram below is auto-generated from ~/.claude/knowledge-graph.json using scripts/generate-kg-mermaid.py. It shows the 13 entities and their relationships from our lab's Claude Code memory server.

graph TB
    Database_Architecture["Database Architecture"]:::architecture_decision
    Context_Management_Rules["Context Management Rules"]:::convention
    Modular_Context_Architecture["Modular Context Architecture"]:::architecture_decision
    Context_Update_Log["Context Update Log"]:::changelog
    KD_GAT_Shell_Environment["KD-GAT Shell Environment"]:::canonical_answer
    Claude_Config_Best_Practices["Claude Config Best Practices"]:::architecture_decision
    KD_GAT_CI_CD_Pipeline["KD-GAT CI/CD Pipeline"]:::infrastructure
    KD_GAT_Quarto_Site["KD-GAT Quarto Site"]:::infrastructure
    Mosaic_vgplot_API["Mosaic vgplot API"]:::technology
    MapViz_Observable_Build["MapViz-Observable-Build"]:::milestone
    MapViz_DuckDB_WASM_Plan["MapViz-DuckDB-WASM-Plan"]:::architecture_decision
    pyarrow_parquet_stdout["pyarrow-parquet-stdout"]:::learning
    Mosaic_vgplot["Mosaic vgplot"]:::library

    MapViz_Observable_Build -->|enables| MapViz_DuckDB_WASM_Plan
    MapViz_DuckDB_WASM_Plan -->|depends_on| MapViz_Observable_Build

    classDef architecture_decision fill:#4A90D9,stroke:#2A5F9E,color:#fff,stroke-width:2px
    classDef canonical_answer fill:#27AE60,stroke:#1E8449,color:#fff,stroke-width:2px
    classDef changelog fill:#95A5A6,stroke:#717D7E,color:#fff,stroke-width:2px
    classDef convention fill:#9B59B6,stroke:#6C3483,color:#fff,stroke-width:2px
    classDef infrastructure fill:#E67E22,stroke:#BA4A00,color:#fff,stroke-width:2px
    classDef learning fill:#E91E90,stroke:#B3166E,color:#fff,stroke-width:2px
    classDef library fill:#1ABC9C,stroke:#0E8C73,color:#fff,stroke-width:2px
    classDef milestone fill:#F1C40F,stroke:#B7950B,color:#fff,stroke-width:2px
    classDef technology fill:#1ABC9C,stroke:#0E8C73,color:#fff,stroke-width:2px

Legend:

Color Entity Type Example
🟦 Blue Architecture Decision Database Architecture, Modular Context Architecture
🟪 Purple Convention Context Management Rules
🟧 Orange Infrastructure KD-GAT CI/CD Pipeline, Quarto Site
Teal Technology / Library Mosaic vgplot
Pink Learning pyarrow-parquet-stdout
Yellow Milestone MapViz-Observable-Build
Grey Changelog Context Update Log
🟩 Green Canonical Answer KD-GAT Shell Environment

Regenerating this diagram

To update the knowledge graph diagram after adding new entities:

python scripts/generate-kg-mermaid.py
Copy the output into the Mermaid code fence above.

Contributing

When you add a new page to the docs:

  1. Consider whether it should appear in the concept map above (skip minor/niche pages)
  2. If it's a key learning page, add a node in the appropriate subgraph and connect it with prerequisite edges
  3. Run mkdocs build --strict to verify no broken links

For the full guide to editing this site, see How This Site Works.