New, automatically generated IIIF manifests coordinate images with quire/page identifiers and guarantee valid image references.
small digital
iiif
complutensian
Author
Neel Smith
Published
January 9, 2025
Coordinating images with pages
I first cobbled together IIIF manifests for each of the six volumes of the Computensian Bible so that I could browse and try to make sense of the images that were not documented on the web site where the Library of Congress published the openly licensed images. (Here’s the complicated story.)
I’ve now updated the IIIF manifests to address a second challenge for anyone studying the Complutensian Bible. While all copies have essentially the same contents in each volume, they order the various sections of reference material in volumes 5 and 6 differently. In fact, of the seven copies I have been able to examine, each has a unique sequence of pages in volume 6! Refering to pages by sequential page number wouldn’t make sense.
We can instead safely identify pages by their organization in printed quires. Most of the Complutensian was printed in ternions, or groups of three sheets. Each sheet is a double folio, so when stacked in a gather, or quire, of three sheets, each quire has six folios. (Each folio has a front (recto) and back (verso) side – what we would consider a printed page, so the six folios of each ternion comprise twelve pages.) Alphabetic sequences (such as a, b, c… and AA, BB, CC… ) are printed in the lower right corner of the opening rectos of each ternion so that sections can be grouped in the proper order.
In volume 5, for example, the texts of the four gospels are printed on quires A..Q, and quire R begins the letters of Paul starting with Romans. Identifying a page as “volume 5, quire A, page 1 recto” unambiguously refers to the first page of this section (a prolog to Romans), whether quire R is placed immediately after the Gospels (as some copies of volume 5 do), or whether it follows an essay on the travels of Paul (as other copies choose to do).
I have been able to complete a quire analysis of all six volumes.1 I have updated the IIIF manifests with this information. You can still use any IIIF viewer you choose to browse the images, but each page is now identified in relation to its volume, quire,folio, and side.
Automating generation of IIIF manifests
I documented the collation of the Complutensian’s volumes in delimited-text files. In addition to identifying each page and a documentary image with URN values, I followed the simple Codex model of CitablePhysicalText page, and included a sequence number, an identification of the page as recto or verso, and a label. Here’s an extract from the data set for volume 5 showing what a header line and a data line for volume 5, quire R, page 1 recto, look like:
sequence|image|urn|rv|label
213|urn:cite2:citebne:complutensian.v1:v5c_p17|urn:cite2:complut:pages.bne:vol5_R_1r|recto|Complutensian Bible, National Library of Spain, vol5, quire R, page 1r.
The full data set is in the project github repository. We can instantiate a Codex object directly from a URL.
Precompiling CitablePhysicalText...
2092.3 ms ✓ Clustering
2634.3 ms ✓ ImageBinarization
3167.1 ms ✓ Sixel
3124.7 ms ✓ ImageSegmentation
6729.1 ms ✓ ImageCorners
3568.9 ms ✓ Images
3849.5 ms ✓ CitableImage
4028.5 ms ✓ CitablePhysicalText
8 dependencies successfully precompiled in 19 seconds. 256 already precompiled.
Complutensian Bible (BNE copy): volume 5
The current version of the CitablePhysicalText package lets us generate an IIIF manifest directory from a Codex object. (See a tutorial from the package documentation.)
We need to create an IIIFservice, from the CitableImage package. Here is the IIIF server at the University of Houston where our images are available:
We also need to configure settings for the manifest. There are many options, but the only required parameter is the identifier for the manifest itself. This should be a URL where the manifest will be available. We’ll use a URL for its location in our github repository.You could serve an identical manifest from any URL you like by using your URL as the parameter.
Configuration for IIIF manifest with ID https://raw.githubusercontent.com/neelsmith/complutensian-texts/refs/heads/main/iiif/complutensian-bne-v5-manifest.json
At this point, generating the manifest itself is a one-liner:
vol5manifest =iiifmanifest(codex, config, imgsvc)
Validating the manifest
The iiifmanifest function is not only a convenient way to quickly generate IIIF manifests from structured data: it also guarantees the structure of the resulting JSON, and the validity of all image references.
The iiifmanifest checks the JSON string it composes to ensure that it is valid JSON. As it constructs the manifest from a Codex, iiifmanifest queries the configured image server for metadata about each image, using the IIIF protocol’s info query. If the image service is able to respond to this query with a valid reply, we know that the reference to the image is valid on the server documented in the manifest. The result is a complete manifest that we are guaranteed can be used with any IIIF viewer applications.
Footnotes
I’ve documented the quire sequences here. See also this page for information about the registry of quires printed in volumes 1-4 of the Complutensian.↩︎
Citation
BibTeX citation:
@online{smith2025,
author = {Smith, Neel},
title = {New {IIIF} Manifests for the {Complutensian} {Bible}},
date = {2025-01-09},
url = {https://neelsmith.quarto.pub/posts/2025-01-09-updates-to-iiif/},
langid = {en}
}