Skip to main content

ontology-database

Typed knowledge graph via TSV append-only log — entity CRUD, directed relations, schema validation, multi-hop reasoning. CLI via `x ondb`, protocol readable by AWK/Python/JS/SQLite.

Source facts

Repository
x-cmd/x-cmd
Last source activity
August 3, 2026 at 03:13
Detected SKILL.md language
English
Stars
4,728
Forks
172

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
ontology-database
description
Typed knowledge graph via TSV append-only log — entity CRUD, directed relations, schema validation, multi-hop reasoning. CLI via `x ondb`, protocol readable by AWK/Python/JS/SQLite.
metadata
{"related":"yfm,rule"}
# Ontology Database (ondb) Typed knowledge graph: everything is an **entity** (id + type + properties) connected by **directed relations** (from → rel → to). All mutations append TSV lines — never overwrite. The TSV log IS the database. ## TSV log format (the protocol) ``` add <type> <id> <epoch_ms> key1 val1 key2 val2 # create entity set <id> <epoch_ms> key val # update property rm <id> <epoch_ms> # delete entity link <from> <rel> <to> <epoch_ms> [key1 val1 ...] # create relation unlink <from> <rel> <to> <epoch_ms> # remove relation # tab-separated; escape: \t → tab, \n → newline, \\ → backslash # properties are alternating key/val pairs (each is a separate tab field) ``` Any language reads this. AWK streams, Python dicts, SQLite materializes. **Log is source of truth.** ## CLI usage ``` x ondb add --type Person --name Alice # auto UUID x ondb add --type Task --name "Fix bug" --id t1 priority=high status=open x ondb get --id t1 --json # entity detail x ondb set --id t1 status=done # update prop x ondb rm --id t1 # delete x ondb link --from proj_001 --rel has_task --to t1 # create relation x ondb link --from t1 --rel blocks --to t2 # with link props: -- status=hard x ondb linked --id proj_001 --rel has_task # outgoing relations x ondb linked --id t1 --direction incoming # incoming (who links TO) x ondb related --id proj_001 --rel has_task --json # full entity on other side x ondb ls --type Task # list by type x ondb query --type Task --where status=open --json # filter by props ``` `linked` = relation metadata. `related` = full entity on the other side. Use `--dir <path>` / `-d <path>` for data directory (→ `path/ondb.tsv`). ## Schema & validation ``` x ondb schema add "type:Task:required:title,status" x ondb schema add "type:Task:enum:status:open,in_progress,done,blocked" x ondb schema add "relation:blocks:from_types:Task" x ondb schema add "relation:blocks:acyclic:1" x ondb validate # checks required, enum, dangling refs, cardinality, cycles ``` Directives: `type:Name:{required|forbidden|enum|datetime|ref}:...`, `relation:Rel:{from_types|to_types|cardinality|acyclic}:...`. Validation is separate from write. ## Architecture principles - **Log is source** — TSV log is authoritative; SQLite is a materialized view - **Append-only** — `set`, `rm`, `unlink` append lines; never modify existing lines - **Multiple instances** — one ondb per sub-domain (default); merge only for cross-domain chains - **Type = Concept** — same type name always means the same concept - **Validate on demand** — no schema check at write; run `validate` after batch changes ## Backends | Backend | When | | |---|---|---| | **AWK** (default) | < 2k entities | Zero deps, streaming | | Python | Medium | Rich data structures | | JS/Bun | Web apps | JSON native | | SQLite | > 5k entities | Auto-generated from TSV log | ## Directory structure ``` <datadir>/ONDB.DESC.txt # Required. Identifies ondb instance <datadir>/ondb.tsv # Append-only log <datadir>/schema.tsv # Optional. Constraints <datadir>/ondb.db # Optional. SQLite materialized view ``` ## For more information - `x ondb --help` — CLI reference - `x ondb libpath {awk,py,js}` — library paths for custom queries - [ondb SKILL.md](../../../ondb/SKILL.md) — full docs (scenarios, integration, custom queries, SQLite WAL config) ## Related - [yfm](../yfm/SKILL.md) — yfm `metadata:` is the recommended ingest surface - [rule](../rule/SKILL.md) — schema validation rules live in rule framework
View on GitHub