IIIF Viewers with IPFS #240
Description
IIIF (International Image Interoperability Framework) is hosting a conference at the Vatican on June 5-9. We (@diasdavid and @flyingzumwalt) will be present at that conference to talk about the benefits of using decentralized Web technologies that institutions like IIIF can benefit from.
We will be collaborating with @edsilv and @aeschylus to prepare a demo to showcase at the conference, of both Mirador and UniversalViewer using IPFS to exchange and update annotations made on the images. This issue will be used to coordinate this effort as a main central hub.
Mirador and UniversalViewer are both viewers of IIIF data that follow IIIF defined data model, they are created by independent researchers, but there is a lot of collaboration and idea sharing.
From the design thinking we've done, we know that we need:
- A way to propagate changes on the
Annotation List
- A way to synchronize the state of the
Annotation List
for each document.
This converts into roughly the following milestones:
- Mechanism to propagate changes on the annotation list (this can be using libp2p pubsub directly)
- Synchronize the
Annotation list
through IPFS directly (using orbit-db or another CRDT library that is mounted on top of IPFS - Load the entire collection of images into the viewer through IPFS itself
- Load and run the entire viewer using only js-ipfs, requiring no plugins installed.
This suggested that we just need to create primitives for get and put with the ability to follow changes or updated in a document, once that part is done, it can be fully integrated.
Other important pieces of context:
- Annotation list is a simple JSON document
- Web Annotation Data Model - https://www.w3.org/TR/annotation-model/
- @dignifiedquire's quick experiment done for a previous conference (might not be working at the moment) - https://github.com/dignifiedquire/anno
- Viewdir - a collection of modules shared between both viewers https://github.com/viewdir
- UV uses https://svelte.technology/
- More context on the origins of the proposed demo IIIF Annotation Demo for Vatican orbitdb/orbitdb#213
- CRDT Research repo https://github.com/ipfs/research-CRDT