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.

Ld4 l triannon


Published on

Linked Data for Libraries talks on Use Case 1.2: tagging scholarly resources

Published in: Technology
  • Be the first to comment

Ld4 l triannon

  1. 1. Use Case 1.2: Tag Scholarly Information Resources to Support Reuse LD 4L W ORK S HOP STA NFORD U NIV E RS ITY FE B RUA RY 23, 2015 Naomi Dushay /
  2. 2. “… As a librarian, I would like to tag resources into curated lists … so that I can feed these these lists into subject guides, course reserves, or reference collections. “I'd like these lists to be portable (into Drupal, LibGuides, etc.) and durable. “I'd like these lists/tags to selectively feed back into the discovery environment without having to modify the catalog records.” (shortened …)
  3. 3. Spoiler:
  4. 4. SearchWorks & Triannon Demo
  5. 5. Spoiler:
  6. 6. Requirements: • Create and manage tags/annotations in any client or environment • Retrieve tags/annotations to display in any client • Chosen identifiers, not necessarily catalog ids Need: • A model for annotations • A format to serialize them into • A protocol to transfer the serializations between systems • Storage for tags/annotations • Restful searching for tags/annotations • Implementations! Triannon: Back End Annotation Store
  7. 7. Model: Open Annotation (beta)
  8. 8. Serialization Format: JSON-LD (or turtle or …) { "@context": "", "@id": "", "@type": "oa:Annotation”, "motivatedBy":"oa:commenting", "hasBody": { "@type": "cnt:ContentAsText", "chars": ”Linked Data is the future", "format": "text/plain" }, "hasTarget": [ "", "" ] }
  9. 9. Transfer Protocol: Linked Data Platform • Triples? • Graph Object? • Groups of Triples? “Linked Data Platform (LDP) defines a set of rules for HTTP operations on web resources, some based on RDF, to provide an architecture for read-write Linked Data on the web.”
  10. 10. LDP:
  11. 11. LDP: Reality is More Complex
  12. 12. In Reality ... • Multiple resources to manage, each requires a POST • Binary or external resources with descriptions tricky • Multiple JSON-LD contexts complex (IIIF, OA, ...) Want: • Ease of use/implementation for annotation client • Ability to swap back-end to other LDP system • Integration with Rails environment • Search with Solr (easy) not SPARQL (less easy)
  13. 13. It’s the Graph, Baby!
  14. 14. Triannon
  15. 15. Triannon: Implementation Goals • Rapid Development • Modular • Re-Usable • Deployable • Maintainable
  16. 16. Triannon: Rails Engine Gem REST over HTTP Create POST jsonld, turtle, rdfxml Read GET " Update PUT/PATC H " Delete DELETE (id) Model ActiveRecord ActiveModel LDP View (for apps and developers) jsonld, turtle, rdfxml Controller
  17. 17. Triannon (Rails engine gem) triple store (in memory) RDF (gems) Triannon Rails App
  18. 18. Triannon Client: Search and Display Triannon (Solr)Client App http://triannon/by_target? http://triannon/by_tag?tag=food+sustainability http://triannon/search?q=dragons 'response'=>{'numFound'=>3,'start'=>0,'maxScore'=>1.0,'docs'=>[ { 'id'=>'98206ec8-4def-44b8-b190-648d8224ce1c’, 'anno_jsonld'=>'{"@context":"","@graph":[{"@id":"_:g700389243 72700","@type":["dctypes:Text","cnt:ContentAsText"], "format":"text/plain”, "chars":”Linked Data is Awesome. Also Dragons”},{"@id":"https://triannon- 648d8224ce1c","@type":"oa:Annotation","hasBody":"_:g70038924372700","hasTarget":"http://purl.stanford. edu/bd136jk4522","motivatedBy":"oa:commenting"}]}', ...}, { 'id'=>'f691b921-6f54-415b-9dfb-0d017f0d8ada', ...
  19. 19. It’s the Graph, Baby!
  20. 20. Triannon Client App ActiveTriples ld4l-open_annotation_rdf triple store (in memory) RDF Triannon Client: Create, Update, Delete Triannon id html form jsonld from RDF::Graph
  21. 21. • User Authentication/Authorization • Broader Types of Annotations • Easy Way to Include Tagged Collections Elsewhere (e.g. research guides in Drupal) • Cross Institutional Data, Searching • Search text of tags and comments with other metadata in SearchWorks • Ordered Lists Remaining Work
  22. 22. • Chris Beer: Fedora 4, LDP for Fedora 4 • Naomi Dushay: Triannon, Solr, SearchWorks • Christopher Jesudurai: SearchWorks UI • Willy Mene: Triannon  LDP • Rob Sanderson: Architecture, Specs, Cat Herding Contributors (Stanford)
  23. 23. Thank You!
  24. 24. UC1 Bibliographic & Curation Data: Ontologies Discussion LD4L W ORK S HOP STA NFORD U NIV E RS ITY FE B RUA RY 2 3 Rob Sanderson / / @azaroth42
  25. 25. Requirements Refresher • Annotations on digital content • Annotations on abstract "Works" • Ordered lists of "Works" • ... created from Annotations
  26. 26. Open Annotation (beta)
  27. 27. Open Annotation: Comments * *ContentAsText and chars replaced in W3C's FPWD
  28. 28. Open Annotation: Tags
  29. 29. Open Annotation: Semantic Tags * *model changes slightly in W3C's FPWD
  30. 30. Open Annotation: Motivations Motivation Description oa:bookmarking Recording a resource or point of interest oa:classifying Assigning a class to a resource oa:commenting Providing a review or comment oa:describing Describing the resource oa:editing Requesting a change to the resource oa:highlighting Region or span of interest to highlight oa:identifying Assigning an identifier to a resource oa:linking Linking another resource to the target oa:moderating Assignment of value or quality oa:questioning Asking a question about the resource oa:replying Replying to previous statement or question oa:tagging Tagging a resource
  31. 31. Open Annotation: Provenance
  32. 32. OAI-ORE: Sets
  33. 33. OAI-ORE: Proxies
  34. 34. OAI-ORE: Ordering
  35. 35. OAI-ORE: Multiple Orders
  36. 36. Option 2: rdf:List
  37. 37. Option 3: Collections Ontology
  38. 38. Thank You! February 23rd, 2015
  39. 39. JSON-LD Annotation Format { "@context": "", "@id": "", "@type": "oa:Annotation”, "motivatedBy":"oa:commenting", "hasBody": { "@type": "cnt:ContentAsText", "chars": "I love this book!", "format": "text/plain" }, "hasTarget": "" }