Skip to content

Add annotation lists (WIP, do not merge)#62

Open
pbinkley wants to merge 9 commits into
minicomp:mainfrom
pbinkley:annotationlists
Open

Add annotation lists (WIP, do not merge)#62
pbinkley wants to merge 9 commits into
minicomp:mainfrom
pbinkley:annotationlists

Conversation

@pbinkley

Copy link
Copy Markdown
Member

This PR adds a basic framework for creating and deploying annotation lists in Wax. The purpose is to make Wax a more full-featured IIIF publishing platform for small but intensively curated digital scholarship projects.

I will add instructions for use to the README.md. The gist is this:

  • add annotation lists in _data/annotations. They may be preformed IIIF annotation lists (following Presentation API 2.1.1), or simple YAML files that indicate collection, canvas, xywh, and text.
  • run bundle exec rake wax:annotations <collection> to generate the annotation list in img/derivatives/iiif/annotations/<collection>
  • run bundle exec rake wax:updatemanifest <collection> to add otherContent links to the appropriate canvas in the collection manifest

There are a couple of specs for the hocr import process and the manifest update process.

The updatemanifest task must be run after the manifest is created. Both tasks could be merged into the main Wax IIIF derivatives tasks or kept as separate tasks. If we prefer to keep wax_tasks simple, all of this could be put in a separate wax_annotations gem for optional inclusion.

To demonstrate the YAML-based annotation format there is a task, wax:import:hocr, which accepts an external HOCR file and generates a YAML file in _data/annotations (adapted from Ocracoke). We can add other submodules to wax:import as we identify other useful sources of annotations, possibly including:

  • other OCR formats
  • page zoning markup in OCR files such as METS/ALTO (e.g. newspaper articles)
  • annotations from external annotation servers that we want to embed in the Wax site directly
  • browser local storage, as used by e.g. Mirador when creating annotations (maybe based on pbinkley/iiif-firefox-annotation-extract
  • annotations created by other IIIF tools such as FromThePage
  • bibliographic metadata (MARC, MODS, Zotero export, etc.)
  • etc.

Some TODOs:

  • integrate Mirador 3 into wax_theme, with a good set of default behaviors to display/hide different annotation lists
  • provide options to index annotations and make them searchable with Lunr
  • a task to generate annotation-level Jekyll pages, populated from the annotation data - e.g. the recipes in my recipe book demo project. The annotation URI can be the URL of the corresponding page.
  • move from Open Annotations to Web Annotations to keep up with IIIF 3, probably in conjunction with upgrading the rest of Wax (including wax_iiif which will be no small job)
  • consider moving all the annotation and manifest work into wax_iiif
  • I think I've made the collection/item handling unnecessarily messy
  • where appropriate populate other LOD sets with data from annotations, for publication in the Jekyll site

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant