Skip to content

Commit

Permalink
Merge branch 'master' into 0139-geo-annotation
Browse files Browse the repository at this point in the history
  • Loading branch information
glenrobson authored Apr 2, 2021
2 parents 1995921 + 5121a87 commit b72beb2
Show file tree
Hide file tree
Showing 14 changed files with 1,027 additions and 91 deletions.
12 changes: 10 additions & 2 deletions _includes/links.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,30 @@
[0015]: {{site.baseurl}}/recipe/0015-start/ "Begin playback at a specific point - Time-based media"
[0139]: {{site.baseurl}}/recipe/0139-geolocate-canvas-fragment/ "Represent Canvas Fragment as a Geographic Point on a Web Map"

[0024]: {{site.baseurl}}/recipe/0024-book-4-toc/ "Table of Contents for Book Chapters"
[0026]: {{site.baseurl}}/recipe/0026-toc-opera/ "Table of Contents for A/V Content"
[0029]: {{site.baseurl}}/recipe/0029-metadata-anywhere/ "Metadata on any Resource"
[0053]: {{site.baseurl}}/recipe/0053-seeAlso/ "Linking to Structured Metadata"
[0046]: {{site.baseurl}}/recipe/0046-rendering/ "Providing Alternative Representations"

[0064]: {{site.baseurl}}/recipe/0064-opera-one-canvas/ "Table of Contents for Multiple A/V Files on a Single Canvas"
[0065]: {{site.baseurl}}/recipe/0065-opera-multiple-canvases/ "Table of Contents for Multiple A/V Files on Multiple Canvases"

[0024]: {{site.baseurl}}/recipe/0024-book-4-toc/ "Book with Table of contents (ranges)"

[0068]: {{site.baseurl}}/recipe/0068-newspaper/ "A newspaper"
[0117]: {{site.baseurl}}/recipe/0117-add-image-thumbnail/ "Manifest Thumbnail"
[0219]: {{site.baseurl}}/recipe/0219-using-caption-file/ "Using Captions and Subtitles with Video Content"

[0118]: {{site.baseurl}}/recipe/0118_multivalue/ "Displaying Multiple Values with Language Maps"

[prezi3]: https://iiif.io/api/presentation/3 "IIIF Presentation API"
[prezi3-languages]: https://iiif.io/api/presentation/3.0/#language-of-property-values "Language of Property Values"
[prezi3-metadata]: https://iiif.io/api/presentation/3.0/#metadata "Metadata"
[prezi3-service]: https://iiif.io/api/presentation/3.0/#service "IIIF Presentation API service property"
[prezi3-thumbnail]: https://iiif.io/api/presentation/3.0/#thumbnail "Thumbnail"
[prezi3-start]: https://iiif.io/api/presentation/3.0/#start "Start Property"
[prezi3-openannotation]: https://iiif.io/api/annex/openannotation "IIIF Open/Web Annotation Extensions"
[prezi3-pointselector]: https://iiif.io/api/annex/openannotation/#point-selector "PointSelector"
[prezi3-range]: https://iiif.io/api/presentation/3.0/#54-range "Range"
[service-registry]: https://iiif.io/api/registry/services/ "the IIIF Registry of Services"
[language-of-property-values]: https://iiif.io/api/presentation/3.0/#44-language-of-property-values "Language of Property Values"
[bcp-47]: https://tools.ietf.org/html/bcp47 "BCP 47"
10 changes: 6 additions & 4 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,12 @@ _The corresponding 2.1 test fixture(s) is given like this, where appropriate: ..
* [Image and Canvas with Differing Dimensions][0004] (26)
* [Support Deep Viewing with Basic Use of a IIIF Image Service][0005] (24,25)
* [Internationalization and Multi-language Values][0006] (3,4,6)
* [Displaying Multiple Values with Language Maps][0118]
* [Embedding HTML in descriptive properties][0007] (64)
* [Metadata on any Resource][0029] (21)
* [Rights statement\(s\)][0008] (7)
* [Simple Manifest - Book][0009] (19)
* [Book behavior (paging) variations][0011] (15,16,17)
* [Book behavior (paging) variations][0011] (15,16,17)
* [Viewing direction and its effect on navigation][0010] (11,12,13,14)
* [Manifest Thumbnail][0117]
* thumbnail algorithm / discussion
Expand All @@ -46,6 +48,7 @@ _The corresponding 2.1 test fixture(s) is given like this, where appropriate: ..

