title | layout |
---|---|
IIIF Cookbook |
default |
The [IIIF Presentation API][prezi3] specifies a standardised 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 modelling 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.
Anyone can submit a recipe to the cookbook. The community process is as follows:
- The proposer creates an issue for the recipe on GitHub.
- The initial discussion of the recipe is conducted in comments on the issue. This may result in the recipe being modified, or abandoned.
- If there is broad agreement that the recipe is valuable, the proposer, or another community member assigns the issue to themselves.
- To get permission to assign issues please contact the IIIF Staff at [email protected] who will add you to the iiif-recipes Github team.
- The assignee will then create a pull request containing the recipe.
- The pull request is reviewed by the Technical Review Committee as part of its regular work.
- If approved, the pull request is merged, and the recipe becomes part of the published cookbook.
Recipes should not be substantially the same as an existing recipe (though may demonstrate an extension of an existing recipe, and therefore reproduce it).
A recipe must have the following features:
- A short and clear name.
- A use case (why the pattern is important to include).
- Implementation notes, with references to the specifcation and other recipes;
- All referenced content resources, external annotations and other links should resolve: they must exist on the web or be included in the submitted recipe. Any client that implements support for a recipe should expect the published recipe to work. Where possible the content resources should be hosted on the iiif.io web site, rather than at third party locations.
- Restrictions (optional): where this pattern is usable or not usable, with explanation of why
- A full example, comprising:
- a prose description;
- code samples (JSON-LD representation, following the formatting instructions below)
- See also: similar or otherwise related recipes. This recipe may build on other recipes, or may be a building block in subsequent recipes.
The corresponding 2.1 test fixture(s) is given like this, where appropriate: ..(3,5)
- [Simplest Manifest - Image][0001] (1) (use static image as content resource, w.h)
- [Simplest Manifest - Audio][0002] (1) (use single audio as content resource, d)
- [Simplest Manifest - Video][0003] (1) (use single video as content resource, w,h,d)
- Image different size to canvas (26)
- Image Service for single image (24,25)
- Multiple values and languages (3,4,6)
- Multiple formats of strings (text, html, markdown...?) (64)
- Rights statement(s) (7)
- Book (simplest, > 1 canvas) (19)
- Book (viewingDirection variations) (11,12,13,14)
- Book (paging variations) (15,16,17)
- thumbnail algorithm / discussion
- placeholderCanvas
- accompanyingCanvas
- start (65)
- Transcription of image-based content - various examples gathered (43,44,45,46,47,48)
- Transcription of audio and video
- Transcription of content into XML, with XPaths to select a segment
(leading on to segmentation examples later)
- comments - various examples (51,52,54)
- Fragment selectors (61)
- tagging
- hotspot linking
- Annotation in the context of a particular content resource IIIF/iiif-stories#101
- table of contents (ranges) - book chapters
- table of contents (ranges) - articles in a newspaper
- table of contents (ranges) - acts of an opera
- Alternative Sequence (via
sequence
Range) (20,22,23) sequence
Range with partial canvases- metadata on any resource (21)
- multi-volume work
- bound multi-volume work
- paged Collections (from #1343)
- Choice (simplest) (28)
- Choice - multispectral flavoured example, with image services (29)
- foldouts, etc (Choice or non-paged interlude (flaps vs maps))?
- [Multiple images (master/detail)][detail-image] (30,31)
- 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 with CSS Rotation (39)
- 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
- alternative representations (rendering (?))
- 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
- seeAlso scenarios (incl other manifests) (8)
- extensions (18)
- services (9,10)
- Mixed version scenarios (Prezi 3+Image 2)
- Publishing v2 and v3 versions
- 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
- An opera on one Canvas
- An opera on multiple Canvases
- Adaptive bit rate AV examples
- A field recording
- A newspaper
- Example with extensions and services
- A manuscript with multiple orderings
- a Sammelband
- Archival collection (hierarchy, paging)
- Thumbnail range for video navigation
- Video with captions in multiple languages
- Mixed Image Service references (a mashup, with img2 and img3 services)
- Glenn Gould - score and performance scenarios (transcribing)
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
{% include acronyms.md %} {% include links.md %}