Continuing off my discussions in the thread on a voice from the community on the Cardano Foundation board where I posted my discussion with Bertalan @bercinho I want to discuss with the community and learn together with the community more on the possibilities and perhaps also spark some interest into developing a DSL for governance on Cardano. We have Marlow that is trying to be a DSL for financial contracts but we do not have a governance DSL.
Here is my previous post:
There is much research on DSL for law. I think a great name for a bitlaw DSL would be to be named after Hammurabi (edit already taken GitHub - mpoulshock/HammurabiProject: Codifying legal rules in machine-executable form so Ur-Nammu it is ! ) or after the first known existing law code called Ur-Nammu he created. Code of Ur-Nammu - Wikipedia
The premise of the law is IF THEN statements.
Eystein_Hansen:
Bitlaw
I want to share one of my thoughts with you all on future governance and on legal issues. I call it bitlaw. Unlike common law or civil law systems of today it creates some new efficiencies that can only be found when you digitize not only the representation of law but the interpretation of law.In a common or civil law system you the user of such rules are required to figure out when does this rules apply to me or you are enforced to make these rules apply to you by a great state apparatus costing society huge sums.
In a bitlaw system assuming it is dualistic (coexisting with common or civil law) many fields of law can be queried by the computer itself. For example in contract law there is many cases where users can simply agree on standards or what rules they will enforce onto contracts. Some laws are more absolute (most contracts in modern ages for example ban any form of agreement for slavery) and will still need interpretation. However many legal agreements and laws are straightforward yes or no or can be agreed upon to be straightforward yes or no and can then fit into a binary system of quarry. Also suddenly it can be computed and visualized for a user when a law apply to a said condition and it can be automatically enforced if users agree to this. Obviously this has many ethical issues but if done well I am sure it can be a good thing for society.
Tip of the iceberg law cases or database law cases?
Suddenly instead of having a professional class who interprets and theorize about law outcomes you can in many cases create databases of knowledge through millions or billions of contracts for filled. This is a far cry from tip of the iceberg type of law interpretations where only a small amount of cases ever reach the courts or other interpretive authorities.A law for everything with AI?
It could possible also open an age old question if it is possible for a law for everything. Many have tried this historically and failed because it was simply not possible and out of this emerged the current law theories of interpreting laws based on an agreed upon system or standard and for even high courts to fill in the blanks where there was a legal void. But what if AI could in the future calculate all outcomes or even calculate on the fly outcomes. Ethically this still should be controlled by humans but the efficiency and scale of this would probably allow such a new way of legal thinking.Layered law approach
Another aspect would be to have local laws vs universal laws on any such system. We know from human history it is very hard to agree to everything with everyone. So it is far better to agree on what we can agree with whom we can agree. With bitlaw suddenly it is far easier to organize such layered approaches where you can instantly say that only portion X of rule Y applies for this transaction or this contract Z. This seems a better approach than trying to make universal laws for every single subject and to every single user. Obviously still some rules needs to be national or even transnational like human rights but a layered approach allows for all of this and is certainly nothing new as this already is happening in paper form of law. The difference is in efficiency and potential ease of use of creating such rules.Visual contracts in real time and developing over time
The baby steps of this would for me be contracts over time a new legal field in Contract Law. Contracts are no longer statics and are often updated. But this never happens in real time and there is no current system to quickly visualize and then formalize said agreements. Bitlaw combined with blockchain makes this possible. Suddenly you can both visualize Peder Aas agreeing with Marte Kirkerud on transfering X amount if Y condition and change this on the fly based on other parameters like for example previous contracts (because now we can build huge databases of this with all transactions) and due to blockchain there is no need for a 3rd party to verify. Also you can learn from contracts and gradually evolve them over time in a much faster and better rate than what we can do with current legal systems.Computational Democracies
This again opens what I call computational democracies. In computational democracies humans are still the representatives but in many cases the need for a 3rd party is removed. Voting can instantly be verified creating a lot of voting opportunities previously not within human reach and creating huge efficiencies in the voting process itself. Combined with bitlaw governance can happen and change at a much faster rate where users agree upon change or scope of changes (only x in contract terms y) and we can build a much bigger database of governance history thus making us learn faster what is more optimal ways to governance.In any case these are only some of my ideas so far and I know it is far out there but do think these things are possible. I welcome any criticism also as I want to see if these are realistically possible ideas or not?
And believe it or not I believe a baby step in all of this is actually if we can get the community on board as a say on these governance issues I am sure we will run into with the treasury system. We also need to accept that we need a layered approach and accept that with decentralization and globalization we will need different rules for different groups. But for sure the community needs to be part of this
First step for me now is to try to read up on the state of the art. I am aware there is much research on DSL and I am aware that there is projects like this in Etherium (https://legalese.com/) and several other projects. But I am not aware of any such projects for Cardano that specifically targets governance issues.
In any case for myself and perhaps also for the community I will post summaries and what my thinking and what I have learned from each article/book/webpage I read about the subject. Anyone is welcome to join the discussion.
Cardano community reads Computational Law Article 1
First out is an article from 1957 : âSymbolic Logic: A Razor-Edged Tool for Drafting
and Interpreting Legal Documentsâ By Layman E. Allen. (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.456.4342&rep=rep1&type=pdf)
In the abstract it is argued that we have written laws on paper to try to clarify what we have meant verbally. It is argued a better approach would be to use a logic symbol language (Computer languages comes to mind!)
to avoid any ambiguity.
The author then goes on to symbolize IF THEN statements (again very much terms from the computer language world) mathematically with a line between a P that implies a Q (IF P THEN Q)
The article then discusses how to pulverize legal clauses into such IF THEN statements exemplifying with a IF A break of contract happens THEN it can justify a refusal of a contractual duty (obligation.) He further defines P as antecedants and Q as consequences.
The author then discusses conjunction or what in program terms are AND statements. (Roses are red AND violets are blue) and connects it with antecedants or consequences. One P can have many consequences (Q1 & Q2 for example) or one consequence can be caused by several antecedants (P1 & P2 etc) or even that conjuctional antecedants can give conjuctional consequences (P1 & P2 = Q1 & Q2 & Q3 for example)
He argues this can be represented program wise with AND statements. He then goes on to show that the more complexity you have the more ambiguity you have in interpretation and that the logic statements required for all pairs of outcomes will grow by a large degree as you add conjunctions.
Next he looks at coimplications. These are derived from implications. He argues that when P implies Q then Q implies P and that NOT P implies NOT Q as well. He then argues this can be represented with IF AND ONLY IF. He argues this is the case in many court cases where the court does not want to apply for example that IF NOT P THEN NOT Q but only that IF AND ONLY IF P THEN Q.
He then discusses disjunctions (This for me is how we have tree like structures in program languages) where for example IF P THEN Q OR Q2 (OR here is an exclusive injunction where it is either Q or Q2) but it does not say if it can be both specifically. (if P then can it be both Q1 and Q2 at the same time) and then the nuansens of logical impications of the different types of disjunctions and how to represent them in a more logical form using the keywords ONLY IF and COIMPLIES and what I understand to be ANDOR (&OR) for inclusive disjunctions.
He then discusses negations (NOT) and how every positive will have a negative connected to it and then the relationship between all of these logical connectors and finds with what I call mathematical logic a lot of statements that are true between all of these logical connectors. One example is a true relationship between NOT, ANDNOT, OR and AND/OR. âIf the reader is either NOT tired AND NOT bored, OR is tired AND NOT bored, OR is NOT tired AND bored, THEN the reader is NOT tired AND/OR NOT boredâ
The table in the article summarize quite well
The article is primary focused on using these logical implications for drafting of laws by humans and also argues the need still for human interpretations and for the symbolic language as a tool. However for me a key takeaway is that many legal relations can be represented logically and thus also in a computer language. You need a strong understanding of logics and you need to have a common language - A domain specific language (DSL) to represent the terms precisely but it seems entierly possible and the idea of a symbolic language is very old. The code of ur-nammu dating some 2000 years B.C already had these IF THEN statments. This has to do with the fact that computer programs are all based on mathematical logic and it seems to be the next step to try to codify governance or the rules governing our life also into such a logical language as a way to further and decentralize also these aspects of our life as we have already done with knowledge through the internet or with financial ledgers through the blockchain.