Skip to content

Commit fa87b39

Browse files
authored
Merge pull request #588 from IIIF/0464-reuse-manifest
Recipe on Manifest reuse.
2 parents fae7996 + 476504b commit fa87b39

File tree

4 files changed

+145
-0
lines changed

4 files changed

+145
-0
lines changed

_includes/links.md

+1
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
[0346]: {{ site.cookbook_url | absolute_url }}/recipe/0346-multilingual-annotation-body/ "Annotating in Multiple Languages"
7575
[0377]: {{ site.cookbook_url | absolute_url }}/recipe/0377-image-in-annotation/ "Image in annotation"
7676

77+
[0464]: {{ site.cookbook_url | absolute_url }}/recipe/0464-reuse-manifest/ "Reuse parts of a Manifest"
7778
[0466]: {{ site.cookbook_url | absolute_url }}/recipe/0466-link-for-loading-manifest/ "Loading a manifest with a viewer using a link"
7879

7980
[0485]: {{ site.cookbook_url | absolute_url }}/recipe/0485-contentstate-canvas-region/ "Open a specific region of a canvas in a viewer"

index.md

+1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ _The corresponding 2.1 test fixture(s) is given like this, where appropriate: ..
6161
* [Locate Multiple Canvases on a Web Map][0240]
6262
* [Acknowledge Content Contributors][0234]
6363
* [Simple Collection][0032]
64+
* [Reuse parts of a Manifest][0464]
6465

6566
## Textual and other supplementary content
6667

