翻译者:syl
原文地址:https://iiif.io/api/cookbook/recipe/0009-book-1/

用例

你有一本由多个图像序列组成的数字化书籍,并想把它建模为一个IIIF清单。这个专题涉及到一个书(codex)对象,但实际上它适用于任何一种可能由一系列页面、表面或视图组成的复合对象(像下面的例子中的现代印刷书的页面,明信片的两面或雕像的四面视图)。

实施说明

下面的清单样本代表了一本印刷书的一部分的数字代用品,从正面插图和标题页开始。它包含五个画布,每个画布都被一页的全尺寸图像填充。在这种情况下,我们每页有一个视图,但根据对象的类型和它被数字化的方式,你也可以在每个双页上有一个视图或每面有一个视图。

由于这个清单是用来呈现一本印刷书的,所以它behaviour值是paged,从而表明它可以以翻页的界面来呈现。但是,根据预期的用户体验和物理对象及其数字代用品的性质,你可以使用其他提示来告诉用户适当的呈现顺序和布局行为。Presentation 3.0规范定义了的behaviour其他值(另见书籍行为变化专题)和一个viewingDirection属性(另见查看方向及其对导航的影响专题),它们都会影响对象在浏览界面的呈现。

清单的items属性包含Canvas的列表,代表构成数字对象的有序视图序列。每个Canvas都传达了该视图的正确长宽比,不管它是什么。对于一本书来说,最常见的情况是每页有一个视图,因此每个Canvas有一个图像。

建议使用 Canvas 上的label属性。它是给定视图的人类可读标签,允许用户区分不同的图像。它通常给出页数或对开页数,或任何其他适当的术语来识别对象中的特定视图。标签属性可以完全国际化(参见《多语言文本》)。

你还应该考虑为每个Canvas提供一个缩略图,这样客户端就可以有效地呈现网格视图或缩略图条,从而帮助用户在对象中进行导航。这是一个普遍的良好做法,如果你不为你的图像提供IIIF图像API服务,则特别建议你这样做。

实例

