Skip to content

Commit 3ae0fd2

Browse files
committed
first version of recipe #464 on Manifest reuse.
1 parent 7287024 commit 3ae0fd2

File tree

2 files changed

+133
-0
lines changed

2 files changed

+133
-0
lines changed

recipe/0464-reuse-manifest/index.md

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
title: Re-use 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 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 the metadata description, remove or re-order 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+
In this new document you can copy elements of the source Manifest and add your modifications. There are some guidelines you should follow in the process:
21+
22+
You can copy the `label` property of the Manifest but you should modify it slightly to indicate what you have changed.
23+
24+
You should reproduce the `requiredStatement`, `rights` and `provider` properties that apply to the images or other resources that you copy from the source Manifest.
25+
26+
You should also copy the `metadata` property, particularly identifiers like library-ids to make it easier for users of your Manifest to identify the original object.
27+
28+
You should copy the Canvases keeping the URI in the `id` property unless you want to modify the Canvas itself. This indicates that your additions like Annotations would also apply to the original Canvas.
29+
30+
31+
32+
## Example
33+
34+
In this example we use the Canvas from the Manifest of the recipe [rights statement][0008] and we add an Annotation to the Canvas.
35+
36+
The new Manifest reproduces the `rights` and `requiredStatement` properties from the source Manifest and the original Canvas ids.
37+
38+
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.
39+
40+
{% include manifest_links.html viewers="UV, Mirador, Curation" manifest="manifest.json" %}
41+
42+
{% include jsonviewer.html src="manifest.json" %}
43+
44+
The direct link to the fixture is a useful convenience.
45+
46+
## Related Recipes
47+
48+
Provide a bulleted list of related recipes and why they are relevant.
49+
50+
{% include acronyms.md %}
51+
{% include links.md %}
52+
+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
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, 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+
"items": [
26+
{
27+
"id": "https://iiif.io/api/cookbook/recipe/0008-rights/canvas/p1",
28+
"type": "Canvas",
29+
"height": 3024,
30+
"width": 4032,
31+
"items": [
32+
{
33+
"id": "https://iiif.io/api/cookbook/recipe/0008-rights/page/p1/1",
34+
"type": "AnnotationPage",
35+
"items": [
36+
{
37+
"id": "https://iiif.io/api/cookbook/recipe/0008-rights/annotation/p0001-image",
38+
"type": "Annotation",
39+
"motivation": "painting",
40+
"body": {
41+
"id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen/full/max/0/default.jpg",
42+
"type": "Image",
43+
"format": "image/jpeg",
44+
"height": 3024,
45+
"width": 4032,
46+
"service": [
47+
{
48+
"id": "https://iiif.io/api/image/3.0/example/reference/918ecd18c2592080851777620de9bcb5-gottingen",
49+
"profile": "level1",
50+
"type": "ImageService3"
51+
}
52+
]
53+
},
54+
"target": "https://iiif.io/api/cookbook/recipe/0008-rights/canvas/p1"
55+
}
56+
]
57+
}
58+
],
59+
"annotations": [
60+
{
61+
"id": "{{ id.path }}/canvas-1/annopage-2",
62+
"type": "AnnotationPage",
63+
"items": [
64+
{
65+
"id": "{{ id.path }}{{ id.path }}/canvas-1/annopage-2/anno-1",
66+
"type": "Annotation",
67+
"motivation": "commenting",
68+
"body": {
69+
"type": "TextualBody",
70+
"language": "de",
71+
"format": "text/plain",
72+
"value": "Göttinger Marktplatz mit Gänseliesel Brunnen"
73+
},
74+
"target": "{{ id.path }}/canvas-1"
75+
}
76+
]
77+
}
78+
]
79+
}
80+
]
81+
}

0 commit comments

Comments
 (0)