Analyse terinzagegelegde documenten Officiele Bekendmakingen en snelheidswinst door parallellisatie

De volgende major release van Invantive UniversalSQL biedt mogelijkheden voor de parallelle uitvoering van tabelfuncties.

Dit topic beschrijft de ervaringen in de inzet hiervan voor het ophalen van terinzageleggingen bij publicaties op https://officielebekendmakingen.nl. De basis hiervoor is het artikel Externe documenten opzoeken bij Officele Bekendmakingen.

Alhoewel publicaties terug te vinden zijn op deze website, zijn ze slecht toegankelijk en de documenten zijn veelal onvindbaar via search engines. Dat is logisch, alhoewel krom: anders dan een commercieel bedrijf is een overheid niet afhankelijk voor haar inkomsten van het vindbaar maken van haar output.

De opgehaalde informatie is vervolgens handmatig bekeken op afwijkende eigenschappen. Hier kwamen een aantal mogelijke aandachtspunten omhoog omtrent terinzageleggingen:

  • Een aanzienlijk deel (circa 11%) van de documenten wordt gepubliceerd buiten de centrale voorziening. Dit is mogelijk in strijd met KOOP-richtlijnen en Wep-artikelen over centrale bekendmaking.
  • Een aanzienlijk deel (maximaal 14%) van de documenten wordt onnodig in ZIP-bestanden verpakt, zelfs als het om 1 bestand gaat. Dit is mogelijk in strijd met KOOP-richtlijnen en de toegankelijkheidseisen (WCAG 2.1).
  • Gebrekkige of wisselende anonimisering waardoor gevoelige persoonsgegevens of commerciele gegevens zichtbaar kunnen zijn.
  • Het beschikbaarheidsbeleid lijkt wisselend; dit kan leiden tot wisselende / ongelijke rechtsposities tussen burgers en bestuursorganen.

Performancewinst

Query

Met de volgende query wordt op basis van een kopie van de KOOP Officiele Publicaties database een lijst gemaakt van alle publicaties in het provinciaal blad (het betreft 11.402 publicaties t/m 20 juli 2025):

create or replace table UrlsToScan@InMemoryStorage
as
select ety.Identifier
,      ety.Date
,      'https://zoek.officielebekendmakingen.nl/' 
       || ety.Identifier 
       || '/terinzagelegging'
       Url
from   oa_koop_op_entries@oa ety
where  true
and    ety.Identifier like 'prb-2025-%'

Vervolgens wordt met maximaal 100 gelijktijdige opvragingen opgevraagd of er ter inzage gelegde documenten horen bij de publicaties:

--
-- URL's van ter inzage gelegde documenten (indien aanwezig).
--
select /*+ join_parallelization(htp, true, 100) */
       ety.Identifier
,      ety.Date
,      hte.href
from   UrlsToScan@InMemoryStorage ety
join   HTTPDownload@DataDictionary
       ( url => ety.Url
       , diskCache => true
       , diskCacheMaxAgeSec => 24 * 3600 * 30
       , ignoreWebError => true
       ) htp
join   htmltable
       ( '/html/body//a'
         passing htp.contents_char
         columns href varchar2 path '@href'
       ) hte
on     hte.href not in
       ( 'https://data.overheid.nl'
       , 'https://linkeddata.overheid.nl/front/portal'
       , 'https://mijn.overheid.nl'
       , 'https://ondernemersplein.kvk.nl'
       , 'https://organisaties.overheid.nl'
       , 'https://overheid.nl/beleid-en-regelgeving'
       , 'https://overheid.nl/berichten-over-uw-buurt'
       , 'https://overheid.nl/berichten-over-uw-buurt/rondom-uw-woonadres'
       , 'https://overheid.nl/dienstverlening'
       , 'https://puc.overheid.nl'
       , 'https://www.officielebekendmakingen.nl/'
       , 'https://www.officielebekendmakingen.nl/'
       , 'https://www.overheid.nl'
       , 'https://www.overheid.nl/contact/privacyverklaring'
       , 'https://www.overheid.nl/english'
       , 'https://www.overheid.nl/help/officiele-bekendmakingen'
       , 'https://www.overheid.nl/help/officiele-bekendmakingen/'
       , 'https://www.overheid.nl/help/officiele-bekendmakingen/begrippenlijst'
       , 'https://www.overheid.nl/help/officiele-bekendmakingen/contact'
       , 'https://www.overheid.nl/help/zoeken'
       , 'https://www.overheid.nl/over-deze-site/colofon'
       , 'https://www.overheid.nl/over-deze-site/colofon'
       , 'https://www.overheid.nl/over-deze-site/informatie-hergebruiken'
       , 'https://www.overheid.nl/sitemap'
       , 'https://www.overheid.nl/toegankelijkheid'
       , 'https://www.rijksoverheid.nl'
       , 'https://www.werkenbijdeoverheid.nl'
       )
