project-meta - opendata project metafile manager |
project-meta - opendata project metafile manager
project-meta help
project-meta version
project-meta check
project-meta dap-publish [--verbose|-v] [--dataset|-d dataset] [--force|-f]
project-meta dap-unpublish [--verbose|-v] [--dataset|-d dataset]
project-meta dataset-list
project-meta dataset-size [--verbose|-v] [--dataset|-d dataset]
project-meta make-zip [--verbose|-v] [--dataset|-d dataset]
project-meta list-license
project-meta make-file-license
project-meta make-file-author
project-meta make-file-copyright
project-meta upgrade
Project-Meta is a small tool to maintain a set of open data files. In order to help you in this task, project-meta
command has a set of action to generated and maintain many files in your dataset.
Everything is declare in the metafile PROJECT-META.yml. This YAML file must exist in your root projet folder. See "METAFILE SPECIFICATION".
Some command are defined in the source code but are not documented here. Theses could be not well defined, not finished, not well tested... You can read the source code and use them at your own risk (like for all the Project-Meta code).
project-meta check
Check your PROJECT-META.yml has the good key. If your metafile is not a valid YAML file, you can use yamllint
or ysh
commands to check just it's format.
project-meta dap-publish [--verbose|-v] [--dataset|-d dataset] [--force|-f]
Publish data on an OpeNDAP server. Because data can be very large, This command just create UNIX soft links on the OpeNDAP folder to the real data. There is no copy. Files AUTHORS.txt, LICENSE.txt and COPYRIGHT.txt are mandatory but could be generated (see below). The main keys use in the PROJECT-META.yml are:
project/identifier/acronym
: the project short acronym, add to the OpeNDAP root folder
public-dap/dap-folder
: the OpeNDAP root folder
public-dap/data-set
: a list of files or folder to push
Because this command could be dangerous, it does nothing! It print on terminal shell command to be done. You have to verify ouput before eval it (pipe to bash
).
project-meta dap-publish
project-meta dap-publish | bash
By default, it is not possible to publish data under your HOME. Indeed, the HOME is personal and data cannot be shared in order to comply with personal data rights (GDPR). You must first position yourself on a shared data space that will be accessible to all users (the data you publish will be public). You can use the --force
option to force publication under a personal folder. However, there's a good chance that this won't work!
project-meta dap-unpublish [--verbose|-v] [--dataset|-d dataset]
Unpublish data from the OpeNDAP server. In practice, it remove links in OpeNDAP folder for that projet. Because command rm
is always dangerous, we use here the command find
limited to folder and link.
Please verify the returned values before excuted it with the -delete
option.
project-meta dataset-list
project-meta dataset-size [--verbose|-v] [--dataset|-d dataset]
project-meta make-zip [--verbose|-v] [--dataset|-d dataset]
Create a ZIP archive with the open data set. Files AUTHORS.txt, LICENSE.txt and COPYRIGHT.txt are mandatory but could be generated (see below). The main keys use in the PROJECT-META.yml are:
project/identifier/acronym
: the project short acronym, use as root folder
public-dap/data-set
: a list of files or folder to push
project-meta make-allfiles
Generate or update all files: AUTHORS.txt, COPYRIGHT.txt and LICENSE.txt. This command is just a shortcut for "make-file-author", "make-file-copyright" and "make-file-license".
project-meta list-license
Give the list of all the open data licenses supported by the project-meta license database. At this time the possible licenses are:
community-data-license-agreement-permissive-v1.0 (permissive - allow users to freely share and adapt)
community-data-license-agreement-sharing-v1.0 (copyleft - allow users to freely share and adapt while maintaining this same freedom for others)
creative-common-attribution-v4.0 (copyleft - allow users to freely share and adapt while maintaining this same freedom for others)
creative-common-zero-v1.0 (like public domain)
licence-ouverte-v2.0 (copyleft - opendata french goverment)
open-database-license-v1.0 (copyleft - allow users to freely share, modify, and use the database while maintaining this same freedom for others)
Note that these licenses are dedicated to open data. Please do not use an open license that would have been thought for source code or documentation and not for open data. Here are some links about open data licence context:
A good article about Community Data License Agreement and Open Data Licence in general Licenses for data written on 9 May 2018.
A french page about French Public Open Data licence https://www.etalab.gouv.fr/licence-ouverte-open-licence.
project-meta make-file-license
Copy the license file from the project-meta license database at the current folder with the file name: LICENSE.txt.
The license is defined in the PROJECT-META.yml specification under the key public-dap/data-license
. The list of possible license is given with the command "list-license".
project-meta make-file-author
Create or update the AUTHORS.txt file at the current folder. Authors data are extracted from the PROJECT-META.yml
file.
project-meta make-file-copyright
Create or update the COPYRIGHT.txt file at the current folder. Authors, license and copyright data are extracted from the PROJECT-META.yml
file.
project-meta upgrade
Upgrade config file to last version. Create a file PROJECT-META-vVERSION.yml in the current directory if it's not exists, error otherwise. Please maually verify this autogenerated config file before rename and using it.
Each project must have an open data metafile describing the project : PROJECT-META.yml
. The file is in YAML format because this is a human-readable text file style. Other formats could have been Plain XML, RDF, JSON... but they are much less readable.
You can find in the project-meta software a PROJECT-META.sample.yml example. This one is actually the master reference specification!
Some interresting papers or links about Open Meta Data Schema:
Metadata for the open data portals writen in december 2016.
Project Open Data Metadata Schema v1.1 from US governement based on DCAT.
Metadata Standards from OpenDataMonitor.
G8 Metadata Mapping mapping between the metadata on datasets published by G8 Members through their open data portals.
- not really check keys and tags before doing action!
yamllint(1), ysh(1), YAML, Archive::Zip
In Debian GNU/Linux distribution, packages for yamllint
and ysh
are:
yamllint
- Linter for YAML files (Python)
libyaml-shell-perl
- YAML test shell (Perl)
Own project ressources:
Written by Gabriel Moreau <Gabriel.Moreau@univ-grenoble-alpes.fr>
The list of people below did not directly contribute to project-meta's source code but provided me with some data, returned bugs or helped me in another task like having new ideas, specifications... Maybe I forgot your contribution in recent years, please forgive me in advance and send me an e-mail to correct this.
Joel Sommeria, Julien Chauchat, Cyrille Bonamy, Antoine Mathieu.
License GNU GPL version 2 or later and Perl equivalent
Copyright (C) 2017-2024, LEGI UMR 5519 / CNRS UGA G-INP, Grenoble, France
project-meta - opendata project metafile manager |