Deze repository synchroniseert periodiek geselecteerde TOOI-waardelijsten (TTL) naar vaste named graphs in de TriplyDB-dataset rce/tooi.
De synchronisatie draait automatisch op de 1e van de maand en kan daarnaast handmatig worden gestart via GitHub Actions.
- Bepaalt per TOOI-waardelijst de hoogste beschikbare versie
- Downloadt het bijbehorende TTL-bestand
- Zet TTL om naar TriG met expliciete named graph
- Uploadt de data naar TriplyDB
- Overschrijft bestaande inhoud door vaste graph-URI’s te gebruiken
Er vindt geen inhoudelijke transformatie van de data plaats.
De te synchroniseren TOOI-waardelijsten zijn niet hard-coded in de Python-code, maar worden geconfigureerd via een YAML-bestand:
config/tooi-lists.yml
Per waardelijst is hierin vastgelegd:
- de naam van de TOOI-waardelijst;
- de base-URL van de KOOP-repository;
- de bijbehorende named graph in TriplyDB.
Voorbeelden van opgenomen waardelijsten:
- gemeenten
- provincies
- ministeries
- waterschappen
- zbo’s
- overige overheidsorganisaties
- samenwerkingsorganisaties
Elke waardelijst schrijft naar één vaste named graph onder:
https://linkeddata.cultureelerfgoed.nl/rce/tooi/graph/*
De TOOI-repository biedt geen volledige directory-listing van beschikbare versies.
De hoogste beschikbare versie wordt daarom bepaald door opeenvolgende versies te testen op het bestaan van:
//ttl/_.ttl
De hoogste versie die een HTTP 200-respons retourneert, wordt gebruikt voor import.
- Elke waardelijst schrijft naar één vaste named graph
- De graph-URI wordt expliciet opgenomen in het TriG-bestand
- Prefixes worden buiten de graph geplaatst
- Er wordt niet gewerkt met
--default-graph-name
Dit patroon is gelijk aan het gebruik in het CHO-DIFF-project.
.github/workflows/tooi-sync.yml
GitHub Actions workflow voor automatische en handmatige synchronisatie
scripts/tooi-sync.py
Python-script dat de synchronisatie uitvoert op basis van de configuratie
config/tooi-lists.yml
Configuratiebestand met de te synchroniseren TOOI-waardelijsten en bijbehorende graphs
- Runner:
windows-latest - Python 3.11
- Netwerktoegang tot:
repository.officiele-overheidspublicaties.nlapi.linkeddata.cultureelerfgoed.nl
Deze repository vereist een repository-niveau secret:
Naam: TRIPLYDB_TOKEN
Omschrijving: TriplyDB API-token met schrijfrechten op dataset rce/tooi
Let op: GitHub secrets zijn per repository en niet globaal beschikbaar.
- Automatisch: elke 1e van de maand
- Handmatig: via
workflow_dispatch - Per waardelijst wordt gelogd:
- de gevonden hoogste versie;
- stdout en stderr van
triplydb.exe
Bij fouten wordt alleen de betreffende waardelijst overgeslagen; de rest van de synchronisatie loopt door. Hoop ik
Na een succesvolle run zijn de TOOI-graphs beschikbaar onder:
https://linkeddata.cultureelerfgoed.nl/rce/tooi/graph/*
Deze graphs vormen de canonieke TOOI-referentielijstlaag binnen de RCE linked-data-voorziening.
- Nieuwe TOOI-waardelijsten worden toegevoegd via
config/tooi-lists.yml - De Python-code hoeft hiervoor niet te worden aangepast
- Naamgevingsconventies en publicatiestructuur van TOOI worden verondersteld stabiel
RCE – Linked Data & Thesauri
thesauri@cultureelerfgoed.nl