Schema Diagrams
Visual reference for how the data schema fits together. All diagrams are derived from data/schema.ts.
Entity-Relationship Overview
This ER diagram shows the core data types and how they reference each other. Primary keys are marked; foreign key references show how entities cross-link.
Entity Base Fields (Class Diagram)
Every entity shares these fields. Type-specific fields (like severity for risks or orgType for organizations) are layered on top.
Standalone Data Types
These types have their own YAML files and are separate from the entity system.
Expert & Organization
Estimate & Crux
Resource & Publication
Graph Systems
The wiki has three distinct graph systems for different purposes.
1. Cause-Effect Graphs (Entity-embedded)
Used on individual entity pages to show causal factors. Rendered with React Flow.
2. Risk Dependency Graphs (Standalone)
Used for modeling risk dependencies across the system.
3. Master Graph (Unified causal model)
A single large graph that entity pages extract subgraphs from. Supports multi-page views with per-entity highlighting.
Relationship Types (45 total)
All relationship types grouped by semantic category. "A → B" means "A [relationship] B".
| Category | Types | Semantics |
|---|---|---|
| Causal | causes, cause, drives, driven-by, driver, affects, amplifies, leads-to, contributes-to, shaped-by | A influences or produces B |
| Mitigation | mitigates, mitigated-by, mitigation, blocks, addresses | A reduces or prevents B |
| Dependency | requires, enables, prerequisite, child-of, composed-of, component, supersedes | A structurally depends on or contains B |
| Measurement | measures, measured-by, analyzes, analyzed-by, models, increases, decreases, supports | A quantifies or tracks B |
| Classification | related, example, mechanism, outcome, consequence, manifestation, key-factor, scenario, sub-scenario, research, vulnerable-technique | A is categorically related to B |
How relationships flow through the system:
Enum Reference
EntityType (24 canonical + 11 aliases)
Canonical types by group:
| Group | Types |
|---|---|
| Content | risk, risk-factor, capability, concept, crux, argument, case-study |
| Safety | safety-agenda, approach, project, policy |
| People/Orgs | person, organization, funder |
| Analysis | model, parameter, metric, analysis, scenario |
| AI Transition | ai-transition-model-parameter, ...metric, ...scenario, ...factor, ...subitem |
| Other | resource, historical, event, debate, table, diagram, insight, intelligence-paradigm |
Legacy aliases (kept for backward compatibility):
| Alias | Resolves to |
|---|---|
researcher | person |
lab, lab-frontier, lab-research, lab-startup, lab-academic | organization |
safety-approaches | safety-agenda |
policies | policy |
concepts | concept |
events | event |
models | model |
Key Enum Values
| Enum | Values |
|---|---|
| Confidence | low, medium, high |
| Importance | low, medium, high, critical |
| EntityStatus | stub, draft, published, verified |
| ResearchMaturity | Neglected, Emerging, Growing, Mature |
| OrgType | frontier-lab, safety-org, academic, government, funder, policy |
| RiskCategory | accident, misuse, structural, epistemic |
| Severity | low, medium, medium-high, high, critical, catastrophic |
| LikelihoodLevel | low, medium, medium-high, high, very-high, near-certain |
| LikelihoodStatus | theoretical, emerging, occurring, established |
| ResourceType | paper, blog, report, book, talk, podcast, government, reference, web |
| PublicationType | academic_journal, preprint_server, think_tank, company_blog, government, blog_platform, news, organization, academic, code_repository, + more |
| Cluster | ai-safety, biorisks, cyber, epistemics, governance, community |
| Relationship Strength | weak, moderate, strong |
| CauseEffect Strength | weak, medium, strong |
| CauseEffect Effect | increases, decreases, mixed |
Data Flow: Build Pipeline
How build-data.mjs transforms raw data into the runtime database.
Detailed steps within build-data.mjs:
| Phase | Steps |
|---|---|
| Parse | Parse all YAML files, scan MDX frontmatter, auto-create entities for MDX pages without YAML |
| Transform | Assign stable numeric IDs (E1, E2...), type and validate against Zod, compute backlinks (invert relatedEntries) |
| Enrich | Build tag index, build path registry, resolve computed facts (topological sort), generate search index, generate MDX stubs from YAML ContentSections |
| Output | Write database.json, id-registry.json, individual JSON files, search index |
Facts System
Facts are canonical, referenceable values that can be computed from expressions referencing other facts.
Example fact file (data/facts/anthropic.yaml):
entity: anthropic
facts:
founding-year:
value: "2021"
numeric: 2021
source: "Wikipedia"
valuation:
compute: "{anthropic.funding} * 1.5"
format: "$%.1f billion"
formatDivisor: 1e9
Content Freshness Tracking
MDX frontmatter can include freshness metadata to track content staleness:
reviewBy: "2026-06-26" # When content should be reviewed
contentDependencies: # Entity IDs that affect this content
- deceptive-alignment
- mesa-optimization
lastReviewed: "2025-12-26"
reviewedBy: "ozzie"
stalenessRisk: "low" # low | medium | high
Source of truth: data/schema.ts (834 lines)