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:

An Example of Book in UV
An Example of Book in Mirador

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:

Location-based Example 1
Location-based Example 2
Location-based Example 3
Location-based Example 4

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.

Example of Book Rights

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.

File Download Example

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:Work

  • RDF about the ore:Proxy

  • RDF about the pages

  • pcdmuse:PreservationFile

Restrictions

Like other work types, video works may have restrictions at the work and fileset / file level.