and    hte.href like '%.%'
and    hte.href not like '../' || ety.Identifier
and    hte.href not like '%.html'
and    hte.href not like '%/terinzagelegging'

Prestatiewinst

Na een minuut is een overzicht gemaakt van de mate van de callstacks. Deze zijn weergegeven in onderstaande boom:

Merk op dat iedere knoop meerdere parallelle verwerkingen kan aangeven. Onderstaande knoop betreffen 30 gelijktijdige uitvoeringen:

Op hoofdniveau is zichtbaar dat er van de maximaal 100 aangevraagde parallelle uitvoeringen er circa 60 daadwerkelijk gestart zijn op een systeem met 16 cores.

Het ophalen van de terinzagegelegde documenten duurde 29 minuten. Hiervoor zijn 11.653 HTTP-verzoeken gedaan, gesplitst over:

HTTP Statuscode Aantal
Geen 23
200 2931
404 8.698
503 1

Er zijn geen foutmeldingen geweest die duiden op een rate limiter.

De typische duur van het ophalen van 1 URL is 300-400 ms bij enkelvoudige benadering. De te verwachten duur zonder parallellisatie is 68 minuten. De uitvoering duurde nu 29 minuten. Er is sprake van enige snelheidswinst, maar niet de factor die verwacht werd. Aangezien het niet ongebruikelijk was dat er tien of meer HTTP-verzoeken gelijktijdig actief waren, kan het zijn dat aan de zijde van officielebekendmakingen.nl een snelheidsbeperking ingebouwd is.

Al met al is de snelheidswinst beperkt tot maximaal een factor 2,5.

Belemmering hergebruik: 10 kalenderdagen voor terinzageleggingen

In 2025 waren er 2.931 publicaties met terinzagegelegde documenten. Het aantal documenten is 2.760 op 693 publicaties. Een aantal publicaties heeft dus geen documenten (meer).

Het is normal dat een deel van de publicaties geen terinzageleggingen heeft; het is bij lange na niet altijd nodig. Ook zullen oudere publicaties minder vaak terinzageleggingen hebben; toen was de Wep nog niet ingegaan.

Een analyse of er documenten terinzagegelegd zijn bij 6 miljoen publicaties, en welke URL’s ze hebben, zou dan tenminste 10 kalenderdagen duren. Het ontbreken van een API (efficient of uberhaupt) lijkt het hergebruik, de controle en toegankelijkheid te belemmeren.

Gebrekkige anonimisatie en mogelijke rechtsongelijkheid

Voorbeeld 1

Het lijkt er op dat de wel ter inzage gelegde documenten ook automatisch weer offline gehaald worden, zoals bijvoorbeeld bij prb-2025-125 betreffende een omgevingsvergunning gewijzigd flore- en fauna-activiteit voor Meerdijk 4 te Grootschermer:

Op zich is dat logisch, maar brengt ook een vraagpunt aan het licht. Een traditionele terinzagelegging is ook tijdelijk ter inzage, maar hoe ga je hiermee om in het kader van het Internet en “eens online, altijd online”? Blijkbaar is er momenteel voor gekozen om de documenten offline te halen bij deze publicatie.

Persoonsgegeven dienen geanonimiseerd te zijn (hetgeen niet altijd even nauwkeurig gebeurt), maar een document kan auteursrechtelijke elementen bevatten zoals een bouwtekening of soms interne adviezen op basis van de motiveringsplicht. Die laatste categorie valt dan (deels) onder een uitzonderingsgrond van de Woo, maar kan bij een terinzagelegging toch beschikbaar gemaakt worden.

De beschrijving van de terinzage gelegde documenten op officielebekendmakingen.nl maakt deze nuances niet duidelijk.

