Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The vocabulary in plain terms

In plain terms

panproto’s vocabulary comes from the mathematics it implements, and inside the project the terms are load-bearing: they are what lets the implementation be checked against a precise specification. But you do not need the mathematics to use the tool, and you should not need a category theory course to read this book. This page translates each term once, in one line, into vocabulary a working developer already has. Every row links to the page where the term is defined properly.

Two reading rules. First, the analogies below are approximations: good enough to read the how-to and tutorial quadrants fluently, not good enough to reason about edge cases. When an edge case matters, follow the link. Second, if a page in this book uses one of these terms without explanation, that is a defect; the glossary has the formal definitions; this page has the informal ones.

The table

panproto saysPlain termsNearest familiar thing
protocolA schema language panproto can read and writeAn entry in a format registry: “JSON Schema”, “Protobuf”, “SQL DDL”
theory (GAT)The rulebook saying what a well-formed schema in one language looks likeThe spec for a format, executable
schemaYour actual schema, parsed into panproto’s internal formThe api.yaml or .proto you already have
instanceA data record conforming to a schemaA row; a JSON document
vertex / edgeA type in a schema / a field connecting typesNodes and arrows, if you drew your schema on a whiteboard
migration (morphism)The map saying where every part of the new schema comes from in the old oneThe plan of a migration script, minus the script
liftRunning a migration forward over dataalembic upgrade
restrictReading the map backwards to see what the new schema requires from the oldThe dependency check before the upgrade runs
lensA two-way converter: a forward transform paired with a backward one that cannot drift apartA serializer/deserializer pair, kept honest mechanically
complementThe stash of whatever the forward direction dropped, kept so the backward direction can restore itAn undo buffer; git stash
round-trip laws (GetPut, PutGet)The checked promises that forward-then-back returns the original and back-then-forward returns the viewProperty tests the tool runs for you
protolensA lens template that works on any schema matching a pattern, not one fixed pairA generic function, where a lens is the monomorphic one
dependent opticA protolens step with a precondition on the schemas it applies toA guard clause on the template
colimitGluing several rulebooks together along their shared partsMerging config fragments that share keys
pushoutThe specific gluing used to merge two divergent schema branchesA three-way merge that understands structure, not lines
existence checkThe pre-flight test that a migration can actually run on all conforming dataA dry run that is a proof rather than a sample

Which terms you actually need, and when

For the CLI workflow (diff, generate, convert, verify) you need lens, complement, and migration, and the one-line versions above suffice. The tutorials use only those three. The how-to quadrant adds protolens and protocol. Only the explanation quadrant’s formal sections, and the semantics cluster in particular, use the rest of the vocabulary, and those pages restate each term before using it.

Thus the cheapest reading order: tutorials with this page open in a second tab, how-to guides as needed, explanation pages when a term’s one-line version stops being enough.

See also