Making Repository Easier With SWORD


Published on

Presentation and demonstration at the 'DSpace User Group Meeting' (, 15th October 2009, University of Gothenburg, Sweden.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • SWORD ‘itself’ is the profile of APP. Essentially 2 strands: The profile The test implementations Advocacy/dissemination
  • Didn’t want to reinvent the wheel Looked at a range of existing standards
  • ATOMPUB came out as best fit Used for publishing blog posts
  • Thorny issue of package support MIME Multipurpose Internet Mail Extensions (MIME) is an Internet standard that extends the format of e-mail to support: * Text in character sets other than ASCII * Non-text attachments * Message bodies with multiple parts * Header information in non-ASCII character sets Not enough information to dscribe compund types and their content So, SWORD extends atomPub to understand and accept packages – significant part of the profile
  • Some issues with X-On-Behalf-Of and looking at this now I may be a cataloguer or repository metadata expert submitting on behalf of an author
  • Auto- discovery – link rel=“sword” href=[service doc url] Nested Service Desc: No of collections in server system can become v large such that APP service doc becomes too large. So SWORD adds sword:service as a child of app:collection APP doc to allow nesting
  • Web architecture based with standard GET and POST Make a request to GET a service doc The service doc explains the service in terms of its collections and what file types and packages it can accept, developer extensions etc. HTTP response details whether the deposit has been successful
  • Number of clients – some SWORD funded, some other JISC and wider projects.
  • Drop down for SWORD demo repos or can test your own Can be implemented via any website Can have own repositories list and own look and feel – radio buttons Highlight the on behalf of
  • Service details highlight – version, developer functions, max upload size Info about the collections - Open and Geography collection What they accept
  • JISC had strong ideas on this. Devise a model for supporting SWORD including developing a website knowledge base and enhanced documentation including a technical primer for SWORD implementers. Develop additional SWORD usage and implementation case studies e.g. based on Microsoft uptake Hold SWORD promotional event with show-and-tells, demonstrations, and technical workshops
  • Develop a ‘SWORD enabled’ repositories registry prototype and populate for use in promoting SWORD uptake.
  • Any suggestions for other
  • Making Repository Easier With SWORD

    1. 1. UKOLN is supported by: Making Repository Deposit Easier With SWORD 15 th October 2009 D S pace User Group Meeting 2009 Göteborgs Universitet, Sweden Adrian Stevenson SWORD Project Manager
    2. 2. SWORD Quick Introduction <ul><li>Vision: “lowering barriers to deposit” </li></ul><ul><li>S imple W eb service O ffering R epository D eposit (at least for now!) </li></ul><ul><li>Aims to provide a standard mechanism for ‘doing deposit’ into repositories </li></ul><ul><li>JISC funded project started 2007, SWORD 2 from June 2008 </li></ul><ul><li>SWORD3 starting now </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 SWORD in IntraLibrary, Fedora, DSpace and Eprints repositories </li></ul><ul><li>SWORD clients – web-based, desktop, Facebook client, MS Office add-on, widgets </li></ul>
    4. 4. Motivations – why? <ul><li>no standard interface available 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>
    5. 5. 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>
    6. 6. The Project Partners <ul><li>SWORD partners: </li></ul><ul><ul><li>UKOLN - Adrian Stevenson (project management) </li></ul></ul><ul><ul><li>University of Cambridge – Jim Downing (profile) </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, Seb Francois </li></ul></ul><ul><ul><li>Intrallect (IntraLibrary) – Andrew Robson </li></ul></ul><ul><ul><li>University of York - Julie Allinson </li></ul></ul>
    7. 7. SWORD AtomPub Profile
    8. 8. 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>
    9. 9. “ 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 parameters and requirements - file deposit </li></ul></ul><ul><ul><li>already exists and has growing support - blogs </li></ul></ul><ul><ul><li>has an extension mechanism </li></ul></ul><ul><ul><li>good fit with Web Architecture </li></ul></ul><ul><li>drawbacks / risks </li></ul><ul><ul><li>retrofit? </li></ul></ul><ul><ul><li>designed for a single package/file or an atom document – means that we need to package metadata and files </li></ul></ul>
    10. 10. SWORD AtomPub Profile <ul><li>SWORD profile builds on AtomPub </li></ul><ul><li>Provides set of extensions, constraint relaxations and enforcements for: </li></ul><ul><ul><li>Clients posting compound resources (zip,tar) </li></ul></ul><ul><ul><li>When mediated deposit required </li></ul></ul><ul><ul><li>Where workflows involved </li></ul></ul><ul><li>Part A adds to AtomPub, Part B highlights how SWORD diverges </li></ul><ul><li>SWORD compliance does not preclude AtomPub compliance </li></ul>
    11. 11. 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, IMS-CP, 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>
    12. 12. 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>
    13. 13. 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 Description </li></ul>
    14. 14. 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>
    15. 15. SWORD Profile of AtomPub <ul><li>Part B follows AtomPub spec highlighting where SWORD profile diverges </li></ul><ul><li>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>SWORD requires support for service documents </li></ul></ul></ul><ul><ul><ul><li>new elements: version, verbose, noOp, maxUploadSize </li></ul></ul></ul>
    16. 16. How it Works <ul><li>APP and SWORD work by issuing HTTP requests (GET, POST) </li></ul><ul><ul><li>GET Service Document (explain/discover) </li></ul></ul><ul><ul><li>POST a file or package 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>
    17. 17. SWORD In Use
    18. 18. 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>command-line, desktop and web clients </li></ul></ul><ul><ul><li>Facebook Client </li></ul></ul><ul><ul><li>Java, PHP and .NET libraries </li></ul></ul><ul><ul><li>Deposit from within MS Word </li></ul></ul><ul><ul><li>Feedforward / FOREsite and others: </li></ul></ul>
    19. 19. Web Interface
    20. 20. Fedora deposit
    21. 21. Fedora Deposit response
    22. 22. Validation
    23. 23. Deposit via Facebook
    24. 29. Netvibes Widget
    25. 32. FeedForward Deposit
    26. 33. OfficeSWORD Add-on <ul><li> </li></ul>
    27. 34. SWORD in use <ul><li>More implementations … </li></ul><ul><ul><li>ICE project is using SWORD </li></ul></ul><ul><ul><li>EU PEER project implementing SWORD </li></ul></ul><ul><ul><li>Microsoft Zentity Research-Outputs Repository </li></ul></ul><ul><ul><li>OAI-ORE - FOREsite work </li></ul></ul><ul><ul><li>EM-Loader </li></ul></ul><ul><ul><li>YODL-ING – University of York </li></ul></ul><ul><ul><li>Others coming along all the time </li></ul></ul><ul><li>Collaboration with publishers </li></ul><ul><li>Any more? Let us know. </li></ul>
    28. 35. SWORD Phase 3 <ul><li>11 months, starting now </li></ul><ul><li>S upport interest and activities around SWORD </li></ul><ul><li>SWORD package types list/registry </li></ul><ul><li>SWORD enabled repositories registry? </li></ul><ul><li>Formal standardisation? </li></ul><ul><li>SWORDCamp? </li></ul><ul><li>R enewed and increased advocacy efforts </li></ul>
    29. 36. SWORD3 - Development work <ul><li>Maintenance and development of SWORD application profile </li></ul><ul><li>Update SWORD demonstrator repositories and clients </li></ul><ul><li>Synergies with project activity in the area </li></ul><ul><li>Tie in with repository handshake strand of international repositories workshop </li></ul>
    30. 37. SWORD 3 - Community Support & Advocacy <ul><li>Reflective piece on why SWORD has been a success </li></ul><ul><li>Devise a support model for SWORD </li></ul><ul><li>Increase uptake by marketing and promotion </li></ul><ul><li>Additional use and implementation case studies </li></ul>
    31. 38. SWORD3 - Prototyping Registries <ul><li>Prototype SWORD package types registry. </li></ul><ul><li>P rototype ‘SWORD enabled’ repositories registry? </li></ul><ul><li>Explore adding ‘SWORD enabled’ info to existing registries e.g. OpenDOAR </li></ul>
    32. 39. SWORD3 - Standardising SWORD <ul><li>Investigate standardising SWORD profile with e.g. NISO, CEN, and others. Suggestions? </li></ul><ul><li>Evaluate cost/benefit and make recommendations. </li></ul><ul><li>Consider alternatives to formal standardisation </li></ul>
    33. 40. SWORD3 - SWORDCamp <ul><li>Idea from Monday’s deposit show-and-tell in London </li></ul><ul><li>A week of hands on development </li></ul><ul><ul><li>agree package standard in advance </li></ul></ul><ul><ul><ul><li>Based on OAI-ORE </li></ul></ul></ul><ul><ul><li>update demonstrators </li></ul></ul><ul><ul><li>update their clients/code </li></ul></ul><ul><li>Timed to coincide with Open Repositories 2010 </li></ul>
    34. 41. More Info and Contact <ul><li>SWORD Website: </li></ul><ul><li> </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>