32
@azaroth42 Managing Annotations Rob Sanderson [email protected] Managing Annotations

Managing Annotations (OR2016)

Embed Size (px)

Citation preview

Page 1: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions

Rob [email protected]

Managing Annotations

Page 2: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotation?

A set of connected resources, typically including a body and target, where the body is related to the target.

Users annotate in order to … Provide an aide-memoirebookmarking… Share and inform

commenting… Improve discovery

tagging… Organize resources

identifying… Interact with others

replying

“ ”

Page 3: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Working Group Charter

1. Model Candidate Recommendation

2. Vocabulary Candidate Recommendation

3. Serialization Merged with Model4. Protocol Candidate

Recommendation5. Client API Postponed6. Robust Linking No formal outputhttp://w3.org/TR/annotation-model …/annotation-vocab …/annotation-protocol

Page 4: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Working Group Charter

1. Model Candidate Recommendation

2. Vocabulary Candidate Recommendation

3. Serialization Merged with Model4. Protocol Candidate

Recommendation5. Client API Postponed6. Robust Linking No formal outputhttp://w3.org/TR/annotation-model …/annotation-vocab …/annotation-protocol

Page 5: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotation Ecosystem

Page 6: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotation Ecosystem

Page 7: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotation Ecosystem

Page 8: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotation Ecosystem

Page 9: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotation Ecosystem

Page 10: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotation Ecosystem

Page 11: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotation Ecosystem

Page 12: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotation Ecosystem

Page 13: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotation Ecosystem

Page 14: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotation Ecosystem

Page 15: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Data Model

Page 16: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Data Model

Page 17: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Data Model

Page 18: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions 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" } }}

Page 19: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions {}s are the new <>s

{ "@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" } }}

Page 20: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotation Protocol

• Based on Linked Data Platform (LDP) specification

• Containers for Annotation management

• Follows REST and Linked Data

• Discovery of Annotation Containers via Link headers/elements

Page 21: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Protocol Differences

• Paging mechanism based on Social Web WG's ActivityStreams

• LDP Paging doesn’t have order within a page

• JSON-LD required, content negotiation for other RDF formats

• Should be easy to implement without an RDF stack

• Server will return created annotation on PUT/POST

• Prevent the need for additional round trips

• Use WebMention from Social Web WG for Notification

Page 22: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotations in Fedora4 (Theory)

Page 23: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotations in Fedora4 (Reality)

Page 24: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Annotations in Fedora4: Triannon

Page 25: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions IIIF Use of Annotations

Page 26: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Lightweight Implementations

• CATCH (Harvard)

• Simple Annotation Server (NL Wales)

• MangoServer (Rob)

• Proxies to other management systems

• e.g. METS/ALTO

• Static files on disk

Page 27: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions MangoServer: Annotations in Mongo

• Python Bottle/Flask application

• 500 lines of code

• Stores JSON-LD as JSON in MongoDB

• Complete implementation of the Protocol

• http://github.com/azaroth42/MangoServer/

• But needs…

Page 28: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions (IIIF) Authentication

• Persistent client application can’t authenticate to multiple servers easily:

• Can’t render login screens in iframe (spoofing)

• Can’t replace the window it’s in

• So need a solution where windows communicate:

• http://iiif.io/api/auth/0.9/

Page 29: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions IIIF: Notifications

• How does annotated resource know it was annotated?

• Web Mention

• http://www.w3.org/TR/webmention/

Page 30: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Management In or Out of Repository?

• In the Repository?• Not (generally) optimized for MANY small objects• Preservation requirements likely different• Create/Update/Delete patterns very different

• Outside the Repository?• Hard to use annotation+repository object together• Multiple systems to search and merge

Page 31: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Pitch: Annotating All Knowledge

• Universities• Publishers• Platforms• Related Orgs (e.g. Orcid)

• Mission: Provide annotation capabilities across the knowledge sector

Page 32: Managing Annotations (OR2016)

@azaroth42

Man

agin

g An

nota

tions Thank You!

References: http://iiif.io/ http://www.w3.org/TR/annotation-model/ http://www.w3.org/TR/annotation-protocol/ http://hypothes.is/annotating-all-knowledge/

Rob Sanderson, [email protected]