Skip to main content

IIIF over IPFS: storage and public service

Published onDec 14, 2018
IIIF over IPFS: storage and public service

Proposal: Put the Image Collection on IPFS and Expose it with the IIIF APIs

Note: IIIF and IPFS are not related! Any acronym similarity is coincidental.


  1. Expose the entire Met image collection with IIIF, using an open source IIIF Server and IIIF Viewers

  2. Put the Images on IPFS (on Azure)

  3. Combine the two -- IIIF over IPFS, serving the images from IPFS using the IIIF APIs

Future work

Revive the IIIF-on-IPFS annotation tools that were presented at the Vatican in 2017. Update them to use the latest peer-star-app libraries (for offline-first, peer to peer collaborative editing), and allow anyone to annotate images in the collection, storing and serving their own annotations.

IIIF - International Image Interoperability Framework

The International Image Interoperability Framework (IIIF) is a set of standard web-based APIs for Imagery -- both static and moving image. The APIs are primarily useful for **presentation and annotation** of images. They were developed by a group of libraries and archives, and is used extensively by Galleries, Libraries, Archives and Museums. The IIIF presentation API is used for displaying, transforming, sub-selecting and zooming into images. The annotations API that's based on the W3C Web Annotations spec. IIIF is compatible with Microsoft's OpenSeadragon, as well as a number of other open source viewers and "scholarly workbench" applications.

Why expose images with IIIF?

The biggest payoff from IIIF is in presenting images on the web. The IIIF APIs allow you to build rich, interactive viewers that zoom, crop, resize and otherwise transform images. They also allow you to annotate images. There are many open source projects that use the IIIF APIs to expose imagery from Museums and Archives. Because they're open source, and because IIIF is an open standard, anyone can create new interactive experiences that integrate the image collections. This is a natural fit for the open-licensed Met image collection.

Even if IIIF isn't used in the processing/analysis of images, it's relevant to ML applications for imagery because you often want to be able to display the imagery either combined with the outputs of your analysys or transformed according to the outputs of that analysis. IIIF is a powerful way to do that.

IIIF might also, in some cases, be useful within machine learning processes, depending on the nature of the analysis being performed and the applications of those analyses. We should spend a bit of time exploring these possibilities and record the ideas or observations that come up.

IPFS - InterPlanetary File System

The InterPlanetary File System (IPFS) is a peer to peer web protocol whose aim is to make the web faster, safer, fairer and more resilient by providing an upgrade path from HTTP, which is location-addressed and uses a centralized client-server model, to a content-addressed peer to peer alternative.

Why put the images on IPFS?

There are two main benefits to putting these images on IPFS. First, the peer to peer nature of IPFS will support arbitrary amounts of people mirroring and replicating the images - piecemeal or in whole - across the web. Each replica adds to the network of providers for the collection.

But that doesn't impact us at the hackathon because everything is on a shared drive on azure. So why is it useful for us to put the images on IPFS? **Because it's content-addressed.** If your training data sets are content-addressed that provides an ideal hook for edges, weights and other outputs from the analysis to point to. It also provides powerful opportunities for reuse of data and reconciling (or deduplicating) the outputs from multiple processes.

The Azure team recently announced that they've added support for running IPFS nodes on Azure. Let's give it a try!

No comments here
Why not start the discussion?