Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

pbinkley
Copy link
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