Project of the Day: Pure Legal Code

Extracted from Liquid Law

PLC is a project to create a range of domain specific languages (DSL), for the legal profession. These languages are designed to be easy to use, flexible, logically consistent, human readable, and machine readable. PLC stand for “pure legal code”.

“The project builds on top of existing low level open source code bases, and seeks to integrate these in a way in which non-technical professionals can design and implement their own legal constitutions using an easy to use English like syntax.

Initially we are focussing on designing languages for creating organisational structures (constitutions and member agreements), together with a range of voting options, and revenue sharing arrangements.

The languages themselves are being created by teams of programmers and legal professionals, with the aim of reducing the complexity and cost of creating custom legal agreements between parties. It is envisaged that these languages will be of use to a range of professional and causal users (legal and technical coders), enabling them to easily create and embed “legal apps” into clients web sites, or mobile devices.”


“Over here at #LiquidLaw we are developing a technical basis for implementing Government as Platform, which we are calling PLC. PLC is a programming language for the legal profession, which can be applied to a range of constitutional arrangements that an organisation may seek to make. Programming in PLC will create both the legal and administrative frameworks for the organisation, and can be applied to social enterprises, private companies, and democratic organisations.

PLC is designed to be a programming language with a difference – it is social code. Social code is the ability to code for ambiguous or socially defined constructs using the familiar legal decision making techniques (juries, arbitration, judicial review, constitutional voting). Output can be taken from one socially defined process, and input into other functions written in PLC.

The language itself is envisaged as an evolving set of domain specific languages, which utilise agile development, to facilitate the creation of an evolving body of code, which is both programming language, legalese, and a well formed legal document, at the same time. It should have multiple representations in a similar fashion to the current Creative Common licenses: a legal code layer, a human readable layer, and a machine readable layer, but extends this to include more language relevant features.

In addition to the familiar three layer model of legal code, we seek to enable both lawyers, and lay people (programmers and system administrators) to code their own agreements through the use of an English like syntax, or visual programming tools. In other words we want to facilitate a form of legal mashup, that lay people can use to create their own custom organisational structures and arrangements.

The methodology is based around the concepts of literate programming, and Language Oriented programming, in order to create the doman specific languages that the end user can utilise to create tools for their communities. Finally there is another paradigm that we can borrow from that can help us picture how real world legal tools, can be created from this language: scaffolding and automatic web application creation.

The end result is the ability of the lay person to create the essential organisational infrastructure for their project, including the legal agreements and web/mobile applications that can help them administer the project in a legally robust fashion. Taken together with concepts such as open data, and application programming interfaces we have a flexible set of paradigms (and indeed in many cases actual implementations), for Government as Platform.”

1 Comment Project of the Day: Pure Legal Code

  1. AvatarArthur Doohan

    Hi Eimhin….
    The phrase ‘three layer model of legal code’ rings no bells with me nor does it yield any results from my usual ‘search engine’.

    Also, I can’t find the original article on the linked site…

    I’m curious as to how the ‘semantic’ issue is to be addressed (‘the cow jumped over the moon’) as well as the representation of ‘Subject,verb,object’; neither of which the IT world has had much success with so far (with the honourable exception of the ‘Watson’ project).

    So, if you could elaborate on any or all of these three topics, I’d be most grateful.

Leave A Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.