# Web Annotation

## Summary


In traditional print media, it's common practice among readers to underline text, highlight sections or write comments in the margins. Such annotations allow readers to express their opinions. **Web Annotation** is a standard for creating similar annotations on the web for digital content. It's standardized by the *W3C Web Annotation Working Group*. 

Since the early years of the Web, there have been many proprietary systems to enable online annotations. Web Annotation offers a standardized data model, vocabulary, protocol and embeddings to create, organize and share annotations. Web Annotation allows anyone to express their opinions freely without being censored by content authors or publishers. It reuses concepts and tools from Semantic Web.

## Discussion

### Without Web Annotation, how do people annotate content on the web?

Web content involves authors, content publishers and readers. To engage readers, content publishers enable comments on their site. However, they could moderate the comments and even delete them if they didn't like them. This control from publishers meant that the system was not truly open from a reader's perspective. In fact, some publishers don't even allow comments. 

Published comments often appear at the end of the article and therefore remain disconnected from a particular line or paragraph to which the comment applies. There's also no distinction between a valuable comment and frivolous chit-chat. Readers also have no way to archive their comments or take their comments from one platform to another. Readers may be identified only loosely and there's no reputation model to say who's a more valuable commenter. The lack of a reputation model was one reason why project Dispute Finder failed. 

Before Web Annotation, solutions were proprietary and closed systems. They didn't partner with organizations such as W3C to take a standards-driven approach. 


### What are some use cases and current adoptions of Web Annotation?

Annotations can be used to "provide a trace of use; third party commentary; information sharing; information filtering; semantic labeling of document content; and enhanced search". Annotations can help readers discover new content by subscribing to annotation feeds. They can also share annotations, thereby creating communities of common interests. Publishers can use annotations to add value to their content. 

Many systems are using annotations for online collaboration. Examples include Kami and GoodReader. For greater insight, DocumentCloud promises to turn documents into data.

For engaging online communities in open discussions, RapGenius started in 2009 to annotate rap lyrics but later expanded to other topics and changed its name to Genius in 2014. Publisher John Wiley & Sons, Inc. and IIIF Consortium have adopted annotations. Mendeley (acquired by Elsevier) provides research management system that includes annotations. 

To flag fake news, annotations can help in building an ecosystem for fact checking. Web Annotation can enable "decentralized, trustworthy mechanism for fact checking and public discussion". Beyond facts, Climate Feedback is using annotations for content reasoning and argumentation. 


### What annotation tools or services are currently available?

Since the early 1990s, many systems have come and gone to support annotations on the web. Hypothes.is has shared a list of annotation efforts. Among the more widely used services are Diigo, Mendeley, DocumentCloud, RapGenius, Good Reader and Notable PDF. A curated list of ten annotation tools from April 2017 includes zipBoard, UserSnap, PageProofer, JIRA Capture, BugHerd, Scrible, Hypothesis, Diigo, TrackDuck and Twiddla. 

Mosaic browser that was released in 1993 had support for annotations. Third Voice was an annotation service during 1999-2001. Predating this, there have been other open-source annotation apps: CritSuite, JotBot, ComMentor and Xanadu. Angel-funded Fleck existed during 2006-2008. At the 2013 I Annotate Conference, many new services were presented: Domeo, Maphub, Pelagios, Authorea, dotdotdot, Hypothes.is. 


### What's the architecture behind annotations?

There are two ways to implement annotations: 

    + **Proxy-based**: A proxy server merges web content and annotations. Browsers see the merged content. CritLink and InterNote are examples.
    + **Browser-based**: Original web content and annotations are merged at the browser end. This may be done via a browser plugin or by JavaScript served from the annotation server. Third Voice is an example of a plugin. JotBot uses a Java applet. Yawas uses internal DOM events to display annotations.Proxy-based approach is restrictive since readers must access a IRI different from the original one. Browser-based approach is preferred. As examples, Hypothes.is and Pundit take the latter approach. It's expected that eventually browsers will natively support Web Annotation. 

It's important to note that annotations are not necessarily stored at the publisher's server. They could be stored in a separate annotation server. Any third party can offer an annotation service that collects and organizes annotations. Such a service must be neutral to realize the ideals of an open collaborative web.


### Could you briefly explain the Web Annotation Data Model?

An annotation is a rooted directed graph that establishes relationships among resources. A resource can be either a **Body** or a **Target**. Annotations can have 0 or more bodies and 1 or more targets. Content of the body are "about" the target. An annotation, body or target may have its own properties and relationship such as creation or descriptive information. 

Since resources are distributed on the web, they are identified using IRI. In some cases, Body is just textual content and may be included as part of the annotation. In such cases, separate IRI is not required for the Body. 

We often want to select part of a resource and not the entire content at the IRI. This is called **Segment (of Interest)**. A **Selector** is used to extract the segment from a resource. For example, selectors are available to select some region of an image; an exact quote; content that matches a CSS or XPath rule; some text by its start and end positions; and so on. 


