Skip to main content

Addressing

The library is a two-level tree: collections contain folios (page images). A folio’s address is {slug}/{index} — the collection’s slug plus a zero-based image index — and it is identical everywhere:
Indexes are stable: they follow the physical order of each codex’s photography and never change between API versions.

The three layers of a folio

1. The scan — image

Three sizes, all public, all CDN-served:

2. The original — transcriptions

The scholarly e-Leo transcription of Leonardo’s Italian, from the Biblioteca Leonardiana. One page image usually carries one transcription; an opening photographed as a spread (Codex Arundel, Codex Madrid) can carry two — one per visible folio. Pages with no surviving transcription have an empty array. Each transcription is an ordered list of text blocks (texts), and that order matters — it’s what the translation aligns to.

3. The Reader’s Edition — enrichment

The AI-written editorial layer. It never modifies the source; it sits beside it:

Evidence pointers

Every highlight in items says where it comes from, so nothing floats free:
  • text:2 → grounded in block 2 of the transcription — the English for that block is the english entry with order: 2.
  • visual:… → grounded in the drawing itself, for elements with no accompanying text.
This is the audit trail: for any claim in the Reader’s Edition you can walk back to the Italian block or the region of the sheet it came from.

Honest nulls

The data tells you what it doesn’t know:
  • transcriptions: [] — no e-Leo transcription survives for this page; the Reader’s Edition record was written from the scan (source: "none").
  • enrichment: null — the page is outside the enriched scope (rare).
  • kind: "flyleaf" / "binding" — a cover, not content; expect no subjects and no highlights.