How the law format models an Awb procedure: what an article establishes, the hooks on an application, the stages of a decision, and an objection that takes a decision again.
A specific law says someone may apply. The procedure around it comes from the Algemene wet bestuursrecht (Awb), from the application to the objection. The rulework of the specific law need not name the Awb, because Awb articles hook onto every application.
RFC-045 gives the design and its reasons. Chronolexography shows how a cell records the procedure.
An article that establishes an application and decides on it lists both under produces:
outputs. derived holds what follows from it without being part of it.established_by narrows a hook to one article’s application.produces.moment).Hooks and Reactive Execution covers hooks in general.
Run at one stage of its procedure (RFC-008), an article computes only that stage:
| Stage | What runs |
|---|---|
| AANVRAAG, BEZWAAR | The hooks on the submission of that kind (Awb 4:2 and 4:13; 6:5, 6:9 and 7:10). No decision output |
| BESLUIT | The decision, with Awb 3:46 and 6:7 |
| BEKENDMAKING | Awb 6:8: the objection period starts |
Without a procedure (a scenario, the editor) every hook fires at once.
The law says what is needed. The process supplies it from:
implements (Inversion of Control), which may take the answer of a cell (Chronolexography);decided_per_case_by, as a finding keyed by the term’s id.Which of these wins on an open term follows the order of precedence. Cross-Law References says when a finding is refused.
An objection is a second submission. Awb 7:11 establishes it and decides on it. The objection holds the contested decision. The decision on the objection calls that decision anew:
The call runs on the day of the decision on the objection, with the contested decision’s fields and findings plus what the authority finds anew. Cross-Law References describes the decision value.
| Situation | Result |
|---|---|
| Late (Awb 6:9) | Not admissible; no reconsideration |
| Against a decision on objection (Awb 7:1 lid 1 onder a) | Not admissible: its taken_on is 7:11 |
| Admissible, outputs the same | Unfounded, the decision stands |
| Admissible, an output differs | Revoked; nieuw_besluit holds the new decision |
Only outputs count. A derived end date that moves with the day gives no cause.
Listed only when a choice is still to be made, when it needs investigation first, or when it needs a large refactor or a breaking change to the schema. Open Points in Chronolexography gives the rule.
| Point | Why open |
|---|---|
Stages are an Awb detail built into the format. The schema calls procedure Awb-defined, and a hook’s stage defaults to BESLUIT. The engine uses BESLUIT and the submission kinds (AANVRAAG, BEZWAAR) as stages, and the cell runs BESLUIT and BEKENDMAKING by name. Should stages stay, as a free field that the law defining the procedure fills? | Choice; breaking schema change |
decision_type is fixed per article, while one article grants or refuses. The value says nothing about the outcome, and no hook in the corpus filters on it. RFC-022 proposes an open vocabulary. Drop it, derive it from the outcome, or keep it as a free field? | Choice; breaking schema change |
| The edge from 7:11 to the article it calls is known only at run time. The dependency graph, the editor and the type checker do not see it. | Large refactor |
An exploration into transparent, executable legislation, and one of the three projects in the starting selection of the Nederlandse Digitale Dienst.
GitHub repository
How it works
Stay informed
Roadmap (Dutch)
Documentation
Research
Nederlandse Digitale Dienst
Ministry of Economic Affairs and Climate Policy