Skip to content

Commit

Permalink
Merge pull request #371 from IIIF/0032-collection
Browse files Browse the repository at this point in the history
Recipe #32: Simplest Collection
  • Loading branch information
glenrobson authored Jan 19, 2024
2 parents c3ddbaa + 9d8e463 commit ee0709a
Show file tree
Hide file tree
Showing 6 changed files with 200 additions and 0 deletions.
1 change: 1 addition & 0 deletions _includes/links.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
[0019]: {{ site.cookbook_url | absolute_url }}/recipe/0019-html-in-annotations/ "HTML in Annotations"
[0021]: {{ site.cookbook_url | absolute_url }}/recipe/0021-tagging/ "Simple Annotation — Tagging"

[0032]: {{ site.cookbook_url | absolute_url }}/recipe/0032-collection/ "Simple Collection"
[0033]: {{site.baseurl}}/recipe/0033-choice/ "Multiple choice of images in a single view"
[0035]: {{site.baseurl}}/recipe/0035-foldouts/ "Foldouts, Flaps, and Maps"
[0036]: {{site.baseurl}}/recipe/0036-composition-from-multiple-images/ "Composition from Multiple Images"
Expand Down
1 change: 1 addition & 0 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ _The corresponding 2.1 test fixture(s) is given like this, where appropriate: ..
* [Locate a Manifest on a Web Map][0154]
* [Locate Multiple Canvases on a Web Map][0240]
* [Acknowledge Content Contributors][0234]
* [Simple Collection][0032]

## Textual and other supplementary content

Expand Down
18 changes: 18 additions & 0 deletions recipe/0032-collection/collection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"@context": "http://iiif.io/api/presentation/3/context.json",
"id": "{{ id.url }}",
"type": "Collection",
"label": { "en": [ "Simple Collection Example" ] },
"items": [
{
"id": "{{ id.path }}/manifest-01.json",
"type": "Manifest",
"label": { "en": [ "The Gulf Stream" ] }
},
{
"id": "{{ id.path }}/manifest-02.json",
"type": "Manifest",
"label": { "en": [ "Northeaster" ] }
}
]
}
76 changes: 76 additions & 0 deletions recipe/0032-collection/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
title: Simple Collection
id: 32
layout: recipe
tags: [presentation]
summary: ""
viewers:
- UV
- Mirador
- Annona
- Clover
topic:
- basic
---

## Use Case

Your organization has a named collection of paintings authored by a specific person. Each of these unique items already has a digital representation and a Manifest, and you would now like to organize and present them together in a unified and coherent IIIF Presentation interface.

## Implementation notes

This recipe illustrates the mandatory structure and properties of a IIIF Collection of Manifests, with the simplest possible content. IIIF Collections have no restrictions on the organizational purpose of their referenced resources, though the resources may be related as a named digital collection, a common metadata value, or be organized as search results.

Like with a Manifest, the JSON-LD of a Collection opens with the`@context` declaration, which identifies the terms used in the document as belonging to the IIIF specification. The `id` property identifies this collection with the URL at which it is available online. The `type` property must be `Collection`.

