Difference between revisions of "Journal:A metadata-driven approach to data repository design"

From LIMSWiki
Jump to navigationJump to search
(Saving and adding more.)
(Saving and adding more.)
Line 69: Line 69:
* The repository is designed to be operable through a command line and programmatic web API. This allows scripted integration of the deposition process into other workflows such as [[electronic laboratory notebook]]s.<ref name="HarveyDigital14">{{cite journal |title=Digital data repositories in chemistry and their integration with journals and electronic laboratory notebooks |journal=Journal of Chemical Information and Modeling |author=Harvey, M.J.; Mason, N.J.; Rzepa, H.S. |volume=54 |issue=10 |pages=2627–2635 |year=2014 |doi=10.1021/ci500302p}}</ref>
* The repository is designed to be operable through a command line and programmatic web API. This allows scripted integration of the deposition process into other workflows such as [[electronic laboratory notebook]]s.<ref name="HarveyDigital14">{{cite journal |title=Digital data repositories in chemistry and their integration with journals and electronic laboratory notebooks |journal=Journal of Chemical Information and Modeling |author=Harvey, M.J.; Mason, N.J.; Rzepa, H.S. |volume=54 |issue=10 |pages=2627–2635 |year=2014 |doi=10.1021/ci500302p}}</ref>


* The repository to be integrated with the widely-used source code management website Github, and can automatically allocate DOIs to software releases made through that platform. This extends the benefit of DOI citability to software projects without requiring additional effort on behalf of the developer, once the initial configuration has been made.
* The repository to be integrated with the widely-used source code management website GitHub, and can automatically allocate DOIs to software releases made through that platform. This extends the benefit of DOI citability to software projects without requiring additional effort on behalf of the developer, once the initial configuration has been made.


