Persistent identifiers(pid)

Scope
This wiki page summarizes relevant facts and procedures regarding persistent identifers (PID) for the OSGeo communities.

Status
Draft (2022-01-09)

What are PID and why do they matter to OSGeo

 * Definition of PID according to Wikipedia

Terminology and Abbreviations

 * PID:
 * DOI:
 * ISSN:
 * ISBN:
 * Open Access:
 * FAIR:
 * Zenodo:
 * Landing page:
 * CFF:
 * GitHub:
 * Software Versioning:
 * Roles:
 * Video quotes:

Digital Object Identifier (DOI)

 * Definition of DOI by Wikipedia
 * The Zenodo FAQ covers Software Versioning

Dealing with different roles within projects

 * CodeMeta on roles

Open Researcher and Contributor ID (ORCID)

 * Definition of ORCID by Wikipedia

PID for documentation
tbd

PID for data

 * Citing dynamic data (ANDS)


 * Recommendations WG Data Citation RDA

PID for video
[|Wiki page on the TIB AV-Portal]

PID for physical objects
tbd

Software Repositories

 * GitHub
 * GitLab

Zenodo
Description according to Wikipedia:
 * Zenodo is a general-purpose open-access repository developed under the European OpenAIRE program and operated by CERN. It allows researchers to deposit research papers, data sets, research software, reports, and any other research related digital artefacts. For each submission, a persistent digital object identifier (DOI) is minted, which makes the stored items easily citeable.
 * Zenodo was created in 2013 under the name OpenAire orphan records repository to let researchers in any subject area comply with any open science deposit requirement absent in an institutional repository. It was relaunched as Zenodo in 2015 to provide a place for researchers to deposit datasets; it allows the uploading of files up to 50 GB.
 * It provides a DOI to datasets and other submitted data that lacks one to make the work easier to cite and supports various data and license types. One supported source is GitHub repositories.
 * Zenodo is supported by CERN "as a marginal activity" and hosted on the high-performance computing infrastructure that is primarily operated for the needs of high-energy physics.
 * Zenodo is run with Invenio (a free software framework for large-scale digital repositories), wrapped by a small extra layer of code that is also called Zenodo.
 * In 2019, Zenodo announced a partnership with the fellow data repository Dryad to co-develop new solutions focused on supporting researcher and publisher workflows as well as best practices in software and data curation.
 * As of 2021, Zenodo's publicly available statistics for open items reported a total of over 45 million "unique views" and over 55 million "unique downloads". Also in 2021, Zenodo reported it had crossed 1 Petabyte in hosted data and 15 million yearly visits.


 * The Zenodo FAQ covers Software Versioning
 * The Zenodo FAQ covers size limitations (50Gb)

Requirements
This should be done by a person who represents the software project (member of PSC or similar). This step requires login credentials for both the GitHub and the Zenodo account. A Zenodo account can be easily set up.

Options
ORCIDs for authors, developers and other project staff can be embedded in the DOI metadata, allowing for proper citation.

Quick Approach: Upload a repository-snapshot to Zenodo

 * Pro: Takes less than 10 minutes to achieve
 * Pro: Can be extended and superseeded with better integration options. the DOI will stay always valid regardless and will point to the most up to date software version (and author credits)
 * Pro: No need to set webhooks in Zenodo or store description files in GitHub
 * Con: Metadata (author list) must be edited manually. (ORCID option ?)
 * Con: Every software release requires maintenance work by project staff, as an additional tarball must be uploaded and metadata must be updated.

Howto
*Howto video

Examples

 * rasdaman project

Sustainable Approach: Create a live link between the GitHub Repo and Zenodo

 * Pro: Immediate automated updates of DOI payload and metadata for each software release on GitHub
 * Con: Takes a bit longer than option 1 (20 minutes ?)
 * Beware: If no .zenodo.json file is included, the author section of the DOI landing page will be reset to the username of the owner of the GitHub repo upon each release update (as shown here ). This can be manually edited afterwards, but is awkward and can be avoided. Also, the citation style service in the lower right of the page will not work. It is set up to provide on the fly references according to many established citation styles (e.g. AIMS Geoscience, Springer, etc.).

Example of a .zenodo.json file
Please note that the structure of the file must match this example. Do not use tabs for formatting.

{   "creators": [ {           "name": "Firstauthor, Anna" "affiliation": "OSGeo", "orcid": "0000-0002-1041-4213" },       {            "name": "Doe, Jane" "affiliation": "Foo", "orcid": "0000-0002-1041-4211" },       {            "name": "Doe, John" "affiliation": "Baz", "orcid": "0000-0002-1041-4212" }   ] }

Howto

 * How to make your code citable (Berkeley Library)
 * Tutorial video (YouTube)
 * Not covered in the video and the Berkeley guide: A file (hard-)named ".zenodo.json" may be added to the top-level of the GitHub repo for advanced author info handling (Example from MOSS project, see above for a code example).
 * Option: Preregister a DOI. This is useful if the DOI string is needed before the next software release comes around (which will trigger the actual minting of the DOI). According to https://help.zenodo.org: "On the upload page under Basic Information and Digital Object Identifier click the Reserve DOI button. The text field above will display the DOI that your record will have once it is published. This will not register the DOI yet, nor will it publish your record (so you can still update the files). This DOI can be safely used in the record's own content as well as any other separate datasets or papers you might be planning to publish."

Examples

 * MOSS (simple example from a static heritage project)
 * GRASS GIS (complex example from a highly dynamic project)
 * GMT
 * MapServer
 * pycsw (ready for DOI minting)
 * pygeoapi (ready for DOI minting)

FAQ

 * Zenodo FAQ