recipe/0464-reuse-manifest/index.md

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: Reuse parts of a manifest
3+
id: -1
4+
layout: recipe
5+
tags: [tbc]
6+
summary: "tbc"
7+
viewers:
8+
topic:
9+
- basic
10+
---
11+
12+
## Use Case
13+
14+
I want to create a new Manifest based on parts of an existing Manifest that exists online, either to mix images from different Manifests into one presentation or to add metadata or Annotations to an existing presentation.
15+
16+
## Implementation Notes
17+
18+
A [IIIF Presentation Manifest][prezi3] is a fixed document at a given URI with a given set of Canvases, Ranges, metadata or Annotations. If you want to modify the Manifest to change anything inside like the metadata description, remove or reorder images, add images from other Manifests or add Annotations to the images, you have to create a new Manifest and make it available at a new URI.
19+
20+
To create this new document you can copy most elements of the source Manifest and add your modifications. There are some guidelines you should follow in the process:
21+
22+
You must change the `id` property of the Manifest to match the URI that your published new Manifest will have.
23+
24+
You should copy the Canvases preserving the URI in their `id` property unless you modify the Canvas itself. This indicates that additions you make, such as Annotations, also refer to the original Canvas in the source Manifest.
25+
26+
You can copy the `label` property of the Manifest but you should modify it to indicate what you have changed so that users of your new Manifest can easily differentiate it from the source Manifest.
27+
28+
You should reproduce the `requiredStatement`, `rights` and `provider` properties that apply to the images or other resources that you copy from the source Manifest. Depending on the licenses you may have to reproduce these properties. If you combine resources from multiple Manifests you may have to combine these properties.
29+
30+
You should copy the `metadata` property, particularly identifiers like library-ids to make it easier for users of your Manifest to identify the original object.
31+
32+
There is no formal way to reference the source Manifest but you are encouraged to add a metadata element that contains a link to the source Manifest and describes your changes.
33+
34+
You should be considerate of possible ethical implications of copying parts of an existing Manifest and try not to confuse users of your Manifest about intellectual or legal ownership.
35+
36+
37+
## Example
38+
39+
In this example we reuse the Manifest of the recipe [rights statement][0008] and we add an Annotation to the Canvas.
40+
41+
The new Manifest reproduces the `rights` and `requiredStatement` properties from the source Manifest and the original Canvas ids.
42+
43+
The original Manifest label "Picture of Göttingen taken during the 2019 IIIF Conference" has been modified to indicate that an Annotation has been added and a metadata element with a link to the original Manifest and a note about the changes was added.
44+
45+
{% include manifest_links.html viewers="Mirador,Annona,Glycerine Viewer,Theseus" manifest="manifest.json" %}
46+
47+
{% include jsonviewer.html src="manifest.json" config='data-line="26-37,73-92"' %}
48+
49+
## Related Recipes
50+
51+
* [Rights statement][0008] for the source Manifest and information on rights statements
52+
* [Simplest Annotation][0266] for information on the type of Annotation added here
53+
54+
{% include acronyms.md %}
55+
{% include links.md %}
56+
+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
{
2+
"@context": [
3+
"http://iiif.io/api/presentation/3/context.json"
4+
],
5+
"id": "{{ id.url }}",
6+
"type": "Manifest",
7+
"label": {
8+
"en": [
9+
"Picture of Göttingen taken during the 2019 IIIF Conference, reused and annotated."
10+
]
11+
},
12+
"rights": "http://creativecommons.org/licenses/by-sa/3.0/",
13+
"requiredStatement": {
14+
"label": {
15+
"en": [
16+
"Attribution"
17+
]
18+
},
19+
"value": {
20+
"en": [
21+
"<span>Glen Robson, IIIF Technical Coordinator. <a href=\"https://creativecommons.org/licenses/by-sa/3.0\">CC BY-SA 3.0</a> <a href=\"https://creativecommons.org/licenses/by-sa/3.0\" title=\"CC BY-SA 3.0\"><img src=\"https://licensebuttons.net/l/by-sa/3.0/88x31.png\"/></a></span>"
22+
]
23+
}
24+
},
25+
"metadata": [
26+
{
27+
"label": { "en": [ "Source Manifest" ] },
28+
"value": { "en": [ "<span>Reuse of <a href=\"https://iiif.io/api/cookbook/recipe/0008-rights/manifest.json\">Source Manifest</a> with added Annotation" ] }
29+
}
30+
],
31+
"items": [
32+
{
33+
"id": "https://iiif.io/api/cookbook/recipe/0008-rights/canvas/p1",
34+
"type": "Canvas",
35+
"height": 3024,
36+
"width": 4032,
37+
"items": [
38+
{
39+
"id": "https://iiif.io/api/cookbook/recipe/0008-rights/page/p1/1",
40+
"type": "AnnotationPage",
41+
"items": [
42+
{
43+
"id": "https://iiif.io/api/cookbook/recipe/0008-rights/annotation/p0001-image",
44+
"type": "Annotation",
45+
"motivation": "painting",
46+
"body": {
47+
"id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen/full/max/0/default.jpg",
48+
"type": "Image",
49+
"format": "image/jpeg",
50+
"height": 3024,
51+
"width": 4032,
52+
"service": [
53+
{
54+
"id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen",
55+
"profile": "level1",
56+
"type": "ImageService3"
57+
}
58+
]
59+
},
60+
"target": "https://iiif.io/api/cookbook/recipe/0008-rights/canvas/p1"
61+
}
62+
]
63+
}
64+
],
65+
"annotations": [
66+
{
67+
"id": "{{ id.path }}/canvas-1/annopage-2",
68+
"type": "AnnotationPage",
69+
"items": [
70+
{
71+
"id": "{{ id.path }}{{ id.path }}/canvas-1/annopage-2/anno-1",
72+
"type": "Annotation",
73+
"motivation": "commenting",
74+
"body": {
75+
"type": "TextualBody",
76+
"language": "de",
77+
"format": "text/plain",
78+
"value": "Göttinger Marktplatz mit Gänseliesel Brunnen"
79+
},
80+
"target": "{{ id.path }}/canvas-1"
81+
}
82+
]
83+
}
84+
]
85+
}
86+
]
87+
}

0 commit comments

Comments
 (0)