W3C Standard: Web Annotation Data Model - bounswe/bounswe2024group8 GitHub Wiki

Web Annotation Data Model

W3C Documentation

Text Position Selector

String Body

Agents

What is it for? What are its Benefits?

The W3C Annotation Data Model is a standard that aims to support the creation, sharing and management of annotations on digital content across the web. Some of the main benefits are:

  • Standardization and Interoperability: The model creates a uniform language for annotations, which helps developers and users communicate more effectively by reducing the variety of formats and structures used for annotations. With standardized annotations, data can move between different applications, browsers, or platforms. This means that annotations created in one tool could be seamlessly viewed in another.

  • Enhanced Collaboration: Users can annotate shared resources, facilitating group discussions, shared learning, and peer review. Annotations can be made public or private, allowing flexibility in how they’re shared and used.

  • Flexible Targeting: The W3C Annotation Data Model allows annotators to select specific segments of a resource (like a word in a long text or a region in an image), making it suitable for precise, contextually relevant notes.

  • Metadata Enrichment: It allows additional information about a resource (like comments, corrections, or categorizations) to be associated with it without modifying the original content.

What are the requirements of following the standard?

The Web Annotation Data Model, as specified by the W3C, outlines several key requirements to ensure interoperability and functionality across different platforms:

  • Interoperability: Annotations should be easy to share across different systems, so they can work together smoothly without losing important details.

  • Extensibility: The model should be flexible enough to handle a wide variety of annotation needs, from simple to complex, and allow for easy updates as needed.

  • Simplicity: The model should stay simple enough to handle basic tasks, like adding a note to a single webpage, without unnecessary complexity, even though it can also handle more complicated cases.

  • Minimal Implementation Costs: The model is designed to be easy and affordable to put into practice, encouraging more people and systems to use it.

  • Consistency: It’s better to have one clear way to handle a situation rather than multiple ways, unless existing standards require different options or a single method would be too costly.

  • Alignment with Web Architecture: The model is based on Linked Data principles, ensuring it works well within the broader web framework.

How the standard will be enforced in practice?

Our backend server will have different entities for annotation, body and target. The body will be simply a string, since we will use Text Position Selector the target entity will have start, end, id, type, post and comment attributes. The annotation entity will have id, type, motivation, target, body, creator, created and modified attributes. For frontend and mobile, the user will be able select a text and write the annotation they like. Our apps will keep track of the selected text and act accordingly for each post. If the user confirms the annotation, our apps will send a post request with a json containing target, body, access token and post id or comment id. Here is an example json data that backend will return:

{
    "@context": "http://www.w3.org/ns/anno.jsonld",
    "id": "http://example.org/anno6",
    "type": "Annotation",
    "bodyValue": "Comment text",
    "creator": {
        "id": "http://example.org/user1",
        "type": "Person",
        "nickname": "pseudo",
        },
    "created": "2021-06-01T12:00:00Z",
    "target": {
        "source": "http://example.org/ebook1", 
        "selector": {
            "type": "TextPositionSelector",
            "start": 412,
            "end": 795
        }
     }
}