Skip to content

Instantly share code, notes, and snippets.

@tomcrane
Last active January 20, 2021 17:09
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tomcrane/70e879884a744ce69d329cc6a33a34ac to your computer and use it in GitHub Desktop.
Save tomcrane/70e879884a744ce69d329cc6a33a34ac to your computer and use it in GitHub Desktop.
Wikimedia and IIIF

Wikimedia and IIIF

Why should Wikimedia implement IIIF? And what does that mean? There are several things they could do, some possibly quite straightforward.

Clarify two different things:

  1. Bring Wikimedia assets (images, audio, video) into shared IIIF annotation space, so that they become part of the IIIF Universe, can be annotated, referenced, mashed up, reused as Presentation API
  2. Allow image reuse via IIIF Image api:
  • statically, via level 0 (extreme level 0) service
  • dynamically, with image servers, allowing arbitrary regions, sizes, qualities and hence tiles, deep zoom

Various combination os these are possible and are all useful.

Presentation API

A simple Presentation API implementation would create a canvas for each asset and publish the canvas. One step up, collect the assets for a topic into a Manifest with additional (infobox etc) metadata from the topic

I had a go at this: https://wikipedia-to-iiif.ch.digtest.co.uk/wiki/Robert_Delaunay

Other examples: https://wikipedia-to-iiif.ch.digtest.co.uk/ Code: https://github.com/tomcrane/wikipedia-to-iiif

This is a bit of fun, but the point is to show that it's not that hard. The biggest flaw in this is its fragility - anyone annotating these canvases is dependent on the Wikimedia record, in particular the w,h of the canvas derived from a large image asset. That could change without warning, displacing annotation positions.

Wikimedia need to be the authority for Canvas dimensions and maintain a consistent w,h even if asset sizes change. That shouldn't be too hard. They would maintain a persistent Canvas URI as part of the Wikimedia application. This is just transformation of existing data and an extra db field or two.

Still in the Presentation API, each Canvas could have a single suitable large image, or a Choice of the available images.

Static Image API

The set of images available could be translated into a sizes-only level 0 Image API endpoint, proxying Image API requests onto the existing static resources (see https://tomcrane.github.io/scratch/osd/iiif-sizes.html)

Again, no new infrastructure is required, just extra supported endpoints.

AV works fine in this and if they go straight to Presentation 3 (likely, and a good driver of adoption) they can use existing AV assets without any changes.

Dynamic Image API

This is the step up and Klokan did some work with Wikimedia a couple of years ago, getting IIPImage running for Wikimedia images: https://groups.google.com/forum/#!topic/iiif-discuss/UTD181dxKtU

This is where it might get daunting for Wikimedia to do this at scale, because running dynamic image servers for all of Wikimedia may induce fear and trembling.

Everything apart from dynamic image API I think could be done by additions to Wikimedia application/model, and requires no new infrastructure.

Options

Combinations of these are useful:

  • Simple Presentation (like my demo, but real)
  • Simple static image api
  • Both of these together (static sizes-only level 0 services on static images annotated to canvases)
  • Dynamic image api
  • Presentation and dynamic image api (the ultimate...)

Maybe everything up to the last point could be a IIIF-funded project for Wikimedia foundation?

@bvibber
Copy link

bvibber commented Feb 5, 2018

my comments copied from slack:

(nod) looks overall in line with my thinking

doing dynamic image api right will depend probably on mapping the image api onto our existing internal apis. we currently don't support some things like rotation and tiling, but tiling's the most important one to add.

(and one we can use internally for things like panoramas, so that's a plus)

Our main limitation on media work right now is squeezing all the things we want to do into our budget with several other projects going on, so if there's talk of funding to pick up some contracting time to supplement my work, that could be something I can sell to the upper ups!

@pigsonthewing
Copy link

As noted on the mailing list, there's now an on-Wiki page at https://commons.wikimedia.org/wiki/Commons:International_Image_Interoperability_Framework which can be used to communicate about IIIF with the wider Wikimedia community.

I've put a pointer on there, to these notes.

@zone47
Copy link

zone47 commented Feb 15, 2018

Great initiative! Thank you
For information I made an experimentation on IIIF with Wikidata and WikiCommons on the Crotos project. I will make a short présentation about it at the IIIF Bilissima's meeiting . I'm delighted of such initiative and would be glad to contribute on it. Best regards

@george08
Copy link

Hi Tom - What needs to be changed in the level of structured data describing the media files? (I'm working on a thing about Structured Data Commons, and am curious.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment