Computable Contracts

The Computable Contracts project works on developing a universal Contract Definition Language that will allow terms and conditions to be represented in machine-understandable way. As a result, computers will be able to process and reason over the contracts automatically with a guaranteed degree of accuracy. The effect is not only a significant reduction of legal transaction costs, but it also opens a variety of new options to create better contracts.

Contract Definition Language

Contract Description Language (CDL) is a new language designed for expressing contracts, terms and conditions, and even laws in machine-understandable way so that automated tools can be used to work with them more efficiently. Its roots lie in declarative rules based logic programming.

Automation for Formation of Contracts

Validity Check
Is there a conflict between laws and/or contract terms?
Utility
What is the value (or score) of laws and/or contract terms according to particular preferences or criteria?

Automation for Analysis of Contracts

Hypothetical Analysis
What are the implications of laws and/or contract terms in a particular situation?
Consistency Check
Is a set of contracts consistent, i.e. contradiction free?

Automation for Implementation of Contracts

Planning
What actions can/should be done in a particular situation for achieving a particular goal.
Execution
Ultimately, automated triggering of actions

Project Description

The impetus for the Computable Contracts research, and Computational Law more broadly, is a vision where people, softwares, and services, with the help of computers, are able to rapidly understand the implications of contracts and laws and make optimal decisions accordingly, on a potentially large and complex scale.

Natural language contracts are tedious and difficult to form, analyze, and implement. Whether it is a simple scenario such as shopping where consumers are confronted with general terms and conditions or a complex scenarioa such as corporate governance, Internet of Things, privacy & security in open data systems, or finance, laws, rules, regulations, policies, agreements, and contracts need to be considered before making actions. State of the art computable contracts or smart contracts techniques often base on hard-coded contracts (mostly in a procedural programming language such as Java), and thus lack the generality, the power of automated reasoning, transparency and usability for the parties.

We envision a system that is more stable, fair, efficient, reliable and trustworthy in which the capabilities, responsibilities and possibilities of different parties are transparent and balanced. We believe that unleashing the power of computers on legal substance will lead to massive innovation in the legal domain including completely new classes of applications that are hardly feasible or imaginable today.

As evident from the above list, this project is essentially a multi-disciplinary project involving in particular topics from Computer Science, Law, and Human Computer Interaction. In order to achieve our goal, we need to develop methods, tools and techniques to address the following requirements.

  1. A machine understandable language capable of defining laws, regulations, agreements, and contracts. From the Computer Science perspective this includes specification of semantic, static, and dynamic constraints of a multi-actor distributed system and reasoning over the system’s behavior with the help of its specification.
  2. Automated or semi-automated (when full automation is not possible) techniques for computer-aided validity check, analysis, and implementation of rules as well as dispute resolutions.
  3. to what degree can legal substance be made more accessible to lay persons with the help of methods known in computer science,
  4. how can legal experts work more efficiently by embracing automation,
  5. how can cyber-social systems be made more responsible, trustworthy and transparent by making legal substance more open and more comprehensible, and
  6. how might the availability of an expressive CDL impact the optimal design of laws and statutes in the future?
  7. Tools for enabling legal experts and end users to work more efficiently with the legal information. This include tools for contraction formation, contract monitoring, taking contract compliant actions, dispute resolution, etc.

Contract Definition Language

  • Machine-understandable: Computers can reason over single as well as a set of contracts: check validity, compute utility, hypothetical analysis, consistency check, planning, and execution
  • Declarative & highly expressive: Specification is the program
  • No need to translate domain knowledge into procedural code
  • Modular: Multiple programs can be flexibly put together
  • Easier to debug and visualize than procedural code
  • Could also be used directly by domain experts
  • There is an increasing trend of declarative approaches e.g. jQuery

The Contract Description Language (CDL) makes possible Automated Reasoning over legal substance. It is a new language designed for expressing contracts and laws, which supports uniformity, and thus analysis, across legal domains. Its roots lie in declarative rules based logic programming. In our previous work, we have identified four types of reasoning that can be very valuable for achieving the goals of efficiency and transparency in contracting:

  1. Validity Check: Is there a conflict between laws and/or contract terms?
  2. Hypothetical Analysis: What are the implications of laws and/or contract terms in a particular situation?
  3. Utility: What is the value (or score) of laws and/or contract terms according to particular preferences or criteria?
  4. Planning: Ultimately, what actions can/should be done in a particular situation.

Project Team

Sudhir Agarwal
Harm Bavinck
Michael Genesereth
John Moghtader
Roland Vogl