Split-brain Manifesting

Moving from IIIF Presentation v2 to v3

Kevin S. Clarke

<ksclarke@library.ucla.edu>

UCLA Library, Services Team

Our IIIF Presentation

Manifest Environment

1. Sinai

Palimpsests

2. Digital

Library

Images

3. Sinai

Manuscripts

4. Digital

Library

A / V

Mirador

Universal

Viewer

Fester

Fester Manifest Service

GET / PUT / DELETE

CSV

Importer

OpenAPI defined service

CSV

JSON

JSON

JSON

JSON

S3 Bucket

(POST)

Fester Manifest Event Routing

CSV

Importer

CSV

jiiify-presentation

v2

jiiify-presentation

v3

S3 Bucket

Jiiify-Presentation / Fester

  • Jiiify-Presentation handles the version 2 or 3 manifest / collection document reading and writing (and provides a programmatic model)

    • Aims to support the full v3 specification (though, currently, only supports part of v2)

  • Fester handles the mapping between CSV values and manifest (or collection document)

    • Aims to support just the parts of the v2 or v3 specs we use (with incremental additions)

Inflexible, Split-brain

Retrieval

S3 Bucket

Mirador

Universal

Viewer

Universal

Viewer

v3

v2

v2

Fester API Versioning

  • Versioning through URI path

    • https://iiif.library.ucla.edu/3/ark%253A%252F21198%252Fzz0002nqg2/manifest
  • Versioning through query parameters

    • https://iiif.library.ucla.edu/ark%253A%252F21198%252Fzz0002nqg2/manifest?v=3
  • Versioning through custom headers

    • curl -H "Accepts-version: 3"  https://iiif.library.ucla.edu/ark%253A%252F21198%252Fzz0002nqg2/manifest
  • Versioning through content negotation

    • curl -H “Accept: application/json; version=3” https://iiif.library.ucla.edu/ark%253A%252F21198%252Fzz0002nqg2/manifest

Next Steps?

  • Deciding on a versioning scheme (or two)

    • Implement URI Path versioning and Content Negotiation?
  • What is the non-versioned default?

    • Latest or first implemented version?
  • How do we evolve from static v2 manifests?

    • Migrate everything to a new preferred static version (v3)
    • Support on demand transformations between versions?
    • Use something less static as the stored representation?

Thank You!

  • What are you all doing with your manifests?

  • Links

    • https://github.com/uclalibrary/fester
    • https://github.com/ksclarke/jiiify-presentation

Kevin S. Clarke

<ksclarke@library.ucla.edu>

UCLA Library, Services Team

Split-brain Manifesting

By Kevin S. Clarke

Split-brain Manifesting

  • 141