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:
rico:
prefix)dc:
)schema:
prefix)foaf:
)dbpo
)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.
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
Deze repo bevat een data-validatiescript: validate.py. Het script controleert de databestanden onder voorbeelddata tegen de shape definities in shacl.
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
Zie config.yaml over hoe je de validatie kan configureren.
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
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.