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.

Interoperability Fundamentals: SWORD 2


Published on

A presentation for the SUETr Interoperability Workshop, London School of Economics Library, 9th December 2008

Published in: Education, Technology, Business
  • Be the first to comment

  • Be the first to like this

Interoperability Fundamentals: SWORD 2

  1. 1. UKOLN is supported by: Interoperability Fundamentals: SWORD 2 8 th December 2008 SUETr Interoperability Workshop, London School of Economics Adrian Stevenson SWORD 2 Project Manager
  2. 2. SWORD Quick Introduction <ul><li>Simple Web service Offering Repository Deposit </li></ul><ul><li>JISC funded project 2007 </li></ul><ul><li>To provide a standard mechanism for ‘doing deposit’ into repositories </li></ul><ul><li>Continuation funding for SWORD 2 from June 2008 </li></ul>
  3. 3. What is it? <ul><li>A lightweight protocol for deposit </li></ul><ul><li>A profile of the Atom Publishing Protocol </li></ul><ul><li>Implementations of the SWORD deposit interface in IntraLibrary, Fedora, DSpace and Eprints </li></ul><ul><li>A number of deposit clients – web-based, command-line, desktop, Facebook </li></ul>
  4. 4. Background <ul><li>Before SWORD there was Deposit API </li></ul><ul><li>Discussions at the JISC-CETIS Conference 2005 focussed on the lack of a deposit ‘standard’ </li></ul><ul><li>Rachel Heery and Repositories Research Team at UKOLN facilitated a working group of repository developers </li></ul><ul><li>to address this requirement for a standard interface for deposit </li></ul>
  5. 5. Motivations <ul><li>no standard interface for tagging, packaging or authoring tools to upload objects into a repository </li></ul><ul><li>no standard interface for transferring digital objects between repositories </li></ul><ul><li>no way to deposit into more than one repository with one ‘click’ </li></ul><ul><li>no way of initiating a deposit workflow from outside a repository system </li></ul>
  6. 6. The Project Partners <ul><li>SWORD partners: </li></ul><ul><ul><li>UKOLN, University of Bath and University of York (Project Management) – Adrian Stevenson & Julie Allinson </li></ul></ul><ul><ul><li>University of Aberystwyth (DSpace, Fedora, & clients) – </li></ul></ul><ul><ul><li>Stuart Lewis, Neil Taylor, Glen Robson, Richard Jones </li></ul></ul><ul><ul><li>University of Southampton (EPrints) – Les Carr </li></ul></ul><ul><ul><li>Intrallect (IntraLibrary) –Sarah Currier </li></ul></ul><ul><li>Plus some friendly advisors </li></ul><ul><ul><li>Jim Downing, Richard Green </li></ul></ul>
  7. 7. The Acronym <ul><li>Simple – lightweight, agile and fit-for-purpose </li></ul><ul><li>Web service – independent of proprietary software, supports standard interfaces </li></ul><ul><li>Offering </li></ul><ul><li>Repository – or any system which wants to put or receive content </li></ul><ul><li>Deposit – or put, or post, or register, or add – a little step in the ingest workflow </li></ul>
  8. 8. Use Cases <ul><li>Deposit from a Desktop/Online tool </li></ul><ul><li>Multiple deposit - e.g. deposit to institutional and (mandated) funders’ repository with one action </li></ul><ul><li>Machine deposit - e.g. automated deposit from a laboratory machine </li></ul><ul><li>Migration/transfer - e.g. to a preservation service </li></ul><ul><li>Mediated deposit - e.g. deposit by a nominated representative, to additional repositories </li></ul>
  9. 9. Scenario 1 : Author deposits using a desktop authoring system to a mediated multiple deposit service A lightweight deposit web service can facilitate this transfer of object(s) Librarian L completes the deposit through the repository interface id Librarian L invokes deposit of a surrogate into Deposit id Author A deposits via an easy-deposit desktop application into the institutional repository's mediated deposit queue
  10. 10. Scenario 3 : Deposit in multiple repositories A lightweight deposit web service can facilitate this transfer of object(s) Deposit The depositor can choose one or more repositories to deposit into A depositor is required to submit to a Research Council repository, but they also wish to deposit into their institutional repository and a relevant subject repository
  11. 11. SWORD AtomPub Profile
  12. 12. Standards <ul><li>WebDAV ( </li></ul><ul><li>JSR 170 ( </li></ul><ul><li>JSR 283 ( </li></ul><ul><li>SRW Update ( </li></ul><ul><li>Flickr Deposit API ( </li></ul><ul><li>Fedora Deposit API ( </li></ul><ul><li>OKI OSID ( </li></ul><ul><li>ECL ( </li></ul><ul><li>ATOM Publishing Protocol ( </li></ul>
  13. 13. “ the Atom Publishing Protocol is an application-level protocol for publishing and editing Web resources” <ul><li>benefits </li></ul><ul><ul><li>supports many of our parameters and requirements, in particular file deposit </li></ul></ul><ul><ul><li>it already exists and has growing support </li></ul></ul><ul><ul><li>it is well-used in popular applications </li></ul></ul><ul><ul><li>it has an extension mechanism </li></ul></ul><ul><ul><li>good fit with the Web architecture </li></ul></ul><ul><li>drawbacks / risks </li></ul><ul><ul><li>too much of a retrofit? </li></ul></ul><ul><ul><li>it is designed for a single package/file OR an atom document – this means that we need to package up metadata and files </li></ul></ul>
  14. 14. SWORD AtomPub Profile <ul><li>SWORD profile builds on AtomPub </li></ul><ul><li>Provides set of extensions, constraint relaxations and enforcements when: </li></ul><ul><ul><li>Clients post compound resources (zip,tar) </li></ul></ul><ul><ul><li>Mediated deposit required </li></ul></ul><ul><ul><li>Workflows involved </li></ul></ul><ul><li>SWORD compliance does not preclude AtomPub compliance </li></ul>
  15. 15. SWORD APP Package Support <ul><li>AtomPub uses MIME to describe resources </li></ul><ul><li>Inadequate for compound types e.g. </li></ul><ul><ul><li>Zip, tar </li></ul></ul><ul><ul><li>METS, SCORM, MPEG21, DIDL packages </li></ul></ul><ul><li>SWORD extends AtomPub: </li></ul><ul><ul><li>sword:acceptPackaging element </li></ul></ul><ul><ul><li>Value taken from SWORD package types </li></ul></ul>
  16. 16. SWORD APP Mediated Deposit <ul><li>SWORD deposit client user may not be owner of resource </li></ul><ul><li>SWORD allows clients to set a HTTP header: </li></ul><ul><ul><li>X-On-Behalf-Of </li></ul></ul><ul><li>Assumes trust between owner and mediating user </li></ul>
  17. 17. SWORD APP Developer Features <ul><li>No-Op (Dry Run) </li></ul><ul><li>Verbose Output </li></ul><ul><li>Client and Server Identity </li></ul><ul><li>Auto-Discovery </li></ul><ul><li>Error Documents </li></ul><ul><li>Nested Service Desription </li></ul>
  18. 18. SWORD APP Error Documents <ul><li>SWORD adds new class of doc to AtomPub to allow better error description </li></ul><ul><ul><li>ErrorContent </li></ul></ul><ul><ul><li>ErrorChecksumMismatch </li></ul></ul><ul><ul><li>ErrorBadRequest </li></ul></ul><ul><ul><li>TargetOwnerUnknown </li></ul></ul><ul><ul><li>MediationNotAllowed </li></ul></ul>
  19. 19. SWORD Profile of AtomPub <ul><li>Part B follows AtomPub specification highlighting where SWORD profile diverges </li></ul><ul><li>Part B covers: </li></ul><ul><ul><li>Protocol Operations </li></ul></ul><ul><ul><ul><li>Retrieving Service Document </li></ul></ul></ul><ul><ul><ul><li>Listing Collections </li></ul></ul></ul><ul><ul><ul><li>Creating a Resource </li></ul></ul></ul><ul><ul><ul><li>Editing a Resource - Not currently implemented </li></ul></ul></ul><ul><ul><li>Category Documents – MUST NOT be required </li></ul></ul><ul><ul><li>Service Documents </li></ul></ul><ul><ul><ul><li>new elements: version, verbose, noOp, maxUploadSize </li></ul></ul></ul>
  20. 20. How it Works <ul><li>APP works by issuing HTTP requests (GET, POST) </li></ul><ul><ul><li>GET Service Document (explain/discover) </li></ul></ul><ul><ul><li>POST ATOM document or file to collection URI </li></ul></ul><ul><li>HTTP response and ATOM document is returned </li></ul><ul><li>HTTP basic authentication is required </li></ul>
  21. 21. Examples – Get (explain) GET /sword-app/servicedocument HTTP/1.1 Host: X-On-Behalf-Of: lcarr
  22. 22. Examples – Post (Deposit) POST /burning-collection HTTP/1.1 Host: Content-Type: application/zip Authorization: Basic ZGFmZnk6c2VjZJldA== Content-length: nnn Content-MD5: md5-digest Content-Disposition: X-On-Behalf-Of: lcarr X-Format-Namespace: METS
  23. 23. SWORD 2 Profile Updates <ul><li>SWORD Profile Version 1.3 includes: </li></ul><ul><li>Revised deviations from AtomPub and Atom </li></ul><ul><ul><li>increasing requirement for persistent Atom Entry Documents </li></ul></ul><ul><li>Includes description of SWORD specific extensions </li></ul><ul><li>Removed notion of levels of compliance </li></ul><ul><li>Added sword:userAgent, sword:error, sword:service, sword:version and sword:maxUploadSize elements </li></ul>
  24. 24. SWORD In Use
  25. 25. Implementations <ul><li>Repository implementations </li></ul><ul><ul><li>DSpace </li></ul></ul><ul><ul><li>EPrints </li></ul></ul><ul><ul><li>IntraLibrary </li></ul></ul><ul><ul><li>Fedora </li></ul></ul><ul><li>Client implementations </li></ul><ul><ul><li>Java & PHP libraries </li></ul></ul><ul><ul><li>command-line, desktop and web clients </li></ul></ul><ul><ul><li>Facebook Client </li></ul></ul><ul><ul><li>Deposit from within MS Word & Powerpoint </li></ul></ul><ul><ul><li>Feedforward / FOREsite and others at: </li></ul></ul>
  26. 28. Facebook Client
  27. 29. OfficeSWORD Add-on <ul><li> </li></ul>
  28. 30. SWORD in use <ul><li>In addition to the case study implementations: </li></ul><ul><ul><li>Feedforward has already implemented </li></ul></ul><ul><ul><li>ICE project is looking at SWORD </li></ul></ul><ul><ul><li>DSpace and EPrints installations already exist </li></ul></ul><ul><ul><li>Microsoft eChemistry work </li></ul></ul><ul><ul><li>OAI-ORE - FOREsite work </li></ul></ul><ul><ul><li>more are planned </li></ul></ul><ul><li>NISO activity around deposit - hopefully this will recognise </li></ul><ul><li>Collaberation with Nature Publishing Group </li></ul>
  29. 31. More Info and Contact <ul><li>SWORD Website: </li></ul><ul><li> </li></ul><ul><li>General queries: </li></ul><ul><ul><li>Adrian Stevenson [email_address] </li></ul></ul><ul><li>Technical queries: </li></ul><ul><ul><li>Sword sourceforge list [email_address] </li></ul></ul>
  30. 32. Questions <ul><li>SWORD Website </li></ul><ul><li> </li></ul><ul><li>Adrian Stevenson, UKOLN </li></ul><ul><li>[email_address] </li></ul>