The foundation laid by Annotator.js, the Open Annotation Community Group, the Web Annotation Working Group, and their surrounding communities has generated increasing interest in Web Annotation tooling (on and off the Web). Apache Annotator appears in this timeline now to provide "minimal effort" integration for the core components of Web Annotation. Below is a proposed plan for building off that foundation and history and toward a diverse world of implementations and usage scenarios.
Web Annotation in the Browser
Phase 0
annotation.js - parses and manipulates a Web Annotation Data Model JSON-LD document
- provides minimal interface for reading and manipulating the JSON-LD
- uses selector.js and resource.js helper libraries
selector.js - manipulates Web Annotation Selectors and their connection/relationship to the DOM
- wraps Randall Leeds `dom-anchor*` libraries in a single interface
- can return DOM Range(s) based on contained Selectors
- can add alternate Selectors
- can determine if Selector is "orphaned" (unable to be re-anchored)
- can return Web Annotation Fragment Identifiers
resource.js - parses and manipulates External and Specific Resource data
- utility for building and managing Web Resource (external or specific) related information
- works for generating both Target and Body data
Phase 1
...build utilities for State, Style, Choice, List, Composite, etc.
Web Annotation on the Server
Examine list of available Web Annotation Protocol Servers mentioned in the Proposal. Pick one. Iterate.
Web Annotation Elsewhere
Utilities and tools for working with Web Annotation data wherever people find it or want to put it.
- email?
- phones?
- encoded in HTML? EPUB?
- extracted from PDFs?