### What are the W3C Recommendations for Web Annotation?

We have the following Recommendations and Working Group Notes:  

    + Web Annotation Data Model, REC: Describes the underlying Annotation Abstract Data Model as well as a JSON-LD serialization.
    + Web Annotation Vocabulary, REC: The Vocabulary which underpins the Web Annotation Data Model.
    + Web Annotation Protocol, REC: The HTTP API for publishing, syndicating, and distributing Web Annotation.
    + Embedding Web Annotation in HTML, WG Note: Various ways annotations can be added to an HTML file using current specifications like JSON-LD or RDFa.
    + Selectors and States, WG Note: An extract from Web Annotation Data Model to make the use of these classes easier and more broadly usable by other specifications.

### What are the tools available to implement Web Annotation?

Annotator is an open-source JavaScript library that can be added to any website and thus enable annotations on it. Annotator can also be extended with plugins. Annotorious is one such plugin for image annotation. Annotator is being used in many projects: Hypothes.is, Harvard's Open Video Annotation Project, EdX, MIT's Annotation Studio, WritingPod, Crunched Book and many more. 

Hypothesis is based on Annotator and is also open source. While Annotator used to store annotations at *annotateit.org*, this service closed in March 2017. Hypothesis is also a service that stores annotations but you can deploy your own servers instead. 

Pundit Annotator is based on AngularJS. It comes with open source client code. You can be download and install the server code. 


### What are the elements of an interoperable annotations layer?

Annotations may be considered as an extra layer of information on top of web content. To accelerate the development of a pervasive interoperable annotation layer, the *Annotating All Knowledge Coalition* identified what such a layer should contain. 

An interoperable annotations layer should be standardized. It should be an open framework. Annotations should be as granular as possible: parts of an image, specific lines of text, etc. It should support discovery and linking of annotations across different content formats (HTML or PDF). Likewise, content may have different versions and annotations should persist across versions. 

Annotations can be private or public. Identities should be managed. To allow discovery and sharing of annotations, standard identifiers should be used. Notifications should be possible, such as notifying publishers when their content is annotated. 

Readers should be able to selectively choose which annotations they wish to see when reading content. Annotations should be portable across services. It should be possible to link to other resources or programmatically annotate. Further tools can enable tagging and filtering of annotations. 


### What are the challenges ahead for Web Annotation?

Interoperatibility is a challenge. Annotations created with one tool should be compatible with another. In other words, can we export annotations from one and import into another? When a browser has multiple tools installed, these tools should coexist in terms creating, editing and anchoring annotations. One study annotated a webpage with both Hypothesis and Pundit. It then found that the tools are incompatible and somewhat conflicting. 

## Milestones

1989

Tim Berners-Lee publishes his ideas about the World Wide Web and hypertext. This paper includes thoughts about annotations, some of which could be kept private. Thus, the idea of annotating web content is not something that came later. 

1993

The first widely distributed web browser Mosaic is released by Marc Andreessen and Eric Bina. **Mosaic v1.1** includes client-side support for annotations. However, this is considered as a "nice-to-have" feature and is not developed further. 

1999

As a browser plugin, **Third Voice** is launched. It allows users to annotate any website and thereby have open discussions without being controlled by content publishers. However, this service gathers bad reputation for enabling "web graffiti". Getting users to download and install the plugin becomes a barrier. The service closes in April 2001. 

Jul  
2001

Where Third Voice fails, W3C attempts with **Annotea** that's built into W3C's Amaya browser. W3C proposes to adopt and reuse concepts and tools from Semantic Web, such as RDF and XML. 

2009

Two groups, Annotation Ontology and the Open Annotation Collaboration, independently start work on annotation specifications. In 2011, they join together to form W3C Open Annotation Community Group. 

Jul  
2011

Version 1.0.0 of **Annotator** is released. This is a JavaScript library for building annotation applications in browsers. Version 1.2.10 is released in February 2015. 

Oct  
2011

As an open source non-profit platform, **Hypothes.is** is announced. It aims to be community moderated, neutral and transparent. 

Feb  
2013

Open Annotation Community Group at W3C publishes a Community Draft titled Open Annotation Data Model. This specifies an RDF-based data model for exchanging annotations between applications. This is not a standard but forms the starting point for future standards. 

Apr  
2013

What is today an annual event, the first I Annotate Conference is held in San Francisco. Dan Whatley of Hypothes.is introduces,

> Annotation as the 3D printing of the web: the promise of decentralization of knowledge creation online.

Oct  
2014

Built on Annotator, **Hypothesis** application is launched as a Chrome extension. An alpha version was launched earlier in 2013. In April 2018, they achieve a milestone of 3 million annotations. 

Feb  
2017

W3C Web Annotation Working Group publishes three Recommendations that define Web Annotation. In addition, two Working Group Notes are also published. This Working Group was formed in 2014.