* The repository is registered via the registry of research data repositories.<ref name="RE3">{{cite web |url=http://www.re3data.org/about |title=About |work=Registry of Research Data Repositories |publisher=Karlsruhe Institute of Technology |accessdate=07 September 2016}}</ref> This involves populating a schema template provided by re3data with the appropriate attributes, which is then processed to create a repository record. This results in the metadata describing the repository itself being assigned a DOI.<ref name="ImperialCollege">{{cite web |url=http://www.re3data.org/repository/r3d100011965 |title=Imperial College High Performance Computing Service Data Repository |work=Registry of Research Data Repositories |publisher=Karlsruhe Institute of Technology |doi=10.17616/R3K64N |accessdate=07 September 2016}}</ref> The repository schema is available as an XML file<ref name="XMLReg">{{cite web |url=https://data.hpc.imperial.ac.uk/resolve/?doi=1369 |title=XML registration with re3data |work=Imperial College High Performance Computing Service Data Repository |publisher=Imperial College London |doi=10.14469/hpc/1369 |date=07 September 2016 |accessdate=07 September 2016}}</ref>, with further data and metadata information deposited for inspection.<ref name="DRP">{{cite web |url=https://data.hpc.imperial.ac.uk/resolve/?doi=1088 |title=Data Repository Project |work=Imperial College High Performance Computing Service Data Repository |publisher=Imperial College London |doi=10.14469/hpc/1088 |date=25 July 2016 |accessdate=07 September 2016}}</ref>
* The repository is registered via the registry of research data repositories.<ref name="RE3">{{cite web |url=http://www.re3data.org/about |title=About |work=Registry of Research Data Repositories |publisher=Karlsruhe Institute of Technology |accessdate=07 September 2016}}</ref> This involves populating a schema template provided by re3data with the appropriate attributes, which is then processed to create a repository record. This results in the metadata describing the repository itself being assigned a DOI.<ref name="ImperialCollege">{{cite web |url=http://www.re3data.org/repository/r3d100011965 |title=Imperial College High Performance Computing Service Data Repository |work=Registry of Research Data Repositories |publisher=Karlsruhe Institute of Technology |doi=10.17616/R3K64N |accessdate=07 September 2016}}</ref> The repository schema is available as an XML file<ref name="XMLReg">{{cite web |url=https://data.hpc.imperial.ac.uk/resolve/?doi=1369 |title=XML registration with re3data |work=Imperial College High Performance Computing Service Data Repository |publisher=Imperial College London |doi=10.14469/hpc/1369 |date=07 September 2016 |accessdate=07 September 2016}}</ref>, with further data and metadata information deposited for inspection.<ref name="DRP">{{cite web |url=https://data.hpc.imperial.ac.uk/resolve/?doi=1088 |title=Data Repository Project |work=Imperial College High Performance Computing Service Data Repository |publisher=Imperial College London |doi=10.14469/hpc/1088 |date=25 July 2016 |accessdate=07 September 2016}}</ref>
==Engineering==
The repository is intended for use by affiliates of the deploying hosting institution. Deposition first requires requires authentication performed against an institutional authentication and authorization (A&A) LDAP service. As a matter of policy, the repository also requires the depositing user to provide their ORCID identifier, obtained via an Oauth transaction<ref name="RicherUser">{{cite web |url=https://oauth.net/articles/authentication/ |title=User Authentication with OAuth 2.0 |author=Richer, J. |work=OAuth.net |accessdate=07 September 2016}}</ref> with the ORCID web service.
The repository is accessed via interfaces designed to function both as a human-friendly UI (accessed via a web browser) and as a programmable API. The latter is essential for integrating deposition into higher level tools and workflows and exposes all the capabilities of the repository. In order to deposit, command-line tools or other programs using the API must also authenticate and the repository is able to provide delegated access to a user’s account for such tools through a transaction similar to Oauth. This allows automated use performed by a third party tool on behalf of a user to be clearly delineated from actions performed by the user and furthermore allows selective revocation of access to the third-party. Current integrations include a computational science portal which manages the execution of quantum chemistry calculations on Imperial College HPC resources. This portal is able to directly publish results into the repository, automatically passing on dataset data files and descriptive metadata.
Data files stored within a repository are maintained on a local filesystem on the server hosting the repository. As data burdens grow to multi-terabyte levels, we expect to migrate this data to remote filesystems. The internal database representation of a dataset deposition allows the files to reside on independent web server, in which case the repository will resolve any requests for them to an HTTP redirect. This would facilitate any future extension of the repository to use a third-party storage solution (e.g., Amazon Web Services S3 object store), or a content distribution network.
The repository automatically generates and publishes metadata records conforming to the DataCite Medadata Schema 4.0.<ref name="DMWG">{{cite web |url=http://schema.datacite.org/meta/kernel-4.0/ |title=DataCite Metadata Schema 4.0 |publisher=DataCite Metadata Working Group |date=19 September 2016 |accessdate=16 January 2017}}</ref> The metadata records are automatically updated whenever a user updates an entry, such as, for example, including a subsequently obtained DOI to a related journal article. At the present time there is a latency of approximately two days before the DataCite search engine index incorporates any updates.
For the GitHub integration, the repository end-user first associates the repository with GitHub, again using an OAuth transaction.<ref name="RicherUser" /> Thereafter, the repository maintains a list of the user’s GitHub projects, both public and private, for which DOI creation may be selectively enabled. Once activated, a GitHub “webhook”<ref name="GHWebhooks">{{cite web |url=https://developer.github.com/webhooks/ |title=Webhooks |work=API |publisher=GitHub, Inc |accessdate=07 September 2016}}</ref> is created which automatically makes an HTTP request to the repository whenever a software release is created. This request contains sufficient metadata about the release to allow the repository to create a DOI and automatically populate its metadata. The DOI is recorded within the repository and also added to the release description held within GitHub.
The repository is implemented in PHP hosted within an Apache web server and depends on a [[PostgreSQL|Postgres]] database. The source code is available on GitHub.<ref name="HPCRepo">{{cite web |url=https://github.com/ICHPC/hpc-repo |title=ICHPC/hpc-repo |author=Harvey, M.J. |publisher=GitHub, Inc |doi=10.14469/hpc/1487 |accessdate=07 September 2016}}</ref>


==References==
==References==

Revision as of 18:28, 8 February 2017

Full article title A metadata-driven approach to data repository design
Journal Journal of Cheminformatics
Author(s) Harvey, Matthew J.; McLean, Andrew; Rzepa, Henry S.
Author affiliation(s) Imperial College London
Primary contact Email: rzepa at imperial dot ac dot uk
Year published 2017
Volume and issue 9
Page(s) 4
DOI 10.1186/s13321-017-0190-6
ISSN 1758-2946
Distribution license Creative Commons Attribution 4.0 International
Website http://jcheminf.springeropen.com/articles/10.1186/s13321-017-0190-6
Download http://jcheminf.springeropen.com/track/pdf/10.1186/s13321-017-0190-6 (PDF)

Abstract

The design and use of a metadata-driven data repository for research data management is described. Metadata is collected automatically during the submission process whenever possible and is registered with DataCite in accordance with their current metadata schema, in exchange for a persistent digital object identifier. Two examples of data preview are illustrated, including the demonstration of a method for integration with commercial software that confers rich domain-specific data analytics without introducing customization into the repository itself.

Keywords: Data repository, metadata-driven, DataCite, data preview, Mpublish

Background

Turnkey institutional repositories based on platforms such as DSpace[1] were introduced more than 10 years ago, with early applications directed largely towards archival of publication preprints and postprints. The recent increasing requirement for research data management emerging from funding agencies means that the focus is now shifting to the use of repositories as part of the data management processes. More recent data-centric tools such as Figshare[2] and Zenodo[3] reflect these changes. Such services rely on the minting of persistent identifiers or DOIs for the depositions using the DataCite agency.[4] Metadata describing the deposited material is supplied to DataCite and a DOI is returned. An early example of such research data management is illustrated by a DSpace-based project to produce and, 10 years later, curate a library of quantum-mechanically-optimised molecular coordinates derived from a computable subset of the National Cancer Institute's (NCI) collection of small molecules.[5]

One feature of the curation phase[6] of the project aimed to explore the capabilities of the DataCite metadata schemas to improve the discoverability of the deposited data. The metadata can then be exploited to create rich search queries.[7] As a result of the experiences gained from this project, we became aware that one limiting factor to the effective use of metadata was the repository design itself. The next stage therefore was to explore whether what we considered the essential requirements for a data repository could be incorporated into a new design. Here we report the principles used to create such a repository and some of the applications in chemistry that have resulted. These principles may in turn assist researchers wishing to deposit data in identifying the repository attributes that can best expose the discoverability and re-use of their data.

Data repository design features

Here we describe the requirements we identified for a metadata-driven repository, an instance of which is deployed by the Imperial College HPC Service at https://data.hpc.imperial.ac.uk:

  • In our design, we have focused on enhancing the FAIR[8] attributes of the data. The first attribute F means the data must be findable and practically this means making the metadata descriptors as rich and complete as possible to enable this. A = Accessibility is achieved by assigning persistent identifiers to the datasets and again associating them with appropriate metadata to enable automated retrieval processes if appropriate. This in turn helps ensure that the data can be accessed in a standard manner to enable its inter-operability in various software environments. R = Re-usability is related to understanding and trusting its provenance and the license terms under which it can be processed.
  • The provenance of the deposited data is established from the unique ORCiD identifier of the depositor(s). On the first occasion that the repository is used after initial institutional-based authentication, a redirection to the ORCiD site occurs. There the depositor creates an account or authenticates an existing account, followed by authorising the repository request. The retrieved ORCiD is then added to the metadata manifest for the deposition as a depositor attribute. This initial depositor can then add further ORCiDs as co-authors to the entry; these again are validated automatically from the ORCiD site. This information is then collected and sent to DataCite for aggregation (Fig. 1e).


Fig1 Harvey JoCheminformatics2017 9.gif

Figure 1. Metadata registered with DataCite for doi:10.14469/hpc/1280, with individual items (a)–(f) discussed in the section on metadata expression

  • The structure of the repository is based on hierarchical collections. Although collections have been a feature of early repositories such as DSpace, relatively little use has been made of them. We first identified the need for such structures from our early project[5] involving individual deposition of >168,000 items. This was deemed necessary since we considered that each item would benefit from having its own unique metadata descriptors, but within the context of a complete collection described using separate metadata. This is illustrated by assigning metadata both to individual entries[9] and to the collection which the individual items are members of.[10] Such hierarchical structures allow a research group to assign collections to project themes and within these to identify sub-collections associated with individual researchers or teams. The sub-collections can be further structured into types of data, other research objects such as software, presentations on the topic and other media such as video. The granularity of this approach is likely to depend very much on the discipline associated with the data. Thus in molecular sciences, the basic object naturally maps to the molecule, since this is the smallest object for which a dataset can be normally be generated and which can usefully be described by its own metadata. It would be less useful or convenient, for example, to disassemble the molecule into individual atoms as metadata carriers.
Basing the repository design on collections also reflects the manner in which much modern science is conducted, often via multi-disciplinary collaborations in which each group can generate its own data collections. Collections also greatly facilitate data citation in journal articles. For example, the persistent identifier (DOI) of just the highest collection level of datasets associated with an article can be therein cited, avoiding citation blight. If a particular object (a molecule in our case) is being discussed in the text of the article, it might nevertheless be more appropriate to reference the specific DOI at that stage. Individual citation is also useful in, for example, tables of results or figures. The metadata for any individual cited dataset will also contain the attribute "is member of," so that the hierarchy can be both tracked upwards, and via the attribute "has members" downwards (Fig. 1d). This hierarchy also introduces via such metadata further semantics into the citation process itself; each item is placed into appropriate context. Lack of such semantics/context are arguably one of the most deficient aspects of current citation practices in journal articles.
  • Our approach to metadata collection is to automate the process whenever possible. In the case of a molecule as an object, there are algorithms which can be used to generate appropriate metadata, the most useful and prominent of which is the InChI (International Chemical Identifier).[11] The task of creating such an identifier is effectively accomplished using the OpenBabel program library[12] or via Javascript-based resources.[13] These can accept as input a variety of chemical documents and generate an appropriate InChI identifier and InChI key uniquely describing them. The repository workflow automatically processes any uploaded data file through this algorithm and records all successful outputs. Such metadata is then associated with the Subject element in the DataCite schema (Fig. 1b).
  • Other metadata describing any individual collection or items within the collection can be used to link to other data repositories via the appropriate persistent identifier (DOI) as well as associated journal publications where relevant, again using the DOI. These linkages can of course be made bidirectional by including a citation to the data at the remote site. Such inclusion of bidirectional linking data is currently less automated, but one might envisage future methods for automation involving the ORCID identifier and the ORCID resources as a possible aggregator.
  • When a collection or an individual dataset is deposited, the item is immediately issued with a reserved DataCite DOI to allow the authors to quote it in any articles being prepared. Its status is defined as embargoed with an associated access code to allow collaborators to view the item and if necessary to also forward to a journal editor so that they can arrange access for referees. The embargo can be released at a time agreed by the authors, either in advance of the submission of any resulting article, or at the time of open publication of that article. The embargo release is not recursive to any members.
  • The repository incorporates an ORE resource map[14], with appropriate metadata descriptors collected to describe the location of this resource map in the repository. This in turn allows a query of DataCite using just the assigned DOI to retrieve the ORE map (Fig. 1d) and facilitates automated retrieval of any individual file contained within a dataset based just on its DOI and if necessary its media type. We have described applications of this procedure termed DOI2Data.[15] Such procedures effectively remove any need to navigate from the landing page associated with the DOI to find and recover data and open up possibilities for large scale automated data mining procedures based just on, for example, top-level collection DOIs. We have also implemented the metadata required to allow the procedure DataCite calls content negotiation[15][16] (Fig. 1f). An example of date retrieval involving such negotiation might be http://data.datacite.org/chemical/x-mnpub/10.14469/hpc/1280. This queries whether the item with assigned the DOI 10.14469/hpc/1280 has any content associated with the specified media type "chemical/x-mnpub" and if so retrieves the first instance of such data. If there are multiple such instances in the dataset, then the ORE[14] (or METS)[15] method must be used to select them.
  • An emerging feature of data repositories is data preview which can be used as a navigational metaphor. When repositories were largely focused on storing journal articles, preview of the most common document type, the PDF format, was the most important requirement. Most data however is not (certainly should not be) contained in such a document. Clearly, data preview is going to be largely dependent on the discipline associated with the data, and it will be difficult to generalize such procedures. We will describe two specific implementations of preview below, but it is important in the initial design of a repository to recognize the need for such rich preview.
  • The repository is designed to be operable through a command line and programmatic web API. This allows scripted integration of the deposition process into other workflows such as electronic laboratory notebooks.[17]
  • The repository to be integrated with the widely-used source code management website GitHub, and can automatically allocate DOIs to software releases made through that platform. This extends the benefit of DOI citability to software projects without requiring additional effort on behalf of the developer, once the initial configuration has been made.
  • The repository is registered via the registry of research data repositories.[18] This involves populating a schema template provided by re3data with the appropriate attributes, which is then processed to create a repository record. This results in the metadata describing the repository itself being assigned a DOI.[19] The repository schema is available as an XML file[20], with further data and metadata information deposited for inspection.[21]

Engineering

The repository is intended for use by affiliates of the deploying hosting institution. Deposition first requires requires authentication performed against an institutional authentication and authorization (A&A) LDAP service. As a matter of policy, the repository also requires the depositing user to provide their ORCID identifier, obtained via an Oauth transaction[22] with the ORCID web service.

The repository is accessed via interfaces designed to function both as a human-friendly UI (accessed via a web browser) and as a programmable API. The latter is essential for integrating deposition into higher level tools and workflows and exposes all the capabilities of the repository. In order to deposit, command-line tools or other programs using the API must also authenticate and the repository is able to provide delegated access to a user’s account for such tools through a transaction similar to Oauth. This allows automated use performed by a third party tool on behalf of a user to be clearly delineated from actions performed by the user and furthermore allows selective revocation of access to the third-party. Current integrations include a computational science portal which manages the execution of quantum chemistry calculations on Imperial College HPC resources. This portal is able to directly publish results into the repository, automatically passing on dataset data files and descriptive metadata.

Data files stored within a repository are maintained on a local filesystem on the server hosting the repository. As data burdens grow to multi-terabyte levels, we expect to migrate this data to remote filesystems. The internal database representation of a dataset deposition allows the files to reside on independent web server, in which case the repository will resolve any requests for them to an HTTP redirect. This would facilitate any future extension of the repository to use a third-party storage solution (e.g., Amazon Web Services S3 object store), or a content distribution network.

The repository automatically generates and publishes metadata records conforming to the DataCite Medadata Schema 4.0.[23] The metadata records are automatically updated whenever a user updates an entry, such as, for example, including a subsequently obtained DOI to a related journal article. At the present time there is a latency of approximately two days before the DataCite search engine index incorporates any updates.

For the GitHub integration, the repository end-user first associates the repository with GitHub, again using an OAuth transaction.[22] Thereafter, the repository maintains a list of the user’s GitHub projects, both public and private, for which DOI creation may be selectively enabled. Once activated, a GitHub “webhook”[24] is created which automatically makes an HTTP request to the repository whenever a software release is created. This request contains sufficient metadata about the release to allow the repository to create a DOI and automatically populate its metadata. The DOI is recorded within the repository and also added to the release description held within GitHub.

The repository is implemented in PHP hosted within an Apache web server and depends on a Postgres database. The source code is available on GitHub.[25]

References

  1. "DSpace". DuraSpace Organization. http://www.dspace.org/. Retrieved 07 September 2016. 
  2. "Figshare". Figshare LLP. https://figshare.com/. Retrieved 07 September 2016. 
  3. "Zenodo". CERN Data Centre. https://zenodo.org/. Retrieved 07 September 2016. 
  4. "DataCite". DataCite Association. https://www.datacite.org/. Retrieved 07 September 2016. 
  5. 5.0 5.1 Downing, J.; Murray-Rust, P.; Tonge, A.P. et al. (2008). "SPECTRa: The deposition and validation of primary chemistry research data in digital repositories". Journal of Chemical Information and Modeling 48 (8): 1571–1581. doi:10.1021/ci7004737. 
  6. Harvey, M.J.; Mason, N.J.; McLean, A. et al. (2015). "Standards-based curation of a decade-old digital repository dataset of molecular information". Journal of Cheminformatics 7: 43. doi:10.1186/s13321-015-0093-3. PMC PMC4550659. PMID 26322133. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4550659. 
  7. Rzepa, H.S.; Mclean, A.; Harvey, M.J. (2015). "InChI as a research data management tool". Chemistry International 38 (3–4): 24–26. doi:10.1515/ci-2016-3-408. 
  8. Wilkinson, M.D.; Dumontier, M.; Aalbersberg, I.J. et al. (2016). "The FAIR Guiding Principles for scientific data management and stewardship". Scientific Data 3: 160018. doi:10.1038/sdata.2016.18. PMC PMC4792175. PMID 26978244. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4792175. 
  9. "doi:10.14469/ch/153690". DataCite Content Service Beta. DataCite Association. https://data.datacite.org/10.14469/ch/153690. Retrieved 07 September 2016. 
  10. "doi:10.14469/ch/2". DataCite Content Service Beta. DataCite Association. https://data.datacite.org/10.14469/ch/2. Retrieved 07 September 2016. 
  11. "InChI Trust". InChI Trust. http://www.inchi-trust.org/. Retrieved 07 September 2016. 
  12. O'Boyle, N.M.; Banck, M.; James, C.A. et al. (2011). "Open Babel: An open chemical toolbox". Journal of Cheminformatics 3: 33. doi:10.1186/1758-2946-3-33. PMC PMC3198950. PMID 21982300. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3198950. 
  13. "InChI for the Web Browser with InChI.js". Metamolecular, LLC. https://metamolecular.com/inchi-js/. Retrieved 07 September 2016. 
  14. 14.0 14.1 "ORE Specification - Abstract Data Model". Open Archives Initiative. http://www.openarchives.org/ore/1.0/datamodel. Retrieved 07 September 2016. 
  15. 15.0 15.1 15.2 Harvey, M.J.; Mason, N.J.; McLean, A.; Rzepa, H.S. (2015). "Standards-based metadata procedures for retrieving data for display or mining utilizing persistent (data-DOI) identifiers". Journal of Cheminformatics 7: 37. doi:10.1186/s13321-015-0081-7. PMC PMC4528360. PMID 26257829. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4528360. 
  16. "DOI Content Negotiation". DOI Citation Formatter. http://citation.crosscite.org/docs.html. Retrieved 07 September 2016. 
  17. Harvey, M.J.; Mason, N.J.; Rzepa, H.S. (2014). "Digital data repositories in chemistry and their integration with journals and electronic laboratory notebooks". Journal of Chemical Information and Modeling 54 (10): 2627–2635. doi:10.1021/ci500302p. 
  18. "About". Registry of Research Data Repositories. Karlsruhe Institute of Technology. http://www.re3data.org/about. Retrieved 07 September 2016. 
  19. "Imperial College High Performance Computing Service Data Repository". Registry of Research Data Repositories. Karlsruhe Institute of Technology. doi:10.17616/R3K64N. http://www.re3data.org/repository/r3d100011965. Retrieved 07 September 2016. 
  20. "XML registration with re3data". Imperial College High Performance Computing Service Data Repository. Imperial College London. 7 September 2016. doi:10.14469/hpc/1369. https://data.hpc.imperial.ac.uk/resolve/?doi=1369. Retrieved 07 September 2016. 
  21. "Data Repository Project". Imperial College High Performance Computing Service Data Repository. Imperial College London. 25 July 2016. doi:10.14469/hpc/1088. https://data.hpc.imperial.ac.uk/resolve/?doi=1088. Retrieved 07 September 2016. 
  22. 22.0 22.1 Richer, J.. "User Authentication with OAuth 2.0". OAuth.net. https://oauth.net/articles/authentication/. Retrieved 07 September 2016. 
  23. "DataCite Metadata Schema 4.0". DataCite Metadata Working Group. 19 September 2016. http://schema.datacite.org/meta/kernel-4.0/. Retrieved 16 January 2017. 
  24. "Webhooks". API. GitHub, Inc. https://developer.github.com/webhooks/. Retrieved 07 September 2016. 
  25. Harvey, M.J.. "ICHPC/hpc-repo". GitHub, Inc. doi:10.14469/hpc/1487. https://github.com/ICHPC/hpc-repo. Retrieved 07 September 2016. 

Notes

This presentation is faithful to the original, with only a few minor changes to presentation. In some cases important information was missing from the references, and that information was added. In one case, the original citation was incomplete (#6) and was corrected here.