Extending DMPOnline with SWORDv2
Research funding bodies typically require researchers to implement data management plans to safeguard the data and outputs of their research. The Data Management Plan (DMP) Online tool, developed by the Digital Curation Centre at the University of Edinburgh, is used by academics to do exactly this - define how they will manage the data and outputs from their research.
Extending DMPOnline to communicate with institutional repositories using SWORDv2, so that data plans are archived and preserved, seemed a natural addition to the functionality of this tool. With that aim, Cottage Labs attempted to integrate the recently developed Sword2Ruby library into the DMPOnline code base.
First of all, we forked the existing DMPOnline code, so that we wouldn't break anyone else's systems. Then once this was up and running locally (with the usual Ruby/Gem installation palaver), we set about working out how the integration would function and what new buttons we might need. We realised that the connection between DMPOnline and the Repository should be asynchronous, to allow for servers going offline and networks going down. Thus a queue was necessary: a request would be queued by DMPOnline, and then processed on a regular schedule by a worker job. If the worker cannot process the request, e.g. if the repository is offline, the request will get re-queued and tried again at the next available opportunity.
Unfortunately, the asynchronous mechanism introduced additional complexities - such as what happens when a plan is deleted from DMPOnline? How should it be recorded in the queue if the associated plan record (storing the repository identifiers) no longer exists? This problem was resolved by selectively caching the repository URIs on which to perform the actions.
Some other issues cropped up because of the 'bleeding edge' nature of the DMPOnline tool - for example, there is currently no facility to manage user accounts, which makes the deployment of the system difficult.
Nevertheless, the integration is working well and we are looking to install the system at a host university in the next couple of months. You can see how it works with this handly video demo:
The code for DMPOnline with Repository Integration is available from: https://github.com/CottageLabs/DMPOnline
Our project page for the project is here
Martyn Whitwell, Cottage Labs, August 2012