Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Managing Annotations (OR2016)

541 views

Published on

Rob's section of a panel on managing annotations, with a focus on the annotation ecosystem, w3c protocol and implementation strategies and requirements.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Managing Annotations (OR2016)

  1. 1. @azaroth42 ManagingAnnotations Rob Sanderson rsanderson@getty.edu Managing Annotations
  2. 2. @azaroth42 ManagingAnnotations 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-memoire bookmarking … Share and inform commenting … Improve discovery tagging … Organize resources identifying … Interact with others replying “ ”
  3. 3. @azaroth42 ManagingAnnotations Working Group Charter 1. Model Candidate Recommendation 2. Vocabulary Candidate Recommendation 3. Serialization Merged with Model 4. Protocol Candidate Recommendation 5. Client API Postponed 6. Robust Linking No formal output http://w3.org/TR/annotation-model …/annotation-vocab …/annotation-protocol
  4. 4. @azaroth42 ManagingAnnotations Working Group Charter 1. Model Candidate Recommendation 2. Vocabulary Candidate Recommendation 3. Serialization Merged with Model 4. Protocol Candidate Recommendation 5. Client API Postponed 6. Robust Linking No formal output http://w3.org/TR/annotation-model …/annotation-vocab …/annotation-protocol
  5. 5. @azaroth42 ManagingAnnotations Annotation Ecosystem
  6. 6. @azaroth42 ManagingAnnotations Annotation Ecosystem
  7. 7. @azaroth42 ManagingAnnotations Annotation Ecosystem
  8. 8. @azaroth42 ManagingAnnotations Annotation Ecosystem
  9. 9. @azaroth42 ManagingAnnotations Annotation Ecosystem
  10. 10. @azaroth42 ManagingAnnotations Annotation Ecosystem
  11. 11. @azaroth42 ManagingAnnotations Annotation Ecosystem
  12. 12. @azaroth42 ManagingAnnotations Annotation Ecosystem
  13. 13. @azaroth42 ManagingAnnotations Annotation Ecosystem
  14. 14. @azaroth42 ManagingAnnotations Annotation Ecosystem
  15. 15. @azaroth42 ManagingAnnotations Data Model
  16. 16. @azaroth42 ManagingAnnotations Data Model
  17. 17. @azaroth42 ManagingAnnotations Data Model
  18. 18. @azaroth42 ManagingAnnotations 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" } } }
  19. 19. @azaroth42 ManagingAnnotations {}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" } } }
  20. 20. @azaroth42 ManagingAnnotations 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
  21. 21. @azaroth42 ManagingAnnotations 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
  22. 22. @azaroth42 ManagingAnnotations Annotations in Fedora4 (Theory)
  23. 23. @azaroth42 ManagingAnnotations Annotations in Fedora4 (Reality)
  24. 24. @azaroth42 ManagingAnnotations Annotations in Fedora4: Triannon
  25. 25. @azaroth42 ManagingAnnotations IIIF Use of Annotations
  26. 26. @azaroth42 ManagingAnnotations Lightweight Implementations • CATCH (Harvard) • Simple Annotation Server (NL Wales) • MangoServer (Rob) • Proxies to other management systems • e.g. METS/ALTO • Static files on disk
  27. 27. @azaroth42 ManagingAnnotations 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…
  28. 28. @azaroth42 ManagingAnnotations (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/
  29. 29. @azaroth42 ManagingAnnotations IIIF: Notifications • How does annotated resource know it was annotated? • Web Mention • http://www.w3.org/TR/webmention/
  30. 30. @azaroth42 ManagingAnnotations 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
  31. 31. @azaroth42 ManagingAnnotations Pitch: Annotating All Knowledge • Universities • Publishers • Platforms • Related Orgs (e.g. Orcid) • Mission: Provide annotation capabilities across the knowledge sector
  32. 32. @azaroth42 ManagingAnnotations 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, rsanderson@getty.edu

×