How This Site Works
How This Site Works
This website is organized using a lightweight ontology – a system of typed pages and explicit relationships between them. Every page declares what kind of content it is, and metadata fields encode how pages relate to each other.
This is the same approach I use in my clinical research work, where typed knowledge graphs organize reasoning about patients, treatments, evidence, and assumptions. Here, the same principle organizes a professional life.
The Node Types
Each page on this site has a node-type field in its front matter:
| Node Type | What It Represents | Example |
|---|---|---|
| person | The site owner | Home, About |
| project | A body of work | SCD Mortality, TxtArchive |
| role | A professional position | IU Health, Lucid |
| publication | A peer-reviewed paper | Listed on Publications |
| skill | A tool or domain | Cataloged on Skills |
| writing | An essay or teaching piece | Learning to Change |
| meta | This page – self-describing | You’re reading it |
The Edges (Relationships)
Relationships between pages are encoded as YAML metadata, not as a database:
| Relationship | How It’s Encoded | What It Means |
|---|---|---|
| uses-skill | skills: [r, tidymodels] in a project |
This project uses these tools |
| produced-during | role: iuhealth in a project |
This project was done during this role |
| demonstrates | skills: [statistics] in a publication |
This paper demonstrates this expertise |
| categorized-as | categories: [healthcare-ai] |
Standard Quarto cross-reference |
An Example
Here’s the front matter for the SCD Mortality project page:
---
title: "SCD Mortality Prediction"
node-type: project
status: active
role: iuhealth
skills: [r, tidymodels, ranger, shap, survival-analysis]
categories: [healthcare-ai, sickle-cell-disease]
---This single block of metadata tells you:
- What it is: a project (not a role, not a publication)
- Its status: active (not complete or archived)
- Where it happened: during the IU Health role
- What tools it uses: R, tidymodels, ranger, SHAP, survival analysis
- How to find it: under healthcare-ai and sickle-cell-disease categories
Why Bother?
Three reasons:
Consistency. Every project page has the same structure. Every role page has the same fields. This makes the site easier to maintain and extend.
Discoverability. When Quarto builds the site, listings auto-generate from page metadata. Add a new project page with the right front matter and it appears in the projects listing automatically.
The idea itself is interesting. In my clinical research, I’ve been building ontology schemas to organize reasoning about sickle cell disease – defining what counts as evidence, what counts as a constraint, how assumptions connect to claims. Applying the same principle to a personal website demonstrates that typed knowledge isn’t just an academic exercise. It’s a general-purpose way to organize information.
What This Is Not
This is not a graph database. There’s no JavaScript visualization, no SPARQL endpoint, no runtime query engine. The “graph” exists in the relationships encoded in YAML front matter. Quarto reads these fields and generates the site. The structure is a convention, enforced by consistency rather than software.
This is the same approach as Phase 1 of the SCDCernerProject architecture – convention-based ontology that improves reasoning without requiring infrastructure.
The Schema
The full schema is defined in _ontology-schema.yml at the project root. It specifies which fields are required and optional for each node type, and documents the edge types and their encoding conventions.