A 95-year-old notation for marking what's sourced vs. invented — and why the AI industry is reinventing it, badly, in 2026.
In a scholarly edition of a Roman inscription, you might read a line that looks like this:
[Imp(erator)] Caes(ar) divi f(ilius) Augustus, co(n)s(ul) ⟨XIII⟩, trib(unicia) pọtẹstate ---
To an untrained eye it's typographic noise. To anyone who has sat through a semester of Latin epigraphy, it's one of the most honest sentences you will ever read. Every single character on that line tells you exactly where it came from. The letters in plain type were chiseled into the stone and read directly off it. The square-bracketed Imp is gone from the stone entirely — broken away — and reconstructed by the editor's judgment. The (erator) and (n)s(ul) are abbreviations the carver used and the editor has silently expanded. The angle-bracketed ⟨XIII⟩ is a number the carver left off that the editor supplies. The dotted letters pọtẹstate are damaged and uncertain — probably those letters, but the editor won't swear to it. And the trailing --- is a lacuna: text that was once there, is now lost, and that the editor flatly refuses to guess at.
Now open a research brief written by a large language model. It cites six sources. Four are real. One has a real author attached to a title that author never wrote. One does not exist at all. The brief gives you no way whatsoever to tell which is which. Every sentence wears the same clean, confident font, whether it was pulled verbatim from a document, loosely paraphrased, half-remembered from training data, or invented on the spot.
Here is the uncomfortable part. The epigraphers solved this exact problem in 1931. The rest of us are reinventing it, badly, in 2026.
In the summer of 1931, a group of classical scholars meeting at the University of Leiden agreed to stop improvising. The problem they faced was mundane and maddening: when you publish a text recovered from a cracked stone, a charred papyrus, or a water-stained manuscript, you are constantly making judgment calls. Is this letter really an A, or could it be an R with a broken leg? Is this word missing because the carver skipped it, or because the corner snapped off? Before Leiden, every editor marked these decisions with their own brackets and dots, and the same symbol meant different things in different journals. A reader had to learn each scholar's private dialect before they could trust a single mark on the page.
The Leiden Conventions fixed a shared vocabulary, and — this is the remarkable part — that vocabulary is still the world standard ninety-five years later. A papyrologist in Oxford and an epigrapher in Athens still mark their texts the same way today. It survived the typewriter, the photocopier, and the move to the screen.
What makes the system worth borrowing isn't any individual symbol. It's the design principle underneath: provenance is inline, attached to the smallest possible unit, and inseparable from the text itself. You never leave the line you are reading to find out whether you can trust it. The marks do this work:
[ ] — text lost from the stone and restored by the editor. [Caes]ar means the surface is broken and "Caes" is an educated reconstruction.⟨ ⟩ — text the original writer omitted, supplied now by the editor. ⟨et⟩ means the carver forgot the word and the editor is putting it back.( ) — an abbreviation expanded. The stone says COS; the edition prints co(n)s(ul).ạ — an uncertain reading. The letter is damaged; the editor offers a best guess and signals the doubt.--- — a lacuna left unrestored. Something was here. It's gone. The editor will not pretend to know what it was.{ } — text the editor judges to be a mistake and marks for deletion.Read those again with a software hat on, and a specification starts to assemble itself. This is a type system for trust. Each mark is a tag, each tag has crisp semantics, and crucially, the tagging is exhaustive: there is a defined status for "I read this directly," for "I reconstructed this," for "I'm unsure," and for "I don't know and won't guess." There is no silent fifth category where doubt hides. That completeness is the whole point.
For most of its life, the Leiden system was meant for human eyes — a convention for the printed page. Then the digital humanities arrived and asked an obvious question: if every character already carries a defined status, why is that status trapped in typography?
The answer is EpiDoc, an international standard for encoding ancient texts built as a specialized subset of the TEI (Text Encoding Initiative) guidelines in XML. EpiDoc takes each Leiden mark and gives it a machine-readable tag. A restoration in square brackets becomes <supplied>. A lacuna becomes <gap>. An uncertain reading becomes <unclear>. An expanded abbreviation becomes <abbr>. Editors still write in fast Leiden shorthand, because typing verbose XML by hand would be miserable, but the underlying record is now structured.
The moment that status became structured, it became queryable — and this is the leap that matters most for our purposes. A database of tens of thousands of inscriptions can now answer questions that were impossible on paper: Show me every word in this corpus that is an editorial restoration rather than a direct reading. Show me which texts are more than a third reconstructed. Flag every uncertain letter so a specialist can re-examine the stone. The provenance stopped being a visual courtesy to the careful reader and became data a system could act on.
Hold that distinction — visible versus queryable — because it is precisely the line modern AI tooling has not yet crossed.
Consider the scale of what is going wrong. In 2025, researchers combed through more than a hundred million references across millions of papers on arXiv, bioRxiv, SSRN, and PubMed Central, and found a sharp rise in citations to sources that simply do not exist — on the order of a hundred thousand hallucinated references in that single year, climbing as AI-assisted writing spread through the literature. A separate analysis of NeurIPS 2025, one of the most selective venues in machine learning, catalogued roughly a hundred fabricated citations in peer-reviewed submissions. And there's a cruel wrinkle: the invented references disproportionately credited already-prominent scholars, quietly amplifying the inequities that already shape who gets cited.
This is not a rare edge case to be patched. It is an industrial-scale provenance failure, and it is the same failure the Leiden scholars confronted — chaos about the status of text, rendered invisible in the published output — now running at ten thousand times the volume.
The root cause is that today's model output collapses at least five genuinely different things into one undifferentiated stream:
Looking at the output, you cannot tell these apart. They share a font, a tone, and an air of authority. That is exactly the pre-1931 condition: divergent text status flattened into a single smooth surface, with the reader left to guess.
Here is where the cross-domain connection stops being a cute analogy and starts being almost literal. Line the epigrapher's marks up against a language model's failure modes, and they correspond nearly one to one.
Plain, unbracketed text — read straight off the stone — is the verbatim quotation from a retrieved source. Sourced. We hold the original.
The expanded abbreviation co(n)s(ul) — a real inscription, transformed by the editor's hand — is the faithful paraphrase: the source genuinely exists, but the words on the page are not the source's exact words.
Square brackets — lost text restored by trained judgment — are the model's inference: plausible, often correct, defensible, but not lifted from any particular document.
Angle brackets — the carver left it out, the editor supplied what belongs there — are the model gap-filling what "ought" to be present. This text was never in any source; it's a reconstruction of expectation.
The dotted, uncertain letter is the low-confidence token — the model's own internal hesitation, if only it were exposed.
The dash, the unrestored lacuna, is the single mark language models almost never produce: the honest, disciplined "I don't know."
And the braces, marking text deliberately erased in antiquity, are the modern redaction — content that was generated and then suppressed by a safety filter or a privacy scrub.
Sit with that for a second. The error taxonomy of a scribe carving stone under Augustus and the error taxonomy of a frontier model in 2026 are, astonishingly, the same. Ancient scribes omitted words, made uncertain strokes, and erased on command. Models omit context, hedge internally, and get filtered. Two thousand years apart, there turn out to be only a handful of ways for a piece of text to be something other than a clean, sourced reading — and in both eras, the entire problem is that nobody can tell which way it is unless someone marks it.
Picture model output where provenance rides inline, the way it does on a published inscription:
The Leiden Conventions were established in 1931 [verbatim: encyclopedia entry].
They mark restored text with square brackets (paraphrase: standard reference).
The system was adopted by ⟨most⟩ classical scholars (model-supplied: no source).
The number of institutions that use it today is uncẹrtain (low-confidence).
The 1931 attendee list is --- (unknown: declined to guess).
Once the status of each span is structured rather than implied, every query EpiDoc made possible for stone becomes possible for generated text:
None of this requires a research breakthrough. It requires a notation, and the discipline to attach it to every span of output.
The encouraging news is that the pieces already exist — scattered, unstandardized, each reinventing one corner of a design that's been sitting in a humanities handbook for ninety-five years. Anthropic's Citations API returns character-level references that point back into the source documents the model was given; that is "plain text, read straight off the stone," implemented in production. Semantic-entropy techniques estimate when a model is likely confabulating; that's the dotted, uncertain letter. Citation-verification tools check references against reality after the fact. Each is a genuine fragment of the Leiden idea. What's missing is the thing 1931 actually delivered, which was never a clever symbol — it was a universal one. A single shared vocabulary that every scholar, and now every tool, simply agreed to use.
If you build with these models, the borrowed wisdom is concrete:
Treat provenance as a first-class, per-span property — not a footnote. The core Leiden insight is that status belongs inline, fixed to the smallest meaningful unit, not summarized in an appendix nobody scrolls to. A trailing list of sources tells you the model touched those documents; it does not tell you which sentence came from which, or whether any sentence came from a source at all. Attach status to the span.
Design for the whole taxonomy, not just "cited or not." Sourced, transformed, inferred, gap-filled, uncertain, redacted — and the lacuna. Anthropic's character-level citations hand you the "sourced" mark today; build the rest of the vocabulary around it rather than collapsing everything else into undifferentiated prose.
Make "I don't know" a first-class output. The dash is the most underrated mark in the entire Leiden system: a trained expert, staring at a gap, choosing not to guess. That is the behavior we most need from models and least reward them for. A notation that has a symbol for the unknown makes not-knowing speakable — and a model that can say --- is worth more than one that always fills the gap with something that scans well.
Make it queryable, not merely visible. The jump from Leiden-on-paper to EpiDoc-in-a-database is the jump from "a careful human can see the status" to "a system can compute on it." If your provenance can't be queried — fidelity scored, unsourced spans flagged, low-confidence regions surfaced — it isn't finished. It's decoration.
The deepest lesson here is a humbling one. The provenance problem the AI industry is currently rediscovering — in conference papers, in API design docs, in a hundred startups promising "trustworthy AI" — was specified, standardized, and stress-tested for stone a century ago, by people whose entire craft rested on a single principle: the honest thing to do with a damaged text is to show the damage, character by character, and to mark plainly where your knowledge ends. That notation already survived the leap from chisel to XML. It will survive the leap to generated text too. It is sitting in a 1931 handbook, fully formed, waiting for an industry drowning in confident, sourceless prose to notice that the answer was carved in stone long before it was ever typed.
Provenance inline, attached to the smallest unit, inseparable from the output.
That 1931 design principle is exactly what an agent's record should be: not a trailing list of sources, but a signed, per-step account of what it actually did and where each claim came from — queryable, not merely visible. Chain-of-Consciousness is that notation for agents: tamper-evident provenance attached to the work itself, so "sourced," "inferred," and "I don't know" stop sharing a font. Mark the damage, character by character.
pip install chain-of-consciousness · npm install chain-of-consciousness
Hosted Chain-of-Consciousness → · See it in action