Short writeups of methods we use in the collection work, recorded so that others can reuse or improve them.
This is the multi-page printable view of this section. Click here to print.
Practice Notes
- Fiber route maps in the conference record
- Reading a journal that has no text
- Reconstructing the missing decks
- Using collection context to reduce errors in automated transcription of historical audio
Fiber route maps in the conference record
This note is also available as a typeset PDF.
Operators have been putting maps of their fiber builds on conference slides for thirty years. Most of those maps were shown once and filed away. This note describes finding them in the collection, judging which of them carry real geographic information, and tracing that information back out into standard geographic form — KML aligned against present-day OpenStreetMap data.
From roughly 1.2 million archived slide and document pages, a text pass over the page descriptions produced 3,806 candidates; a vision triage kept the 1,708 that actually depict fiber or cable routes rather than logical topology diagrams; and a stricter screen — could a cartographer produce a useful KML by tracing this image against real map data? — kept 54. Of those 54, nine now align to draft KML: three fully automated, five with a librarian reading the map and placing control points by hand, one model-assisted. The rest have their routes traced in pixel coordinates and are waiting for a person to place three or four intersections.
The tracing is ordinary image processing, and it works because the material is ordinary: a presenter draws their fiber in one saturated color over a lighter basemap. Georeferencing is the part that resisted automation longest, and the note is candid about why. A vision model asked to name control points across a whole slide drifts into plausible invention — it proposed a tidy series of numbered-street crossings, most of which were not printed on the map at all, and which were collinear, so they could not have constrained the transform even if they had been real. Asking about each quarter of the map separately, verifying every proposed point against a small crop, and pooling several rounds fixed most of that.
Two traps are recorded for anyone attempting this work. Street grids are self-similar: pure geometry matching locked confidently onto an alignment 25% off in scale, with every road landing on a road, just not the right one. And with enough junk control points, some subset will agree — a set of local exchange names that geocoded, unbounded, to random places worldwide produced a fit with innocent-looking residuals. Consistency alone is not evidence. A smaller lesson, but a real one for archives: landmark names rot. An arena named on a slide from the 2010s had been renamed by 2025 and no longer resolves. Street intersections are the durable currency.
These maps are historical documents, not engineering data. A route on a conference slide is what an operator chose to present, at a moment in time, at whatever simplification served the talk, and alignment accuracy is bounded by the slide’s own drawing accuracy long before it is bounded by any fitting. Nothing here has been field-verified and none of it should be relied on for anything operational. Each map links back to its source talk so the geometry can be read in its original context.
Geocoding and reference geometry are © OpenStreetMap contributors, ODbL. We would welcome collaboration on any of this.
Reading a journal that has no text
This note is also available as a typeset PDF.
ConneXions — The Interoperability Report (1987–1996) came to the collection as page scans with no text layer at all: 115 issues, 3,573 pages, unreadable to search and to everything downstream of search. The pages are 1990s desktop publishing — a wide margin column carrying side-headings, a main body column, boxed insets, mastheads, rules, and figures. Handing a whole page like that to a vision model works badly: the reading order scrambles across the columns, and figure axis labels arrive in the middle of the prose as token soup.
What worked was to infer the page’s rectangles first, transcribe each region separately at crop resolution, and reassemble in reading order with the region structure tagged. The segmentation is classical image processing rather than machine learning — ink profiles locate the column gutter, decorative rules are excluded before the gutter is found, scan borders are masked. The model is then given a vocabulary of the journal’s own era, drawn from the collection itself, as a prior: protocol names, organizations, the names of the people writing. On a controlled comparison of a single region, that prompt recovered 22% more body text than a neutral one and turned a figure from noise into a description a reader can use. The whole corpus cost about two hours across two mid-size vision-language model instances, roughly 65 seconds a page.
There is a symmetry in the material worth noticing. ConneXions documented the protocols of the young Internet and was produced with the desktop-publishing tools of its own moment — the PageMaker-and-PostScript era that put multi-column layout and margin apparatus within reach of a small trade publisher. The features that made the journal handsome in 1990 are exactly the features that defeated optical character recognition for the following three decades.
Two things in the note matter more than the method. The first is a survey of forty years of prior art that we built without and should have read first: every segmentation rule we derived empirically was already documented, with better tooling attached. The second is an audit of our own output — sixteen reviewing agents compared 791 sampled pages against their stored extractions, grading archival fidelity and asking whether a blind patron could reconstruct the page from our record alone. Of the 424 ConneXions pages sampled, 95.8% graded A or B. The audit also caught a fleet-scale defect that no aggregate statistic had surfaced: a generation ceiling was silently truncating about 7,100 dense pages mid-transcription, before their figure descriptions were emitted — deleting precisely the content the method exists to produce. All flagged pages were re-run at a higher ceiling the same day.
Reconstructing the missing decks
This note is also available as a typeset PDF.
Of the 11,688 video recordings in the collection’s talk holdings, 11,240 — ninety-six percent — have no accompanying slide deck. The deck is usually where the substance is: the numbers, the network diagrams, the timeline the speaker is narrating. A video without its deck is searchable only by its title. The archive knows a talk happened, but not what it said.
The method has two steps. The first is a hunt: a per-talk web search for the original deck, escalating to event-page fetches and Wayback lookups. When the talk comes off the conference circuit this often works on the first query, and it doubles as a metadata audit — one recovered deck exposed a misspelled presenter name in our own catalog. When the source is a streaming channel the hunt mostly reports honest absence: of forty talks from one such channel, one deck found, twelve confident verdicts that no deck ever existed (panels, welcome remarks, an award induction), and twenty-seven misses. A well-evidenced “probably no deck” is a finished piece of work, not a failure.
Failing the hunt, we reconstruct the deck from the video. Sample a frame every five seconds, cluster the frames into slide-states by perceptual hash, keep the sharpest frame of each state, and drop states too short to be slides — those are camera cuts. Each surviving page records the timestamp span over which it was visible, so every reconstructed page links back to the second of video where the speaker is saying it. About four minutes of CPU per talk.
A vision pass over 1,023 reconstructed pages found the population divides three ways: 282 switched-feed slides, where the production cut to the deck; 347 projections in the scene, where the room camera happens to see the screen; and 377 pages with no slide at all. The projection class was the surprise — talks whose metadata said “panel” turned out to carry legible keystoned decks on the room’s screen.
The finding we did not expect: for the one talk where we hold both the found deck and the reconstruction, the reconstruction is the better artifact. The archived PDF is a print-resolution two-up handout; the video’s switched feed shows each full slide at 720p. Reconstruction is not only a fallback for missing decks. For switched-feed recordings it can be the archive’s best edition, with the found deck serving as the authority on slide count and order.
A reconstructed deck is a derived artifact and must never pass as the original. Each carries the source video’s URL and hash, the full method string, per-page timestamp spans, the model that transcribed each page, and a verdict distinguishing a reconstruction from a confirmed absence of slides. In the catalog they bind at receipt tier, honest about what they are.
Using collection context to reduce errors in automated transcription of historical audio
This note is also available as a typeset PDF.
Background
We recently accessioned the Internet Talk Radio collection (Carl Malamud, 1993–1996; 567 audio items mirrored from archive.org). To make the audio searchable and citable we need transcripts. We ran a single-episode pilot to test a transcription workflow before processing the full collection, using the first “Geek of the Week” episode: an interview with Marshall T. Rose recorded March 31, 1993 (48 minutes).
The error pattern
Automated speech recognition handles ordinary speech in this material well, but systematically mis-renders the specialized vocabulary of the period: acronyms, protocol names, product names, and personal names. The model substitutes phonetically plausible guesses. From the raw output of this episode:
- “ISO-DE” for ISODE (a software package the guest authored)
- “the IEPF” for the IETF (six occurrences)
- “X400” for X.400 (six occurrences)
- “Marty Shostal” for Marty Schoffstall
- “Keith McLaughery” for Keith McCloghrie
Name errors are the most serious for our purposes, since names are access points. These errors are not correctable by a general-purpose model working alone: nothing in the audio distinguishes “McLaughery” from “McCloghrie” without outside knowledge of who worked with the guest.
Method
The workflow has two stages. Both use information already held in the collection.
Stage 1: speech recognition with a vocabulary prompt. We transcribed the audio with Whisper (large-v3 model, one GPU). Whisper accepts a short free-text prompt that biases its vocabulary. We filled it with the episode metadata (show, guest, interviewer, date) and roughly forty period terms. This reduces, but does not eliminate, the errors above. The output — 741 timestamped segments — is saved unchanged as the raw transcript.
Stage 2: constrained correction using a brief derived from the collection. We then passed the transcript in chunks to a language model (Claude Sonnet) with a correction brief and narrow instructions: correct only mis-transcribed technical terms, acronyms, and proper nouns that the brief supports; do not rewrite, paraphrase, or improve the speech; do not alter timestamps.
The brief (about 1,100 characters) was assembled from two collection sources:
- The guest’s authority record from our catalog, which lists his projects, publications, employers, and collaborators. This is what allows “Shostal” to be corrected to Schoffstall (a colleague at the guest’s employer, PSI) and “McLaughery” to McCloghrie (a co-author of the SNMP standards).
- Vocabulary mined from contemporaneous holdings. We extracted the most frequent capitalized terms and acronyms from the subject lines of our 1992–1994 mailing-list corpora (tcp-ip, com-priv). This produces the working vocabulary of the period as its participants actually wrote it, with no manual glossary-building.
The corrected output is saved as a second file alongside the raw one. Both are kept permanently: the raw transcript is the preservation copy; the corrected transcript is the access copy; a line-by-line comparison of the two shows every change made.
Results
The correction stage changed 41 of 741 segments. Examples, with timestamps into the recording:
| Time | Raw output | Corrected |
|---|---|---|
| 0:56 | the author of ISO-DE | the author of ISODE |
| 6:02 | Marty Shostal of PSI | Marty Schoffstall of PSI |
| 7:33 | X400 (and 5 further occurrences) | X.400 |
| 17:15 | a call from the IEPF (and 5 further) | a call from the IETF |
| 17:42 | Keith McLaughery | Keith McCloghrie |
We reviewed the full diff. All 41 changes were within the instructed scope (terms, acronyms, proper nouns); none rewrote the wording of the speech.
Processing cost for the episode: about 9 minutes of GPU time for transcription and 8 language-model calls for correction. Extrapolated to the full 567-episode collection: roughly 10 GPU-hours and a few thousand model calls, which is within our normal batch budgets.
Limitations
- The correction stage can only fix what the brief covers. A name absent from the catalog and the mailing-list corpora will stay as the model heard it. We do not ask the model to guess beyond the brief.
- Errors outside the vocabulary class (mis-heard ordinary words, speaker attribution, overlapping speech) are untouched by this workflow.
- This is a one-episode pilot. Error rates will vary with audio quality and speaker; we will re-check a sample as the batch runs.
- The corrected transcript remains a machine product and is labeled as such in our provenance fields, at the same “receipt” tier we use for other machine-generated finding aids. It is not a human-verified transcript.
Adapting this elsewhere
The workflow assumes nothing specific to internet history. It requires: (a) an ASR system that accepts a vocabulary prompt; (b) a language model that will follow narrow correction instructions; and (c) collection materials contemporaneous with the recordings — correspondence, minutes, newsletters, an authority file — from which to build the brief. For archives that hold such materials, the marginal effort per recording is small: the brief for this episode was assembled automatically from existing records.
Contact: the IHI Reading Room. Tooling: Whisper large-v3 with initial_prompt; Claude Sonnet for correction; brief assembly scripted against our catalog API and message index.