SWORD (protocol)

Last updated
SWORD
Developed by JISC
Latest release
3.0
Type of formatResource deposit
Extended from ATOM
Website swordapp.org

SWORD (Simple Web-service Offering Repository Deposit) is an interoperability standard that allows digital repositories to accept the deposit of content from multiple sources in different formats (such as XML documents) via a standardized protocol. In the same way that the HTTP protocol allows any web browser to talk to any web server, so SWORD allows clients to talk to repository servers. SWORD is a profile (specialism) of the Atom Publishing Protocol, but restricts itself solely to the scope of depositing resources into scholarly systems.

Contents

History

The first version of the SWORD protocol was created in 2007 by a consortium of UK institutional repository experts. The project to develop SWORD was funded by the JISC and managed by UKOLN. [1] An overview of the initial development of SWORD is given in "SWORD: Simple Web-service Offering Repository Deposit." [2] The standard grew out of a need for an interoperable method by which resources could be deposited into repositories. Interoperable standards existed to allow the harvesting of content (e.g. Open Archives Initiative Protocol for Metadata Harvesting) or for searching (e.g. OpenSearch) but not for deposit.

Between the original release in 2007, two subsequent projects were undertaken until 2009 to further refine the version 1.0 specification and perform advocacy work. The resulting release was numbered 1.3. [3] Further descriptions of the work is available in Lewis et al., "If SWORD is the answer, what is the question? Use of the Simple Web service Offering Repository Deposit protocol." [4]

In 2011 a new project began to extend the "fire and forget" approach of the SWORD 1.x specification into a full CRUD (Create, Retrieve, Update, Delete) interface, and the result was a new version (designated 2.0). [5] This was followed by extensive development work on client environments in several programming languages, and incorporation into the development of several Jisc-funded efforts. [6] [7]

Use cases

Many different use cases exist [8] where it may be desirable to remotely deposit resources into scholarly systems. These include:

Implementations

Three categories of implementation exist: repository implementations for existing repository servers, client implementations that can be used to perform SWORD deposits, and code libraries to assist in the creation of new SWORD clients or servers.

SWORD-compliant repositories

The following digital repositories are SWORD compliant:

SWORD clients

SWORD code libraries

Other resources

The SWORD Course [24]

Related Research Articles

freedesktop.org (fd.o), formerly X Desktop Group (XDG), is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. It was founded by Havoc Pennington, a GNOME developer working for Red Hat in March 2000. Some of the project's servers are hosted by Portland State University, sponsored by Hewlett-Packard, Intel, and Google.

Memcached is a general-purpose distributed memory-caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source must be read. Memcached is free and open-source software, licensed under the Revised BSD license. Memcached runs on Unix-like operating systems and on Microsoft Windows. It depends on the libevent library.

The Web Server Gateway Interface is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.

Datagram Transport Layer Security (DTLS) is a communications protocol providing security to datagram-based applications by allowing them to communicate in a way designed to prevent eavesdropping, tampering, or message forgery. The DTLS protocol is based on the stream-oriented Transport Layer Security (TLS) protocol and is intended to provide similar security guarantees. The DTLS protocol datagram preserves the semantics of the underlying transport—the application does not suffer from the delays associated with stream protocols, but because it uses UDP or SCTP, the application has to deal with packet reordering, loss of datagram and data larger than the size of a datagram network packet. Because DTLS uses UDP or SCTP rather than TCP, it avoids the "TCP meltdown problem", when being used to create a VPN tunnel.

<span class="mw-page-title-main">JSON</span> Open standard file format and data interchange

JSON is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays. It is a common data format with diverse uses in electronic data interchange, including that of web applications with servers.

<span class="mw-page-title-main">Git</span> Software for version control of files

Git is a distributed version control system that tracks changes in any set of computer files, usually used for coordinating work among programmers who are collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows.


This is a comparison of notable free and open-source configuration management software, suitable for tasks like server configuration, orchestration and infrastructure as code typically performed by a system administrator.

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:

Content Management Interoperability Services (CMIS) is an open standard that allows different content management systems to inter-operate over the Internet. Specifically, CMIS defines an abstraction layer for controlling diverse document management systems and repositories using web protocols.

In computing, SPICE is a remote-display system built for virtual environments which allows users to view a computing "desktop" environment – not only on its computer-server machine, but also from anywhere on the Internet – using a wide variety of machine architectures.

CommonJS is a project to standardize the module ecosystem for JavaScript outside of web browsers.

<span class="mw-page-title-main">Socket.IO</span> Library for realtime web applications

Socket.IO is an event-driven library for real-time web applications. It enables real-time, bi-directional communication between web clients and servers. It consists of two components: a client, and a server. Both components have a nearly identical API.

<span class="mw-page-title-main">Tox (protocol)</span> Distributed protocol for telephony and instant messaging

Tox is a peer-to-peer instant-messaging and video-calling protocol that offers end-to-end encryption. The stated goal of the project is to provide secure yet easily accessible communication for everyone. A reference implementation of the protocol is published as free and open-source software under the terms of the GNU GPL-3.0-or-later.

WAMP is a WebSocket subprotocol registered at IANA, specified to offer routed RPC and PubSub. Its design goal is to provide an open standard for soft, real-time message exchange between application components and ease the creation of loosely coupled architectures based on microservices. Because of this, it is a suitable enterprise service bus (ESB), fit for developing responsive web applications or coordinating multiple connected IoT devices.

<span class="mw-page-title-main">International Image Interoperability Framework</span> Standardised method of describing and delivering images over the web

