Legislation as Logic Programs*
Robert A. Kowalski
Department of Computing
Imperial
January 1991
Revised June 1992
Abstract. The
linguistic style in which legislation is normally written has many similarities
with the language of logic programming.
However, examples of legal language taken from the British Nationality
Act 1981, the
In addition to the resemblance between legislation
and programs, the law has other important similarities with computing. It needs for example to validate legislation
against social and political specifications, and it needs to organise, develop, maintain and reuse large and complex
bodies of legal codes and procedures.
Such parallels between computing and law suggest that it might be
possible to transfer useful results and techniques in both directions between
these different fields. One possibility
explored in this paper is that the linguistic structures of an appropriately
extended logic programming language might indicate ways in which the language
of legislation itself could be made simpler and clearer.
1 Introduction
The characteristic feature of the language of
legislation is that it uses natural language to express general rules, in order
to regulate human affairs. To be
effective for this purpose, it needs to be more precise than ordinary language
and, as much as possible, it needs to be understood by different people in the
same way. In this respect legislation
can be viewed as programs expressed in human language to be executed by humans
rather than by computers.
Thus the language of legislation might also serve as
a model for computing, suggesting ways in which programming languages might be
made more like human languages, while still remaining machine executable. In this paper I shall focus on a comparison
between the language of legislation and the language of logic programming. I shall argue that, although logic
programming fares well in this comparison, it needs to be improved by
incorporating such extensions as types, relative clauses, both ordinary
negation and negation by failure, integrity constraints, metalevel
reasoning, and procedural notation. I
shall also argue that in some cases legislation itself can be improved by
re-expressing it in a style more closely resembling such an extended logic
programming form.
I shall investigate three examples. The first consists of several sections from
the British Nationality Act 1981; the
second is the
In our earlier investigation of the British
Nationality Act 1981 [10] we emphasized both the prospects of using logic
programming to build legal applications as well as the problems of attempting
to use logic programming for knowledge representation. In this paper I am concerned only with the
second of these matters, but more specifically with investigating linguistic
similarities and differences between logic programming and legislation, and
more generally with exploring other parallels between computing and the law.
2 The British Nationality Act 1981
The following four examples from the British
Nationality Act illustrate some of the complexity and precision of legal
language. They also illustrate the
treatment of time, default reasoning, negative conclusions and reasoning about
belief.
2.1 Acquisition by Birth
The first subsection of the British Nationality Act
deals with the case of acquisition of
citizenship by virtue
of birth in
the United Kingdom after commencement (1 January 1983,
the date on which the Act took affect).
1.-(1)
A person born in the
(a) a British citizen; or
(b) settled in the
The English of this clause is already close to logic
programming form, even to the extent of expressing the conclusion before (most
of) the conditions. Using infix notation
for predicates and upper case letters for variables, 1.1 can be paraphrased in
logic programming form by:
X
acquires british citizenship by section 1.1
if
X is born in the
and
T is after commencement
and
Y is parent if X
and
Y is a british
citizen at T or
Y
is settled in the
This has the propositional form
A
if [B and C and D and [E or F]]
which is equivalent to two rules
A
if B and C and D and E
A
if B and C and D and F
in normal logic programming form.
In this paper I shall use the term logic program to
refer to any set of sentences which are equivalent to a set of universally
quantified implications in the normal logic programming form
A
if B1 and ... and Bn
where A is an atomic formula, Bi for 0 < i < n is an atomic formula or the negation of an atomic
formula, and all variables, e.g. X1, ..., Xm
occurring in the implication are assumed to be universally quantified, i.e.
for
all X1, ..., Xm [A if B1 and ... and Bn].
The logic programming representation of 1.1 can be
made more like the English, while remaining formal, by introducing types and
various forms of syntactic sugar. For
example:
a person who is born in the
which
is after commencement
acquires
british citizenship by section 1.1
if
a parent of the person is a british citizen at the
time,
or
a parent of the person is settled in the
Here "person" and "time" are type
identifiers; "a person" is the first occurrence of a variable of type
"person"; "a time" is the first occurrence of a variable of
type "time"; "the person" and "the time" stand
for later occurrences of the same variables.
The relative pronouns "who" and "which" also stand
for additional occurrences of the variables they follow. "who" stands for an occurrence of
type "person", whereas "which" stands for an occurrence of
any type of variable. Relative clauses
in expressions of the form
...
V which P ***
for example, are syntactic sugar for
...
V *** if V P
where "V" is a variable, and "P"
is a predicate which applies to "V".
Similarly an expression of the form
...
a R of T
P ***
is syntactic sugar for
...
V P *** if V R of T
where "R of" is a binary predicate,
"T" is a term, and "V" is any variable not occurring
elsewhere in the sentence.
Notice that the two transformations described above
need to be combined with the simplication of formulae
of the form
(A
if B) if C
to the form
A if
B and C
This kind of typing and syntactic sugar can be
defined more precisely and can be extended to deal with several variables of
the same type, pronouns, and more flexible kinds of relative clauses. In this way English can serve as a model to
improve the naturalness of logic programming without sacrificing its precision.
I shall argue elsewhere in this paper that,
conversely, the use of conclusion-conditions form, which characterises
the syntax of logic programming, can sometimes improve the clarity of natural
languages such as English.
2.2 Representation of Time
In the representation of 1.1 time has been
represented by an explicit parameter of type "time". The expression
...
after ***
is interpreted as short-hand for
...
at a time which is after ***
i.e.
...
at T if T is after ***.
This explicit representation of time contrasts with
modal representations, where temporal relationships are represented by modal
operators, and time itself is implicit rather than explicit.
As mentioned for example in [11], to reason about
time, an explicit axiom of persistence can be formulated to express that
a
property holds at a time which is after another time
if
an event occurs at the other time
and
the event initiates the property
and
it is not the case that
another
event occurs at yet another time
which
is between the time and the other time
and
the other event terminates the property.
"a
person acquires british citizenship by section
1.1" initiates
"the
person is a british citizen".
Perhaps this is an example where symbolic notation
with explicit representation of variables might be easier for some people to
follow. Here "a time",
"another time", and "yet another time" introduce different
variables of the same type "time".
Notice that the English suggests that the variables refer to distinct
individuals, whereas the usual logical convention is that different variables
of the same type can refer to the same individual. This is one of several discrepancies which
would need to be attended to in a more systematic study of the correspondence
between logic and a precise style of English.
Notice also in the two axioms above how events and
properties are treated metalogically as names of
sentences.
2.3 Abandoned Children and Default Reasoning
The second subsection of the British Nationality Act
is conceptually one of the most complex sentences of the Act.
1.-(2) A new-born infant who, after commencement, is
found
abandoned
in the
(a) to have been born in the
commencement; and
(b) to have been born to a parent who at the
time of
the
birth was a British citizen or settled in the
Under the procedural interpretation of logic
programs, conclusions of sentences are interpreted as goals and conditions as subgoals. According
to this interpretation, the conclusion of a sentence identifies its
purpose. Thus we can interpret the
phrase "the purposes of subsection (1)" as a metalevel
reference to the logical conclusion of 1.1,
namely to acquire British citizenship.
Moreover the object level phrases 1.2.a and 1.2.b are exactly the
logical conditions of 1.1. Thus we can
regard the entire sentence 1.2 as a mixed object level and metalevel
sentence which expresses that
the
conditions of 1.1 shall be assumed to hold for a person
if the
person is found newborn abandoned in the
at
a time which is after commencement.
and
the contrary of the conditions of 1.1
are not shown
This can be reformulated at the object level alone by
replacing the metalevel descriptions by their object
level counterparts:
a
person who is found newborn abandoned in the
which
is after commencement
acquires
british citizenship by section 1.2
if it is not shown that it is not the case
that
the
person is born in the
which
is after commencement
and either it
is not shown that it is not the case that
a
parent of the person is a british citizen at the time
of birth
or
it is not shown that it is not the
case that
a
parent of the person is settled in the
at
the time of birth
This seems to be a case where the mixed object-level
meta-level expression may be easier to understand than the purely object level
representation.
Conditions of the form
it
is not shown that it is not the case that P
in the object level sentence above, can be
interpreted as combining negation as failure "not" and ordinary
negation "¬", i.e.
not
¬ P.
Thus, for another example, the statements
A
bird flies if it is not shown that it is not the case that the bird flies.
It
is not the case that an ostrich flies.
can be formalised by
a
bird flies if not ¬ the bird flies
¬ an
ostrich flies
Just such an extension of logic programming to
include both negation by failure and ordinary negation has been investigated by
Gelfond and Lifschitz [8]
and by Kowalski and Sadri [14].
Negation by failure is a form of default reasoning
and is non-monotonic. Thus a person who
acquires citizenship by 1.2 might non-monotonically have citizenship withdrawn
in the light of new information. It is
unlikely, however, that parliament
intended that citizenship be withdrawn in this way. Both such an intention and the opposite
intention can be catered for by introducing an extra layer of time concerned
with the time for which beliefs are held in addition to the historical time for
which properties hold true in the world.
A logic programming approach to such a joint representation of belief
time and historical time has been developed by Sripada
[25].
It is important to emphasize that when formalising legislation as (extended) logic programs we do not
attempt to define concepts which occur in conditions of the legislation but are
not defined in the legislation itself.
Thus, for example, we do not attempt to define the concept "new
born infant" which occurs in the conditions of 1.2. This means, as a consequence, that a formalisation of the British Nationality Act has only
limited applicability by itself. To be
used in a particular case it would need to be supplemented, if not by a set of
definitions of such vague terms, at least by a set of facts or assumptions
which express judgements about whether or not such
terms apply to the case in hand.
2.4 Deprivation of Citizenship and Negative
Conclusions
Except for its occurrence in conditions of the form
not
¬ P
ordinary negation
¬ seems to be needed only in the conclusions of rules. In such cases, a negative conclusion
typically expresses an exception to a general rule, as in the example
It
is not the case that an ostrich flies.
which expresses an exception to the general rule that
all birds fly.
Exceptions, expressed by sentences with negative
conclusions, are common in legislation [12].
The provisions for depriving British citizens of their citizenship
exemplify this use of negation:
40.-(1)
Subject to the provisions of this section, the Secretary of State may by order
deprive any British citizen to whom this subsection applies of his British citizenship
if the Secretary of State is satisfied that the registration or
certificate
of naturalisation by virtue of which he is such a
citizen was
obtained
by means of fraud, false representation or the concealment of any material
fact.
40.-(5) The Secretary of State -
(a) shall not deprive a person of British
citizenship under this section
unless
he is satisfied that it is not conducive to
the public good that
that
person should continue to be a British citizen; ...
40.1 has the
logical form
P if
Q
whereas 40.5 has the form
¬ P
if not R
If both conditions Q and not R hold, then by ordinary
logic it would be possible to
deduce a contradiction
P
and ¬ P.
But this is not the intention of the legislation,
which is rather that the exception should override the rule, or equivalently
that the rule should be understood as having an extra, implicit condition.
P if
Q and not ¬P.
In fact, the metalevel
phrase "subject to the provisions of this section" at the beginning
of 40.1 can be regarded as a caution that the meaning of 40.1 cannot be
understood in isolation of the rest of the section as a whole.
The extension of logic programming to allow negative
conclusions, for the purpose of representing exceptions, has been investigated
by Kowalski and Sadri [14]. They also show that such extended logic
programs can be transformed into normal logic programs. In particular a rule with a single exception
P
if Q
¬
P if not R
can be transformed into the simpler rule
P if
Q and R.
Both representations can be useful for different
purposes. A representation in terms of
rules and exceptions is often easier to develop and to maintain. However, the simpler representation as normal
logic programs is usually clearer and easier to understand. The first representation, accordingly, might
be preferred by a draftsman, who codifies the law; the second might be preferred by an
administrator who executes the law.
In this discussion of the provisions for deprivation
of citizenship we have considered only the propositional structure of the
English sentences. We have not
considered the meaning of such conditions as
"he
is satisfied that it is not conducive
to
the public good that that person
should
continue to be a British citizen".
This is partly because it would be very difficult to
do so; but also because we have restricted our attention to representing
formally only what is defined explicitly in the legislation itself. Nonetheless, reasoning about reasoning can,
at least to some extent, be formalised by metalogic or by logics of knowledge and belief.
2.5 Naturalisation
and the Representation of Belief
Like the provisions for deprivation of citizenship,
the provisions for naturalisation contain conditions
concerning the Secretary of State's beliefs.
In addition, however, they also contain rules governing the subject
matter of those beliefs. This leads us
to consider whether we can establish a logical connection between the two.
Section 6.1 contains the main provision for naturalisation:
6.-(1) If, on an application for naturalisation
as a British
citizen
made by a person of full age and capacity, the Secretary
of
State is satisfied that the applicant fulfills the requirements of
Schedule
1 for naturalisation as such a citizen under this
sub-
section,
he may, if he thinks fit, grant to him a certificate of
naturalisation as such a citizen.
At the propositional level this is equivalent to a
sentence in conclusion-conditions form:
the
secretary of state may grant a certificate of
naturalisation to a person by section 6.1
if
the person applies for naturalisation
and
the person is of full age and capacity
and
the secretary of state is satisfied
that
the
person fulfills the requirements of
schedule
1 for naturalisation by 6.1
and
the secretary of state thinks fit
to
grant the person a certificate of naturalisation.
The last two conditions vest considerable powers of
discretion in the Secretary of State.
The last condition is totally inscrutable and can only be given as part
of the input for a given case. But the
meaning of the penultimate condition ought at least to be constrained by the meaning of Schedule 1. This schedule is quite long, and it is
convenient therefore to summarise its contents:
a
person fulfills the requirements of
schedule
1 for naturalisation by 6.1
if either the person fulfills residency
requirements specified in
subparagraph 1.1.2
or the person fulfills crown service
requirements specified in
subparagraph 1.1.3
and the
person is of good character
and the person has sufficient knowledge of
english, welsh, or scottish gaelic
and
either the person intends to reside
in the
in
the event of being granted naturalisation
or
the person intends to enter or
continue in crown service
in
the event of being granted naturalisation.
To understand the connection between 6.1 and Schedule
1, it is necessary to understand the connection between meeting the
requirements for naturalisation specified in Schedule
1 and satisfying the Secretary of State that those requirements are met. Fortunately, this can be done, at least in
part, by regarding satisfaction as a kind of belief. The appropriate rules of belief can be formalised in both modal logic and metalogic. The following formalisation
in metalogic has the form of a metainterpreter.
a
person is satisfied that P
if
the person is satisfied that P ® Q
and
the person is satisfied that Q
a
person is satisfied that P Ù
Q
if
the person is satisfied that P
and
the person is satisfied that Q
a
person is satisfied that P v Q
if
the person is satisfied that P
or
the person is satisfied that Q
Here "®", "Ù", and "v" are infix function symbols naming implication,
conjunction, and disjunction respectively.
We may safely assume that
the
secretary of state is satisfied that P
if P
is a representation of the meaning
of
a provision of the british nationality act 1981
Thus the Secretary of State is satisfied in
particular that the implication which represents the meaning of Schedule 1
holds. This assumption and the metainterpreters above are
all we need to establish a logical connection between 6.1 and Schedule
1. This connection can be made more
explicit, however, if we transform the metainterpreter
using the technique of partial evaluation [7, 26]:
the
secretary of state is satisfied that a person fulfills
the
requirements for naturalisation by 6.1
if either the secretary of state is
satisfied that
the
person fulfills residency requirements specified in paragraph 1.1.2
or
the secretary of state is satisfied
that
the
person fulfills crown service requirements specified in paragraph 1.1.3
and the secretary of state is satisfied that
the
person is of good character
and the secretary of state is satisfied that
the
person has sufficient knowledge of english, welsh, or
scottish gaelic
and either the secretary of state is satisfied
that
the
person intends to reside in the
the
event of being granted naturalisation
or the secretary of state is satisfied
that
the
person intends to enter or continue in
crown
service in the event of being granted naturalisation.
The result is an explicit, though somewhat tedious,
statement of what it means to satisfy the Secretary of State concerning the
requirements for naturalisation. Clearly the statement could be made a little
less tedious if we used a pronoun, "he" or "she" for all
references to the Secretary of State after the first.
The language of the British Nationality Act 1981 is
for the most part extraordinarily precise.
It is also very complex. Most of
this complexity is inherent in the meaning of the Act. However, some of the complexity can be reduced
by the explicit use of conclusion-conditions form and by the use of
meaning-preserving transformations of the kind illustrated in the last two
examples.
By comparison with ordinary language and even with
legal language in general, the Act is also surprisingly unambiguous. However, as we have already seen, it does
contain vague terms and undefined concepts.
Such vagueness is often confused with ambiguity. Although, like genuine ambiguity, vagueness
causes problems of interpretation, it is also useful, because it allows the law
to evolve and adapt to changing circumstances.
Genuine ambiguity, on the other hand, generally
serves no useful purpose. Moreover,
whereas logic can easily accommodate vagueness, it cannot tolerate ambiguity.
The University of Michigan lease termination clause,
presented in the next section, was originally investigated by Allen and Saxon [1]
to illustrate the use of propositional logic to formulate a precise
interpretation of an ambiguous legal text.
I shall argue that the use of logic programming conclusion-conditions
form has the further advantage of rendering many of the possible interpretations
logically implausible.
3 The University of Michigan Lease
Termination Clause
The clause consists of a single, long sentence which
has the underlying, logically ambiguous form
A if
A1 and A2 or A3 or A4 or A5 or A6 or A7
unless
B1 or B2 or B3 or B4 or B5 in which cases B.
Different ways of introducing parentheses produce
different interpretations. Some of these
are logically equivalent because of the associativity
of "or", for example. After
accounting for these equivalences, Allen and Saxon identify approximately 80
questions that might need to be asked in order to distinguish between the
different parenthesizations. As a result of this analysis they identify
one intended interpretation which has the form
((A
if (A1 and(A2 or A3)) or A4 or A5 or A6 or A7)
if
not (B1 or B2 or B3 or B4 or B5)) and
(if
(B1 or B2 or B3 or B4 or B5) then B)
where "unless" has been translated as
"if not". It is interesting
that this interpretation has a logic programming form.
The logic programming representation can be
simplified if, as Allen and Saxon maintain, conditions B1-B5 are the only ones
under which conclusion B holds. In that
case the conditions not(B1 or B2 or B3 or B4 or B5) can be replaced by not
B. Thus the intended interpretation can
be represented by the simplified, normal logic program:
A if
A1 and A2 and not B
A if
A1 and A3 and not B
A if
A4 and not B
A if
A5 and not B
A if
A6 and not B
A if
A7 and not B
B if
B1
B if
B2
B if
B3
B if
B4
B if
B5
This logical analysis of the propositional structure
of the sentence should be compared with the English text of the sentence:
"The
University may terminate this lease when the Lessee, having made application and executed this lease in advance
of enrollment, is not eligible to enroll
or fails to enroll in the University or leaves the University at any time prior
to the expiration of this lease, or for violation of any provisions of this lease, or for violation of any
University regulation relative to Resident Halls, or for health reasons, by
providing the student with written notice of this termination 30 days prior to
the effective time of termination; unless life, limb, or property would be
jeopardized, the Lessee engages in the sales or purchase of controlled substances in
violation of federal, state or local law, or the Lessee is no longer enrolled as a student, or the Lessee
engages in the use or possession
of firearms, explosives, inflammable liquids, fireworks, or other dangerous
weapons within the building, or turns in a false alarm, in which cases a maximum of 24 hours notice
would be sufficient".
Notice how the conclusion A of the first half of the
sentence is split into two parts by the insertion of the conditions A1-A7. Notice also that the language of the sentence
is so complicated and so confused that the drafters mistakenly wrote
"maximum of 24 hours" when they must have meant "minimum of 24
hours".
In fact I have slightly misrepresented Allen and
Saxon's analysis of the sentence. In
addition to identifying the intended placement of parentheses, they analyse for each of the three occurrences of "if"
in the apparent meaning of the sentence whether or not "if and only
if" is really intended. They
conclude that in the first two cases (of the words "when" and
"unless") it is not intended,
whereas, in the third case (of the words "in which cases") it
is. Thus their real analysis of the
intended interpretation has the form
((A
if (A1 and (A2 or A3)) or A4 or A5 or A6 or A7)
if
not (B1 or B2 or B3 or B4 or B5)) and
(if
(B1 or B2 or B3 or B4 or B5) then B) and
(if
not (B1 or B2 or B3 or B4 or B5) then not B).
In contrast, with this change of representation using
ordinary logic, the logic programming representation is not affected by this
change of interpretation. In the logic
program there is no difference between the representation of "if" and
the representation of "if and only if". The difference between the two
interpretations depends upon whether or not the "closed world
assumption" [ 6 ] is applied. The
closed world assumption for a predicate P is the assumption that all the
implications
P if
Q1
P if
Q2
:
P if
Qn
with conclusion P in a program represent all the
conditions under which conclusion P holds.
It is this assumption that justifies the negation as failure rule:
not
P holds if P fails to hold, i.e.
not
P holds if all ways of trying to show P result in failure.
Thus, in the example of the lease termination clause,
in the case of the word "when", the interpretation "if and only
if" is not intended because there
are other situations referred to elsewhere in the lease under which the University
may terminate the lease with 30 days written notice. But in the case of the words "in which
case", the interpretation "if and only if" is intended because
there are no other cases under which the University may terminate the lease
with 24 hours notice. In the case of the
word "unless", the question is not relevant because in the context in
which it occurs the closed world assumption is not applicable.
Allen and Saxon argue that the logical representation
of the lease termination clause does not
express what the drafters must have actually intended. After all the ambiguities have been resolved,
the English text expresses that for the University to be able to terminate the
lease with 30 days written notice, not only must one of the conditions
(A1
and (A2 or A3)) or A4 or A5 or A6 or A7
hold but none of the conditions
B1
or B2 or B3 or B4 or B5,
under which it may terminate the lease with 24 hours
notice, may hold. But these extra
negative conditions play no useful role.
They serve only to make the conditions under which conclusion holds
exclusive of the conditions under which conclusion B holds.
The simpler rules
A if
((A1 and (A2 or A3) or A4 or A5 or A6 or A7)
B if
(B1 or B2 or B3 or B4 or B5)
are more flexible.
Compared with the original rules they give the university the extra option
of giving students 30 days notice in cases where they would otherwise be forced
to give 24 hour notice.
Using indentation, and the expressions "both ...
and", and "either ... or" in place of parentheses, this new
interpretation can be written in a form which arguably has both the precision
and simplicity of logic programming and the naturalness of English:
The
university may terminate this lease by providing the lessee with written
notice
of the termination 30 days prior to the effective time of termination
if
both the lessee has applied for
and executed
this
lease in advance of enrollment
and either the lessee is not eligible to
enroll
or
the lessee fails to enroll
or
the lessee leaves the university
at any
time
prior to the expiration of this lease
or
the lessee violates any provisions
of this lease
or the lessee violates any university
regulations
relative
to residence halls
or
there are health reasons for
terminating this lease.
The
university may terminate this lease by providing the lessee with notice of
the
termination a minimum of 24 hours prior to the effective time of termination
if
life, limb or property would be
jeopardized by
continuation of the lease
or the lessee engages in the sale or purchase
of
controlled
substances in violation of federal, state or local law
or the lessee is no longer enrolled as a
student
or the lessee engages in the use or
possession of
firearms,
explosives, inflammable liquids,
fireworks,
or other dangerous weapons within the building
or
the lessee turns in a false fire
alarm.
The University of Michigan lease termination clause
is not a good illustration of our thesis that legal language can be a good
guide for improving computer languages.
If anything, it seems to suggest the converse, that some computer
languages might be a useful guide for improving the language of the law.
In fact, few legal documents are written to the
standards of precision found in the acts of parliament; and hardly any legal
documents at all are written not only to be precise but also to be clear and
easy to understand. However, public
notices, which are meant to be understood by ordinary people, are for the most
part an important exception to this rule.
The London underground emergency notice is a good example of such an
exception.
4 The London Underground Emergency
Notice
The notice has many characteristics of a logic
program, but with some interesting differences:
EMERGENCIES
Press
the alarm signal button
to
alert the driver.
The
driver will stop immediately
if
any part of the train is in a station.
If
not, the train will continue to the next station,
where
help can more easily be given.
There
is a £50 penalty
for
improper use.
From a knowledge representation point of view, the
first sentence is probably the most interesting. Expressed in a procedural style, it shows
that a procedural form of expression can sometimes be more appropriate than an
"equivalent" statement in declarative style:
You
alert the driver
if
You press the alarm signal button.
Notice, however, that the procedural form can be
regarded as a compiled version of the procedural interpretation of the
declarative form. Like most compiled
representations of knowledge, it requires
less work on the part of the recipient to put the knowledge into effect.
This example and others like it suggest that logic
programming could be made more like natural language if it allowed both
declarative and procedural syntax. Under
the procedural interpretation of logic programming, both the declarative syntax
A if
B and C
and the procedural syntax
to
do A do B and do C
would be equivalent.
In fact both styles of expression would have the same declarative
meaning
A if
B and C
and the same procedural meaning
to
do A do B and do C.
A procedural syntax for logic programs would not,
however, include arbitrary imperative programming language constructs. It would not, for example, without further
extension, include such purely imperative statements as
press
the alarm signal button.
All imperative statements in a logic programming
language would have to be imbedded in a procedure, which contains an expression
of its purpose. I shall discuss the
possible extension of logic programs to include purposeless procedures, viewed
as integrity constraints, in sections 5.1 and 5.2.
To simplify the discussion of the emergency notice, I
have ignored and, for the most part, will continue to ignore the temporal relationships
between the different actions and situations referred to in the notice. We should note however, that to be accurate
the title of the notice should be incorporated into the conclusion of the
sentence:
press
the alarm signal button,
to
alert the driver to an emergency.
The second sentence of the notice is explicitly
expressed in a logic programming form.
However, even allowing for the fact that the phrase
the
driver will stop immediately
is shorthand for
the
driver will stop the train immediately,
the sentence fails to express its intended meaning,
because it is missing an entire condition.
The meaning of the sentence can be made explicit, by supplying the
missing condition from the conclusion of the previous sentence:
the
driver will stop the train immediately
if
You alert the driver to an emergency
and
any part of the train is in a station.
Certainly this precise expression of the meaning of
the sentence is more cumbersome that the English. However, it is hard to see how the logic
programming representation could be simplified so that it more closely
resembles the English, without loosing its precision.
The third sentence begins with an allusion to the
explicitly stated condition of the previous sentence. Ignoring for the moment, the comment at the
end, the sentence with all its conditions made fully explicit has the logical
form:
the
train will continue to the next station
if
You alert the driver to an emergency
and
not any part of the train is in a station.
But this alone cannot be all that it is intended by
the English, because the train will generally continue to the next station
whether or not the driver is alerted to an emergency. Surely, what is meant is that the train will stop
at the next station and that help will be given there. This is part of the meaning of the phrase
where
help can more easily be given.
Moreover, presumably help will be given at a station
whether it is the next station or not. Thus
we can obtain a better approximation to the intended meaning of the third
sentence with the two sentences:
the
train will stop at the next station
if
You alert the driver to an emergency
and
not any part of the train is in a station.
help
will be given in an emergency
if
You alert the driver to the emergency
and
the train is stopped in a station.
This second sentence of the revised formulation of
the sentence captures part of the meaning of the comment at the end of the
sentence. Presumably the rest of its
meaning could be expressed by the meta statement that this procedure for
getting help is better than the alternative procedure of stopping the train
when it is not in a station.
The last sentence of the notice has a simple
formulation in conclusion-conditions form:
there
is a £50 penalty
if
You use the alarm signal button improperly.
This contrasts with a purely imperative statement,
which expresses a prohibition without expressing a purpose:
do
not use the alarm signal button improperly.
In contrast with the purely imperative statement of
prohibition, the procedural interpretation of the English sentence contains a
clear expression of purpose:
if
You want a £50 penalty,
then
press the alarm signal button improperly!
Notice, by the way, how different the procedural
syntax of a sentence can be from its declarative meaning. The English procedural sentence
if
You want A, then do B
actually has the underlying declarative meaning
A if
B.
Although the English of the London underground notice
can be improved, it is undoubtably clear and easy to
understand. I believe its clarity is due
to at least three characteristics
• the explicit use of
conclusion-conditions form
• the appropriate use of procedural
form, and
• the use of ellipsis to avoid
unnecessarily stating the
obvious.
The first two characteristics can usefully be applied
to the design and improvement of computer languages today. The third characteristic is harder to
achieve, although some progress along these lines might be possible in the
future.
5 Other Computing Paradigms
The preceding examples illustrate some of the typical
characteristics of legal language and its relationship to logic programming
form. It is also possible, however, to
find indications of other computing paradigms.
5.1 Condition-Action Production Rules
Condition-action rules were developed by Newell and
Simon [19] as a model of human psychology and have been used to implement
expert systems [27]. They can also be
found in the language of public notices.
For example, the following notice is displayed in the carriages of the
London underground
Please
give up this seat
if
an elderly or handicapped person needs it
This is a distinct improvement over the earlier, ambiguous,
and potentially disturbing notice
please
give up this seat
to
an elderly or handicapped person.
But even with the explicit use of the word
"if", the sentence falls short of logic programming form, because the
apparent conclusion
please
give up this seat
is imperative rather than declarative. Moreover the sentence does not express a
purpose.
The condition-action form in which the rule is
expressed can be converted into logic programming form by making the purpose,
e.g.
to
do a good deed
explicit rather than implicit. The resulting statement can be expressed
procedurally
to
do a good deed
give
up this seat
if
an elderly or handicapped person needs it
or declaratively
You
do a good deed
if
You give up Your seat to a person
who needs
Your seat and
who
is elderly or handicapped.
The claim that every command has an explicit or
implicit purpose is an important theory in legal philosophy. The use of logic programming form, which forces
purposes to be made explicit, is in the spirit of this theory. Associating explicit purposes with commands
makes it possible to reason about the relative merits of conflicting commands
and even to reason whether a command is appropriate in a given context.
Nonetheless, natural language does allow the
expression of commands without purpose, and there even seems to be a logic
programming analogue of this in the form of integrity constraints.
5.3 Integrity Constraints
For many years the London underground displayed the
following notice above the automatic doors of its carriages
Obstructing
the doors causes
delay
and can be dangerous.
In other words
there
will be a delay
if
You obstruct the doors.
there
can be danger
if
You obstruct the doors.
As long as delay and danger are regarded as
undesirable, a thinking person will conclude that obstructing the doors is
undesirable too.
But the
Do
not obstruct the doors.
A sad reflection of our changing times. Either delay and danger are no longer
regarded as undesirable, or the public cannot be relied upon to reason about
the consequences of its behaviour.
But for a logic programmer the new notice is
worrying, not only because it indicates the possibly deteriorating state of
British underground society, but also because it represents a move away from a
logic programming style of communication to a more imperative style. But on closer consideration, the change of
wording is reminiscent of recent efforts to extend logic programming by the
inclusion of integrity constraints.
This extension is motivated by database applications
of logic programming. For these
applications, a number of studies [5, 17, 21, 22] have investigated the nature
of integrity constraints in logic programming and the development of efficient
integrity checking methods. In all of
these approaches integrity constraints are viewed as properties which a
database or program must satisfy as it changes over the course of time. To the extent that the contents of a database
describe states of affairs in the world, commands, which impose obligations or
prohibitions on states of the world, can be interpreted as integrity
constraints on states of the database.
An integrity constraint can be expressed in the form
of any sentence of first-order logic including a denial. Thus the command
do
not obstruct the doors
might be
represented by a denial
not You obstruct the doors
which expresses an integrity constraint on
descriptions of events which take place in the world.
Similarly the condition-action rule
please
give up this seat
if
an elderly or handicapped person needs it
might be interpreted as an integrity constraint which
has the form of an implication
You
give up a seat to a person
if
You are sitting in the seat
and
the person needs Your seat
and
the person is elderly or handicapped.
Thus, given a database that records events that take
place in the world, the integrity of the database will be violated if the
database records that a person is sitting in a seat which an elderly or
handicapped person needs and the database does not contain a record of that
person giving up the seat to the elderly or handicapped person. It is another problem, if integrity has been
violated, to decide how integrity should be restored. Perhaps this is where "purpose" or
"sanctions" might play a useful role.
Thus commands without purpose seem to be compatible
with logic programs extended by the inclusion of integrity constraints. Moreover, there is even a transformation
between integrity constraints and logic program rules, which is analogous to a
transformation between commands without purpose and procedures with purpose:
Given an integrity constraint expressed as a
first-order sentence
C
introduce a new predicate S and convert the
constraint to the rule
S if
not C
together with the new constraint
not
S.
The new predicate S can be interpreted as a
"sanction" which applies if the original constraint is violated. This transformation has been used in the
literature on integrity constraints in deductive databases to convert arbitrary
first-order integrity constraints into denial form.
The analogy between this transformation and the legal
doctrine of sanctions suggest the possibility of adapting legal techniques for
dealing with violations of commands to the problem of restoring integrity in
deductive databases. This is an
intriguing possibility that merits closer investigation.
5.3 Object-Oriented Programming
The paradigm of object-oriented programming has
become increasingly important in computing in recent years. It is interesting to investigate, therefore,
to what extent it has analogues in natural language and in legislative language
more particularly.
We have already seen some characteristics of
object-orientation in English when we saw the use of common nouns such as
"person", "time" and "lessee" as a kind of
object-oriented typing of variables.
Other manifestations of object-orientation seem to be more difficult to
find in the actual language of legislation, but easier to find both in
descriptions of individual cases and in the organisation
of law as a whole.
In natural language descriptions, it is common to
group sentences together around a single topic placed at the beginning of each
of the sentences. Such topics help to organise communication similar to the way in which objects
can be used to organise knowledge in computing.
Compare, for example, the pair of sentences
The
Prime Minister stepped out of the plane.
Journalists
immediately surrounded her.
with the pair
The
Prime Minister stepped out of the plane
She was
immediately surrounded by journalists.
Psycho-linguists have found that the second pair of
sentences is easier to understand than the first, despite the fact that the
second pair uses the passive rather than the active voice. The two sentences in the more comprehensible
pair have the same topic, whereas the two sentences in the other pair have
different topics. Such examples suggest that organising
knowledge around objects makes the knowledge more coherent and easier for
humans to understand.
In the domain of law, it is common to organise the different areas of law into hierarchies, which
are similar to hierarchies of objects.
Thus a country might have one statute governing criminal law in general,
another statute covering behaviour in public places,
and yet another dealing with behaviour in public
buildings. Assault and battery, for
example, might be prohibited everywhere, whether in public places or not. Going about naked, however, might be
prohibited only in public places, but be allowed in the privacy of one's own
home. Smoking, on the other hand, might
be prohibited only in public buildings but be allowed everywhere else.
Thus natural language seems to support two notions of
objects: objects in the small, which are
used like types and topics to organise descriptions
of individuals; and objects in the large, which are used in hierarchies to organise whole areas of knowledge. From this point of view, logic programming
and object-orientation correspond to different aspects of natural language and
are complementary.
However, the notion of object in computing has other
characteristics, such as change of state, which do not have such obvious
counterparts in natural language. These
characteristics seem to be more closely associated with simulating the behaviour of objects in the world than with describing
their behaviour.
There have been several attempts to apply
object-orientation to legal reasoning.
Some of these, like Gordon's Oblog [9], are
based on a view of objects as types and topics, which is entirely compatible
both with logic programming and with the representation of natural language
meanings. Others, like the treatment of
patent law by Nitta et al [20] are based on the use of objects to simulate behaviour.
The use of objects for simulation in the patent law
example is especially interesting because of the way in which patent
procedures, obligations and prohibitions are used to generate and filter
changing states of the simulation of a patent application. It seems possible that, if the changing
states of the simulation are viewed as database states, then the obligations
and prohibitions expressed in the patent law might be viewed as integrity
constraints. This possibility would
establish an interesting link between imperative statements in object-oriented
programming and integrity constraints in deductive databases and logic
programming.
No matter what the outcome of a more detailed
investigation of these possibilities, there can be little doubt that
legislation provides a rich domain outside computing science itself within
which relationships between different computing paradigms can be studied. These studies need not be confined to
programming languages alone, but could usefully be extended to many other
aspects of computing.
6 Other Relationships Between Computing
and Law
To the extent that we can truly regard legislation as
programs to be executed by people, we can also expect to find analogues in the
law of such other computing matters as program specification and software management.
6.1 An Analogy Between Specifications and
Policies
In the same way that programs are written to meet
specifications, laws are drafted to achieve policies, which are social or
political objectives. The purpose of the
British Nationality Act 1981, for example, was "to make fresh provisions
about citizenship and nationality, and to amend the Immigration Act 1971 as
regards the right of abode in the United Kingdom", and in particular to
restrict immigration to the United Kingdom by residents of the former British
colonies. The purposes of the University
of Michigan lease termination clause presumably include such goals as
discouraging unsociable behaviour in the halls of
residence, restricting residency to legitimate students, and not causing undue
hardship for individuals who are obliged to terminate their residence. The rules for dealing with London Underground
emergencies, on the other hand, are designed to facilitate the provision of
help as effectively and quickly as possible in the case of genuine emergencies
and to avoid inconvenience and unnecessary trouble in the case of false alarms.
Program specifications have many characteristics in
common with the policies of legal documents.
In the same way, for example, that the primary obligation of a program
might be to meet its specification, the primary duty of a legal document should
be to achieve its social and political objectives. In both cases, moreover, specifications and policies
are often ill-defined, inconsistent, or the result of compromise between conflicting demands.
The formal methods developed in computing to verify
that programs meet their specifications are much more advanced than any
corresponding methods developed for the law.
A pilot study of the possibility of adapting formal methods of
logic-based software verification to the problem of verifying social security
regulations has been made by Bench-Capon [2].
Thus the transfer of techniques for program
verification is one area in which the field of law might be able to benefit
from its similarities with computing. In
other areas, such as software management, the benefits might apply more equally
to both fields.
6.2 An Analogy Between Software Maintenance
and Maintenance of the Law
In the same way that programs need to be modified to
meet changing specifications, legislation needs to be modified to meet changing
social and political needs. But programs
are both difficult to construct and difficult to change. So much so in fact, that programs are often still in use long after
they have outlived their specifications.
The situation is not much better in the law, where
legislation often lags far behind social and political changes. Obsolete and incorrect legislation is
enforced simply for the sake of "law and order".
But the drafters of legislation have developed some
ingenious devices for adapting, modifying and revising old legislation. The liberal use of vague and undefined terms
such as "good character", "life, limb or property would be
jeopardized" and "improper use" greatly contribute to the
flexibility of legislation and to its ability to adapt to change. Such use of vague terms is reminiscent of the
use of data abstraction and encapsulation in computer programming, which allow
the lower levels of a program to change, while leaving the higher levels
intact.
Much legislation is explicitly concerned with the
repeal or amendment of earlier legislation.
The British Nationality Act 1981, for example, repeals the British
Nationality Acts 1948 to 1965 and amends the Immigration Act 1971. Amendments in particular are typically
expressed by metalevel statements which describe how
an old piece of text should be edited to create a new text. Metalevel
statements are also used to create a new provision from a similar provision in
the same act.
Section 6.2 of the British Nationality Act 1981, for
example, makes special provision for naturalisation
of people who are married to British citizens.
The requirements are similar to those for people who apply under section
6.1, but include shorter residency requirements, omit the requirement of having
sufficient knowledge of English, Welsh, or Scottish Gaelic, and include
"the
requirement specified in paragraph 1(1)(b)".
This metalevel reference to
1(1)(b) is in fact a reference to the requirement
"that
he is of good character".
This particular use of metalanguage
is rather unusual in that the English expression of the metalinguistic
form is actually longer than the equivalent object level expression. Usually the metalinguistic
formulation is more concise than the
object level formulation.
Thus the source code of legislation often mixes
object level statements about the domain of discourse with metalevel
statements about the text of other legislation or other provisions in the same
legislation. The principle objective of
using such metalevel statements in preference to
equivalent object level statements is to make explicit the relationship between
different but similar texts.
The language of legislation also employs remarkable
techniques for reusing previous legislation.
In the British Nationality Act 1981, for example, it states that one of
the conditions for being a British citizen by descent under the 1981 Act is to
be a person who
under
any provision of the British Nationality Acts 1948 to 1965,
was
deemed for the purposes of the proviso to section 5(1) of the 1948 Act to
be a
citizen of the
or
would have been so deemed if male.
The last phrase is an example of a counterfactual
condition. A metalogical
interpretation of such counterfactuals has been proposed by Bench-Capon [ 3 ].
It is possible to imagine how metaprogramming
might be used to implement such counterfactual reuse of software in a logic programming environment.
6.3 The Relationship Between Case-Based and
Rule-Based Reasoning
In artificial intelligence a contrast is sometimes
made between case-based and rule-based reasoning, and a conflict is often held
to exist between these two kinds of reasoning [23]. People, it is argued, reason by means of
analogies between different cases rather than by means of the deductive
application of rules.
The distinction between these two kinds of reasoning
also lies at the heart of law. To some
extent it is even reflected among the distinguishing features of the two main
western legal traditions. Common law
systems, such as those in England and the United States, place greater emphasis
on reasoning by means of cases. Civil
law systems, such as those on the continent of Europe, place greater emphasis
on reasoning by means of codified rules.
In fact, in both systems of law the two kinds of reasoning interact and
complement one another.
In rule-based legislation, for example, case-based
reasoning plays a fundamental role in determining the meaning of vague
concepts. Previous cases of a concept serve as precedents for new
cases.
On the other hand, in case-based legal argumentation,
the justification for a decision in a
precedent setting case is often expressed in general terms and appeals to
general principles. Moreover, authorative restatements of case law effectively
reformulate the precedents set in individual cases into general, rule-based form,
even though such case-based rules do not have the same binding force as rules
in legislation. Indeed it can be argued
that there is a natural evolution in the law from reasoning by means of cases
to reasoning by means of rules.
7. Conclusion
The similarities between computing and the law seem
to cover all areas of computing software.
Moreover, the linguistic style in which legislation is drafted combines
in one language the expressive power of computer languages for such diverse
areas as programming, program specification, database description and query,
integrity constraints, and knowledge representation in artificial
intelligence. This linguistic style
might be a good guide therefore to how these different areas of computing might
be unified in the future.
The similarities between computing and law go beyond
those of linguistic style. They extend
also to the problems that the two fields share of developing, maintaining and
reusing large and complex bodies of linguistic texts. Here too, it may be possible to transfer
useful techniques between the two fields.
In this paper I have concentrated on similarities
between logic programming and legislation.
I have indicated several ways in which the language of legislation
suggests that the basic model of logic programming can usefully be extended, to
include types, relative clauses, both ordinary negation and negation by
failure, integrity constraints, metalevel reasoning,
and procedural notation. I believe that
with the aid of such extensions logic programming can provide the foundations
for a future, single computer language that will be suitable for all areas of
computing in the same way that natural language is suitable for all areas of
law.
Acknowledgement
This work was supported initially by the Science and
Engineering Research Council and more recently by the ESPRIT Basic Research
Action, "Computational Logic".
I am especially indebted to my colleagues, Trevor Bench-Capon, Fariba Sadri and Marek Sergot, whose work on
legislation and logic programming has provided much of the background for this
paper.
References
[1] Allen,
L. E., and Saxon, C.S. [1984] "Computer Aided Normalizing and
Unpacking: Some Interesting Machine-Processable Transformation of Legal Rules", Computing
Power and Legal Reasoning (C. Walter, ed.) West Publishing Company, pp.
495-572.
[2] Bench-Capon,
T.J.M. [1987]: "Support for policy
makers: formulating legislation with the
aid of logical models", Proc. of the First International Conference on AI
and Law, ACM Press, pp. 181-189.
[3] Bench-Capon,
T. [1989] "Representing Counterfactual Conditionals". Proceedings of Artificial Intelligence and
the Simulation of Behaviour (A. Cohn, Ed.) Pitman
Publishing Co.
[4] Bowen,
K. A. and Kowalski, R. A. [1982]:
"Amalgamating Language and Metalanguage
in Logic Programming", in Logic Programming (Clark, K.L. and Tärnlund, S.-Å., editors), Academic Press, pp. 153-173.
[5] Bry, F., Decker, H., and Manthey,
R. [1988] "A uniform approach to constraint satisfaction and constraint satisfiability in deductive databases", Proceedings of
Extending Database Technology, pp. 488-505.
[6] Clark,
K. L. [1978]: "negation by failure", in "Logic and
databases", Gallaire, H. and Minker,
J. [eds], Plenum Press, pp. 293-322.
[7] Gallagher,
J. [1986] "Transforming Logic Programs by Specializing Interpreters",
Proc. of 7th European Conference on Artificial Intelligence, pp. 109-122.
[8] Gelfond, M. and Lifschitz, V.
[1990]: "Logic programs with classical negation", Proceedings of the
Seventh International Conference on Logic Programming, MIT Press, pp. 579-597.
[9] Gordon,
T. F. [1987] "Oblog-2 a Hybrid Knowledge Representation System for Defeasible Reasoning" Proc. First International
Conference on Artificial Intelligence and Law.
ACM Press, pp. 231-239.
[10] H.M.S.O.
[1981]: "British Nationality Act
1981", Her Majesty's Stationery Office, London.
[11] Kowalski,
R. A. and Sergot, M. J. [1986]: "A logic-based calculus of events",
New Generation Computing, Vol. 4, No. 1, pp. 67-95.
[12] Kowalski,
R. A. [1989]: "The treatment of negation in logic programs for
representing legislation", Proceedings of the Second International
Conference on Artificial Intelligence and Law, pp. 11-15.
[13] Kowalski
[1990] "English as a Logic Programming Language", New Generation
Computing, Volume 8, pp. 91-93.
[14] Kowalski,
R. A. and Sadri, F. [1990], "Logic programs with
exceptions", Proceedings of the
Seventh International Conference on Logic Programming, MIT Press, pp. 598-613.
[15] Kowalski,
R. A., Sergot, M. J. [1990]: "The use of logical models in legal
problem solving", Ratio Juris, Vol. 3, No. 2,
pp. 201-218.
[16] Lloyd,
J. W. and Topor,
R. W. [1984]: "Making Prolog more
expressive", Journal of Logic Programming, Vol. 3, No. 1, pp. 225-240.
[17] Lloyd,
J. W. and Topor, R. W. [1985] "A Basis for
Deductive Database Systems", J. Logic Programming, Volume 2, Number 2, pp.
93-109.
[18] Mitchell,
T. M., Keller, R. M. and Kedar-Cabelli [1986]
"Explanation-based Generalization:
A Unifying View" Machine
Learning, Volume 1, pp. 47-80.
[19] Newell,
A. and Simon, H. A. [1972] "Human problem solving", Prentice-Hall.
[20] Nitta,
K., Nagao, J., and Mizutori, T., [1988] "A
Knowledge Representation and Inference System for Procedural Law", New
Generation Computing, pp. 319-359.
[21] Reiter,
R. [1990]: "On asking what a
database knows", Proc. Symposium on Computational Logic, Springer-Verlag.
[22] Sadri, F. and Kowalski, R. A. [1987]: "A theorem proving approach to database
integrity", In Foundations of deductive databases and logic programming
(J. Minker, editor), Morgan Kaufmann, pp. 313-362.
[23] Schank, R. C. [1983] "The current state of AI: One man's opinion", AI Magazine, Volume
4, No. 1, pp. 1-8.
[24] Sergot, M. J., Sadri, F.,
Kowalski, R. A., Kriwaczek, F., Hammond, P. and Cory,
H. T. [1986]: " The British Nationality Act as a logic program",
CACM, Vol. 29, No. 5, pp. 370-386.
[25] Sripada, S. M. [1991] "Temporal Reasoning in Deductive
Databases". Department of
Computing, Imperial College, London.
[26] Takeuchi,
A. and Furukawa, K. [1986] "Partial evaluation of PROLOG programs and its
application to metaprogramming", Proc. of IFIP
86, North-Holland, pp. 415-420.
[27] Waterman, D. A. and Hayes-Roth [1978] "Pattern-directed Inference Systems", Academic Press, New York.