* Transcription of image-based content - various examples gathered (43,44,45,46,47,48)
* Transcription of audio and video
* [Using Caption and Subtitles with Video Content][0219]
* Transcription of content into XML, with XPaths to select a segment
* [Providing Alternative Representations][0046]

Expand All @@ -61,12 +64,11 @@ _(leading on to segmentation examples later)_

## Internal structure

* table of contents (ranges) - book chapters
* [Table of Contents for Book Chapters][0024]
* table of contents (ranges) - articles in a newspaper
* [Table of contents for A/V content][0026] (26)
* Alternative Sequence (via `sequence` Range) (20,22,23)
* `sequence` Range with partial canvases
* metadata on any resource (21)

## Higher-level structure

Expand Down Expand Up @@ -99,7 +101,7 @@ _(leading on to segmentation examples later)_
* 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)
* [Linking to Structured Metadata][0053] (8)

## Technical

Expand Down
45 changes: 45 additions & 0 deletions recipe/0024-book-4-toc/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
title: Table of Contents for Book Chapters
id: 24
layout: recipe
tags: [text, image, book]
summary: "Using Ranges to create a table of contents for a book"
---

## Use Case

Many books have a logical structure that can be made navigable through a table of contents (ToC) or other wayfinding methods. These might include chapters and other internal sections, or might reflect multiple works contained within an anthology or bound manuscript. IIIF uses Ranges to represent a book's structure and IIIF viewers can display this structure as a ToC in an index panel to aid users in navigating the book by chapter, section, work, etc.

## Implementation Notes

Ranges are used to represent a structure within a book object by grouping Canvases together and/or by providing an alternate order of the Canvases from the order presented in the `items` property of the Manifest. Ranges can include Canvases, parts of Canvases, or other Ranges, creating a tree structure like a table of contents.

Ranges are contained within the `structures` property and require a `label` property to display in the ToC (`labels` are not inherited from a referenced Canvas, so you will need to explicitly include the `label` property in the Range). Within a Range, resources are included as an array of resources using the `items` property. These structures can be made hierarchical simply by nesting an `items` array within another `items` array. This is useful when chapters might be sub-divided or in the case of multiple works where individual works may have chapters. This is a departure from the method defined by previous versions of the IIIF Presentation API.

The `behavior` property can also be applied to Ranges. For more information on how `behavior` affects navigation in Ranges, see the [IIIF Presentation API on Ranges](https://iiif.io/api/presentation/3.0/#54-range) and the [Ranges and the `behavior` Property][229] recipe.

## Restrictions

None

## Example

In this example, an Ethiopic manuscript contains multiple works, one of which contains multiple sections. The Manifest contains a Range to represent the top-level structure (begins with lines 247–254), and another embedded Range to represent the content sections of the second work, *Arede'et* (begins with lines 275–282). This will result in a hierarchical ToC like so:

* Tabiba Tabiban [ጠቢበ ጠቢባን]
* Arede'et [አርድዕት]
* Monday
* Tuesday

{% include manifest_links.html viewers="UV, Mirador" manifest="manifest.json" %}

{% include jsonviewer.html src="manifest.json" config='data-line="246-326, 247-254, 275-282"' %}

## Related Recipes

* [Book (simplest)][0009]
* [Book (paging variations)][0011]
* [Table of Contents for A/V Content][0026]

{% include acronyms.md %}
{% include links.md %}
Loading

0 comments on commit b72beb2

Please sign in to comment.