|
1 | 1 | --- |
2 | 2 | title: "The CodeMeta Project" |
| 3 | +layout: landing |
3 | 4 | --- |
4 | 5 |
|
5 | | -## Motivation |
| 6 | +## Introducing CodeMeta |
6 | 7 |
|
7 | | -Research relies heavily on scientific software, and a large and growing fraction of researchers are engaged in developing software as part of their own research ([Hannay et al 2009](https://doi.org/10.1109/SECSE.2009.5069155 "How do scientists develop and use scientific software?")). Despite this, _infrastructure to support the preservation, discovery, reuse, and attribution of software_ lags substantially behind that of other research products such as journal articles and research data. This lag is driven not so much by a lack of technology as it is by a lack of unity: existing mechanisms to archive, document, index, share, discover, and cite software contributions are heterogeneous among both disciplines and archives and rarely meet best practices ([Howison 2015](https://doi.org/10.1002/asi.23538 "Software in the scientific literature: Problems with seeing, finding, and using software mentioned in the biology literature")). Fortunately, a rapidly growing movement to improve preservation, discovery, reuse and attribution of academic software is now underway: a recent [NIH report](http://softwarediscoveryindex.org), conferences and working groups of [FORCE11](https://www.force11.org/), [WSSSPE](http://wssspe.researchcomputing.org.uk/) & [Software Sustainability Institute](http://www.software.ac.uk/), and the rising adoption of repositories like [GitHub](https://github.com), [Zenodo](https://zenodo.org), [figshare](https://figshare.com) & [DataONE](https://www.dataone.org) by academic software developers. Now is the time to improve how these resources can talk to each other. |
| 8 | +Software development creates changes, and scientific research requires |
| 9 | +reproducibility. Since software is routinely used in research projects, |
| 10 | +this can cause problems. |
8 | 11 |
|
9 | | -## What can software metadata do for you? |
| 12 | +_**CodeMeta acts as a vital bridge between these disciplines.**_ |
10 | 13 |
|
11 | | -What metadata you want from software is determined by your use case. If your primary concerns are credit for academic software, then you're most interested in _citation_ metadata. If you're trying to replicate some analysis, you worry more about versions and dependencies than about authors and titles. And if you seek to discover software you don't already know about that is suitable for a particular task, well then you are interested more in keywords and descriptions. Frequently, developers of scientific software, repositories that host that software, and users themselves are interested in more than one of these objectives, and others besides. |
| 14 | +[Aiming to solve this problem](/background), CodeMeta was founded in 2016 |
| 15 | +by a consortium of researchers. Using existing standards such as Schema.org |
| 16 | +terms and JSON-LD, CodeMeta is now a recognised framework that is employed |
| 17 | +by a worldwide community of developers, researchers, and archivists. |
12 | 18 |
|
13 | | -Different software repositories, software languages and scientific domains denote this information in different ways, which makes it difficult or impossible for tools to work across these different sources without losing valuable information along the way. For instance, a fantastic collaboration between GitHub and figshare provides researchers a way to import software on the former into the persistent archive of the latter, getting a permanent identifier, a DOI in the process. To assign a DOI, figshare must then pass metadata about the object to DataCite, the central DOI provider for all repositories. While this makes DataCite a powerful aggregator, the lack of a crosswalk table means that much valuable metadata is currently lost along the way, such as the original software license, platform, and so forth. Any tool or approach working across software repositories faces similar challenges without a crosswalk table to translate between these. |
| 19 | +When used and maintained in code repositories and software distribution |
| 20 | +systems, CodeMeta enables the exact version of a library or application, |
| 21 | +that has been used and cited in scientific and other research, to be |
| 22 | +reliably identified and reused. |
14 | 23 |
|
15 | | -For more detail, [visit the project on GitHub](https://github.com/codemeta/codemeta) or check back here soon. |
| 24 | +### Research Software MetaData Guidelines |
16 | 25 |
|
17 | | -## Special thanks to our supporters |
| 26 | +CodeMeta is suggested for use by the following |
| 27 | +[Research Software MetaData Guidelines](https://fair-impact.github.io/RSMD-guidelines/) |
| 28 | +recommendations: |
18 | 29 |
|
19 | | -<img width="50px" src="/img/nsf.jpg"/> |
20 | | -<img width="50px" src="/img/datacite.png"/> |
21 | | -<img width="50px" src="/img/github.png"/> |
22 | | -<img width="50px" src="/img/figshare.png"/> |
23 | | -<img width="50px" src="/img/zenodo.jpg"/> |
| 30 | +{{< rsmd >}} |
| 31 | + |
| 32 | +## Use Cases |
| 33 | + |
| 34 | +Credit |
| 35 | +: CodeMeta's _citation_ metadata is useful for ensuring that authors get |
| 36 | +credit for their software, when it is used for published research. |
| 37 | + |
| 38 | +Reproducibility |
| 39 | +: Tracking the software libraries and applications used in research, using |
| 40 | +CodeMeta's _versions_ and _dependencies_ metadata, ensures that important |
| 41 | +findings can be reviewed and verified with greater accuracy. |
| 42 | + |
| 43 | +Discovery |
| 44 | +: Finding software is easier with CodeMeta's _keywords_ and _descriptions_ |
| 45 | +metadata. These terms allow everyone to discover relevant software, and use |
| 46 | +or contribute to it. |
| 47 | + |
| 48 | +## Connecting via Crosswalks |
| 49 | + |
| 50 | +Repositories, software languages, and scientific domains often have different |
| 51 | +vocabularies for their metadata. Our Crosswalks exist to provide a reliable |
| 52 | +path to interoperability. By mapping each of these formats to CodeMeta via a |
| 53 | +Crosswalk, CodeMeta acts as a translation layer for data to be converted |
| 54 | +freely, preserving information that would otherwise be lost. |
0 commit comments