README.md 3.77 KB
Newer Older
vuillaut's avatar
vuillaut committed
1
# ESCAPE metadata template
Vuillaume's avatar
Vuillaume committed
2

Enrique Garcia's avatar
Enrique Garcia committed
3
ESCAPE will be following the **CodeMeta** schema context to describe metadata.
vuillaut's avatar
vuillaut committed
4

Enrique Garcia's avatar
Enrique Garcia committed
5
Create and incorporate a `codemeta.json` file to your project before uploading it to the ESCAPE repository.
vuillaut's avatar
vuillaut committed
6

Enrique Garcia's avatar
Enrique Garcia committed
7
Comments are welcome. Open an issue here or [contact](mailto:vuillaume@lapp.in2p3.fr;garcia@lapp.in2p3.fr) the authors.
vuillaut's avatar
vuillaut committed
8

Enrique Garcia's avatar
Enrique Garcia committed
9
## Quickstart
vuillaut's avatar
vuillaut committed
10

Enrique Garcia's avatar
Enrique Garcia committed
11 12 13 14 15 16 17 18 19 20 21 22 23
 1. Go to the [CodeMeta generator](https://codemeta.github.io/codemeta-generator/). Create a `codemeta.json` file based on your library/repository.
    - Check in the same web application that the generate / your own file is valid !  
    - Please for the moment restrict the list of keywords to the the ones that we propose (see below).
 2. Include the `codemeta.json` file in the root directory of your project.
 3. To automate the upload to the [ESCAPE repository](https://zenodo.org/communities/escape2020) through the GitLab-CI pipelines
    - Include the `.zenodoci` library in the root directory of your project.
    - Configure the pipeline (Quikstart and tutorials [here](https://escape2020.pages.in2p3.fr/wp3/ossr-pages/page/repository/publish_in_repository/)).
    
-----------------
-----------------
 
 
## Create a Zenodo metadata file from the CodeMeta schema
vuillaut's avatar
vuillaut committed
24

Enrique Garcia's avatar
Enrique Garcia committed
25 26
The zenodo repository does not accept codemeta metadata files yet. In the meanwhile, this library provides a simple tool
to create a native Zenodo metadata file (`.zenodo.json`) from a `codemeta.json` file. To do so;
vuillaut's avatar
vuillaut committed
27

Enrique Garcia's avatar
Enrique Garcia committed
28 29 30 31 32 33
 1. Include a `codemeta.json` file to the root directory of your project.
 2. Run the following command;
````bash
$ python codemeta_utils/codemeta_to_zenodo_json.py
````
 3. In case of doubts or problems, please [contact us](mailto:vuillaume@lapp.in2p3.fr;garcia@lapp.in2p3.fr).
vuillaut's avatar
vuillaut committed
34 35


Enrique Garcia's avatar
Enrique Garcia committed
36
## Metadata schema templates
vuillaut's avatar
vuillaut committed
37

Enrique Garcia's avatar
Enrique Garcia committed
38 39 40 41 42
Inside the `codemeta_utils` directory you will find two template files with **the all the terms of the corresponding metadata schema context** 
 for both the CodeMeta metadata file and the Zenodo metadata file.
 
Feel free to create and incorporate the metadata files starting from these templates. However, please note that  
the final filenames **MUST** be either `codemeta.json` or `.zenodo.json` (note the `.` !). In case you do not fill a key field, take it out of the file.
vuillaut's avatar
vuillaut committed
43

Enrique Garcia's avatar
Enrique Garcia committed
44 45 46 47 48 49
In case of doubts please also check;
  - The [CodeMeta terms description](https://codemeta.github.io/terms/) or,
  - the [`metadata representation`](https://developers.zenodo.org/#representation) allowed for the `.zenodo.json` metadata file.
  
  
### Extending the CodeMeta Context schema
vuillaut's avatar
vuillaut committed
50

Enrique Garcia's avatar
Enrique Garcia committed
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
In case you find that CodeMeta context does not describe deep enough your project, you can extend the metadata context 
and combine it with all the terms available in [https://schema.org](https://schema.org/docs/full.html).
For this purpose, and following the [CodeMeta's developer guide](https://codemeta.github.io/developer-guide/);

   1. Modify the `"@Context"` key of the `codemeta.json` as; 
    
    "@context": ["https://raw.githubusercontent.com/codemeta/codemeta/2.0-rc/codemeta.jsonld", "http://schema.org/"]
     
   2. Include the desired terms / properties following the `schema.org` context.
   3. Contact us for a likely implementation into the OSSR environment :-)


## Automate the metadata schema in the OSSR environment.

The `ZenodoCI` project contains a copy of the code in this library !


This means that if you have already configured the GitLabCI pipeline together with the Zenodo repository, the CI 
pipeline will take care of creating a `.zenodo.json` file automatically and incorporate it to the new upload/new 
version to Zenodo.
vuillaut's avatar
vuillaut committed
71

vuillaut's avatar
vuillaut committed
72
## Keywords list
Enrique Garcia's avatar
Enrique Garcia committed
73 74 75

Please restrict the list of keywords within the `codemeta.json` file to the following.

vuillaut's avatar
vuillaut committed
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
- CTA
- LSST
- LOFAR
- SKA
- EGO-Virgo
- KM3NeT
- ELT
- EST
- HL-LHC
- FAIR
- CERN
- ESO
- JIVE
- VO
- EOSC
- ESO
- Astronomy
- Astroparticle physics
Enrique Garcia's avatar
Enrique Garcia committed
94
- Particle physics