Candidate, not a finished standard.
This page describes YUTABASE/postgres@0.1.0-candidate.1,
revision 5. PostgreSQL remains the database.
Read the current guide
and candidate contract
before installing or integrating it.
records are cards, selected semantic relations are threads named by words, each conforming row or thread carries a row-level self-reported claim
Not a database engine. A candidate profile installed on PostgreSQL, with an
optional six-form YOUSPEAK compiler. It does not supply authentication,
permissions, backups, replication, signatures, or proof that a claim is true.
every primitive is a one-word rename of something Postgres already does well; nothing is hidden, everything compiles to SQL you can read
organised
one place for vocabulary, one place for connections, one inspectable row-level claim shape
connected by words
a relation without a word does not exist. submissions/X contains items/Y is data. An anonymous foreign key is not a sentence, so here it is not a relation.
02five primitives, each a one-word rename
Nothing new under the sun. Just named, disciplined, and honest.
BOOK
logical namespace, normally mapped to a schema
DECK
logical collection mapped to a table
CARD
one row
THREAD
one active directed relation row
LEXICON
governed word meanings and versions
03YOUSPEAK — six verbs, frozen
The dialect fits in a memory file. Six verbs. Every proposed seventh is a request to write SQL instead.
yuta repl — you speak, reality listens
youspeak>hello ── inspect installed identity, capabilities, vocabulary, and logical/physical deck mappingsyouspeak>card tradein/submissions/01977c2e-0000-7000-8000-000000000001 ── one card by full logical ref; execution resolves the physical table through yu.registryyouspeak>cards tradein/submissions where status="pending" newest 20 ── filter + bounded limit; newest orders by mapped at, then UUID as a tie-breakeryouspeak>tradein/submissions/01977c2e-0000-7000-8000-000000000001 -> contains ── follow a word outward: every item this submission containsyouspeak>tradein/items/0197a1f4-0000-7000-8000-000000000001 <- contains ── follow it inward: which submission contains this item?youspeak>tradein/customers/01964b10-0000-7000-8000-000000000001 <- submitted_by -> contains ── two hops: all items inside everything this customer submittedyouspeak>thread tradein/items/0197a1f4-0000-7000-8000-000000000001--priced_from--> pricing/quotes/01984c22-0000-7000-8000-000000000001note "ebay last-sold comp" how computed src urn:example:pricing:42 ── create a thread; computed/cached claims require at least one source locatoryouspeak>sever 01990000-0000-7000-8000-000000000009 how witnessed ── threads end with a claim tooyouspeak>explain "tradein/submissions/01977c2e-0000-7000-8000-000000000001 -> contains" SELECT t.to_book AS book, t.to_deck AS deck, t.to_id AS id, t.word_version, v.gloss, t.at, t.by, t.how, t.src FROM yu.threads t JOIN yu.word_versions v ON v.word = t.word AND v.word_version = t.word_version WHERE t.word = 'contains' AND t.from_book = 'tradein' AND t.from_deck = 'submissions' AND t.from_id = '01977c2e-0000-7000-8000-000000000001' ── pure logical preview only: no mapping lookup, permission check, connection, or execution
Traversal caps at 2 hops. Deeper means you write WITH RECURSIVE yourself, knowingly.
.how / .at / .by / .src address the honesty header in any where.
04the honesty header
Every conforming card row and YUTABASE thread exposes four mapped columns. YUTABASE-owned thread and lexicon writes require explicit claim context; annexing a legacy table does not certify the truth of its existing rows.
at
timestamptz — when this became true
by
who asserted it: human:yu, agent:claude/session, system:cron/job
how
CHECK-constrained: one of the five claim kinds
src
text[] source locators — required for cached and computed
The five claim kinds:
witnessed — a human saw or did it
live — read from the authoritative source at at
cached — a copy that may be stale; src says of what
computed — derived; src lists input locators
declared — asserted without evidence
The honest ceiling, stated: provenance is self-reported. An agent can stamp witnessed falsely. YUTABASE makes lying explicit and auditable — not impossible.
05the starter lexicon — seven words
A word needs a non-empty spelling, gloss, inverse reading, endpoint patterns, status, and claim metadata. Meaning is the gate: the candidate has no spelling blacklist.
Seven starter words are installed as examples, not as a universal vocabulary budget.
word
inverse
gloss
submitted_by
submitted
this record was submitted by that person or agent
contains
contained in
physical or compositional containment
supersedes
superseded by
this record replaces that one; the old stays readable
priced_from
priced
this price was derived from that source record
acted_for
acted via
an agent performed this on behalf of that operator
refused_because
refused
this action was declined for that recorded reason
witnesses
witnessed by
this record attests that one
06annex, don't rewrite
A compatible table can be annexed one domain at a time. Rows do not move, but annexing writes the registry and maintains row/update plus truncate guards on the physical table. It requires registry and table-owner-equivalent authority.
Use a fresh disposable database for a first run. yuta init is mutating and may upgrade a recognized install, normalize candidate objects and ACLs, and create fixed cluster-wide capability roles. Back up and rehearse a real upgrade.
On a fresh database, candidate-owned yu and via schemas live beside application schemas. Annexing does not move application rows or grant access to them. Dropping candidate schemas destroys semantic threads, vocabulary, and audit history, so rollback must be planned per application rather than treated as a universal uninstall.
07the refusals
YUTABASE deliberately does not have:
no ORM or model layer — ordinary SQL remains available
no storage engine, wire protocol, backup, or replication system
no graph-database claim — YOUSPEAK traversal caps at 2 hops
no semantic thread without a governed word — and no spelling blacklist
no proof that by/how/src/at is truthful; claims are self-reported
no authentication, permissions, tenancy, signatures, hosted service, or telemetry