CLI applicatie om service metadata records te genereren die voldoen aan het Nederlands profiel op ISO 19119 voor services versie 2.1.0.
CLI applicatie genereert metadata en voert schema validatie uit. Applicatie voert geen schematron validatie uit (validatie op Nederlands profiel op ISO 19119 voor services versie 2.1.0).
Indien schema validatie faalt op de gegenereerde metadata wordt het metadata bestand weggeschreven naar ${file-destination}.invalid
(dus toevoeging van .invalid
extensie) en zal de nl-service-metadata-generator de schema validatie foutmelding naar stdout printen en een returncode van 1
teruggeven.
De nl-service-metadata-generator ondersteunt de volgende service types:
- geen INSPIRE service
- INSPIRE network service
- INSPIRE other service
- Spatial Data Service (SDS) - invocable
- SDS - interoperable
N.B. SDS harmonized wordt dus niet ondersteund door de nl-service-metadata-generator
Installeer nl-service-metadata-generator
als pip package (uitvoeren vanuit root van repository):
pip3 install . # Add -e for development and debugging
Nu moet het cli command nl-service-metadata-generator
beschikbaar zijn in PATH
.
Usage: nl-service-metadata-generator generate [OPTIONS] {csw|wms|wmts|wfs|wcs|
sos|atom|tms|oaf|oat}
{network|other|none}
CONSTANTS_CONFIG_FILE
SERVICE_CONFIG_FILE OUTPUT_FILE
Generate service metadata record based on **Nederlands profiel op ISO 19119
voor services versie 2.1.0**.
CONSTANTS_CONFIG_FILE: JSON file that contains values for constant fields
SERVICE_CONFIG_FILE: JSON file that contains values for fields that are
unique for each service
See `show-schema` command for help on config files.
Options:
--csw-endpoint TEXT References to dataset metadata records will
use this CSW endpoint (default val: https://
nationaalgeoregister.nl/geonetwork/srv/dut/c
sw)
--sds-type [invocable|interoperable]
only applies when inspire-type='other'
--help Show this message and exit.
Bijvoorbeeld (uitvoeren in root directory van dit repository):
nl-service-metadata-generator generate atom network example_json/constants.json example_json/inspire.json atom.xml
Merk op:
network
is voor INSPIRE WMSother
is voor INSPIRE WFSnone
is voor niet-INSPIRE services
JSON schema voor de CONSTANTS_CONFIG_FILE
en METADATA_CONFIG_FILE
kunnen worden opgevraagd middels het show-schema
command, zie nl-service-metadata-generator show-schema --help
voor help.
High Value Datasets (HVD) zijn datasets die door de Europese Unie zijn aangewezen als bijzonder waardevol voor sociaaleconomische doeleinden,
met een verplichting tot kosteloze beschikbaarstelling voor hergebruik.
Voor service metadata is het mogelijk middels het hvdCategories
veld de HVD-categorieën te genereren en als keywords zoals omschreven in de handrijking van Geonovum toe te voegen.
Zie high-value-dataset-category.rdf voor een lijst van alle mogelijke HVD-categorieën.
De HVD is zo opgezet dat er een hiërarchie van 3 levels bestaat.
Wanneer een lagere categorie wordt gekozen worden automatisch de bovenliggende categorieën ook toegevoegd.
De RDF wordt automatisch gedownload en gecached voor 3 dagen.
Mocht je op zoek zijn naar een nieuwe recentelijke categorie verwijder dan /src/nl_service_metadata_generator/data/xml/high-value-dataset-category_downloaded.rdf
zodat deze opnieuw wordt gedownload.
In de velden
service_title
service_abstract
Kunnen de volgende template variabelen worden opgenomen:
$SERVICE_TYPE_UPPER
- wordt vervangen door uppercase service type (korte variant)$SERVICE_TYPE_LOWER
- wordt vervangen door lowercase service type (korte variant)
Bijvoorbeeld:
{
...
"serviceTitle": "Actueel Hoogtebestand Nederland $SERVICE_TYPE_UPPER"
...
}
Voor het formatteren van code installeer black
en draai vanuit de root van het repo:
black .
Verwijderen van ongebruikte imports met autoflake
:
autoflake --remove-all-unused-imports -i -r .
Organiseren en orderen imports met isort
:
isort -m 3 .
Container starten met:
docker run --user root -v $(pwd)/example_json:/data pdok/nl-service-metadata-generator generate atom network /data/constants.json /data/inspire.json /data/atom.xml
n.b.
-u root
argument, is nodig voor priviliges Docker container om bestanden weg te schrijven in folder mount. Voor productie doeleindes niet aan te raden om docker containers onder de root user te draaien.