For the past few years Dataverse has been using the SWORD protocol as the standard for a Data Deposit API, but is this the standard all repositories should use for Data Deposit APIs? We will discuss the good parts and the challenges of this approach. Additionally this presentation will lead into the Panel Discussion consisting of various stakeholders from publishers, domain and general repositories, funding agencies, researchers, and industry.
Towards a common deposit api (the dataverse example) Elizabeth Quigley + Phil Durbin
1. Towards a Common
Deposit API
(the Dataverse example)
Elizabeth Quigley
http://www.iq.harvard.edu/people/elizabeth-quigley
Philip Durbin
http://www.iq.harvard.edu/people/philip-durbin
2. Data + Article Depositing Now
General Repositories Domain Specific Repositories Journals
3. Journal + Data Automation
No Automation Full Automation
List of
recommended
repositories - but
data not required
to be deposited
Policy requiring
data to be
deposited
Journal gets
notification
when data is
deposited in a
repository
Journal System
+ Repository
are connected
4.
5. Full Automation Example: OJS + DVN 3.6 (2013)
SWORD support shipped in DVN 3.6 in late 2013 and
has been carried forward into Dataverse 4.0.
http://projects.iq.harvard.edu/ojs-dvn https://youtu.be/ftK1_IvWaVc
6. Introducing SWORD
Simple Web-service Offering Repository Deposit (SWORD)
● http://en.wikipedia.org/wiki/SWORD_(protocol)
● a "profile" of AtomPub (RFC 5023) from Google
● http://swordapp.org
● https://github.com/swordapp
● https://twitter.com/swordapp
7. SWORD: The Good Parts
● Well defined standard, based on other standards (AtomPub)
○ http://swordapp.github.io/SWORDv2-Profile/SWORDProfile.html
● Good support for publishing workflows
○ "collections" as containers (dataverses, etc.)
○ "In-Progress" HTTP header for "unpublished"
○ negotiation of packaging (SimpleZip, METS, BagIt)
○ deposit receipt
● Popular in scholarly publishing
○ http://swordapp.org/sword-v2/sword-v2-implementations/
● Server library in Java (used by Dataverse)
● Client libraries in Java, PHP, Python, and Ruby
8. SWORD: More Good Parts!
● Open Science Framework (OSF) integration
○ https://osf.io/getting-started/#dataverse
● Python package for Dataverse APIs
○ https://github.com/IQSS/dataverse-client-python
● R package for Dataverse APIs
○ https://github.com/ropensci/dvn
● (Future) Archivematica integration
○ http://www.rdc-drc.ca/the-rdc-federated-pilot-for-data-ingest-and-preservation/
● (Future) TOP SECRET integrations! :)
9. Challenges with SWORD: Metadata
● Lowest common denominator for metadata: dcterms
● http://dublincore.org/documents/dcmi-terms/
○ 15 properties in the "/elements/1.1/" namespace
■ contributor, coverage, creator, date, description, format,
identifier, language, publisher, relation, rights, source, subject,
title, type
○ 55 properties in the "/terms/" namespace
■ isReferencedBy et al.
● 154 metadata fields in base install of Dataverse 4.0 (more to come!)
○ http://guides.dataverse.org/en/4.0/user/appendix.html
[sword-app-tech] client SHOULD add Dublin Core terms to the Atom Entry, MAY add any other metadata formats or foreign
markup - http://www.mail-archive.com/sword-app-tech@lists.sourceforge.net/msg00384.html
10. Challenges with SWORD: Dev Activity
"I'm hoping, also, that there will be
more funding at this end at some point
for some more 'core' development, but
opportunities are currently vague, so I
don't think there's any point in holding out
for it. Instead it seems much better to try
to increase community engagement with
the code and try to sustain it that way."
-- Richard Jones, SWORD spec lead, in
the "code governance" thread on sword-
app-tech, July 2014
http://www.mail-archive.com/sword-app-tech@lists.
sourceforge.net/msg00400.html
GitHub updates in 2014, 2013
Blog updates in 2013, 2012
11. Both SWORD and a "Native" API
● Dataverse will continue to support SWORD
● Dataverse 4.0 added a new JSON-based "native" API
○ All metadata fields supported
○ Does more than Data Deposit
■ Search
■ Permissions
■ etc.
http://guides.dataverse.org/en/latest/api
12. A Common Deposit API?
● Use SWORD as is?
● Develop SWORD more?
● Define new Common API?
How to Get Involved
SWORD mailing list:
http://swordapp.org/contact/
Dataverse API Community Group:
http://community.dataverse.org/community-groups/api.html