Tegenvoorbeeld

Een tegenvoorbeeld is de WABO beschikking regulier over Bruchterweg 88 W in Hardenberg:

https://zoek.officielebekendmakingen.nl/prb-2025-646

waarbij de documenten na afloop blijkbaar beschikbaar blijven:

Deze terinzagelegging bevat informatie die mogelijkerwijs geanonimiseerd had moeten worden, zoals prijzen en een persoonsnaam (zekerheidshalve is vrijwel alles geanonimiseerd in onderstaand voorbeeld):

Ook bij deze documenten is niet duidelijk welke nuances gelden qua anonimisatie, en wat de belangenafweging is.

624 documenten geven specifiek in de URL aan dat ze “geanonimiseerd” zijn, de rest niet. Een steekproef laat zien dat er ook documenten die niet “geanonimiseerd” in de URL hebben desondanks geanonimiseerd kunnen zijn zoals deze beleidsverklaring.

Ongelijke Rechtspositie

Alhoewel de redenen van het offline halen niet duidelijk zijn in het eerste voorbeeld, kan per orgaan of besluit wisselend gedrag leiden tot een ongelijke rechtspositie.

Documenten

De terinzageleggingen zijn vervolgens ook bekeken op structuur.

Moet een document wel of niet in centrale voorziening?

Circa 300 terinzageleggingen (11%) verwijzen naar een eigen website waar dan een extra klik nodig is om de documenten te zoeken en te bekijken, zoals prb-2025-9381 van Provincie Groningen:

https://www.provinciegroningen.nl/publicatievoorstellen/publicatievoorstel/c0d73497-0000-c425-96f2-4432b1c504e4/

Of prb-2025-9606 van Omgevingsdienst Noordzeekanaalgebied:

Deze praktijk maakt het onduidelijk of terinzagegelegde documenten nu wel of niet binnen de centrale voorziening officielebekendmakingen.nl gepubliceerd moeten worden. Dit was wel de indruk. Mogelijk dat een Wep-specialist hier meer over kan zeggen.

KOOP lijkt zelf van mening dat dit niet mag (bron: Veelgestelde vragen digitale terinzagelegging | Voor overheden | KOOP Kennis- en exploitatiecentrum officiële overheidspublicaties):

Het lijkt ook rechtsstatelijk niet handig omdat een externe bron aan minder auditcontroles onderworpen kan zijn waardoor documenten per abuis of met opzet gewijzigd kunnen worden tenzij er controlemaatregelen getroffen zijn. Een centrale oplossing voorziet hier eerder in.

ZIP-bestanden

Ruim 400 van de terinzagegelegde documenten (14%) worden als een ZIP-bestand aangeboden, in het algemeen via de structuur:

https://repository.officiele-overheidspublicaties.nl/Bijlagen/TerInzageLegging/JAAR/KENMERK/1/bijlage?output=zip

Bijvoorbeeld:

https://repository.officiele-overheidspublicaties.nl/Bijlagen/TerInzageLegging/2025/til-2025-208/1/bijlage?output=zip

Ook als er maar 1 PDF-document is, dan nog wordt regelmatig gebruik gemaakt van een ZIP-bestand. De reden hiervan is onbekend.

Het aanbieden van PDF-bestanden als een ZIP-bestand is niet gewenst volgens de KOOP-aanbeveling:

Ook in het kader van digitale toegankelijkheid (WCAG 2.1) en de KOOP-aanbeveling lijkt het gebruik van ZIP, zeker als er maar 1 PDF-document in zit, niet aanbevelenswaardig:

Exotische extensies

Een analyse over de documenten geeft aan dat vrijwel uitsluitend PDF gebruikt wordt. Er is sprake van enkele Word-documenten en een beperkt aantal afbeeldingen in JPEG of PNG formaat.

Exotische URL’s

Er is 1 enigszins exotische URL gevonden namelijk:

https://www.commissiemer.nl/projectdocumenten/011917_3734_Kruisland_NRD_v2314_20230526_download_rapport.pdf#:~:text=Brabant%20Water%20heeft%20een%20perceel%20voor%20waterwinning%20gekocht,en%20hoe%20de%20grondwaterkwaliteit%20in%20het%20gebied%20is.

Deze opent een externe PDF en highlight meteen een stuk tekst.