Semantic code project: Difference between revisions

From The Jolly Contrarian
Jump to navigation Jump to search
No edit summary
No edit summary
 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{rightbox|'''The Devil’s Advocate'''{{tm}} <br>
{{rightbox|'''The Devil’s Advocate'''{{tm}} <br>
[[File:Devil.jpg|450px|center]]
[[File:Devil.jpg|450px|center]]
[[ISDA code project]]
[[ISDA code project]]  ·  [[Semantic code project: next steps]]
{{anatnavigation-devil}}
{{anatnavigation-devil}}
}}
}}It’s all very well complaining, as reform-minded lawyers are [[inclined]] to, that [[legalese]] is absurd, does no-one any good, and that it must, ''surely'', dawn on the world’s professional wordsmiths at some time soon that whole-hearted surrender to [[plain English]] will assure them of an exponential explosion in productivity and profitability. The case of [[plain English]] is the [[legal eagle]]’s [[efficient language hypothesis|efficient market hypothesis]]: it ''should'' work, but doesn’t: where clean lines and abrupt cadences should, logically, lighten our load, textual profligacy jabs a defiant finger in the eye of the right-thinking logician who believes {{sex|he}} maps the territory of our hearts. The facts tell a different story: {{sex|he}} doesn’t.
===Create (or select) a [[standard proposition]]===
Select a [[standard proposition]]. These are things like “right” or “obligation” or “condition precedent” — basically the standard building blocks of a legal contract. My hunch is that a limited number of these “canonical propositions” could be used to apply to most contractual provisions without amendment. For example a “definition” is fairly straightforward: there is a “term” and a “definition” and an “operator” (which almost always “means” or “includes”). This can be represented as:
{{subtableflex|45|{{c-definition|template=ISDA 2002 1(c)2|format=pr}}}}


[[Standard proposition]] templates will be prefaced with a “c-” and you can find a complete list of the formats here:
For we [[lawyers]] are inured to speaking in a certain way.  It is our dialect; we have learned it since the cradle: it is who we are. With it, we graduated and earned our place at the bar. As we matured it became an overwhelming [[competence signal]]: it how we demonstrate our place in the pecking order. All that notwithstanding, it is ''difficult'' turning legalese into [[plain English]]. It doesn’t come naturally to lawyers, and not one of those [[reg tech entrepreneur]]s has managed a machine that can do it. (No one has even ''tried'', as far as I can tell).
{{subtableflex|45|'''Canonical propositional forms''':<categorytree mode="pages" namespaces="Template" depth="0">Template propositions</categorytree>
Completed propositions:<categorytree mode="pages" namespaces="Template" depth="0">Containers</categorytree>}}


=== Why are there t-versions and c-versions of each standard proposition? ===
On the other hand, you have visionary types who talk of legal language as if it is some kind of [[object-oriented code]]. This seems a better aspiration — at some remove, legal language ''is'' a kind of code: it is a set of operating rules within which components in a system are programmed to interact. Good contracts have many of the features of code, being exact, unambiguous, not needing qualitative evaluation; devoid of metaphor and limited in the use of tense. As the information revolution continues we should expect contracts and code to come together: {{author|Lawrence Lessig}} would say at some point they will converge: ''[[Code: Version 2.0|code is law]]''.
You call templates using the “c-” templates. These designate:
:(a) what ''type'' of standard proposition it is (is it a right, obligation definition, condition precedent etc): you do this by the “c-type” template —“c” for “call” — you select (e.g. “c-obligation”)
:(b) where to find the static data inputs to populate this particular proposition — this will be a taxonomised address for a particular agreement (e.g. “ISDA 2002 2(a)(iii)”). This is where the “t-” templates come in handy: you need to put your proposition variables into a followable, but still fairly convoluted code environment, which you can access by “{{subst:}}ing” the relevant “t-type” template — “t” for “template standard proposition” — and just dropping the variables into the relevant spaces.
:(c) what format to output the proposition. For example “pr” will output it as in [[JCML]]<ref>Jolly Contrarian Markup Languange of course.</ref>; “se” will out put as minimalistic semantic English.


The idea is to take an existing template standard proposition and “{{subst:}}” it into a new structure at the correctly taxonomised address, and then populate it.  
In this [[semantic code project]], rather than starting with the porridge we are left with at the ''end'' of the drafting process, we ask whether the better thing is not to start at the ''beginning'': if we build legal statements from their elements, and even negotiate that way, by reference to ''propositions'' rather than sentences, we at least discipline ourselves to articulate legal relationships in neat code. If you are so minded, you can then extrapolate this into language as flowery as you like — the [[Fish principle]] is simple [[algorithm]]. But — who knows? — if the number of basic propositions is limited, and lawyers get used to handling this “machine code”, we might deprive windy legal language of its very reason for being.
If there isn’t an existing standard proposition to fit, create a new one but try to avoid this: the name of the game is to have as few “canonical” propositions as possible.  