As with a Manifest, the `label` property is mandatory, and the language of its value must be given (or the special value `none`), using a [language map](https://iiif.io/api/presentation/3.0/#language-of-property-values). Here the language of the `label` is English and its value is “Simple Collection Example”.

The Collection `items` property is an array of referenced Manifests. In this example there are two Manifests. Each `items` entry must have an `id`, `type`, and a `label`. The `id` must be the URI where the Manifest can be available online. The `type` must be `Manifest` or a `Collection`. Each `items` entry referenced should not be fully embedded into the Collection, and should contain only necessary properties for presentation of the collection such as `thumbnail`. Various other [descriptive](https://iiif.io/api/presentation/3.0/#31-descriptive-properties) and [linking](https://iiif.io/api/presentation/3.0/#33-linking-properties) properties such as `summary`, minimal `metadata`, and `homepage` may be useful as well for presentation. See the [Summary of property requirements](https://iiif.io/api/presentation/3.0/#a-summary-of-property-requirements) for a complete list.

Collections may also reference other Collections.

Collections may have `behavior` defined in order to influence user experience when viewing the resource. Manifests within a Collection DO NOT inherit [behaviors](https://iiif.io/api/presentation/3.0/#behavior) from their referencing Collections; however referenced Collections will.

Defining a IIIF Collection is to not be conflated with creating a table of contents within an individual Manifest. To define a table of contents, see [Multiple Volumes in a Single Bound Volume][0031].

## Restrictions

None known.

## Example

This example IIIF Collection represents an organization’s collection of paintings by the American painter Winslow Homer, which includes two distinct artworks: _The Gulf Stream_ and _Northeaster_. Each painting is represented within the Collection as a IIIF Manifest, identified by a URI as its `id`, a `type` property, and the corresponding title as the `label`.

Note: Each supporting viewer has a distinct method for toggling between Collection items:

- Universal Viewer presents items in an _Index_ tab;
- Mirador presents items in a dialog component;
- Annona presents items in a toggleable information panel;
- Clover presents items as options in a dropdown element.

**Example Collection**

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

{% include jsonviewer.html src="collection.json" %}

**Example Manifest for _The Gulf Stream_**

{% include manifest_links.html viewers="UV, Mirador, Annona, Clover" manifest="manifest-01.json" %}

{% include jsonviewer.html src="manifest-01.json" %}

**Example Manifest for _Northeaster_**

{% include manifest_links.html viewers="UV, Mirador, Annona, Clover" manifest="manifest-02.json" %}

{% include jsonviewer.html src="manifest-02.json" %}

# Related recipes

* [Multi Volume][0030]
* [Multiple Volumes in a Single Bound Volume][0031]
* [Basic Newspaper][0068]

{% include acronyms.md %}
{% include links.md %}
52 changes: 52 additions & 0 deletions recipe/0032-collection/manifest-01.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"@context": "http://iiif.io/api/presentation/3/context.json",
"id": "{{ id.url }}",
"type": "Manifest",
"label": { "en": [ "The Gulf Stream" ] },
"metadata": [
{
"label": { "en": [ "Artist" ] },
"value": { "en": [ "Winslow Homer (1836–1910)" ] }
},
{
"label": { "en": [ "Date" ] },
"value": { "en": [ "1899" ] }
}
],
"items": [
{
"id": "{{ id.path }}/manifest/1/canvas/p1",
"type": "Canvas",
"height": 3540,
"width": 5886,
"items": [
{
"id": "{{ id.path }}/manifest/1/page/p1/1",
"type": "AnnotationPage",
"items": [
{
"id": "{{ id.path }}/manifest/1/annotation/p0001-image",
"type": "Annotation",
"motivation": "painting",
"body": {
"id": "https://iiif.io/api/image/3.0/example/reference/329817fc8a251a01c393f517d8a17d87-Winslow_Homer_-_The_Gulf_Stream_-_Metropolitan_Museum_of_Art/full/max/0/default.jpg",
"type": "Image",
"format": "image/jpeg",
"height": 3540,
"width": 5886,
"service": [
{
"id": "https://iiif.io/api/image/3.0/example/reference/329817fc8a251a01c393f517d8a17d87-Winslow_Homer_-_The_Gulf_Stream_-_Metropolitan_Museum_of_Art",
"profile": "level1",
"type": "ImageService3"
}
]
},
"target": "{{ id.path }}/manifest/1/canvas/p1"
}
]
}
]
}
]
}
52 changes: 52 additions & 0 deletions recipe/0032-collection/manifest-02.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"@context": "http://iiif.io/api/presentation/3/context.json",
"id": "{{ id.url }}",
"type": "Manifest",
"label": { "en": [ "Northeaster" ] },
"metadata": [
{
"label": { "en": [ "Artist" ] },
"value": { "en": [ "Winslow Homer (1836–1910)" ] }
},
{
"label": { "en": [ "Date" ] },
"value": { "en": [ "1895" ] }
}
],
"items": [
{
"id": "{{ id.path }}/manifest/2/canvas/p1",
"type": "Canvas",
"height": 2572,
"width": 3764,
"items": [
{
"id": "{{ id.path }}/manifest/2/page/p1/1",
"type": "AnnotationPage",
"items": [
{
"id": "{{ id.path }}/manifest/2/annotation/p0001-image",
"type": "Annotation",
"motivation": "painting",
"body": {
"id": "https://iiif.io/api/image/3.0/example/reference/329817fc8a251a01c393f517d8a17d87-Northeaster_by_Winslow_Homer_1895/full/max/0/default.jpg",
"type": "Image",
"format": "image/jpeg",
"height": 2572,
"width": 3764,
"service": [
{
"id": "https://iiif.io/api/image/3.0/example/reference/329817fc8a251a01c393f517d8a17d87-Northeaster_by_Winslow_Homer_1895",
"profile": "level1",
"type": "ImageService3"
}
]
},
"target": "{{ id.path }}/manifest/2/canvas/p1"
}
]
}
]
}
]
}

0 comments on commit ee0709a

Please sign in to comment.