Skip to content

How archAIc reads what *nobody else can*.

Pick up any old register and look at a single word. Is the second letter an n or an r? Did the scribe write provincial or provencial? Is that flourish a d or a cl? Most of the time a human reader can shrug and guess from context. A computer cannot — at least not without telling us how confident it is in the guess.

The way most digital archives work, a handwriting model reads the page once, picks the most likely transcription, and writes it down as text. The other possible readings are thrown away. From that point on, the archive is searchable as if the chosen transcription were the truth. A researcher types “comisión” and either finds the page or doesn’t. There is no in-between.

This is fine on clean, modern, well-preserved hands. It is the wrong tool for the rest of history. On the kinds of pages archAIc was built for — court records, parish books, notarial protocols, council minutes — the handwriting model gets the wrong reading often enough that a one-and-done transcription quietly makes the archive harder to find, not easier.

archAIc does something different. When the handwriting model reads a word it doesn’t just pick one transcription — it produces a small set of competing candidates, each with a number that says how likely the model thinks that reading is. We don’t throw any of them away. Every candidate goes into the search index, weighted by how confident the model was.

The effect is small in any one place and very large across an archive. A page where the model’s first guess was “COMISTON” but its second guess was “COMISION” with almost the same confidence is, in a one-best system, a page lost to anyone searching for the correct word. In archAIc that same page is findable — at a slightly lower score, ranked behind pages where the correct reading is the top guess, but findable.

The number we measure ourselves on

Across the trial archives we’ve worked with — fourteen collections, more than three million pages — keeping every reading rather than just the best one raises the average chance that a real match appears in the user’s results by between 3 and 17 percentage points. The gains are biggest on the worst handwriting; even on the cleanest pages it never goes negative.

None of this is visible to the person doing a search. They type a word, they get pages back, they open one. What they don’t see is that some of those pages are in the results because the second-best reading of a word happened to be right. That’s how it should be: the system absorbs the uncertainty so the user doesn’t have to.

Sometimes the system isn’t sure, and the right thing to do is say so. When an archivist opens a page in our editor, we colour-code the words by how confident the underlying reading is. Words the model is sure about are quiet. Words it’s uncertain about glow — drawing the eye straight to the places that need a second look. Click a flagged word and the alternative readings appear underneath the ink, ranked by probability.

Competing readings shown for a single handwritten word, with their probabilities. The same word, four ways the model could read it. The user picks the right one — or leaves both indexed, because both are findable.

The same uncertainty propagates upward. A line where the model offered two equally good readings carries that ambiguity. A page where most lines are clear but one is a mess gets a different confidence score from a page that’s uniformly hazy. By the time the user sees a search result, the badge next to it isn’t an arbitrary mark — it’s the system being honest about how much it trusts what it has produced.

Keyword search only takes you so far. If a researcher is looking for “documents about water disputes”, no single word will catch all the relevant pages. The corpus says acequia, regadío, pleito, partidor. The query says none of those.

So archAIc also offers search by meaning. The system reads each page (or each passage of a page) and represents it as a point in a high-dimensional space where things that mean similar things end up close together. A query about water disputes lands near every page that talks about water disputes, regardless of the exact words used. The same trick works across languages: ask in your own mother tongue, find pages written in another. There is no translation step. The system simply notices that “plague control measures” and “providencias contra la pestilencia” talk about the same kind of thing.

This part of the system is harder than it sounds for old handwriting, because the meaning has to be drawn from uncertain transcriptions. We do it by weighting the meaning of each line by how confident we are about what the line says. A line we’re sure about contributes more; a hazy line contributes less, but it still contributes. Nothing is thrown away.

The keyword index is good at exact names, archaic spellings and rare terms. The meaning index is good at synonyms, paraphrase and cross-language matching. Neither is good at everything. So archAIc runs both at once, blends the rankings, and presents a single list to the user. A page that appears in both — found by exact keyword and by meaning — gets a boost. A page that appears in only one still gets through. It’s the kind of thing that’s complicated to explain and unremarkable to use: you type, you get results, the right pages tend to be near the top.

The keyword side of the system is fast — a typical query returns in under a millisecond, and a single machine sustains thousands of queries per second. The meaning side is slower per query (it has to compare embeddings) but still well inside what a person notices. Both indexes are built once when a new corpus is ingested; updates after a curator fixes a word are sub-second.

archAIc runs on hardware the archive already owns. A small collection fits on a laptop; a large national archive runs on a rack. There is no requirement to send pages to a cloud service. The whole stack can run air-gapped, and frequently does.


What it adds up to: a search engine that quietly knows the handwriting is uncertain, keeps every plausible reading rather than committing to one, weights everything by how trustworthy the underlying ink is, and finds pages by exact word, by meaning, or both. The hard parts are inside; the surface is just a search box.

Continue: four ways to ask the same archive →