JSON-LD | View in Universal Viewer | View in Mirador

  1. {
  2. "@context": "http://iiif.io/api/presentation/3/context.json",
  3. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/manifest.json",
  4. "type": "Manifest",
  5. "label": {
  6. "en": [
  7. "Simple Manifest - Book"
  8. ]
  9. },
  10. "behavior": [
  11. "paged"
  12. ],
  13. "items": [
  14. {
  15. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/canvas/p1",
  16. "type": "Canvas",
  17. "label": {
  18. "en": [
  19. "Blank page"
  20. ]
  21. },
  22. "height": 4613,
  23. "width": 3204,
  24. "items": [
  25. {
  26. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/page/p1/1",
  27. "type": "AnnotationPage",
  28. "items": [
  29. {
  30. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/annotation/p0001-image",
  31. "type": "Annotation",
  32. "motivation": "painting",
  33. "body": {
  34. "id": "https://iiif.io/api/image/3.0/example/reference/59d09e6773341f28ea166e9f3c1e674f-gallica_ark_12148_bpt6k1526005v_f18/full/max/0/default.jpg",
  35. "type": "Image",
  36. "format": "image/jpeg",
  37. "height": 4613,
  38. "width": 3204,
  39. "service": [
  40. {
  41. "id": "https://iiif.io/api/image/3.0/example/reference/59d09e6773341f28ea166e9f3c1e674f-gallica_ark_12148_bpt6k1526005v_f18",
  42. "type": "ImageService3",
  43. "profile": "level1"
  44. }
  45. ]
  46. },
  47. "target": "https://iiif.io/api/cookbook/recipe/0009-book-1/canvas/p1"
  48. }
  49. ]
  50. }
  51. ]
  52. },
  53. {
  54. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/canvas/p2",
  55. "type": "Canvas",
  56. "label": {
  57. "en": [
  58. "Frontispiece"
  59. ]
  60. },
  61. "width": 3186,
  62. "height": 4612,
  63. "items": [
  64. {
  65. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/page/p2/1",
  66. "type": "AnnotationPage",
  67. "items": [
  68. {
  69. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/annotation/p0002-image",
  70. "type": "Annotation",
  71. "motivation": "painting",
  72. "body": {
  73. "id": "https://iiif.io/api/image/3.0/example/reference/59d09e6773341f28ea166e9f3c1e674f-gallica_ark_12148_bpt6k1526005v_f19/full/max/0/default.jpg",
  74. "type": "Image",
  75. "format": "image/jpeg",
  76. "width": 3186,
  77. "height": 4612,
  78. "service": [
  79. {
  80. "id": "https://iiif.io/api/image/3.0/example/reference/59d09e6773341f28ea166e9f3c1e674f-gallica_ark_12148_bpt6k1526005v_f19",
  81. "type": "ImageService3",
  82. "profile": "level1"
  83. }
  84. ]
  85. },
  86. "target": "https://iiif.io/api/cookbook/recipe/0009-book-1/canvas/p2"
  87. }
  88. ]
  89. }
  90. ]
  91. },
  92. {
  93. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/canvas/p3",
  94. "type": "Canvas",
  95. "label": {
  96. "en": [
  97. "Title page"
  98. ]
  99. },
  100. "width": 3204,
  101. "height": 4613,
  102. "items": [
  103. {
  104. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/page/p3/1",
  105. "type": "AnnotationPage",
  106. "items": [
  107. {
  108. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/annotation/p0003-image",
  109. "type": "Annotation",
  110. "motivation": "painting",
  111. "body": {
  112. "id": "https://iiif.io/api/image/3.0/example/reference/59d09e6773341f28ea166e9f3c1e674f-gallica_ark_12148_bpt6k1526005v_f20/full/max/0/default.jpg",
  113. "type": "Image",
  114. "format": "image/jpeg",
  115. "width": 3204,
  116. "height": 4613,
  117. "service": [
  118. {
  119. "id": "https://iiif.io/api/image/3.0/example/reference/59d09e6773341f28ea166e9f3c1e674f-gallica_ark_12148_bpt6k1526005v_f20",
  120. "type": "ImageService3",
  121. "profile": "level1"
  122. }
  123. ]
  124. },
  125. "target": "https://iiif.io/api/cookbook/recipe/0009-book-1/canvas/p3"
  126. }
  127. ]
  128. }
  129. ]
  130. },
  131. {
  132. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/canvas/p4",
  133. "type": "Canvas",
  134. "label": {
  135. "en": [
  136. "Blank page"
  137. ]
  138. },
  139. "width": 3174,
  140. "height": 4578,
  141. "items": [
  142. {
  143. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/page/p4/1",
  144. "type": "AnnotationPage",
  145. "items": [
  146. {
  147. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/annotation/p0004-image",
  148. "type": "Annotation",
  149. "motivation": "painting",
  150. "body": {
  151. "id": "https://iiif.io/api/image/3.0/example/reference/59d09e6773341f28ea166e9f3c1e674f-gallica_ark_12148_bpt6k1526005v_f21/full/max/0/default.jpg",
  152. "type": "Image",
  153. "format": "image/jpeg",
  154. "width": 3174,
  155. "height": 4578,
  156. "service": [
  157. {
  158. "id": "https://iiif.io/api/image/3.0/example/reference/59d09e6773341f28ea166e9f3c1e674f-gallica_ark_12148_bpt6k1526005v_f21",
  159. "type": "ImageService3",
  160. "profile": "level1"
  161. }
  162. ]
  163. },
  164. "target": "https://iiif.io/api/cookbook/recipe/0009-book-1/canvas/p4"
  165. }
  166. ]
  167. }
  168. ]
  169. },
  170. {
  171. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/canvas/p5",
  172. "type": "Canvas",
  173. "label": {
  174. "en": [
  175. "Bookplate"
  176. ]
  177. },
  178. "width": 3198,
  179. "height": 4632,
  180. "items": [
  181. {
  182. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/page/p5/1",
  183. "type": "AnnotationPage",
  184. "items": [
  185. {
  186. "id": "https://iiif.io/api/cookbook/recipe/0009-book-1/annotation/p0005-image",
  187. "type": "Annotation",
  188. "motivation": "painting",
  189. "body": {
  190. "id": "https://iiif.io/api/image/3.0/example/reference/59d09e6773341f28ea166e9f3c1e674f-gallica_ark_12148_bpt6k1526005v_f22/full/max/0/default.jpg",
  191. "type": "Image",
  192. "format": "image/jpeg",
  193. "width": 3198,
  194. "height": 4632,
  195. "service": [
  196. {
  197. "id": "https://iiif.io/api/image/3.0/example/reference/59d09e6773341f28ea166e9f3c1e674f-gallica_ark_12148_bpt6k1526005v_f22",
  198. "type": "ImageService3",
  199. "profile": "level1"
  200. }
  201. ]
  202. },
  203. "target": "https://iiif.io/api/cookbook/recipe/0009-book-1/canvas/p5"
  204. }
  205. ]
  206. }
  207. ]
  208. }
  209. ]
  210. }

相关专题