annotating scholarly works - the w3c open annotation model
TRANSCRIPT
STANFORD UNIVERSITY LIBRARIES
W3C Open Annotation Data Model
April 17th, 2016
B R I N G I N G O P E N A N N O TAT I O N T O A L L S C H O L A R LY W O R K S
Rob Sanderson / [email protected] / @azaroth42
@azaroth42 #openannotation
Brief History of Annotation
2001: Annotea 2009: Open Annotation Collaboration & Annotation Ontology 2011: Open Annotation Community Group 2014: Web Annotation Working Group
@azaroth42 #openannotation
Mission: Interoperability between Annotation systems and platforms, by …following the Architecture of the Web …reusing existing web standards …providing a single, coherent model to implement …which is orthogonal to the domain of interest …without requiring adoption of specific platforms …while maintaining low implementation costs
Published Draft Model and Vocabulary Feb 2013
Open Annotation Community Group
Outcomes:
@azaroth42 #openannotation
Chartered Areas: 1. Model 2. Vocabulary 3. Serialization 4. Protocol 5. Client API 6. Robust Linking
Web Annotation Working Group
Working Draft towards TR Working Draft towards TR (merged with Model, + Notes) Working Draft towards TR Working Draft (no formal output)
• http://www.w3.org/TR/annotation-model/ • http://www.w3.org/TR/annotation-vocab/ • http://www.w3.org/TR/annotation-protocol/
@azaroth42 #openannotation
An Annotation is considered to be a set of connected resources, typically including a body and target, where the body is related to the target.
“ ” Highlighting, Bookmarking Commenting, Describing Tagging, Linking Classifying, Identifying Questioning, Replying Editing, Moderating
Users Annotate To: …Provide an Aide-Memoire …Share and Inform …Improve Discovery …Organize Resources …Interact with Others …Participate in the Community
Annotation?
Activities:
@azaroth42 #openannotation
Web Annotation Ecosystem
@azaroth42 #openannotation
Web Annotation Ecosystem
@azaroth42 #openannotation
Web Annotation Ecosystem
@azaroth42 #openannotation
Web Annotation Ecosystem
@azaroth42 #openannotation
Web Annotation Ecosystem
@azaroth42 #openannotation
Web Annotation Ecosystem
@azaroth42 #openannotation
Web Annotation Ecosystem
@azaroth42 #openannotation
Web Annotation Ecosystem
@azaroth42 #openannotation
Basic Data Model
@azaroth42 #openannotation
Motivation Use Case bookmarking Pointer to come back to the target, e.g. to use it later classifying Associate a class with target, such as a Rebuttal commenting Make a comment about the target describing Describe the target, e.g. to enable discovery of data editing Propose an edit to the target, such as a typo correction highlighting Highlight a segment, e.g. to use as a quote in a paper identifying Associate identity with target, e.g. the name of a gene linking Link the body resource to the target moderating Moderate the target up/down, to reduce spam/harassment questioning Ask a question about the target replying Reply to a question, comment or previous statement reviewing Provide assessment of the target, e.g. peer review tagging Tag the target with some string or concept
@azaroth42 #openannotation
Body and Target
@azaroth42 #openannotation
Specific Resources
@azaroth42 #openannotation
Specific Resources
Selector State Style Purpose Renderer Scope
Segment or part of the resource Representation of the resource How to style the segment / resource Motivation for including the resource Software used originally to render the resource The scope/context in which the resource was annotated
@azaroth42 #openannotation
Selectors Fragment CSS XPath Text Quote Text Position Data Position SVG Range
Use URI fragment to describe segment Use CSS selection (#foo > .class p) Use XPath (/html/body/p[6]/span[3]) Quote text to match, plus prefix/suffix Start position and offset into text Start position and offset into raw data SVG shape Use selectors for start and end of range
@azaroth42 #openannotation
Serialization: JSON-LD { "@context": "http://www.w3.org/ns/anno.jsonld", "id": "http://example.org/anno20", "type": "Annotation", "body": "http://example.net/note1", "target": { "source": "http://example.com/page1.html", "selector": { "type": "CssSelector", "value": "#elemid > .elemclass + p" } } }
Content-Type: application/ld+json;profile="http://www.w3.org/ns/anno.jsonld" { }s are the new <>s :)
@azaroth42 #openannotation
Annotation Protocol: CRUD
• Based on Linked Data Platform (LDP) specification • Containers for Annotation management
• Follows REST and Linked Data • Discovery of Annotation Containers via Link headers/elements • Paging mechanism based on Social Web WG's ActivityStreams • JSON-LD required, content negotiation for other RDF formats • Server will return created annotation on PUT/POST
@azaroth42 #openannotation
WebMention: Notification
• Social Web WG's specification • Very simple:
• Post form-encoded content to specified endpoint • Contains URI of Annotation, and URI of target resource • Recipient verifies annotation to make sure it's not spam • If all okay, can then make use of it
• http://www.w3.org/TR/webmention/
@azaroth42 #openannotation
Web Annotation Ecosystem