From a2d626d3a9a4c9eb67142473e382f60ac944bf2c Mon Sep 17 00:00:00 2001 From: Mat Jordan Date: Wed, 26 Oct 2022 09:22:48 -0400 Subject: [PATCH 01/21] Draft simple collections. --- recipe/0032-collection/collection.json | 18 +++++++++++++ recipe/0032-collection/index.md | 34 ++++++++++++++++++++++++ recipe/0032-collection/manifest-01.json | 35 +++++++++++++++++++++++++ recipe/0032-collection/manifest-02.json | 35 +++++++++++++++++++++++++ 4 files changed, 122 insertions(+) create mode 100644 recipe/0032-collection/collection.json create mode 100644 recipe/0032-collection/index.md create mode 100644 recipe/0032-collection/manifest-01.json create mode 100644 recipe/0032-collection/manifest-02.json diff --git a/recipe/0032-collection/collection.json b/recipe/0032-collection/collection.json new file mode 100644 index 000000000..b91840402 --- /dev/null +++ b/recipe/0032-collection/collection.json @@ -0,0 +1,18 @@ +{ + "@context": "http://iiif.io/api/presentation/3/context.json", + "id": "{{ id.url }}", + "type": "Collection", + "label": { "none": [ "Simple Collection" ] }, + "items": [ + { + "id": "{{ id.path }}/manifest-01.json", + "type": "Manifest", + "label": { "none": [ "Manifest 01" ] } + }, + { + "id": "{{ id.path }}/manifest-02.json", + "type": "Manifest", + "label": { "none": [ "Manifest 02" ] } + } + ] +} diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md new file mode 100644 index 000000000..8ac1dc0bf --- /dev/null +++ b/recipe/0032-collection/index.md @@ -0,0 +1,34 @@ +--- +title: Simple Collection +id: 32 +layout: recipe +tags: [presentation] +summary: "" +viewers: + - UV + - Mirador + - Clover +topic: + - basic +--- + +## Use Case + +## Implementation notes + +## Restrictions + +## Example + +{% include manifest_links.html viewers="UV, Mirador, Clover" manifest="collection.json" %} + +{% include jsonviewer.html src="collection.json" %} + +# Related recipes + +* [Book with Table of Contents][0024] +* [Multi Volume][0030] +* [Multiple Volumes in a Single Bound Volume][0031] + +{% include acronyms.md %} +{% include links.md %} diff --git a/recipe/0032-collection/manifest-01.json b/recipe/0032-collection/manifest-01.json new file mode 100644 index 000000000..6c7d26872 --- /dev/null +++ b/recipe/0032-collection/manifest-01.json @@ -0,0 +1,35 @@ +{ + "@context": "http://iiif.io/api/presentation/3/context.json", + "id": "{{ id.url }}", + "type": "Manifest", + "label": { "none": [ "Manifest 01" ] }, + "items": [ + { + "id": "{{ id.path }}/canvas/p1", + "type": "Canvas", + "height": 1800, + "width": 1200, + "items": [ + { + "id": "{{ id.path }}/page/p1/1", + "type": "AnnotationPage", + "items": [ + { + "id": "{{ id.path }}/annotation/p0001-image", + "type": "Annotation", + "motivation": "painting", + "body": { + "id": "http://iiif.io/api/presentation/2.1/example/fixtures/resources/page1-full.png", + "type": "Image", + "format": "image/png", + "height": 1800, + "width": 1200 + }, + "target": "{{ id.path }}/canvas/p1" + } + ] + } + ] + } + ] +} diff --git a/recipe/0032-collection/manifest-02.json b/recipe/0032-collection/manifest-02.json new file mode 100644 index 000000000..d93844aca --- /dev/null +++ b/recipe/0032-collection/manifest-02.json @@ -0,0 +1,35 @@ +{ + "@context": "http://iiif.io/api/presentation/3/context.json", + "id": "{{ id.url }}", + "type": "Manifest", + "label": { "none": [ "Manifest 02" ] }, + "items": [ + { + "id": "{{ id.path }}/canvas/p1", + "type": "Canvas", + "height": 1800, + "width": 1200, + "items": [ + { + "id": "{{ id.path }}/page/p1/1", + "type": "AnnotationPage", + "items": [ + { + "id": "{{ id.path }}/annotation/p0001-image", + "type": "Annotation", + "motivation": "painting", + "body": { + "id": "http://iiif.io/api/presentation/2.1/example/fixtures/resources/page1-full.png", + "type": "Image", + "format": "image/png", + "height": 1800, + "width": 1200 + }, + "target": "{{ id.path }}/canvas/p1" + } + ] + } + ] + } + ] +} From f3d33690b4569b25e6023d9d6d94ae0c15d5e291 Mon Sep 17 00:00:00 2001 From: Mat Jordan Date: Fri, 13 Jan 2023 10:13:55 -0500 Subject: [PATCH 02/21] Add use case and implementatio notes. --- recipe/0032-collection/collection.json | 6 +++--- recipe/0032-collection/index.md | 10 +++++++++- recipe/0032-collection/manifest-01.json | 2 +- recipe/0032-collection/manifest-02.json | 4 ++-- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/recipe/0032-collection/collection.json b/recipe/0032-collection/collection.json index b91840402..ee89408b8 100644 --- a/recipe/0032-collection/collection.json +++ b/recipe/0032-collection/collection.json @@ -2,17 +2,17 @@ "@context": "http://iiif.io/api/presentation/3/context.json", "id": "{{ id.url }}", "type": "Collection", - "label": { "none": [ "Simple Collection" ] }, + "label": { "en": [ "Simple Collection Example" ] }, "items": [ { "id": "{{ id.path }}/manifest-01.json", "type": "Manifest", - "label": { "none": [ "Manifest 01" ] } + "label": { "en": [ "Manifest 1" ] } }, { "id": "{{ id.path }}/manifest-02.json", "type": "Manifest", - "label": { "none": [ "Manifest 02" ] } + "label": { "en": [ "Manifest 2" ] } } ] } diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index 8ac1dc0bf..280572712 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -14,9 +14,17 @@ topic: ## Use Case +The simplest possible collection to reference multiple Manifests that are organized into a single IIIF resource. Collections may also reference other Collections as sub-collections. 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. + ## Implementation notes -## Restrictions +This illustrates the mandatory structure and properties of a Collection, with the simplest possible content. + +Like with a Manifest, The JSON-LD 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 full 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. ## Example diff --git a/recipe/0032-collection/manifest-01.json b/recipe/0032-collection/manifest-01.json index 6c7d26872..6357ed113 100644 --- a/recipe/0032-collection/manifest-01.json +++ b/recipe/0032-collection/manifest-01.json @@ -2,7 +2,7 @@ "@context": "http://iiif.io/api/presentation/3/context.json", "id": "{{ id.url }}", "type": "Manifest", - "label": { "none": [ "Manifest 01" ] }, + "label": { "none": [ "Manifest 1" ] }, "items": [ { "id": "{{ id.path }}/canvas/p1", diff --git a/recipe/0032-collection/manifest-02.json b/recipe/0032-collection/manifest-02.json index d93844aca..4b55b8cf1 100644 --- a/recipe/0032-collection/manifest-02.json +++ b/recipe/0032-collection/manifest-02.json @@ -2,7 +2,7 @@ "@context": "http://iiif.io/api/presentation/3/context.json", "id": "{{ id.url }}", "type": "Manifest", - "label": { "none": [ "Manifest 02" ] }, + "label": { "none": [ "Manifest 2" ] }, "items": [ { "id": "{{ id.path }}/canvas/p1", @@ -19,7 +19,7 @@ "type": "Annotation", "motivation": "painting", "body": { - "id": "http://iiif.io/api/presentation/2.1/example/fixtures/resources/page1-full.png", + "id": "http://iiif.io/api/presentation/2.1/example/fixtures/resources/page2-full.png", "type": "Image", "format": "image/png", "height": 1800, From 0aff8a26e1f7140815dd12e809969fadfd6389c0 Mon Sep 17 00:00:00 2001 From: Mat Jordan Date: Fri, 13 Jan 2023 11:06:39 -0500 Subject: [PATCH 03/21] Add link. --- _includes/links.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_includes/links.md b/_includes/links.md index 03b5545fc..9b294a52f 100644 --- a/_includes/links.md +++ b/_includes/links.md @@ -20,9 +20,10 @@ [0139]: {{ site.cookbook_url | absolute_url }}/recipe/0139-geolocate-canvas-fragment/ "Represent Canvas Fragment as a Geographic Area on a Web Map" [0019]: {{ site.cookbook_url | absolute_url }}/recipe/0019-html-in-annotations/ "HTML in Annotations" ->>>>>>> master + [0021]: {{ site.cookbook_url | absolute_url }}/recipe/0021-tagging/ "Simple Annotation — Tagging" +[0032]: {{ site.cookbook_url | absolute_url }}/recipe/0032-collection/ "Simplest 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" From e12baac2bed065ff8033f3db7fdda34ccfc01b2a Mon Sep 17 00:00:00 2001 From: Mat Jordan Date: Mon, 25 Sep 2023 11:06:41 -0400 Subject: [PATCH 04/21] Revise use case. --- recipe/0032-collection/index.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index 280572712..fbe8bfac7 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -14,11 +14,11 @@ topic: ## Use Case -The simplest possible collection to reference multiple Manifests that are organized into a single IIIF resource. Collections may also reference other Collections as sub-collections. 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. +Your organization has a named digital collection of artworks by a specific person. These unique items are already digital objects represented by Manifests and you would like to organize and present them as an ordered IIIF Presentation resource. ## Implementation notes -This illustrates the mandatory structure and properties of a Collection, with the simplest possible content. +This recipe illustrates the mandatory structure and properties of a Collection, with the simplest possible content. Like with a Manifest, The JSON-LD 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`. @@ -26,6 +26,11 @@ As with a Manifest, the `label` property is mandatory, and the language of its v 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 full 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. +Though this simple recipe references on Manifests, Collections may also reference other Collections as sub-collections. 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. + +## Restrictions + + ## Example {% include manifest_links.html viewers="UV, Mirador, Clover" manifest="collection.json" %} From 672f896c4833bd0e1c6eb49ecec6a19a58d87990 Mon Sep 17 00:00:00 2001 From: mat Date: Mon, 25 Sep 2023 12:58:18 -0400 Subject: [PATCH 05/21] Revise language. --- recipe/0032-collection/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index fbe8bfac7..b2332a5f6 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -14,19 +14,19 @@ topic: ## Use Case -Your organization has a named digital collection of artworks by a specific person. These unique items are already digital objects represented by Manifests and you would like to organize and present them as an ordered IIIF Presentation resource. +Your organization has a named digital collection of artworks authored by a specific person. Each of these unique items are already digital objects represented by Manifests and you would like to organize and present them as an ordered IIIF Presentation resource. ## Implementation notes -This recipe illustrates the mandatory structure and properties of a Collection, with the simplest possible content. +This recipe illustrates the mandatory structure and properties of a IIIF Collection of Manifests, with the simplest possible content. -Like with a Manifest, The JSON-LD 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`. +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 full 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. -Though this simple recipe references on Manifests, Collections may also reference other Collections as sub-collections. 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. +Though this simple recipe is an ordered list of Manifests, Collections may also reference other Collections as sub-collections. 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. ## Restrictions From 4e4d00263330ab82d521e79e5da1af5baecc3516 Mon Sep 17 00:00:00 2001 From: Mat Jordan Date: Mon, 25 Sep 2023 13:15:30 -0400 Subject: [PATCH 06/21] Revise related. --- recipe/0032-collection/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index b2332a5f6..552d89393 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -14,7 +14,7 @@ topic: ## Use Case -Your organization has a named digital collection of artworks authored by a specific person. Each of these unique items are already digital objects represented by Manifests and you would like to organize and present them as an ordered IIIF Presentation resource. +Your organization has a named digital collection of artworks authored by a specific person. Each of these unique items are already digital objects represented by Manifests and you would now like to organize and present them as an ordered IIIF Presentation resource. ## Implementation notes @@ -39,9 +39,9 @@ Though this simple recipe is an ordered list of Manifests, Collections may also # Related recipes -* [Book with Table of Contents][0024] * [Multi Volume][0030] * [Multiple Volumes in a Single Bound Volume][0031] +* [Basic Newspaper][0068] {% include acronyms.md %} {% include links.md %} From 6cd1dac84ba85c7f4bbcbf05002b4e42255cbe8a Mon Sep 17 00:00:00 2001 From: Mat Jordan Date: Mon, 25 Sep 2023 13:26:12 -0400 Subject: [PATCH 07/21] Add restriction. --- recipe/0032-collection/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index 552d89393..c4b4b1dae 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -29,7 +29,7 @@ The Collection `items` property is an array of referenced Manifests. In this exa Though this simple recipe is an ordered list of Manifests, Collections may also reference other Collections as sub-collections. 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. ## Restrictions - +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]. ## Example From f4fc6e162a178eca7c1adf87154f792e73d2be45 Mon Sep 17 00:00:00 2001 From: Mat Jordan Date: Mon, 25 Sep 2023 14:08:07 -0400 Subject: [PATCH 08/21] Add `behavior` note. --- recipe/0032-collection/index.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index c4b4b1dae..8916e58b5 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -18,7 +18,7 @@ Your organization has a named digital collection of artworks authored by a speci ## Implementation notes -This recipe illustrates the mandatory structure and properties of a IIIF Collection of Manifests, with the simplest possible content. +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`. @@ -26,9 +26,12 @@ As with a Manifest, the `label` property is mandatory, and the language of its v 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 full 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. -Though this simple recipe is an ordered list of Manifests, Collections may also reference other Collections as sub-collections. 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. +Collections may also reference other Collections as sub-collections. + +Collections may have [`behavior`](https://iiif.io/api/presentation/3.0/#behavior) defined in order to influence user experience when viewing the resource. Manifests within a collection DO NOT inherit behaviors from their referencing Collections, however referenced Collections will. ## Restrictions + 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]. ## Example From 4bc6165e1d5b8c3492e33fadae9f4ad3dc3c3c03 Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 26 Sep 2023 09:45:07 -0400 Subject: [PATCH 09/21] Apply edits. --- recipe/0032-collection/index.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index 8916e58b5..8df4e4027 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -8,27 +8,28 @@ viewers: - UV - Mirador - Clover + - Annona topic: - basic --- ## Use Case -Your organization has a named digital collection of artworks authored by a specific person. Each of these unique items are already digital objects represented by Manifests and you would now like to organize and present them as an ordered IIIF Presentation resource. +Your organization has a named collection of artworks 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`. +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 full 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. +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 as sub-collections. +Collections may also reference other Collections. -Collections may have [`behavior`](https://iiif.io/api/presentation/3.0/#behavior) defined in order to influence user experience when viewing the resource. Manifests within a collection DO NOT inherit behaviors from their referencing Collections, however referenced Collections will. +Collections may have [`behavior`](https://iiif.io/api/presentation/3.0/#behavior) defined in order to influence user experience when viewing the resource. Manifests within a Collection DO NOT inherit behaviors from their referencing Collections; however referenced Collections will. ## Restrictions From e4f47c89efa5ed45701952165ad5bdebd8731611 Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 26 Sep 2023 10:20:31 -0400 Subject: [PATCH 10/21] Revise language. --- recipe/0032-collection/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index 8df4e4027..2b4d5d90c 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -15,7 +15,7 @@ topic: ## Use Case -Your organization has a named collection of artworks 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. +Your organization has a named collection of drawings 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 From af84f9ff87abff1b33ce6bc2e001a09ac2e3fb49 Mon Sep 17 00:00:00 2001 From: Mat Jordan Date: Thu, 5 Oct 2023 11:18:27 -0400 Subject: [PATCH 11/21] Apply simple collection recipe feedback. Co-authored-by: Trip Kirkpatrick --- recipe/0032-collection/index.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index 280572712..2b4d5d90c 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -8,23 +8,32 @@ viewers: - UV - Mirador - Clover + - Annona topic: - basic --- ## Use Case -The simplest possible collection to reference multiple Manifests that are organized into a single IIIF resource. Collections may also reference other Collections as sub-collections. 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. +Your organization has a named collection of drawings 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 illustrates the mandatory structure and properties of a Collection, with the simplest possible content. +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 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`. +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 full 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. +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`](https://iiif.io/api/presentation/3.0/#behavior) defined in order to influence user experience when viewing the resource. Manifests within a Collection DO NOT inherit behaviors from their referencing Collections; however referenced Collections will. + +## Restrictions + +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]. ## Example @@ -34,9 +43,9 @@ The Collection `items` property is an array of referenced Manifests. In this exa # Related recipes -* [Book with Table of Contents][0024] * [Multi Volume][0030] * [Multiple Volumes in a Single Bound Volume][0031] +* [Basic Newspaper][0068] {% include acronyms.md %} {% include links.md %} From 07b5a146d99993209bda6240af2f847e37c65003 Mon Sep 17 00:00:00 2001 From: Mat Jordan Date: Thu, 5 Oct 2023 12:07:36 -0400 Subject: [PATCH 12/21] Update simple collection example. --- recipe/0032-collection/collection.json | 4 +-- recipe/0032-collection/manifest-01.json | 39 ++++++++++++++++++------- recipe/0032-collection/manifest-02.json | 39 ++++++++++++++++++------- 3 files changed, 58 insertions(+), 24 deletions(-) diff --git a/recipe/0032-collection/collection.json b/recipe/0032-collection/collection.json index ee89408b8..b3e371f42 100644 --- a/recipe/0032-collection/collection.json +++ b/recipe/0032-collection/collection.json @@ -7,12 +7,12 @@ { "id": "{{ id.path }}/manifest-01.json", "type": "Manifest", - "label": { "en": [ "Manifest 1" ] } + "label": { "en": [ "The Gulf Stream" ] } }, { "id": "{{ id.path }}/manifest-02.json", "type": "Manifest", - "label": { "en": [ "Manifest 2" ] } + "label": { "en": [ "Northeaster" ] } } ] } diff --git a/recipe/0032-collection/manifest-01.json b/recipe/0032-collection/manifest-01.json index 6357ed113..28263287a 100644 --- a/recipe/0032-collection/manifest-01.json +++ b/recipe/0032-collection/manifest-01.json @@ -2,30 +2,47 @@ "@context": "http://iiif.io/api/presentation/3/context.json", "id": "{{ id.url }}", "type": "Manifest", - "label": { "none": [ "Manifest 1" ] }, + "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 }}/canvas/p1", + "id": "{{ id.path }}/manifest/1/canvas/p1", "type": "Canvas", - "height": 1800, - "width": 1200, + "height": 3540, + "width": 5886, "items": [ { - "id": "{{ id.path }}/page/p1/1", + "id": "{{ id.path }}/manifest/1/page/p1/1", "type": "AnnotationPage", "items": [ { - "id": "{{ id.path }}/annotation/p0001-image", + "id": "{{ id.path }}/manifest/1/annotation/p0001-image", "type": "Annotation", "motivation": "painting", "body": { - "id": "http://iiif.io/api/presentation/2.1/example/fixtures/resources/page1-full.png", + "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/png", - "height": 1800, - "width": 1200 + "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 }}/canvas/p1" + "target": "{{ id.path }}/manifest/1/canvas/p1" } ] } diff --git a/recipe/0032-collection/manifest-02.json b/recipe/0032-collection/manifest-02.json index 4b55b8cf1..ef4d9bd6e 100644 --- a/recipe/0032-collection/manifest-02.json +++ b/recipe/0032-collection/manifest-02.json @@ -2,30 +2,47 @@ "@context": "http://iiif.io/api/presentation/3/context.json", "id": "{{ id.url }}", "type": "Manifest", - "label": { "none": [ "Manifest 2" ] }, + "label": { "en": [ "Northeaster" ] }, + "metadata": [ + { + "label": { "en": [ "Artist" ] }, + "value": { "en": [ "Winslow Homer (1836–1910)" ] } + }, + { + "label": { "en": [ "Date" ] }, + "value": { "en": [ "1895" ] } + } + ], "items": [ { - "id": "{{ id.path }}/canvas/p1", + "id": "{{ id.path }}/manifest/2/canvas/p1", "type": "Canvas", - "height": 1800, - "width": 1200, + "height": 2572, + "width": 3764, "items": [ { - "id": "{{ id.path }}/page/p1/1", + "id": "{{ id.path }}/manifest/2/page/p1/1", "type": "AnnotationPage", "items": [ { - "id": "{{ id.path }}/annotation/p0001-image", + "id": "{{ id.path }}/manifest/2/annotation/p0001-image", "type": "Annotation", "motivation": "painting", "body": { - "id": "http://iiif.io/api/presentation/2.1/example/fixtures/resources/page2-full.png", + "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/png", - "height": 1800, - "width": 1200 + "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 }}/canvas/p1" + "target": "{{ id.path }}/manifest/2/canvas/p1" } ] } From a7cb66a089b5aa4fdffd01d5b143dab9fc0348bb Mon Sep 17 00:00:00 2001 From: Mat Jordan Date: Thu, 5 Oct 2023 14:12:02 -0400 Subject: [PATCH 13/21] Reorder viewers. --- recipe/0032-collection/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index 2b4d5d90c..020c6c552 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -7,15 +7,15 @@ summary: "" viewers: - UV - Mirador - - Clover - Annona + - Clover topic: - basic --- ## Use Case -Your organization has a named collection of drawings 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. +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 @@ -37,7 +37,7 @@ Defining a IIIF Collection is to not be conflated with creating a table of conte ## Example -{% include manifest_links.html viewers="UV, Mirador, Clover" manifest="collection.json" %} +{% include manifest_links.html viewers="UV, Mirador, Annona, Clover" manifest="collection.json" %} {% include jsonviewer.html src="collection.json" %} From 834bc723208d53bd8866082da7d0355c73dac2a7 Mon Sep 17 00:00:00 2001 From: mat Date: Fri, 13 Oct 2023 10:45:26 -0400 Subject: [PATCH 14/21] Address restrictions. --- recipe/0032-collection/index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index 020c6c552..f55d39b0f 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -31,9 +31,11 @@ Collections may also reference other Collections. Collections may have [`behavior`](https://iiif.io/api/presentation/3.0/#behavior) defined in order to influence user experience when viewing the resource. Manifests within a Collection DO NOT inherit behaviors 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 -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]. +None known. ## Example From 32afe27adfc71c99bdedbce2831ab87571d03a5b Mon Sep 17 00:00:00 2001 From: Trip Kirkpatrick Date: Thu, 19 Oct 2023 12:06:25 -0400 Subject: [PATCH 15/21] Synced title in links, added to TOC --- _includes/links.md | 2 +- index.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_includes/links.md b/_includes/links.md index 45ef4f78b..55f00d06b 100644 --- a/_includes/links.md +++ b/_includes/links.md @@ -22,7 +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/ "Simplest Collection" +[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" diff --git a/index.md b/index.md index 72b8a20fc..6d60b6279 100644 --- a/index.md +++ b/index.md @@ -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 From fba4d057620bb6c7698f3fdddf3223ea464aecd8 Mon Sep 17 00:00:00 2001 From: Mat Jordan Date: Wed, 1 Nov 2023 19:29:42 -0400 Subject: [PATCH 16/21] Add example context. --- recipe/0032-collection/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index f55d39b0f..d845a5e7a 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -39,6 +39,8 @@ 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 of 'Manifest,' and a corresponding `label`. + {% include manifest_links.html viewers="UV, Mirador, Annona, Clover" manifest="collection.json" %} {% include jsonviewer.html src="collection.json" %} From 6fa911ef0ce6a645f2df616455a0191ec92900ee Mon Sep 17 00:00:00 2001 From: Mat Jordan Date: Wed, 1 Nov 2023 19:39:05 -0400 Subject: [PATCH 17/21] Refine includes to cover referenced Manifests. --- recipe/0032-collection/index.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index d845a5e7a..04a065135 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -39,12 +39,26 @@ 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 of 'Manifest,' and a corresponding `label`. +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`. + +**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] From 1ef7e9787257985196ab98e04c6cbeddc5b84501 Mon Sep 17 00:00:00 2001 From: Mat Jordan Date: Wed, 1 Nov 2023 20:11:23 -0400 Subject: [PATCH 18/21] Add viewer notes. --- recipe/0032-collection/index.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index 04a065135..fffce7bfc 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -41,6 +41,12 @@ None known. 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 outputs items in an _Index_ tab. + - Mirador presents a dialog that allows users to select an item. + - Clover renders items as options in a dropdown element. + **Example Collection** {% include manifest_links.html viewers="UV, Mirador, Annona, Clover" manifest="collection.json" %} From 62c988d143a5666c47eb8c5a6d907b40c55ce8ea Mon Sep 17 00:00:00 2001 From: mat Date: Mon, 13 Nov 2023 08:30:49 -0500 Subject: [PATCH 19/21] Revise supporting collection distinctions, add Annona note. --- recipe/0032-collection/index.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index fffce7bfc..5e80fb9a9 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -41,11 +41,12 @@ None known. 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. +Note: Each supporting viewer has a distinct method for toggling between Collection items: - - Universal Viewer outputs items in an _Index_ tab. - - Mirador presents a dialog that allows users to select an item. - - Clover renders items as options in a dropdown element. +- Universal Viewer presents items in an _Index_ tab; +- Mirador presents items in a dialog component; +- Annona presents items in a toggleable informational panel; +- Clover presents items as options in a dropdown element. **Example Collection** From bc081ae040e961bcd51f35a1427b6f451a060d5e Mon Sep 17 00:00:00 2001 From: mat Date: Wed, 15 Nov 2023 11:16:28 -0500 Subject: [PATCH 20/21] Fix typo. --- recipe/0032-collection/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index 5e80fb9a9..2f057dc3c 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -45,7 +45,7 @@ Note: Each supporting viewer has a distinct method for toggling between Collecti - Universal Viewer presents items in an _Index_ tab; - Mirador presents items in a dialog component; -- Annona presents items in a toggleable informational panel; +- Annona presents items in a toggleable information panel; - Clover presents items as options in a dropdown element. **Example Collection** From 9d8e4635959bd2d5d8eb0696a00b2aaa43fa5ebb Mon Sep 17 00:00:00 2001 From: mat Date: Thu, 11 Jan 2024 13:08:00 -0500 Subject: [PATCH 21/21] Update behavior spec link. --- recipe/0032-collection/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/0032-collection/index.md b/recipe/0032-collection/index.md index 2f057dc3c..174d6b582 100644 --- a/recipe/0032-collection/index.md +++ b/recipe/0032-collection/index.md @@ -29,7 +29,7 @@ The Collection `items` property is an array of referenced Manifests. In this exa Collections may also reference other Collections. -Collections may have [`behavior`](https://iiif.io/api/presentation/3.0/#behavior) defined in order to influence user experience when viewing the resource. Manifests within a Collection DO NOT inherit behaviors from their referencing Collections; however referenced Collections will. +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].