Books and Pages
About
In University of Tennessee Digital Collections, digital objects that are made up of many works that cannot stand on
their own and are ordered are called Books. Books are considered to be paged and should be displayed
two up in a page turning viewer. Books are different from Compound Objects in that books only consist of
Page works that cannot live on their own while compound objects can be made up of any work type. While Pages
should be indexed, they should not be described in an OAI record or listed as a member of a IIIF collection. Similarly,
a Page can be represented by a manifest but should only be partOf a Book.
Fedora Model
Book works have properties that express they are a book and which collections they belong to. If a PDF was generated on
ingest, it will also have a property stating this. Ideally, this PDF would be available in the IIIF manifest but isn’t
currently. The page has properties stating that it is a Page work, the book it is a member of, where it appears in
the book, and whether or not there is related OCR / HOCR.
@prefix fedora: <info:fedora/fedora-system:def/relations-external#> .
@prefix fedora-model: <info:fedora/fedora-system:def/model#> .
@prefix islandora: <http://islandora.ca/ontology/relsext#> .
<info:fedora/ascoop:1507160011> islandora:create_pdf "true" ;
fedora-model:hasModel <info:fedora/islandora:bookCModel> ;
fedora:isMemberOfCollection <info:fedora/collections:ascoop> .
<info:fedora/ascoop:1507160012> islandora:generate_ocr "TRUE" ;
islandora:isPageNumber "1" ;
islandora:isPageOf <info:fedora/ascoop:1507160011> ;
islandora:isSection "1" ;
islandora:isSequenceNumber "1" ;
fedora-model:hasModel <info:fedora/islandora:pageCModel> ;
fedora:isMemberOf <info:fedora/ascoop:1507160011> .
IIIF Manifest
The IIIF manifest for a Book work inherits the basic format for other manifests. For more information, see
Base Manifest.
Book works are the only work type that have a behavior of paged.
1 "behavior": [
2 "paged"
3 ]
Book works and CompoundObject works are different from other manifests in that they consist of multiple
Canvases. In the items property, each Page work is a Canvas. Each Canvas has the
following properties: id, type, label, width, height, thumbnail,
items, and seeAlso.
A unique id for representing the Canvas is generated with the appropriate type. The label
is the value of fgsLabel of the page, while width, height, and thumbnail are generated
by the Cantaloupe response for the size and services related to the TN datastream.
1 {
2 "id": "https:\/\/digital.lib.utk.edu\/assemble\/manifest\/ascoop\/1507160011\/canvas\/0",
3 "type": "Canvas",
4 "label": {
5 "none": [
6 "\"Air scoop : 63rd C.T.D."
7 ]
8 },
9 "width": 3091,
10 "height": 4904,
11 "thumbnail": [
12 {
13 "id": "https:\/\/digital.lib.utk.edu\/iiif\/2\/collections~islandora~object~ascoop:1507160012~datastream~TN\/full\/max\/0\/default.jpg",
14 "width": 126,
15 "height": 200,
16 "service": [
17 {
18 "@id": "https:\/\/digital.lib.utk.edu\/iiif\/2\/collections~islandora~object~ascoop:1507160012~datastream~TN",
19 "@type": "http:\/\/iiif.io\/api\/image\/2\/context.json",
20 "@profile": "http:\/\/iiif.io\/api\/image\/2\/level2.json"
21 }
22 ],
23 "type": "Image",
24 "format": "image\/jpeg"
25 }
26 ],
27 },
The items property should have 1 AnnotationPage with 1 Annotation. The Annotation should
have a motivation of painting based on the JP2 datastream that targets the Canvas.
1 "items": [
2 {
3 "id": "https:\/\/digital.lib.utk.edu\/assemble\/manifest\/ascoop\/1507160011\/canvas\/0",
4 "type": "Canvas",
5 ],
6 "items": [
7 {
8 "id": "https:\/\/digital.lib.utk.edu\/assemble\/manifest\/ascoop\/1507160011\/canvas\/0\/page\/ascoop:1507160012",
9 "type": "AnnotationPage",
10 "items": [
11 {
12 "id": "https:\/\/digital.lib.utk.edu\/assemble\/manifest\/ascoop\/1507160011\/canvas\/0\/page\/ascoop:1507160012\/627d06f187dab",
13 "type": "Annotation",
14 "motivation": "painting",
15 "body": {
16 "id": "https:\/\/digital.lib.utk.edu\/iiif\/2\/collections~islandora~object~ascoop:1507160012~datastream~JP2\/full\/full\/0\/default.jpg",
17 "type": "Image",
18 "width": 3091,
19 "height": 4904,
20 "format": "image\/jpeg",
21 "service": [
22 {
23 "@id": "https:\/\/digital.lib.utk.edu\/iiif\/2\/collections~islandora~object~ascoop:1507160012~datastream~JP2",
24 "@type": "http:\/\/iiif.io\/api\/image\/2\/context.json",
25 "profile": "http:\/\/iiif.io\/api\/image\/2\/level2.json"
26 }
27 ]
28 },
29 "target": "https:\/\/digital.lib.utk.edu\/assemble\/manifest\/ascoop\/1507160011\/canvas\/0"
30 }
31 ]
32 }
33 ],
34 },
35 ],
Each Canvas also has a :seeAlso: property that points at the page’s HOCR:
1 "seeAlso": [
2 {
3 "id": "https:\/\/digital.lib.utk.edu\/collections\/islandora\/object\/ascoop:1507160012\/datastream\/HOCR",
4 "motivation": "supplementing",
5 "format": "text\/vnd.hocr+html",
6 "profile": "http:\/\/kba.cloud\/hocr-spec\/1.2\/"
7 }
8 ]
Viewing Experience
Our books should be rendered appropriately in a variety of viewers.
In Clover, books are rendered but not paged since Clover does not support two up.
In Mirador, books are paged.
In Universal Viewer, books are rendered but not paged by default. Universal Viewer instead shows everything as individuals with the option for two up.