Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have had very similar thoughts over the years. To remove (or at least minimize) human bias, the law ought to follow the same strict if-then-else logic of code. All facts and evidence should be entered as variables in a system that can keep them all in it's metaphorical head at once. If there's a conflict, the code should fail to compile. There should be a revision history.

Due to the messy uncertainty of life, and our seldom perfect information, there would still be a need for humans to make the final decisions, but an automated recommendation with a confidence indicator would really be something.



> the law ought to follow the same strict if-then-else logic of code

The law does do this.

There was a period during which this was so rigidly applied that the law forked into Common Law and Equity. The latter reintroduced fuzziness partly because of the increasingly absurd injustices of the Common Law at the time.

The law is filled with linguistic variables: "similar person similarly circumstance", "person having ordinary skill in the art", "buyer at arm's length without prior notice" and so on and so forth. These terms are all defined and understood, but they are not crisp, discrete concepts that can be safely reduced to a real number.

The law is a workable and incredibly reliable system, given the scale, scope, timeframes and consequences involved. Introducing something that flatters our own profession would not add net value.


The law-lang that I imagine would be a failure if it couldn't replicate the current vagaries of today's laws.

The only thing I want to introduce is consistency through abstraction.

eg. If you want to write a law pertaining to minors, you need to define what a minor is. I'd like for the lawyers to just `import legal_entity::{minor};` and the definitions would self populate. Additionally, if you're writing a law about minors, you might need to contrast to non-minors, so you could just `import legal_entity::{minor, ...};`.

I'm sure even today definitions are relatively trivial to share, but sadly I'm not a lawyer and can't quite think of better examples of abstractions.

Maybe: eg.

    current_entity.equals_with_specificity(person, Specificity.LevelThree)
      && current_situation.equals_with_specificity(situation, Specificity.LevelTwo /* Similar Circumstance */)


If it makes you feel better, I had the same basic idea and only later abandoned it[0]. My optimism was tempered by going into professional practice as a software engineer.

> The only thing I want to introduce is consistency through abstraction.

By implication you're saying this doesn't already exist. Judges and legislatures undertake a constant, dynamic process of organising and reoranising the law into workable abstractions, seeking a level that renders a problem domain tractable. Typically these are called "rules", "tests" or "doctrines", depending on their scope and purpose.

> I'd like for the lawyers to just `import legal_entity::{minor};` and the definitions would self populate.

This happens when they say "minor" in regular legalese; a lot of boilerplate is generated from templates as-is. A lot of what solicitors call "bread & butter law" is repetitious, well-worn transactional law: wills, trusts, partnerships, real estate conveyancing and so on.

I do get some sense that you are mixing together statute and caselaw. These are both The Law, but the are created in different ways and have quite different forms. Statute is amenable to formalisation and indeed many legislatures have adopted "Plain English Law" drafting rules. Many legislatures also have reform acts intended to replace, consolidate, restate or remove various historical Acts resting on the books (you can find some amazing stuff in the attic).

But caselaw is very different. It is composed of judges giving reasons for their orders. It is a continuing conversation. There are no drafting rules and in general, there can't be, because the entire purpose of the system is that two parties can submit any legal question under dispute -- any question -- and be guaranteed to receive an answer.

Just as code often has "bugs" in the face of unexpected situations, so too can the law. But the law can be patched on the fly by judges (and later replaced by statute). It requires humans speaking in natural languages, which admit indefinite nuance in a way that artificial languages don't and shouldn't.

[0] http://clubtroppo.com.au/2007/08/25/programming-in-legal/


I think given how hard it is for people to write even relatively simple bug-free smart contracts, I don’t think this is likely to happen any time soon.

Aside from that, one of the saving graces in the American system is all of the friction points between various jurisdictions that prevents government from being ruthlessly efficient. I’m not sure that it would at all be a good thing if we could actually correctly codify and automatically enact the will of the people.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: