Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Overview

Info
titleSupported in 7.1 or above

IIIF support was first added to DSpace in version 7.1.  It was not available in 7.0 or below.

DSpace supports the International Image Interoperability Framework (IIIF). The DSpace REST API implements the IIIF Presentation API version 2.1.1, IIIF Image API version 2.1.1, and the IIIF Search API version 1.0 (experimental). The DSpace Angular frontend uses the Mirador 3.0 viewer.

...

Info
titleIIIF Image Server

Running IIIF in production requires an IIIF-compatible image server. You are free to use any compatible image server you choose. However, instructions for configuring the Cantaloupe Image Server are included below. A preconfigured Cantaloupe image server is included in the Docker build can be started via docker-compose to simplify evaluation and testing. 


Image Added

Format Support

Currently, DSpace only supports IIIF viewing of Image formats (any format whose MIME type starts with "image/*").  For example, PDF viewing is not currently supported.Sample with Single ImageImage Removed

Enable IIIF Support on Backend

...

The full set if IIIF configuration options can be found in config/modules/iiif.cfg

PropertyDescription
iiif.enabledEnables the DSpace IIIF service.
iiif.image.serverBase URL path for the IIIF image server. e.g. http://localhost:8182/iiif/2/
iiif.document.viewing.hintDefault viewing hint. Can be overridden with the metadata setting described below.

iiif.logo.image

Optional URL for a small image. This will be included in all IIIF manifests.

iiif.cors.allowed-originsComma separated list of allowed CORS origins. The list must include the default value:  ${dspace.ui.url}.
iiif.metadata.itemSets the Dublin Core metadata that will be added to the IIIF resource manifest. This property can be repeated.
iiif.metadata.bitstreamSets the Bitstream metadata that will be added to the IIIF canvas metadata for individual images. This property can be repeated.
iiif.license.uri

Sets the metadata used for information about the resource usage rights.

iiif.attribution

The text to use as attribution in the iiif manifests. Defaults to:  ${dspace.name}

iiif.document.viewing.hint

Either "individuals", "paged" or "continuous". Can be overridden with the metadata setting described below.

iiif.canvas.default-width

Default value for the canvas size. Can be overridden at the item, bundle or bitstream level.

iiif.canvas.default-height

Default value for the canvas size. Can be overridden at the item, bundle or bitstream level.

CORS Configuration


Info
titleCanvas Dimensions

As of 7.2, the canvas dimension options (iiif.canvas.default-width and iiif.canvas.default-height) are updated with additional behaviors.

  • If you do not provide your own default dimensions in iiif.cfg, DSpace will attempt to optimize canvas dimensions when dimension metadata is missing from the first bitstream in the item. This will often produce more accurate viewer layouts, but note that it is not sufficient to assure accurate layouts in all cases. 
  • If you decide to add your own default dimensions in iiif.cfg file your dimensions are used for every bitstream that lacks dimension metadata.
  • You may also set both default dimensions in iiif.cfg to the value -1. In this case, DSpace creates accurate default dimensions for every bitstream that lacks dimension metadata. Note that this impacts performance.

It is recommended that iiif.image.width and iiif.image.height metadata be added to Item, Bundle, or Bitstream metadata to assure accurate layout and top performance. Default dimension configurations are intended to improve the user experience when dimension metadata has not yet been added.

CORS Configuration

The wildcard "*" configuration is the default CORS setting for IIIF. With this setting, all remote viewers and applications can retrieve manifests, assuring maximum interoperability. You can restrict By default, the DSpace IIIF backend is configured to accept requests only from the Angular client origin. To facilitate the repository interoperability that IIIF promises, you can configure additional CORS origins using the iiif.cors.allowed-origins property defined in iiif.cfg. Currently, DSpace does not support the "*" wildcard but you are free to add multiple, Remove the wildcard and add a comma-separated list of origins to the listinstead.

IIIF Search API

DSpace includes a plugin to support the IIIF Search API. This plugin is designed to work specifically with the Solr OCR Highlighting Plugin and METS/ALTO data. You are welcome to experiment with the plugin. To do so,uncomment the following settings in config/modules/iiif.cfg:

...

Code Block
# This builds and runs the DSpace UI with the Mirador Viewer in a single step
yarn run buildstart:mirador:prod

This will build and copy Mirador to your dist/ directory and start the frontend server.

The actual steps for deploying the Angular UI with Mirador into Production will likely vary with your setup. However, one possible command-line scenario is the following:

...

Note
titleRunning in Development

In the Dspace 7.1 release, the Mirador viewer cannot be used when running in development mode. For now, you need to use a production build (e.g. yarn start).

Configuring Mirador

The Mirador viewer is highly configurable. The Mirador configuration file for DSpace includes a number of settings that you can override manually, including CSS values for styling. Note that some of the Mirador behavior (like the inclusion of thumbnail navigation on the right) is set by the Angular component at runtime. You can choose to override these runtime settings if you like. 

...

Note
titleRequired Field

Note that the dspace.iiif.enabled metadata field MUST be added to the Item (or optionally to the parent Collection) and set to "true". Otherwise, the Item display will use the default DSpace view.


SchemaElementQualifierScopeDescription
dspaceiiifenabledItem
, Bundle,  or Collection

Stores a boolean text value (true or false) to indicate if the iiif feature is enabled or not
for the dspace object. If absent the value is derived from the parent dspace object.

iiiflabel
Bitstream

Metadata field used to set the IIIF label associated with the canvas resource otherwise the system
will derive one according to the configuration setting or the canvas.naming metadata field.

iiifdescription
Item

Metadata field used to set the IIIF description associated with the resource.

iiifcanvasnamingItem

Metadata field used to set the base label used to name all the canvas in the Item. The canvas
label will be generated using the value of this metadata as prefix and the canvas position.
e.g. Page 1, Page 2, etc.

iiifviewing hintItem

Metadata field used to set the viewing hint overriding the configuration value if any. Possible
values are "individuals" and "paged". Default value: individuals.

iiifimagewidthItem, Bundle, or Bitstream

Metadata field used to store the width of an image in pixels. Determines the canvas size.

iiif imageheightItem, Bundle, or Bitstream

Metadata field used to store the height of an image in pixels. Determines the canvas size.

iiiftoc
Bitstream

Metadata field used to set the position of the iiif resource in the "table of contents" structure.

iiifsearchenabled

Item

Metadata field used to enable the IIIF Search service at the item level. This feature is
experimental and requires additional setup.