Blog · Gallery

Ontology gallery

Ready-made ontologies you can download, open and combine. Each one is a folder of plain Markdown: schema notes that declare node types, edge types and their properties, and a few example notes so the graph is not empty on first open.

Download all, composed (.zip) Read: composable ontology graphs Browse on GitHub

See how a Zettelkasten works

An ontology is a set of note types and the links allowed between them. Step through one real Zettelkasten, drawn from the example notes you can download below, from a quick capture to a chapter of writing.

Step 1 of 7

Capture

A thought arrives. You write it down as a fleeting note.

Look inside an ontology

Every ontology as a map: each shape is a type, each arrow a link its notes may have, with the colors and shapes written in the schema notes. Faint arrows are about links to topics.

Pick one

Zettelkasten

The note types of the method (fleeting, literature, permanent, structure and project notes), books, articles and papers with their writers, highlights and topics. Papers can cite each other, so their citation graph sits beside your notes. Moving a note forward leaves a link back, so the trail from capture to idea stays in the graph.

11 types FleetingNote LiteratureNote PermanentNote StructureNote ProjectNote BookSource ArticleSource PaperSource Highlight Writer Topic

15 edge types cites based_on processed_into highlighted_in authored_by about indexes draws_on extends supports example_of follows related_to contradicts derived_from

Every note gets a time-ordered uid, permanent notes can take Luhmann ids (1, 1a, 1a1) through child and sibling commands, and each note type has a template. Needs the plugin or the VS Code extension with TGS 0.2.

It answers: Which fleeting notes are still in the inbox? Which highlights have no literature note? Which permanent notes come from which book or paper?

See its map ↑

Book management

What you own, are reading and want to read, with authors, series, genres and saved quotes. status, started and finished give you a reading log.

5 types Book Author Series Genre Quote

6 edge types written_by in_series has_genre sequel_of inspired_by influenced quoted_from

It answers: What am I reading? Which series have I started and not finished?

See its map ↑

Coding and requirements

Requirements, scenarios, decisions, constraints and concepts, grown with stakeholders, releases and risks. The code ontology that tg init installs, extended for product work.

9 types Requirement Scenario Decision Constraint Concept Change Stakeholder Release Risk

15 edge types refines depends_on requested_by ships_in supersedes motivated_by constrains defines threatens mitigated_by introduced_by changed_by contradicts

It answers: Which must-have requirements have no release? Which open risks threaten stable requirements?

See its map ↑

Prompts and agents

A catalogue of prompts, the agents that use them, the tools and skills those agents call, the knowledge they read and the evals that score them.

6 types Prompt Agent Tool Skill Knowledge Eval

8 edge types uses_prompt calls_tool has_skill reads delegates_to derived_from composes evaluated_by

It answers: Which production prompts have no eval? Which autonomous agents can reach a destructive tool?

See its map ↑

OKF knowledge catalog

Tables, metrics, dashboards, glossary terms, runbooks and their owners, with the keys the Open Knowledge Format recommends on every type. A vault using it exports as a conformant OKF bundle.

6 types Table Metric Dashboard Term Runbook Person

6 edge types owned_by derived_from computed_from defined_by shown_in covers

It answers: Which metrics are computed from this table? Who owns the dashboard that shows them? What does the export look like for an agent? See Getting your vault OKF-ready.

See its map ↑

Several of them use the same edge words: contradicts in Zettelkasten and Requirements, derived_from in Prompts and agents and OKF. Each is declared once in a small shared core note that every download already contains, which is what lets them be combined. The article explains why.

Use one

  1. Download a .zip and unzip it. It contains Types/ (the schema), Examples/ and a README.
  2. In Obsidian, choose Open another vault → Open folder as vault, and turn on the Typed Graph plugin. The schema folder is Types/, which is the plugin's default.
  3. Open an example note. Its type: frontmatter is the label, and lines such as written_by:: [[Frank Herbert]] are typed edges. Add a block with MATCH (n) RETURN n to see the graph colored by the schema.
  4. Delete Examples/ and start writing your own notes.

Add one to a vault you already have

Copy the .md files from the ontology's Types/ folder into your vault's schema folder. Nothing else changes: notes with no type: are untouched, and notes whose type matches a schema are validated against it. Validation is advisory, so a missing property or a disallowed edge is a warning on the note and never removes anything from the graph.

Combine several

Put the schema notes of every ontology you want into the same Types/ folder, with Core.md. One note can then carry labels from two ontologies, for example type: [Book, BookSource] for a book that is also a source in your Zettelkasten. all.zip is exactly that: all five ontologies composed in one vault. Each type and edge type must be declared in one note only; the reader reports a duplicate and uses the first by path.

Use it from a project or another tool

tg schema export shapes.ttl --vault path/to/vault     # any ontology as W3C SHACL
tg schema import shapes.ttl --vault path/to/vault     # SHACL shapes back into schema notes

In a code repository, tg init --write installs the smaller code ontology with lat.md/. To use a gallery ontology there instead, keep its Types/ notes in a folder such as ontology/ and pass --schema-folder ontology. The format is the open Typed Graph Schema, so other tools can read it.

Make it yours

They are starting points. Rename a type, drop a property you will never fill in, add a value to an enumeration. A type earns its place when you would ask a question that depends on it. If you build one other people could use, a pull request to the ontologies/ folder is welcome; it needs to read without diagnostics, and the test suite checks that for every ontology.