Hacker News new | ask | show | jobs
by vinay_ys 2246 days ago
I can see the attraction in making rules/regulation as code. But there is a downside we should be cautious of. Making law into code doesn't necessarily make it more readable/understandable or clearer for humans. In fact, making it into code will make it scalable to add lots of rules (very prescriptive, not derivable from a set of core principles) making them hard to comprehend for anyone but a rules evaluation engine. Anyone who has implemented a business rules engine and operated it in a complex workflow domain (like say e-commerce or banking) knows what I'm talking about. Then, when the machine renders judgement, we will need technical engineers to debug/explain/interpret why the machine evaluated all the rules to this particular judgement. There will also be potential for modeling the legal context of a particular case incorrectly while feeding it to the machine which can make the machine render incorrect judgment. Now, how will you appeal this decision?
2 comments

You're quite right. Garbage in, garbage out. And if the cost of generating garbage goes down, we're going to get a lot more of it! There are definite risks in misinterpretation and complexity and cruft. As Genesereth quoted:

The Lord's Prayer is 66 words, the Gettysburg Address is 286 words, there are 1,322 words in the Declaration of Independence, but government regulations on the sale of cabbage total 26,911 words.

So, we will have be on our guard. The hope is that if the rules are open and machine-readable, we will be able to counter with software that sides with the user and helps to mount the sort of response that in the past was only available to corporations with very deep pockets.

One intriguing approach is to submit test cases: concrete scenarios, or traces of events, that should result in certain desired outcomes. A diverse range of people in different circumstances could be collected in a comprehensive test suite. If the contract/law passes the test suite, you're good! You can imagine two legislators from different parties with different constituents and concerns, each bringing their set of test cases; and when the negotiated compromise passes enough tests, they proceed, without ever actually reading the text of the bill, lol.

> If the contract/law passes the test suite, you're good!

Not necessarily, you risk the same sort of problems suffered by naïve statisticians who over-fit their data with ever more complicated models. This leads to erratic behaviour in real life and severe lack of predictability outside the range already covered by the data.

You need to run some kind of sensitivity analysis as well because the components used in the implementation (policemen, lawyers, auditors, traffic wardens, etc.) are not all of perfect quality. Think of an audio amplifier design, it looks wonderful on paper and works perfectly in the simulator. But fails spectacularly when built of real world components because each component is not quite exactly as specified. A sensitivity analysis can discover this by, for example, running the simulation multiple times with each component varied according to its expected quality (say +/- 10% for resistors, +/- 30 percent for transistor gain, etc.)

>government regulations on the sale of cabbage total 26,911 words

The only solution is mostly forbid government regulation except for critical things, of which "sale of cabbage" and ten of thousands others now currently regulated are not.

In order to do that within a Democracy, you have to dispel the unconscious notion (that a lot of modern voters have), that the government is a father/mother figure that has unlimited resources, can't make mistakes, and its operated by saints with the "common good" in mind 24/7.