Upload
robert-sanderson
View
366
Download
0
Embed Size (px)
Citation preview
@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
“ ”
@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
@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
@azaroth42
Man
agin
g An
nota
tions Annotation Ecosystem
@azaroth42
Man
agin
g An
nota
tions Annotation Ecosystem
@azaroth42
Man
agin
g An
nota
tions Annotation Ecosystem
@azaroth42
Man
agin
g An
nota
tions Annotation Ecosystem
@azaroth42
Man
agin
g An
nota
tions Annotation Ecosystem
@azaroth42
Man
agin
g An
nota
tions Annotation Ecosystem
@azaroth42
Man
agin
g An
nota
tions Annotation Ecosystem
@azaroth42
Man
agin
g An
nota
tions Annotation Ecosystem
@azaroth42
Man
agin
g An
nota
tions Annotation Ecosystem
@azaroth42
Man
agin
g An
nota
tions Annotation Ecosystem
@azaroth42
Man
agin
g An
nota
tions Data Model
@azaroth42
Man
agin
g An
nota
tions Data Model
@azaroth42
Man
agin
g An
nota
tions Data Model
@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" } }}
@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" } }}
@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
@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
@azaroth42
Man
agin
g An
nota
tions Annotations in Fedora4 (Theory)
@azaroth42
Man
agin
g An
nota
tions Annotations in Fedora4 (Reality)
@azaroth42
Man
agin
g An
nota
tions Annotations in Fedora4: Triannon
@azaroth42
Man
agin
g An
nota
tions IIIF Use of Annotations
@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
@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…
@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/
@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/
@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
@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
@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]