Books and Pages Work
About
Book works are works that are made up of 1 to many pages that are intended to be served in a IIIF viewer as a paged object.
Book works are works where the object is an ordered aggregation of 1-n pages. The book should be made up of
1-n pcdmuse:Object s with each set representing an individual page. Each page will be derived
from a JP2 or TIF. Each fileset should have 0-1 iana:next and 0-1 iana:prev properties
that point to either the next or previous fileset in the sequence. It also has a pcdm:memberOf property that
points at the book. The book should have a pcdm:hasMember property that points at each page fileset and one
iana:first and one iana:last properties that point to the first and last page of the work.
Each page object MAY have a pcdmuse:IntermediateFile and a pcdmuse:PreservationFile. The
pcdmuse:IntermediateFile should always be served to the viewer on the work page. In the case where there are both,
the pcdmuse:IntermediateFile has had additional processing done to it beyond what would happen through standard
programmatic derivative generation and thus needs its own fileset and rdf:type. Thumbnail generation should
always be done against the pcdmuse:IntermediateFile. In the case that there is only file, the file should be
both a pcdmuse:PreservationFile and pcdmuse:IntermediateFile. The pcdmuse:IntermediateFile is always
served in the viewer.
All books should have an auto-generated PDF that is searchable and available for download.
All pages should have OCR and HOCR.
A book work may have other filesets of any mime-type available for download.
All filesets may have restrictions that prohibit view / access.
A page object may have a property indicating that it is unordered that should be translated to the corresponding IIIF presentation manifest as such.
Metadata Properties
Descriptive Properties
Descriptive properties are described in our vendor supplied MAP.
Structural Properties
Suggested structure for a book is described here.
1@prefix : <https://location-of-future-repository/extra/paths/> .
2@prefix dcterms: <http://purl.org/dc/terms/> .
3@prefix fedora: <http://fedora.info/definitions/v4/repository#> .
4@prefix iana: <http://www.iana.org/assignments/relation/> .
5@prefix identifiers: <http://id.loc.gov/vocabulary/identifiers/> .
6@prefix ore: <http://www.openarchives.org/ore/terms/> .
7@prefix pcdm: <http://pcdm.org/models#> .
8@prefix pcdmff: <http://pcdm.org/file-format-types#> .
9@prefix pcdmuse: <http://pcdm.org/use#> .
10@prefix pcdmworks: <http://pcdm.org/works#> .
11@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
12
13:sample-book a pcdmworks:Work ;
14 dcterms:title "Air scoop : 63rd C.T.D., hot pilot. Volume 1, Number 3" ;
15 identifiers:local "ascoop:1507160011", "airscoop_vol1-no3" ;
16 iana:first :proxy-for-sample-book-page-1 ;
17 iana:last :proxy-for-sample-book-page-4 ;
18 pcdm:hasMember :sample-book-original-mods, :sample-book-generated-pdf, :sample-book-page-1, :sample-book-page-2, :sample-book-page-3, :sample-book-page-4 .
19
20:sample-book-original-mods a pcdmworks:Fileset ;
21 rdfs:label "MODS from Islandora - Fileset" ;
22 pcdm:memberOf :sample-book ;
23 pcdm:hasFile :sample-file-mods-xml .
24
25:sample-file-mods-xml a pcdmff:Markup ;
26 rdfs:label "MODS XML from Islandora" ;
27 pcdm:fileOf :sample-book-original-mods ;
28 fedora:hasVersions :path-to-the-actual-mods .
29
30:sample-book-generated-pdf a pcdmworks:Fileset ;
31 rdfs:label "PDF Download of Entire Book" ;
32 pcdm:memberOf :sample-book ;
33 pcdm:hasFile :sample-file-pdf .
34
35:sampe-file-pdf a pcdmff:Document ;
36 rdfs:label "PDF Download of Entire Book: Auto-Generated PDF" ;
37 pcdm:fileOf :sample-book-generated-pdf ;
38 fedora:hasVersions :path-to-the-actual-pdf.
39
40:sample-book-page-1 a pcdm:object ;
41 rdfs:label "Air scoop : 63rd C.T.D., hot pilot. Volume 1, Number 3 : page 1" ;
42 pcdm:memberOf :sample-book ;
43 pcdm:hasMember :sample-book-page-1-fileset .
44
45:sample-book-page-1-fileset a pcdmworks:Fileset ;
46 rdfs:label "Page 1 of Sample Book" ;
47 pcdm:memberOf :sample-book-page-1 ;
48 pcdm:hasFile :sample-book-page-1-preservation, :sample-book-page-1-intermediate, :sample-book-page-1-HOCR, :sample-book-page-1-OCR .
49
50:sample-book-page-1-preservation a pcdmuse:PreservationFile, pcdmff:Image ;
51 rdfs:label "Preservation File for Sample Book Page 1" ;
52 pcdm:fileOf :sample-book-page-1-fileset ;
53 fedora:hasVersions :path-to-the-preservation-file-for-sample-book-page-1 .
54
55:sample-book-page-1-intermediate a pcdmuse:IntermediateFile, pcdmff:Image ;
56 rdfs:label "Intermediate File for Sample Book Page 1" ;
57 pcdm:fileOf :sample-book-page-1-fileset ;
58 fedora:hasVersions :path-to-the-intermediate-file-for-sample-book-page-1 .
59
60:sample-book-page-1-hocr a pcdmff:HTML ;
61 rdfs:label "HOCR File for Sample Book Page 1" ;
62 pcdm:fileOf :sample-book-page-1-fileset ;
63 fedora:hasVersions :path-to-the-HOCR-file-for-sample-book-page-1 .
64
65:sample-book-page-1-ocr a pcdmuse:ExtractedText ;
66 rdfs:label "OCR File for Sample Book Page 1" ;
67 pcdm:fileOf :sample-book-page-1-fileset ;
68 fedora:hasVersions :path-to-the-OCR-file-for-sample-book-page-1 .
69
70:sample-book-page-2 a pcdm:Object ;
71 rdfs:label "Air scoop : 63rd C.T.D., hot pilot. Volume 1, Number 3 : page 2" ;
72 pcdm:memberOf :sample-book ;
73 pcdm:hasMember :sample-book-page-2-fileset .
74
75:sample-book-page-2-fileset a pcdmworks:Fileset ;
76 rdfs:label "Page 2 of Sample Book" ;
77 pcdm:memberOf :sample-book-page-2 ;
78 pcdm:hasFile :sample-book-page-2-preservation, :sample-book-page-2-intermediate, :sample-book-page-2-HOCR, :sample-book-page-2-OCR .
79
80:sample-book-page-2-preservation a pcdmuse:PreservationFile, pcdmff:Image ;
81 rdfs:label "Preservation File for Sample Book Page 2" ;
82 pcdm:fileOf :sample-book-page-2-fileset ;
83 fedora:hasVersions :path-to-the-preservation-file-for-sample-book-page-2 .
84
85:sample-book-page-2-intermediate a pcdmuse:IntermediateFile, pcdmff:Image ;
86 rdfs:label "Intermediate File for Sample Book Page 2" ;
87 pcdm:fileOf :sample-book-page-2-fileset ;
88 fedora:hasVersions :path-to-the-intermediate-file-for-sample-book-page-2 .
89
90:sample-book-page-2-hocr a pcdmff:HTML ;
91 rdfs:label "HOCR File for Sample Book Page 2" ;
92 pcdm:fileOf :sample-book-page-2-fileset ;
93 fedora:hasVersions :path-to-the-HOCR-file-for-sample-book-page-2 .
94
95:sample-book-page-2-ocr a pcdmuse:ExtractedText ;
96 rdfs:label "OCR File for Sample Book Page 2" ;
97 pcdm:fileOf :sample-book-page-2-fileset ;
98 fedora:hasVersions :path-to-the-OCR-file-for-sample-book-page-2 .
99
100:sample-book-page-3 a pcdm:Object ;
101 rdfs:label "Air scoop : 63rd C.T.D., hot pilot. Volume 1, Number 3 : page 3" ;
102 pcdm:memberOf :sample-book ;
103 pcdm:hasMember :sample-book-page-3-fileset .
104
105:sample-book-page-3-fileset a pcdmworks:Fileset ;
106 rdfs:label "Page 3 of Sample Book" ;
107 pcdm:memberOf :sample-book-page-3 ;
108 pcdm:hasFile :sample-book-page-3-preservation, :sample-book-page-3-HOCR, :sample-book-page-3-OCR .
109
110:sample-book-page-3-preservation a pcdmuse:PreservationFile, pcdmuse:IntermediateFile, pcdmff:Image ;
111 rdfs:label "Preservation and Intemediate File for Sample Book Page 3" ;
112 pcdm:fileOf :sample-book-page-3-fileset ;
113 fedora:hasVersions :path-to-the-preservation-file-for-sample-book-page-3 .
114
115:sample-book-page-3-hocr a pcdmff:HTML ;
116 rdfs:label "HOCR File for Sample Book Page 3" ;
117 pcdm:fileOf :sample-book-page-3-fileset ;
118 fedora:hasVersions :path-to-the-HOCR-file-for-sample-book-page-3 .
119
120:sample-book-page-3-ocr a pcdmuse:ExtractedText ;
121 rdfs:label "OCR File for Sample Book Page 3" ;
122 pcdm:fileOf :sample-book-page-3-fileset ;
123 fedora:hasVersions :path-to-the-OCR-file-for-sample-book-page-3 .
124
125:sample-book-page-4 a pcdm:Object ;
126 rdfs:label "Air scoop : 63rd C.T.D., hot pilot. Volume 1, Number 3 : page 4" ;
127 pcdm:memberOf :sample-book ;
128 pcdm:hasMember :sample-book-page-4-fileset .
129
130:sample-book-page-4-fileset a pcdmworks:Fileset ;
131 rdfs:label "Page 4 of Sample Book" ;
132 pcdm:memberOf :sample-book-page-4 ;
133 pcdm:hasFile :sample-book-page-4-preservation, :sample-book-page-4-HOCR, :sample-book-page-4-OCR .
134
135:sample-book-page-4-preservation a pcdmuse:PreservationFile, pcdmuse:IntermediateFile, pcdmff:Image ;
136 rdfs:label "Preservation and Intemediate File for Sample Book Page 4" ;
137 pcdm:fileOf :sample-book-page-4-fileset ;
138 fedora:hasVersions :path-to-the-preservation-file-for-sample-book-page-4 .
139
140:sample-book-page-4-hocr a pcdmff:HTML ;
141 rdfs:label "HOCR File for Sample Book Page 4" ;
142 pcdm:fileOf :sample-book-page-4-fileset ;
143 fedora:hasVersions :path-to-the-HOCR-file-for-sample-book-page-4 .
144
145:sample-book-page-4-ocr a pcdmuse:ExtractedText ;
146 rdfs:label "OCR File for Sample Book Page 4" ;
147 pcdm:fileOf :sample-book-page-4-fileset ;
148 fedora:hasVersions :path-to-the-OCR-file-for-sample-book-page-4 .
149
150:proxy-for-sample-book-page-1 a ore:Proxy ;
151 iana:next :proxy-for-sample-book-page-2 ;
152 ore:proxyIn :sample-book ;
153 ore:proxyFor :sample-book-page-1 .
154
155:proxy-for-sample-book-page-2 a ore:Proxy ;
156 iana:prev :proxy-for-sample-book-page-1 ;
157 iana:next :proxy-for-sample-book-page-3 ;
158 ore:proxyIn :sample-book ;
159 ore:proxyFor :sample-book-page-2 .
160
161:proxy-for-sample-book-page-3 a ore:Proxy ;
162 iana:prev :proxy-for-sample-book-page-2 ;
163 iana:next :proxy-for-sample-book-page-4 ;
164 ore:proxyIn :sample-book ;
165 ore:proxyFor :sample-book-page-3 .
166
167:proxy-for-sample-book-page-4 a ore:Proxy ;
168 iana:prev :proxy-for-sample-book-page-3 ;
169 ore:proxyIn :sample-book ;
170 ore:proxyFor :sample-book-page-4 .
Technical Properties
Technical properties are identified and listed in our metadata application profile in the files tab.
Viewing Experience
IIIF Viewer
Book works should be displayed in a IIIF viewer such as Universal Viewer, Clover IIIF, or Mirador with a “paged” / “2-up” behavior by default. The IIIF viewer should provide pan and zoom from the embedded OpenSeaDragon viewer. Our current IIIF configuration along with “viewing experience” for books and pages is described in our Books and Pages recipe document.
The pcdmuse:IntermediateFile should always be representative of the corresponding page in the book in the viewer
by default.
A paged book should look something like this:
It is important to note that while Universal Viewer allows users to switch between paged and non-paged views, other viewers do not. For that reason, it is important to us that book works specify this behavior in the corresponding manifest.
Location-based Viewing
Our metadata currently includes cartographic and coordinate information so that the metadata record can be easily intermixed with a location-based viewer. An item should not be playable from this view, but it should pop out into a new window. We also include a URI that points at a Geonames object that includes this same information.
If needed, we can continue to store cartographic and coordinate information in a separate field to make this easy.
Some sample location-based display might be:
If possible, we would also like our location information to be shared as a navPlace extension in our IIIF
manifests.
Rights Viewing
While we store our rights as uris (see metadata application profile), we’d like these statements to be actionable and render the appropriate badge and usage information to the user in both the IIIF viewer (when metadata is on) and in our metadata display below.
File Viewer
Users should be able to easily download the primary filesets.
If a fileset is only a pcdm:PreservationFile it should never be publicly visible.
Interoperability
OAI-PMH
Like other work types, book works should be represented by an OAI-PMH record based on its metadata application profile. The work should be a record in an OAI set for each corresponding collection to which the work belongs. Our metadata application profile should have a rule that states which field values should be transformed to OAI-PMH for a given metadata format (simple dublin core, qualified DublinCore, DPLA?)
Page works should not be represented by an OAI-PMH record.
IIIF Image
All pages should be served by a IIIF image service that adheres to at least IIIF Image API 2.1.1 that supports most features described in 5.3 profile description. As part of work type negotiation, we would like to know any features that the IIIF Image service does not support.
IIIF Presentation v3
All book works should have a corresponding IIIF presentation v3 manifest that allows the object to be shared and remixed in other projects. For our current system, we have a description of our current presentation 3 mapping in the corresponding recipe.
Bulkrax
Import
Like all work types, images should be importable according to our Metadata Application Profile via Bulkrax import using CSV and XXXXXXX file storage solution.
Export
In addition to import functionality, images should have a variety of export options including the ability to export only filesets related to preservation for easy transfer to Chronopolis. Those filesets should include:
RDF about the
pcdmworks:WorkRDF about the
ore:ProxyRDF about the pages
pcdmuse:PreservationFile
Restrictions
Like other work types, video works may have restrictions at the work and fileset / file level.