(Rules as Code + OpenFisca) training series, session one.
Created by Hamish Fraser
“To understand how to design rules-as-code projects it's important to understand what they are.”
Constitutional considerations
⇒ Separation of Powers
(Checks and balances to avoid concentration of power)
Enabled by attributes of natural language
Socially agreed shared language. Words find meaning from context.
Written symbols gain meaning through their association to natural language.
A rule is applied to scenarios through interpretation
Specific instructions defining one singular interpretation by machine.
Shares symbols with natural language; only one "meaning" to a machine.
Requires scenarios to fit the singular interpretation.
“When law is expressed in code, the question of how the law should be interpreted is subsumed into the code itself.”
Everyone is subject to the law
The law should be clear, & clearly enforceable
There should be an independent, impartial judiciary
“Legislative complexity is a growing challenge across the Commonwealth statute book” 1
“It undermines the rule of law” 2.
“The Rule of Law requires that the law is simple, clear and accessible. Yet English law has in become increasingly more complex, unclear and inaccessible” 3.
(1) Measuring Legislative Complexity
(2) When laws become too complex
(3) ENGLISH LAW AND DESCENT INTO COMPLEXITY
Complexity is not the issue; humans are complex
The law being “clear” is the principle
Computers can make complexity clear
RaC as interpretation of law works when:
Policy Development
Structured analysis
Digital models
Preserving institutional knowledge
The first step to explaining policy to a computer
Natural language city planning rules
Analysis of planning zones
Finding the structural “things”
Object orientated type “objects”
“This thing is also that thing”
Mapping hierarchy/relationships
Multi-Disciplinary Team (Better Rules)
Programmers are bringing Structural Analysis
“Not everyone’s brains are wired that way”
Humility critical for team dynamics
Clarity is hard when mental models not shared
Programmer role needed to: provide consumable models & reduce reliance on words/labels
Goal: avoid “talking past” by utilising concrete examples
Public Service
Computer systems and operations
Big P policy + Small P policy + Operations all blended
Analysis of systems is difficult
Layered approach that clearly identifies and separates code based on authoritative source.
Highly referenced code back to natural language rules for scrutiny and maintenance.
Open-source like approach that allows for open challenging of interpretation work
Policy development that utilises RaC.
Test case utilisation for analysing impact.
RaC plus data for large/small scale explorations
Full structural reform can “close the loop”
Data from RaC usage/application informing policy development.
Allow for more data drive decision making
Hotkeys
f
: full screen
s
: speaker notes
b
: pause
←
/ →
/ space
: navigate through slides
cltr
/ alt
+ click to zoom