The IIIF Presentation API specifies a standardized way to describe complex digital objects. The resource types and properties of the specification are the building blocks of interoperable representations, for rendering by viewers and other software clients. This cookbook gathers together many examples of these representations (usually IIIF Manifests), in order to:
- provide many more examples than the specification alone can do, for reference and learning;
- encourage publishers to adopt common patterns in modeling classes of complex objects;
- enable client software developers to support these patterns, for consistency of user experience (when desirable);
- demonstrate the applicability of IIIF to a broad range of use cases.
The issues of the Cookbook Recipes repository are used to identify and discuss cookbook recipes, prior to their inclusion in the final cookbook site.
Viewer Support
As part of the work to aid implementation the Cookbook group have developed a Viewer Matrix which shows which recipe is supported by which IIIF viewer.
Code samples
As well as viewer support, the cookbook provides links to code samples in various development libraries to aid developers who hope to re-create these recipes in Code. You can see a full list of recipes with code samples in the code samples page.
Contributing
Anyone is welcome to submit a recipe idea or work on implementing a recipe. Advice and support can be received from the IIIF Cookbook channel on the IIIF Slack. For detailed information on how to contribute please see the Cookbook process.
The Recipes
Building a manifest in stages, adding more complexity at each stage
The corresponding 2.1 test fixture(s) is given like this, where appropriate: ..(3,5)
- Simplest Manifest - Image (1) (use static image as content resource, w.h)
- Simplest Manifest - Audio (1) (use single audio as content resource, d)
- Simplest Manifest - Video (1) (use single video as content resource, w,h,d)
- Image and Canvas with Differing Dimensions (26)
- Support Deep Viewing with Basic Use of a IIIF Image Service (24,25)
- Internationalization and Multi-language Values (3,4,6)
- Displaying Multiple Values with Language Maps
- Embedding HTML in descriptive properties (64)
- Metadata on any Resource (21)
- Rights statement(s) (7)
- Simple Manifest - Book (19)
- Book behavior (paging) variations (15,16,17)
- Addressing a spatial region
- Viewing direction and its effect on navigation (11,12,13,14)
- Missing Images in a Sequence
- Image Thumbnail for Manifest
- Implementation discussion: Thumbnails on Canvases
- Load a Preview Image Before the Main Content
- Audio Presentation with Accompanying Image
- Load Manifest Beginning with a Specific Canvas
- Begin playback at a specific point - Time-based media (65)
- Navigation by Chronology
- Locate a Manifest on a Web Map
- Locate Multiple Canvases on a Web Map
- Acknowledge Content Contributors
- Simple Collection
Textual and other supplementary content
- [Transcription of image-based content][016]
- Using Transcripts with A/V Content
- Using Captions and Subtitles with Video Content
- Transcription of content into XML, with XPaths to select a segment
- Providing Alternative Representations
- Transcripts, Captions, and Subtitles - General Considerations
- Providing Access to Transcript Files of A/V Content
- [Using Annotations for Timed Text][0079]
- Using Caption and Subtitle Files with Video Content
- [A Side-by-side Transcript of a Video Recording][0253]
- Transcription of content into XML, with XPaths to select a segment
Other kinds of annotations
(leading on to segmentation examples later)
- comments - various examples (51,52,54)
- Simplest Annotation
- HTML in Annotations
- Fragment selectors (61)
- Simple Annotation - Tagging
- Annotation with a Non-Rectangular Polygon
- Tagging with an External Resource
- Redirecting from one Canvas to another resource (Hotspot linking)
- Annotate a specific images or layers
- Annotating a specific point of an image
- Geographic coordinates
- Embedded or Referenced Annotations
- Linking external Annotations targeting a Canvas to a Manifest
- Image in annotations
- Annotating in Multiple Languages
Internal structure
- Table of Contents for Book Chapters
- table of contents (ranges) - articles in a newspaper
- Table of contents for A/V content (26)
- Alternative Sequence (via
sequence
Range) (20,22,23) sequence
Range with partial canvases
Higher-level structure
- Multi-volume Work with Individually-bound Volumes
- Multiple Volumes in a Single Bound Volume
- paged Collections (from #1343)
Segmentation and complex resources
- Multiple choice of images in a single view (29)
- Foldouts, Flaps, and Maps
- Composition from Multiple Images (30,31)
- Rendering Multiple Media Types on a Time-Based Canvas
- Multiple images and multiple choices (32,33,34)
- [Annotating part of an image to a Canvas][recipe-segment-image-part] (e.g., crop out scanner) (35,36,37,38)
- Image Rotation Two Ways
- Reusing an image service (ImageApiSelector) (41)
- non-rectangular segmentation
- temporal segmentation
- Audio only from video (and other xxxContentSelector scenarios)
- canvas on canvas (#1191)
- CSS styling
Linking
- alternative representations (rendering (?))
- Linking to Web Page of an Object (homepage)
- Linking from Image API to Presentation API (via partOf as per #600, #1507)
- Linking from Image API to external metadata
- Linking from external metadata to Image API
- Linking from external metadata to Presentation API
- Linking between Presentation API representations
- Linking to Structured Metadata (8)
Sharing IIIF content
Recipes using Content State API
Technical
- extensions (18)
- services (9,10)
- Mixed version scenarios (Prezi 3+Image 2)
- Publishing v2 and v3 versions
Real-world complex objects (ideally taken from actual collections)
- An Image gallery
- museum object (fwd ref to renderings)
- A complex printed work with foldouts and choice
- A music album’s audio resources
- …and its image resoures
- …combined to demonstrate together
- Multiple Choice of Audio Formats in a Single View (Canvas)
- Table of Contents for Multiple A/V files on a Single Canvas (64)
- Table of Contents for Multiple A/V files on Multiple Canvases (65)
- Adaptive bit rate AV examples
- A field recording
- Basic Newspaper
- Example with extensions and services
- A manuscript with multiple orderings
- a Sammelband
- Archival collection (hierarchy, paging)
- Thumbnail range for video navigation
- Using Caption and Subtitle Files in Multiple Languages with Video Content
- Mixed Image Service references (a mashup, with img2 and img3 services)
- Glenn Gould - score and performance scenarios (transcribing)
- A Map
- Locating an Item in Place and Time
Access Control
this might be in a separate auth cookbook
- probe service for simple resource
- auth for adaptive bit rate media (MPEG-DASH)
- Anyone can deep zoom, auth reqd for hi-res download