SWORD: The Story So Far


Published on

Seminar on SWORD at UKOLN by Adrian Stevenson on 24th September 2007, University of Bath, UK

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

  • Be the first to like this

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
  • This is how 1.2 differs from 1.3
  • 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
  • FeedForward is a desktop application that keeps you on top of your personal information environment, enabling you to scan, organise, remix, and republish entries from your feeds to everything from Twitter to bibliographic databases
  • 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
  • SWORD: The Story So Far

    1. 1. UKOLN is supported by: SWORD: The Story So Far 24 th September 2009 UKOLN Seminar University of Bath 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 </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 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, some content) </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><ul><ul><li>SWORD3 – Scott Wilson, Anyone else? </li></ul></ul>
    7. 7. SWORD AtomPub Profile
    8. 8. Standards <ul><li>WebDAV (http://www.webdav.org/) </li></ul><ul><li>JSR 170 (http://www.jcp.org/en/jsr/detail?id=170) </li></ul><ul><li>JSR 283 (http://www.jcp.org/en/jsr/detail?id=283) </li></ul><ul><li>SRW Update (http://www.loc.gov/standards/sru/) </li></ul><ul><li>Flickr Deposit API (http://www.flickr.com/services/api/) </li></ul><ul><li>Fedora Deposit API (http://www.fedora.info/definitions/1/0/api/) </li></ul><ul><li>OKI OSID (http://www.okiproject.org/) </li></ul><ul><li>ECL (http://ecl.iat.sfu.ca/) </li></ul><ul><li>ATOM Publishing Protocol (http://www.ietf.org/htmlcharters/atompub-charter.html) </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. SWORD v1.3 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>
    17. 17. 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>
    18. 18. SWORD In Use
    19. 19. 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: http://www.swordapp.org/sword/implementation </li></ul></ul>
    20. 20. Web Interface
    21. 21. Fedora deposit
    22. 22. Fedora Deposit response
    23. 23. Validation
    24. 24. Deposit via Facebook
    25. 30. Netvibes Widget
    26. 33. Deposit in Intralibrary
    27. 34. FeedForward Deposit
    28. 35. Intralibrary preview of deposited item
    29. 36. OfficeSWORD Add-on <ul><li>http://www.codeplex.com/OfficeSWORD </li></ul>
    30. 37. SWORD in use <ul><li>In addition to the case study implementations: </li></ul><ul><ul><li>Feedforward has implemented </li></ul></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 Nature Publishing Group </li></ul><ul><li>Any more? Let us know. </li></ul>
    31. 38. 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 registry </li></ul><ul><li>SWORD enabled repositories registry? </li></ul><ul><li>Formal standardisation? </li></ul><ul><li>R enewed and increased advocacy efforts </li></ul>
    32. 39. WP2: 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><ul><li>Feed into the developer community work </li></ul>
    33. 40. WP3: 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>
    34. 41. WP4: 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>
    35. 42. WP5: 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>
    36. 43. More Info and Contact <ul><li>SWORD Website: </li></ul><ul><li>http://www.swordapp.org </li></ul><ul><li>http://twitter.com/swordapp </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>
    37. 44. Questions? <ul><li>http://www.swordapp.org </li></ul><ul><li>http://www.twitter.com/swordapp </li></ul><ul><li>[email_address] </li></ul>