W3C Community Draft

This version:
http://www.openannotation.org/spec/core/20130114.html
Latest version:
http://www.openannotation.org/spec/core/
Previous version:
http://www.openannotation.org/spec/core/20120812.html
Editors:
Robert Sanderson, Los Alamos National Laboratory
Paolo Ciccarese, Massachusetts General Hospital and Harvard Medical School
Herbert Van de Sompel, Los Alamos National Laboratory
Contributors (in alphabetical order):
Shannon Bradshaw, Dan Brickley, Leyla Jael García Castro, Timothy Clark, Timothy Cole, Phil Desenne, Anna Gerber, Antoine Isaac, Jacob Jett, Thomas Habing, Bernhard Haslhofer, Sebastian Hellmann, Jane Hunter, Randall Leeds, Andrew Magliozzi, Bob Morris, Paul Morris, Jacco van Ossenbruggen, Stian Soiland-Reyes, James Smith, Dan Whaley.

Abstract

The Open Annotation Core Data Model specifies an interoperable framework for creating associations between related resources, annotations, using a methodology which conforms to the Architecture of the World Wide Web. Open Annotations can easily be shared between platforms, with sufficient richness of expression to satisfy complex requirements while remaining simple enough to also allow for the most common use cases, such as attaching a piece of text to a single web resource.

An Annotation is considered to be a set of connected resources, including a body and target, and conveys that the body is somehow about the target. The full model supports additional functionality, enabling semantic annotations, embedding content, selecting segments of resources, choosing the appropriate representation of a resource and providing styling hints for consuming clients.

Status of this Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document.

Copyright © 2012-2013 the Contributors to the Open Annotation Core Data Model Specification, published by the Open Annotation Community Group under the W3C Community Contributor License Agreement (CLA). A human-readable summary is available.

This specification was published by the Open Annotation Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Contributor License Agreement (CLA) there is a limited opt-out and other conditions apply. Learn more about W3C Community and Business Groups.

This document has been made available to the Open Annotation Community Group for review, but is not endorsed by them. This is a working draft, and it is not endorsed by the W3C or its members. It is inappropriate to refer to this document other than as "work in progress".

Please send general comments about this document to the public mailing list: public-openannotation@w3.org (public archives).


Table of Contents

  1. Introduction
    1. Namespaces
    2. Terminology
    3. Examples
  2. Level 1: Simple Annotations
    1. Body and Target Resources
      1. Typing of Body and Target
      2. Embedded Textual Bodies
      3. Fragment URIs Identifying Body or Target
      4. Annotations without a Body
      5. Multiple Bodies or Targets
    2. Annotation Provenance
      1. Agents
    3. Motivations
  3. Level 2: Annotations Involving Specific Resources
    1. Specific Resources and Specifiers
    2. Selectors
      1. Fragment Selector
      2. Range Selectors
        1. Text Position Selector
        2. Text Quote Selector
        3. Data Position Selector
      3. Area Selectors
        1. SVG Selector
    3. States
      1. Time State
      2. Request Header State
    4. Styles
      1. CSS Style
  4. Level 3: Extended Annotations
    1. Scoping an Annotation
    2. Multiplicity Constructs
      1. Choice
      2. Composite
      3. List
    3. Publishing Model
      1. Embedding Other Resources
      2. Equivalence of Resources
      3. Annotations using Named Graphs
    4. Conformance Metadata
  5. Appendices
    1. Mapping to Provenance Model
    2. Extending Motivations
    3. Serialization
    4. References
    5. Acknowledgements
    6. Change Log

0. Introduction

Annotating, the act of creating associations between distinct pieces of information, is a pervasive activity online in many guises but currently lacks a structured approach. Web citizens make comments about online resources using either tools built in to the hosting web site, external web services, or the functionality of an annotation client. Comments about photos on Flickr, videos on YouTube, people's posts on Facebook, or mentions of resources on Twitter could all be considered as annotations associated with the resource being discussed. In addition, there are a plethora of closed and proprietary web-based "sticky note" systems and stand-alone multimedia annotation systems. The primary complaint about these types of systems is that the user-created annotations cannot be shared or reused due to a deliberate "lock-in" strategy within the environments where they were created. The minimum requirement for any solution is a common approach to expressing these annotations.

The Open Annotation data model provides an extensible, interoperable framework for expressing annotations such that they can easily be shared between platforms, with sufficient richness of expression to satisfy complex requirements while remaining simple enough to also allow for the most common use cases, such as attaching a piece of text to a single web resource.

An annotation is considered to be a set of connected resources, including a body and target, and conveys that the body is somehow about the target. This perspective results in a basic model with three parts, depicted below. The full model supports additional functionality, enabling content to be embedded within the annotation, selecting segments of resources, choosing the appropriate representation of a resource and providing styling hints for consuming clients. Annotations created by or intended for machines are also considered to be in scope, ensuring that the Data Web is not ignored in favor of only considering the human-oriented Document Web.


Figure 0.1. Annotation, Body and Target

Unlike previous attempts at annotation interoperability, the Open Annotation system does not prescribe a protocol for creating, managing and retrieving annotations. Instead it describes a web-centric method, promoting discovery and sharing of annotations without clients or servers having to agree on a particular set of operations on those annotations.

The specification is divided into three distinct "levels". Each level introduces increasingly rich and more complex constructions to deal with use cases that have been deemed important for interoperability. The first level covers the basic cases of associating a resource or some text with another resource, or part of a resource that can be identified by means of a fragment URI. The second level covers cases where the exact nature of the body or target cannot be sufficiently captured in a URI, and the third covers more semantic notions such as the scope of an Annotation and being explicit about how multiple bodies, targets or specifiers should be interpreted.

0.1 Namespaces

The Open Annotation model defines a namespace for its classes and properties, and uses several others as listed below. The namespace URI will always remain the same, even if the ontology changes. All versions of the ontology will remain available from version specific URLs, and the namespace URI will provide access to the most recent version.

The following namespaces are used in this specification:

PrefixNamespaceDescription
oahttp://www.w3.org/ns/openannotation/core/ The Open Annotation ontology
cnthttp://www.w3.org/2011/content#Representing Content in RDF
dchttp://purl.org/dc/elements/1.1/Dublin Core Elements
dctermshttp://purl.org/dc/terms/Dublin Core Terms
dctypeshttp://purl.org/dc/dcmitype/Dublin Core Type Vocabulary
foafhttp://xmlns.com/foaf/0.1/Friend-of-a-Friend Vocabulary
provhttp://www.w3.org/ns/prov#Provenance Ontology
rdfhttp://www.w3.org/1999/02/22-rdf-syntax-ns#RDF
rdfshttp://www.w3.org/2000/01/rdf-schema#RDF Schema
skoshttp://www.w3.org/2004/02/skos/core#Simple Knowledge Organization System
trighttp://www.w3.org/2004/03/trix/rdfg-1/TriG Named Graphs

0.2 Terminology

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

0.3 Examples

The examples throughout these documents will be conveyed as both a diagram and in the Turtle RDF format, and do not represent specific use cases with real resources. The Turtle examples do not provide namespace declarations, and should be considered to follow the Namespaces table above. Usage examples in SPARQL are given for each section, based on a requirement expressed in natural language. Additional examples of how to model and implement specific situations are available in the Tutorial and the Annotation Cookbook.

The diagrams in the specification use the following style: