Judicial-effects — uitspraak raakt besluit / instrument
Een uitspraak kan een besluit vernietigen, herroepen, of zelfvoorzien (Awb 8:72 lid 4 onder c). Dat is een cross-stack relatie tussen uitspraak-stack en decision-stack (of, in zelfvoorziening, instrument-stack). canonical.judicial_effects modelleert die relatie.
De tabel
canonical.judicial_effects (
id UUID PRIMARY KEY,
uitspraak_id UUID NOT NULL REFERENCES uitspraak.uitspraken(id),
effect_type TEXT NOT NULL,
-- 'vernietigd' / 'gedeeltelijk_vernietigd' / 'herroepen' /
-- 'gegrond' / 'ongegrond' / 'niet_ontvankelijk' /
-- 'zelfvoorziening' / ...
target_decision_id UUID REFERENCES besluit.besluiten(id),
target_instrument_version_id UUID REFERENCES instrument.versies(id),
...
CHECK (target_decision_id IS NOT NULL OR target_instrument_version_id IS NOT NULL)
)Eén uitspraak kan meerdere effecten hebben (deelvernietiging op besluit-A + zelfvoorziening op besluit-B); meerdere uitspraken kunnen één besluit raken (bezwaar → beroep → hoger beroep).
De empirische bevinding van 2026-05-06
Bij Phase 3 Tier-1 complete was er een empirische bevinding: het rechterlijke-effect model in de schema was opgezet voor de aanname dat uitspraken alleen besluiten raken. De realiteit:
- Zelfvoorziening (Awb 8:72 lid 4 onder c) plaatst een nieuw besluit in plaats van het vernietigde besluit. Conceptueel is dat de rechter die een eigen besluit verricht — een rechtshandeling. De target is dan een instrument-versie die door zelfvoorziening tot stand komt, niet een bestaand besluit.
- Vernietigingsuitspraken raken besluiten direct (de target is de vernietigde besluit-rij).
- Tussenuitspraken met bestuurlijke lus (Awb 8:51a) raken het besluit met
effect_type='opgeschort-pending-tussenuitspraak'— geen vernietiging maar wel een lifecycle-event op het besluit.
Schema-consequentie: target_decision_id én target_instrument_version_id moeten beide kunnen, met CHECK at-least-one.
Empirische status (2026-05-12)
canonical.judicial_effects heeft op moment van schrijven één rij als seed-test. Het brug-mechanisme is wel in schema gewired, maar de extraction-pipeline die uit uitspraak-tekst de effecten haalt (de "judicial effects extractor") loopt nog niet productief. Dit is een open WI in de FRBR roadmap (zie Phase 3).
Hoe de extractor uiteindelijk werkt
Per ADR-0011 leeft LLM-shaped werk achter de enrichment-boundary, niet op de ingest-hot-path. De judicial-effects extractor draait dus na de uitspraak-ingest, op de tekst van de uitspraak (uitspraak.uitspraken.full_text of geënhanceerde versie), en produceert canonical.judicial_effects-rijen.
Concreet betekent dat:
- Uitspraak komt binnen via
data.rechtspraak.nl(ECLI-keyed). - Wordt in
uitspraak.uitsprakenopgeslagen met de tekst. - Async-enrichment loopt — LLM-extractor leest tekst, identificeert beslissings-disposities ("vernietigt", "verklaart gegrond", "stelt in de plaats"), zoekt de target-besluit via referentie (ECLI / besluit-vermelding), genereert
judicial_effects-rij. - KG-update mag op dit punt — graph-side reflecteert vernietiging.
Onderliggende ADRs en docs
docs/handoffs/2026-05-06-frbr-phase3-complete-and-judicial-effects-finding.md— de empirische bevinding- ADR-0011 — Ingestion-Enrichment Split (waarom extractor niet op de hot path)
- ADR-0035 — uitspraak-schema