RFC-046: Chronolexography Is an Optional Layer on RegelRecht

ProposedPartially implemented
Depends onRequired by

Decision

Chronolexography is an optional layer on RegelRecht.

  1. The law format, the engine and the corpus work without chronolexography and do not know it.
  2. Chronolexography lives in its own crate, packages/cel. That crate uses the law and the engine; nothing uses the crate.
  3. Leaving packages/cel out changes nothing else.

Consequence for a rulework

A rulework contains no chronolexography vocabulary. The cell derives what it records from keys the law already has:

  • produces.submission on an article, or an item with a submission type: a chronolexogram of that kind arises. That article is its grondslag.
  • The parameters of the submission and of the hooks that apply to it (RFC-045): the fields of the application. In the list form of produces those of the article are the ones the item lists under parameters; in the object form, all of them. The cell refuses a field no article asks.
  • produces.moment: the moment that counts. It gets its own key, moment, and is no field. The cell fills it and refuses it from the applicant.
  • Executing the establishing article runs the hooks. Their outputs go in outputs.

A field left out that can be absent is null (RFC-036). One that cannot be absent goes under missing, because an incomplete application is still an application (Awb 4:5).

An article that also decides on its application lists the two under produces (RFC-047), and the application names the decision with requests. The cell records the application by running the stage AANVRAAG: the application and the hooks on it, not the decision.

This derivation belongs to the cell. Another runtime may record the same law in another way.

The chronolexogram does not repeat the law

Which articles ask a field and which article computed an output follow from the law version in force on recorded_on. The chronolexogram does not store them.

One application, received on 13 October 2026 by a fictional school:

{ "id": "019a1b2c-…", "kind": "AANVRAAG", "grondslag": "leerplichtwet_1969#13a", "recording_actor": "obs_de_klimop", "recorded_on": "2026-10-13", "moment": { "parameter": "datum_ontvangst", "on": "2026-10-13", "declared_by": "algemene_wet_bestuursrecht#4:13" }, "fields": { "eerste_verlofdag": "2027-02-01", "adres_aanvrager": null }, "outputs": { "redelijke_beslistermijn_einddatum": "2026-12-08" } }

The keys follow an RFC-022 entry (§1.3): recording_actor, grondslag, fields. There is no intake, because the cell has none.

The cell assumes that the day of receipt (Awb 4:13 lid 1) is the day it records the application; the law does not say so.

The chronicle is append-only and refuses a chronolexogram dated before the last one.

Alternatives Considered

  • A chronolex block in the law (the earlier proof of concept, an RFC-022 §3.2 extensions block per establishing article). It puts recording vocabulary in a rulework, and most of the block repeats the law.
  • A field list in cell configuration, or a chronicle-stream in RFC-022’s chronicles/ store (§1.3). Both drift from the law: an Awb article that asks one more thing does not reach the record until someone edits the list.
  • Per field, the provisions it rests on (field_basis and output_basis in an earlier draft). It repeats the law in every chronolexogram.

Implementation

  • packages/cel (regelrecht-cel): shape::derive reads the shape from the law through the engine. Cell::record_submission checks the values, executes the article and appends a chronolexogram. Chronicle keeps them in memory or in a JSON Lines file.
  • Not built: reading the chronicle back, objections. The decision on the application is RFC-047.

References

RegelRecht

An exploration into transparent, executable legislation, and one of the three projects in the starting selection of the Nederlandse Digitale Dienst.

Links

GitHub repository
How it works
Stay informed
Roadmap (Dutch)
Documentation
Research

Contact

regelrecht@minbzk.nl

Part of

Nederlandse Digitale Dienst
Ministry of Economic Affairs and Climate Policy