- Context NSDI (National Spatial Data Infrastructure)
- Geonovum is the National Spatial Data Infrastructure (NSDI) executive committee
An SDI is a coordinated series of agreements on technology standards, institutional arrangements, and policies that enable the discovery and use of geospatial information by users and for purposes other than those it was created for.1
- Pas-toe-of-leg-uit-lijst > Geostandaarden
Pas-toe-of-leg-uit lijst Forum Standaardisatie. Overheden zijn verplicht de open standaarden, die op de lijst met 'pas toe of leg uit'-standaarden staan, toe te passen en bij aanschaf van ICT-systemen/-diensten te eisen ('pas toe'). Het gaat om standaarden waarvoor wel draagvlak bestaat maar die nog niet breed geadopteerd zijn. Afwijken mag alleen met zwaarwegende reden en hierover moet verantwoording worden afgelegd via het jaarverslag ('leg uit'). 2
- ISO 19115: Geographic information Metadata - het informatiemodel voor metadata
- ISO 19139: Geographic information Metadata (datasets) - XML schema implementation
- ISO 19119: Geographic information Metadata (services) - XML schema implementation
- ISO 19139: Geographic information Metadata (datasets) - XML schema implementation
- XML schema validatie
- schematron - XSLT
Schematron is a rule-based validation language for making assertions about the presence or absence of patterns in XML trees. 3
- DCAT - nieuwe metadatastandaard (Resource Description Framework (RDF) gebaseerd)
- GeoCat ontwikkelt een DCAT2 plugin voor NGR/GeoNetwork voor het native kunnen opslaan van DCAT metadata in de catalogus - op dit moment slaat GeoNetwork alle metadata intern als ISO19139/19119 metadata documenten op
Ik verwacht data geo-specifieke metadata standaarden uitgefaseerd gaan worden, ten faveure van DCAT zodat alle metadata in dezelfde metadata standaard beschreven wordt, waardoor je niet meer tegen conversie problemen aanloopt en de de open-geo-data en de open-data wereld convergeren.
NGR heeft twee verschillende CSW service endpoints:
De "standaard" CSW service bevat alle records:
https://www.nationaalgeoregister.nl/geonetwork/srv/dut/csw?service=CSW&request=GetCapabilities
Hetinspire-csw
endpoint bevat enkel records metInspire
categorie:https://www.nationaalgeoregister.nl/geonetwork/srv/dut/inspire-csw?service=CSW&request=GetCapabilities
N.B. de
Inspire
categorie is een meta-gegeven over de metadata (dus metametadata), wat dus niet is vastgelegd in de metadata, maar wordt vastgelegd in de GeoNetwork database.
De harvester van Europa harvest periodiek het inspire-csw
endpoint zodat onze datasets en service ook in het Europese dataportaal terecht komen.
Het Catalogue Service for the Web (CSW) protocol is een protocol voor het uitwisselen van metadata records. Het is onderdeel van de suite aan XML gebaseerde OGC protocollen zoals WMS, WFS en WCS. Het "spatial" aspect van dit protocol is dat je ruimtelijke queries kan uitvoeren, door bijv alle records binnen een bepaalde bounding box op te halen, zie 4.
Een interactie met een CSW service start vaak met een GetCapabilities
request.
NB CSW service van NGR/GeoNetwork is case sensitive wat betreft query param waardes!
type='service' AND organisationName='Beheer PDOK' AND protocol='OGC:WFS'
https://www.nationaalgeoregister.nl/geonetwork/srv/dut/csw?SERVICE=CSW&version=2.0.2&REQUEST=GetRecords&resultType=results&constraintLanguage=CQL_TEXT&constraint_language_version=1.1.0&constraint=type=%27service%27%20AND%20organisationName=%27Beheer%20PDOK%27%20AND%20protocol=%27OGC:WFS%27&elementSetName=full&outputSchema=http://www.isotc211.org/2005/gmd&typeNames=gmd:MD_Metadata&start=11
Er is een specifiek endpoint voor het updaten of creeeren van metadata records:
https://www.nationaalgeoregister.nl/geonetwork/srv/dut/csw-publication?service=CSW&request=GetCapabilities
Zie ook deze gist voor een Bash CSW client implementatie voor meer voorbeelden.
Als anonieme gebruiker zijn alle gepubliceerde records zichtbaart in de CSW. Als ingelogde gebruiker zijn alle gepubliceerde records + draft records waar je view rechten op hebt zichtbaar. Om een record te kunnen aanpassen via de CSW moet je edit rechten hebben op een record.
<?xml version="1.0" encoding="UTF-8"?>
<csw:Transaction xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:ogc="http://www.opengis.net/ogc" version="2.0.2" service="CSW">
<csw:Delete>
<csw:Constraint version="1.1.0">
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>dc:identifier</ogc:PropertyName>
<ogc:Literal>{metadata_identifier}</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
</csw:Constraint>
</csw:Delete>
</csw:Transaction>
<?xml version="1.0" encoding="UTF-8"?>
<csw:Transaction xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" service="CSW" version="2.0.2">
<csw:Insert>
<gmd:MD_Metadata xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gmx="http://www.isotc211.org/2005/gmx" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:gsr="http://www.isotc211.org/2005/gsr" xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:geonet="http://www.fao.org/geonetwork" xmlns:srv="http://www.isotc211.org/2005/srv" xsi:schemaLocation="http://www.isotc211.org/2005/gmd http://schemas.opengis.net/csw/2.0.2/profiles/apiso/1.0.0/apiso.xsd">
<gmd:fileIdentifier>
<gco:CharacterString>14a76103-706b-4db2-92f3-6ef623747a99</gco:CharacterString>
</gmd:fileIdentifier>
<gmd:language>
...
</gmd:MD_Metadata>
</csw:Insert>
</csw:Transaction>
- ngr-services-spider - python cli tool to query CSW for (OGC) service metadata records and spider services
- nl-service-metadata-generator - generate service metadata according to Nederlands metadataprofiel op ISO 19119 services
- ngr-revision-date - Golang cli tool to update revision date in metadata records stored in catalog (through CSW-publication endpoint)
- CSW CRUD CLI tool - BASH CRUD CLI tool
- self-service metadata generator ??
- csw-updater - generic Python CLI tool to perform CRUD operations on CSW
- csw-enricher - webapp to enrich INSPIRE rapportage CSV files with metadata from NGR CSW
- novex-monitoring
Code staat bij GeoNovum: https://github.com/Geonovum/novex-monitoring
Ik heb een eenvraag lopen bij PLS om dat repo te clone naar github.com/pdok
De webapp wordt automatisch gedeployed met Github Pages d.m.v. een Github action workflow on push op de main
branch.
Footnotes
-
Kuhn, W. (2005) presentation "Introduction to Spatial Data Infrastructures". Presentation held on March 14, 2005. ↩
-
https://www.noraonline.nl/wiki/Lijst_Open_Standaarden_voor_Pas_Toe_of_Leg_Uit - NORA (NL Overheid Referentie Architectuur) Pas toe of leg uit lijst ↩
-
https://gist.github.com/kalxas/5ab6237b4163b0fdc930 - CSW request voorbeelden ↩