Syncronisatie NGR - Data.overheid.nl

Werking van de synchronisatie tussen Nationaal Georegister en Data.overheid.nl

Werking van ophalen van datasets uit NGR

Data.overheid.nl haalt elke nacht een update van de metadata van datasets op bij het Nationaal Georegister (NGR). Hiervoor wordt de API van NGR bevraagd met een script.

Ophalen en mappen van metadata uit NGR

Niet alle datasets van NGR worden opgehaald. Alleen de datasets die voldoen aan een aantal criteria worden geselecteerd uit de API. [Willem: zit er nog een selectie op de query welke datasets worden opgehaald??]

De synchronisatie vindt plaats in twee stappen:

  1. Voor elke dataset leest data.overheid.nl de waarden in de NGR API uit en selecteert de bruikbare waarden die noodzakelijk zijn in data.overheid.nl. NGR heeft meer velden die een voor data.overheid.nl noodzakelijke waarde kunnen bevatten.

  2. De waarden die uit NGR zijn geselecteerd worden vervolgens "gemapped" op het informatie model van data.overheid.nl gebaseerd op het DCAT 1.1 toepassingsprofiel DCAT-DONL.

Als beide stappen succesvol verlopen, is de NGR dataset toegevoegd of geupdate in data.overheid.nl. Datasets uit NGR waarvoor in stap 2 geen mapping is gevonden worden in principe niet opgenomen in data.overheid.nl.

Criteria voor opname in data.overheid.nl

  • Datasets met een voor data.overheid.nl bekende licentie worden opgehaald. De toegestane licenties zijn opgenomen in een waardelijst. Datasets met een onbekende waarde voor licentie worden opgenomen als "gesloten licentie".

  • ...[Willem: wat kunnen we hier over de match van de andere velden vermelden? ]

De werking van het script voor licenties wordt in de bijlage onderin deze pagina toegelicht. De beheerders van data.overheid.nl ontvangen een rapportage over het verloop na elke synchronisatie.

Bijlage: voorbeeld XPath selectors voor licentie

STAP 1: Selecteer licentie

Onderstaande Xpath selectors worden gebruikt om in de XML response van de NGR API te zoeken naar de ‘mogelijke licentie’ van een dataset. Alle Xpath selectors die we gebruiken per veld voor de datasets van het NGR zijn in te zien in het configuratiebestand gepubliceerd op Github.com onder de “xpath_selectors" JSON key (https://github.com/dataoverheid/donlsync/blob/master/config/catalog_NGR.json).

"license": [
"//csw:GetRecordsResponse/csw:SearchResults/gmd:MD_Metadata[position()=%s]/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:otherConstraints/gmx:Anchor/@xlink:href",
"//csw:GetRecordsResponse/csw:SearchResults/gmd:MD_Metadata[position()=%s]/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:otherConstraints/gmx:Anchor",
"//csw:GetRecordsResponse/csw:SearchResults/gmd:MD_Metadata[position()=%s]/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:otherConstraints/gco:CharacterString",
"//csw:GetRecordsResponse/csw:SearchResults/gmd:MD_Metadata[position()=%s]/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints/gmd:MD_Constraints/gmd:useLimitation/gco:CharacterString"
],

Uit deze lijst van ‘mogelijke licenties’ selecteren we de ‘waarschijnlijke licentie’ door een voor een te checken:

  • Is het een URI/URL? Dan is dit de ‘waarschijnlijke licentie’ en gaan we direct verder naar de volgende stap

  • Zit er geen URI/URL in de lijst van ‘mogelijke licenties’ dan wordt de eerste niet lege string uit de lijst gekozen als ‘waarschijnlijke licentie

STAP 2: controleer mapping licentie

Nu wordt er gecontroleerd of er een mapping aanwezig is voor de ‘waarschijnlijke licentie’, zo ja, dan wordt de gemapte variant als ‘waarschijnlijke licentie’ gekozen. Alle mappings staan gepubliceerd op https://github.com/dataoverheid/donlsync-mappings

Er zijn technisch gezien ook nog checks op basis van een whitelist en/of blacklist, maar die worden niet gebruikt voor het licentieveld van datasets van het NGR; dus is hier niet relevant.

Nu wordt er gecontroleerd of de ‘waarschijnlijke licentie’ voorkomt in de DCAT-AP-DONL waardelijst voor licenties:

Known Issue: de NGR licentie “Geen beperkingen” wordt op de " gesloten licentie" URI gemapped omdat we dit niet kunnen mappen naar een van de specifieke open licenties uit de waardelijst. "Geen beperkingen" kan zowel PublicDomain als CC-O inhouden.