The form of template standard proposition should be:
===Theory===
In a commercial legal agreement, there are a limited number of basic legal propositions, all of which have common components, which are standard building blocks of a legal contract.  These are things like “'''definition'''”, “'''right'''”, “'''obligation'''”, “'''condition'''”, “'''warranty'''”, and the proposition needs a “'''label'''” to identify it and position it in the contractual framework. My hunch is that say twenty of these “canonical proposition” ''types'' could be used to fully describe the legal content of most commercial contracts.


{{subtableflex|45|'''Name''': t-[NAME]<nowiki><noinclude>{{c|Template propositions}}</noinclude></nowiki><br>
For example, a “'''definition'''” is a fairly straightforward proposition: there is a “term”, “definition”, “operator” and “scope”. So the definition proposition template might look like this:  
'''Content''': <br>
{{subtableflex|45|{{c-definition|template=|format=pr}}}}
'''label''': <nowiki><section begin=label/>{{PAGENAME}}<section end=label/>. <br></nowiki><br>
'''{VAR1}''': <nowiki><section begin={VAR1}/> <section end={VAR1}/>. <br></nowiki><br>
'''{VAR2}''': <nowiki><section begin={VAR2}/> <section end={VAR2}/>. <br></nowiki><br>
'''{VAR3}''': <nowiki><section begin={VAR3}/> <section end={VAR3}/>.</nowiki> }}


Where:
In a contract there will be multiple “definition” propositions, and each will have its own label and variables from which you could construct basic legal semantic text. For example, take the ISDA definition of Office:
*Change [NAME] and {VAR1}, {VAR2} and {VAR3} to suit your proposition. Note ALL ARE CASE SENSITIVE. Suggest using only '''lowercase'''. Bear in mind the command calling the template also has to be case-correct.
*“Label” above is fixed text and will help in correctly taxonomising. Don’t change this. Also leave <nowiki><noinclude>{{c|Template propositions}}</noinclude></nowiki> as is — this adds the template to the correct category and helps you to find it later.


The form of template call — this simply extracts the relevant data from the taxonomised address, but doesn’t do anything with it (the “format” parameter designates that), is as follows:
{{subtableflex|45|{{ISDA Master Agreement 2002 Office}}}}