The International Image Interoperability Framework defines several application programming interfaces that provide a standardised method of describing and delivering images over the web, as well as "presentation based metadata" about structured sequences of images. If institutions holding artworks, books, newspapers, manuscripts, maps, scrolls, single sheet collections, and archival materials provide IIIF endpoints for their content, any IIIF-compliant viewer or application can consume and display both the images and their structural and presentation metadata.

<span class="mw-page-title-main">Matrix (protocol)</span> Networking protocol for real-time communication and data synchronization

Matrix is an open standard and communication protocol for real-time communication. It aims to make real-time communication work seamlessly between different service providers, in the way that standard Simple Mail Transfer Protocol email currently does for store-and-forward email service, by allowing users with accounts at one communications service provider to communicate with users of a different service provider via online chat, voice over IP, and videotelephony. It therefore serves a similar purpose to protocols like XMPP, but is not based on any existing communication protocol.

<span class="mw-page-title-main">Automatic Certificate Management Environment</span> Communications protocol for automating interactions between certificate authorities and web servers

The Automatic Certificate Management Environment (ACME) protocol is a communications protocol for automating interactions between certificate authorities and their users' servers, allowing the automated deployment of public key infrastructure at very low cost. It was designed by the Internet Security Research Group (ISRG) for their Let's Encrypt service.

<span class="mw-page-title-main">Swagger (software)</span> Computing language

Swagger is a suite of tools for API developers from SmartBear Software and a former specification upon which the OpenAPI Specification is based.

SensorThings API is an Open Geospatial Consortium (OGC) standard providing an open and unified framework to interconnect IoT sensing devices, data, and applications over the Web. It is an open standard addressing the syntactic interoperability and semantic interoperability of the Internet of Things. It complements the existing IoT networking protocols such CoAP, MQTT, HTTP, 6LowPAN. While the above-mentioned IoT networking protocols are addressing the ability for different IoT systems to exchange information, OGC SensorThings API is addressing the ability for different IoT systems to use and understand the exchanged information. As an OGC standard, SensorThings API also allows easy integration into existing Spatial Data Infrastructures or Geographic Information Systems.

<span class="mw-page-title-main">Shadowsocks</span> Free and open-source encrypted proxy project

Shadowsocks is a free and open-source encryption protocol project, widely used in China to circumvent Internet censorship. It was created in 2012 by a Chinese programmer named "clowwindy", and multiple implementations of the protocol have been made available since. Shadowsocks is not a proxy on its own, but (typically) is the client software to help connect to a third-party SOCKS5 proxy, which is similar to a Secure Shell (SSH) tunnel. Once connected, internet traffic can then be directed through the proxy. Unlike an SSH tunnel, shadowsocks can also proxy User Datagram Protocol (UDP) traffic.

References

  1. "SWORD Project - DigiRepWiki". www.ukoln.ac.uk.
  2. Julie Allinson; Sebastien François; Stuart Lewis (2008-01-30), SWORD: Simple Web-service Offering Repository Deposit, Ariadne, retrieved 2011-01-08
  3. "SWORD APP Profile version 1.3". swordapp.org. Archived from the original on 2009-05-31.
  4. Stuart Lewis; Leonie Hayes; Vanessa Newton-Wade; Antony Corfield; Richard Davis; Tim Donohue; Scott Wilson (2009), "If SWORD is the answer, what is the question? Use of the Simple Web service Offering Repository Deposit protocol", Program: Electronic Library and Information Systems, 'Program' Emerald, 43 (4): 407–418, doi:10.1108/00330330910998057, hdl:2292/5315
  5. "SWORD 2.0 Profile". swordapp.github.com. Archived from the original on 2012-09-01.
  6. "Extending DMPOnline with SWORDv2 – SWORD".
  7. "DataFlow project". www.dataflow.ox.ac.uk. Archived from the original on 2011-12-12.
  8. Stuart Lewis; Pablo de Castro; Richard jones (2012), "SWORD: Facilitating Deposit Scenarios", D-Lib Magazine, 18, doi: 10.1045/january2012-lewis
  9. https://arxiv.org/help/submit_sword
  10. "SWORD API — Dataverse.org". guides.dataverse.org.
  11. "Import SWORD | API Archive Ouverte HAL". api.archives-ouvertes.fr. Retrieved 2022-02-15.
  12. "Products / Home - Intrallect". 20 August 2007. Archived from the original on 20 August 2007. Retrieved 17 July 2020.
  13. "Research-Output Repository Platform - Microsoft Research". 23 May 2009. Archived from the original on 23 May 2009. Retrieved 17 July 2020.
  14. https://www.mycore.de/site/features/interfaces/
  15. "EasyDeposit". Archived from the original on 2011-01-14. Retrieved 2011-01-23.
  16. "SWORD plugin now available for OJS | Public Knowledge Project". Archived from the original on 2011-07-21. Retrieved 2011-01-23.
  17. "Excalibur". GitHub . 7 August 2021.
  18. "Index of /". php.swordapp.org. Archived from the original on 2009-06-01.
  19. "Swordapp/Swordappv2-PHP-library". GitHub . 19 October 2021.
  20. "Sword2Ruby gem". GitHub . 4 May 2017.
  21. "SWORD - Browse /SWORD Java Library at SourceForge.net".
  22. "Swordapp/Python-client-sword2". GitHub . 25 February 2021.
  23. "SSS - Simple SWORD Server". GitHub . 17 July 2020.
  24. "The SWORD Course » SWORD". swordapp.org. Archived from the original on 2010-10-17.