erfgoedleiden / nexus-vocabulaire

Creative Commons Zero v1.0 Universal
5 stars 2 forks source link

Erfgoed Leiden en Omstreken: Nexus-vocabulaire

Deze repository bevat de vocabulaire-opzet voor de migratie van de ELO digitale collecties naar Memorix Nexus. Het gaat hier vooral om "property" vertalingen van een "dummy-vocabulaire" (een variant van een "example.com" namespace) naar bestaande en beschreven eigenschappen uit bekende vocabulaires. Bij de keuze voor een specifiek vocabulaire gelden de volgende voorkeurs-ontologieën, op volgorde van belang:

Hierbij wordt een "pragmatische aanpak" gekozen - waarbij "soepel" wordt omgegaan met de omschreven domein en bereik van een property. De belangrijkste keus hierin is of er een eigenschap met passende beschrijving kan worden gevonden, met een daarmee zo menselijk-bruikbaar vocabulaire.

Voorbeelddata en shape definities

In de map voorbeelddata staan exports uit Nexus die moeten corresponderen met de shacl definities. De bestandsnamen van de definities corresponderen in upper CamelCase met de bestandsnamen van de voorbeelddata in snake_case

Validatie

Deze repo bevat een data-validatiescript: validate.py. Het script controleert de databestanden onder voorbeelddata tegen de shape definities in shacl.

Installatie

Je kan de requirements voor dit script installeren met:

pipenv install --dev

Hiervoor heb je een recente Python installatie nodig (3.10 wordt aangeraden) en beschikking over de Python library pipenv. Pipenv installeren gaat met

pip install --user pipenv

of met pipx:

python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install pipenv

Configuratie

Zie config.yaml over hoe je de validatie kan configureren.

Gebruik

Daarna kan je het validatiescript uitvoeren: met

OPENSSL_CONF=openssl.cnf pipenv run python validate.py

De reden waarom er een aangepaste OpenSSL configuratie vereist is, is omdat
https://bag.basisregistraties.overheid.nl nog een oude SSL versie gebruikt die man-in-the-middle attacks mogelijk maakt. Zie ook: https://stackoverflow.com/questions/71603314/ssl-error-unsafe-legacy-renegotiation-disabled

Data shape validatie

Door de corresponderende CamelCase/snake_case van de bestandsnamen van voorbeelddata en shape constraints, kan validatie worden toegepast van de voorbeelddata tegen de shape constraints.