{{subtableflex|45|<nowiki>{{{{{format}}} [NAME]</nowiki><br><nowiki>
You could, we suggest, render that as follows:
|label={{{template}}}</nowiki><br><nowiki>
{{subtableflex|45|{{c-definition|template=ISDA 2002 Office|format=pr}}}}
|{VAR1}={{#lst:template:{{{template}}} [name]|{VAR1}}}</nowiki><br><nowiki>
Note that “which may be such party’s head or home office” is a non-restrictive elaboration — it is flannel, basically — it adds no information that is not conveyed by the expression “a branch or office of a party” so it can be omitted from the propositional variable. (This will frighten some of the horses I should think).
|{VAR2}={{#lst:template:{{{template}}} [name]|{VAR2}}}</nowiki><br><nowiki>
===So far...===
|{VAR3}={{#lst:template:{{{template}}} [name]|{VAR3}}} </nowiki><br><nowiki>
This remains a work in progress. That remains of this article, for the stout-hearted, continues on the discussion page, but be warned: it starts getting a bit tendentious. The rabbit hole I am descending may well be the wrong one, but — who knows? — maybe there is a wonderland down there.
}}<noinclude>{{c|Containers}}</noinclude></nowiki>}}


===Create a corresponding proposition in your agreement schema===
{{sa}}
You should have an agreement schema (a structured skeleton of the agreement in question. This has a unique taxonomised template name following this format:
*[[ISDA code project]]
[Code] [Agreement] [Edition Year] [Clause reference]. For example, Section 1(a) of the {{2002ma}} is <nowiki>{{Code 2002 ISDA 1(a)}}</nowiki> 
{{ref}}
 
Create the new template (e.g. <nowiki>{{Code 2002 ISDA 1(a)}}</nowiki>) and call the template proposition using the “c-” template operator. For example, to: if you want to put an “application” operator in <nowiki>{{Code ISDA 2002 1(a)}}</nowiki> template, insert: <nowiki>{{c-application|ISDA 2002 1(a)1}}</nowiki> there. Note the 1: this is to distinguish between different instances of “application” that appear in clause 1(a), so not necessary if only one, but good practice.
 
If there is not an existing container, this should prompt you for a bunch of inputs which are not there yet (eg <nowiki>{{{label}}}, {{{action}}}</nowiki> etc).
 
===Render===
You choose your rendering by the parameter “format” in the “c-” template.
*'''pr''' means “proposition”: this is the inputs into the proposition listed as they are.
*'''se''' means “semantic”: This is the inputs into the proposition constructed into minimal English
*'''std''' means “standard” legal English: so idiomatic, but not legalese, but not so spartan so as not to be fun.
*'''pomp''' means “pompous” and we have had a bit of fun with this.
 
==To do==
Devise a proposition labelling taxonomy, that can neatly (and predictably) cover: proposition type, agreement type, location and clause reference

Latest revision as of 08:40, 4 March 2021

The Devil’s Advocate

ISDA code project · Semantic code project: next steps

Index — Click ᐅ to expand:

It’s all very well complaining, as reform-minded lawyers are inclined to, that legalese is absurd, does no-one any good, and that it must, surely, dawn on the world’s professional wordsmiths at some time soon that whole-hearted surrender to plain English will assure them of an exponential explosion in productivity and profitability. The case of plain English is the legal eagle’s efficient market hypothesis: it should work, but doesn’t: where clean lines and abrupt cadences should, logically, lighten our load, textual profligacy jabs a defiant finger in the eye of the right-thinking logician who believes he maps the territory of our hearts. The facts tell a different story: he doesn’t.

For we lawyers are inured to speaking in a certain way. It is our dialect; we have learned it since the cradle: it is who we are. With it, we graduated and earned our place at the bar. As we matured it became an overwhelming competence signal: it how we demonstrate our place in the pecking order. All that notwithstanding, it is difficult turning legalese into plain English. It doesn’t come naturally to lawyers, and not one of those reg tech entrepreneurs has managed a machine that can do it. (No one has even tried, as far as I can tell).

On the other hand, you have visionary types who talk of legal language as if it is some kind of object-oriented code. This seems a better aspiration — at some remove, legal language is a kind of code: it is a set of operating rules within which components in a system are programmed to interact. Good contracts have many of the features of code, being exact, unambiguous, not needing qualitative evaluation; devoid of metaphor and limited in the use of tense. As the information revolution continues we should expect contracts and code to come together: Lawrence Lessig would say at some point they will converge: code is law.

In this semantic code project, rather than starting with the porridge we are left with at the end of the drafting process, we ask whether the better thing is not to start at the beginning: if we build legal statements from their elements, and even negotiate that way, by reference to propositions rather than sentences, we at least discipline ourselves to articulate legal relationships in neat code. If you are so minded, you can then extrapolate this into language as flowery as you like — the Fish principle is simple algorithm. But — who knows? — if the number of basic propositions is limited, and lawyers get used to handling this “machine code”, we might deprive windy legal language of its very reason for being.

Theory

In a commercial legal agreement, there are a limited number of basic legal propositions, all of which have common components, which are standard building blocks of a legal contract. These are things like “definition”, “right”, “obligation”, “condition”, “warranty”, and the proposition needs a “label” to identify it and position it in the contractual framework. My hunch is that say twenty of these “canonical proposition” types could be used to fully describe the legal content of most commercial contracts.

For example, a “definition” is a fairly straightforward proposition: there is a “term”, “definition”, “operator” and “scope”. So the definition proposition template might look like this:

definition [

label def
term
operator
scope
definition ]

In a contract there will be multiple “definition” propositions, and each will have its own label and variables from which you could construct basic legal semantic text. For example, take the ISDA definition of Office:


Office” means a branch or office of a party, which may be such party’s head or home office.

You could, we suggest, render that as follows:

definition [

label ISDA 2002 Office def
term Office
operator means
scope Master Agreement
definition for: [howmany: each] Party: branch or office of Party]

Note that “which may be such party’s head or home office” is a non-restrictive elaboration — it is flannel, basically — it adds no information that is not conveyed by the expression “a branch or office of a party” so it can be omitted from the propositional variable. (This will frighten some of the horses I should think).

So far...

This remains a work in progress. That remains of this article, for the stout-hearted, continues on the discussion page, but be warned: it starts getting a bit tendentious. The rabbit hole I am descending may well be the wrong one, but — who knows? — maybe there is a wonderland down there.

See also

References