I
was born in
I
went to Fairfield Prep, a boys-only
The
skill needed was the ability to guess the most coherent English translation for
the unknown vocabulary, given the known vocabulary and the known grammar as
constraints. Years later, I learned that the required technique is called
“abduction”. Our team took first prize in
I
also started to have an intellectual life outside of school. I started reading
Freud, Ruth Benedict and Joad’s “Guide
to Philosophy”. I found these books very exciting, but they undermined my
Catholic upbringing. I still believed there had to be a single truth, and I
wanted to find out what it was. I also wanted to get away from home and to be
free to come and go as I pleased.
For
these reasons, I was attracted to study at the
I
got “A”s in all my subjects, except English writing skills, in which I got a
“D”. I couldn’t understand what was wrong with my writing, but I was determined
to improve it. I reasoned that if I could understand and cure the problems with
my writing, then I would do even better in my other courses.
At
the beginning of my second year, I was beginning to find the social life at the
I
spent the rest of that academic year trying to find myself. I signed up for an
expedition to find gold in
The
following academic year, I enrolled at the
I
wasn’t able to get a scholarship at first. So I supported myself by working in
Peoples Savings bank in the evening, processing paper tapes of the day’s
banking transactions. I discovered how to cut the time of the job in half, and
then I had the problem of keeping my total pay the same as it was before.
When
I went to the scholarship office to argue my case for getting a scholarship, I
was turned down because I didn’t participate in any extracurricular activities.
The fact that I was busy working to support my studies was not deemed to be
relevant.
I
was told that the only solution was to join a student club. Because I had
neither the interest nor the time to join any of the existing clubs, I
advertised in the student newspaper to announce the formation of a new club for
people who didn’t want to belong to any clubs. Soon after that, I was awarded a
scholarship, which allowed me to quit my job at Peoples Savings and to work
full time at being a student.
Academically,
after getting my scholarship, the best thing about the
I
took the Graduate Record Examination in Mathematics and scored higher than any
student previously from the
I
went to Stanford to study for a PhD in Mathematics, but my real interest was
Logic. I was still looking to find the truth, and I was sure that Logic would
be the key to finding it. My best course was axiomatic set theory with Dana
Scott. He gave us lots of theorems to prove as homework. At first my marks were
not very impressive. But Dana Scott marked the coursework himself, and wrote
lots of comments. My marks improved significantly as a result.
Jon
Barwise was among the other students entering Stanford as a PhD student that
year, in 1963. We were friends, but also competitors. He discovered that
Stanford had an exchange program with the
The
exchange program started with an intensive Polish course at the end of the
summer. I didn’t get any credit for the courses I attended at the
I
spent much of my time on extra-curricular activities. I met and visited my
Polish relatives, including my grandparents, who lived near the Russian border.
I also met my future wife, Danusia, a student in the Mathematics Department at
the University. We got married after only a few months in February 1965.
Before
going to
When
I returned to Stanford with my wife at the beginning of the next academic year,
I found it hard to convince myself that studying complex variables and
recursion theory would lead me to the truth, and I was upset by the war that
was developing in
Ray
and I both went up in the first few bombing missions. We practiced over
Stanford and other places in the San Fransisco area. Our first attempt nearly
ended in disaster, when the leaflets got caught in the tail of the plane.
Our
main goal was to bomb the Rose Bowl football game in
Eventually,
Ray was arrested on our last mission, when he went up without me.
I
left Stanford in the middle of the academic year. Fortunately, I had taken
enough courses to leave with a Master’s degree. I applied for work teaching
Mathematics at various universities, mostly outside the
I
was excited by the prospect of living and working in
In
the meanwhile my first daughter, Dania, was born. I left
We
used our savings from
Bernard
Meltzer was working on the automation of mathematical proofs. Although I wasn’t
convinced about the value of the research topic, I was determined not to drop
out of another PhD. I was lucky. Alan Robinson, the inventor of resolution, was
in
I
finished my PhD in just over two years; and, with a second daughter, Tania,
born in
I
knew I wasn’t going to be offered the Fellowship at
The
best thing about the fellowship was that it left me with plenty of time to
explore my real interests. In those days they were mainly in philosophy of
science and epistemology. I remember reading and being influenced by Lakatos’
“Proofs and Refutations”, Nelson Goodman’s “Fact, Fiction and Forecast”, and
Quine’s “Two Dogmas of Empiricism”. I didn’t appreciate it at the time, but in
retrospect I was lucky that Bernard encouraged me to explore these broader
interests.
My
reading of Lakatos’ philosophy of mathematics reinforced my own experiences with
research on automated mathematical theorem proving. Lakatos
documented how the history of Euler’s theorem could be viewed as a succession
of conjectured theorems, attempted proofs, revised definitions and
counterexamples. In my own case, my own research led me to the conclusion that
it’s harder to discover theorems that are worth proving than it is to prove
arbitrary ones.
These
considerations had a big impact on my later work. For better of worse, I came
to believe that it is more important to question whether a theorem is
worthwhile than it is to prove a theorem that has no use. The downside of this
is, of course, that it is easy to make claims that cannot later be justified.
Things
were also happening around me in the world of Logic and Artificial
Intelligence. Attacks were being launched from MIT against anything that hinted
of Logic. Declarative representations in general were bad, and procedural
representations were good.
In
the face of these attacks, many of the researchers working on the use of Logic
for theorem proving moved into other areas. But I couldn’t accept the view that
Logic was dead.
I
had been working on a form of resolution, called SL-resolution, with Donald
Kuehner, who had been one of my mathematics teachers at the
SL-resolution
uses Logic in a goal-oriented way. We pointed this out at the end of our paper,
and I set out to convince my colleagues that the goal-oriented approach of
SL-resolution reconciles Logic with the procedural approach advocated at MIT.
In
the summer of 1971 I received an invitation from Alain Colmerauer to visit him
in Marseille. He was working on natural language understanding, using Logic as
a representation of meaning and using resolution to derive answers to
questions. He was interested in my work on theorem proving and on SL-resolution
in particular. My family and I stayed with him and his family in their small
flat for several days. He and I worked late into the night, discovering how to
use Logic to represent grammars and how to use theorem provers for parsing. We
saw that some theorem provers, like hyper-resolution, behaved as bottom-up
parsers and others, like SL-resolution, behaved as top-down parsers.
We
decided to continue our collaboration, and Alain invited me to visit him again
for a longer period of two months the following summer of 1972. It was during
that second visit that logic programming, as we commonly understand it, was
born.
I
have tried to document as best I could our various contributions to that idea
in an article published in CACM, 1988. In summary, however, it is probably fair
to say that my own contributions were mainly philosophical and Alain’s were
more practical. In particular, Alain’s work led in the same summer of 1972 to
the design and implementation of the logic programming language Prolog.
Those
were heady days. It was obvious to some of us that we were onto a good idea.
Back in
We
also had visitors who were especially attracted to the logic programming idea.
They included Luis Pereira from
Before
leaving
Sometime in 1973 or 1974, I was invited to apply for
a Readership in the Department of Computing and Control at
It took about a year to confirm my appointment,
partly because there was another strong candidate, and partly because doubts
were raised about my suitability for the post. I started in January 1975, and
was assigned to teach a course on formal languages and automata theory
immediately upon my arrival. I knew next to nothing about the subject, and I
had little interest in it. Fortunately, Keith Clark, then working as a lecturer
at
Fortunately, after the first couple of years, I was
able to focus on teaching in the areas of logic, logic programming, and
artificial intelligence, which were central to my interests. I had to cheat a
little in the beginning, for example by setting the students the problem of
writing a Prolog interpreter in Cobol, as a programming exercise in the
comparative programming languages course.
My first few years at Imperial College combined
learning enough of the basics of Computing to do my teaching, writing my book
“Logic for Problem Solving” and promoting the cause of logic programming in
general. In this latter pursuit, I was especially fortunate in recruiting Chris
Hogger and in helping to bring Keith Clark into the Department. I also
organised the first Logic Programming Workshop, at
The book was very hard work, and it seemed to take
forever. To make matters worse, in those days I didn’t type, and I had to rely
entirely on others to do all the typing. The final draft was a camera-ready
copy produced on a line printer, using ancient word-processing technology. When
I finished I knew it would be a long time before I wrote another book.
I visited
In 1978 I started a course of logic lessons for 12
year old children at my daughters’ middle school. We solved logic problems in
Prolog on the Departmental computer, using a pay phone connection. The
connection would be lost whenever our coins ran out.
Once we demonstrated the feasibility of teaching
logic to children, I succeeded in getting support from the Science Research
Council to develop microProlog, a microprocessor implementation of Prolog, for
use in schools. The project employed Frank McCabe to do the implementation and
Richard Ennals to develop and test the teaching materials.
Perhaps the worst thing about my work in those days
was the fact that the MSc. course lasted throughout the summer and deprived me
of the opportunity to get away from my normal commitments. Earlier, both when I
was a student and when I was a postdoctoral researcher in
Then
everything changed. In 1981, MITI in
The
British government responded by forming a committee chaired by John Alvey, the
Director of Research at British Telecom. The academic community, led by the
Science Research Council, formed its own committees to advise the Alvey
Committee. I was enlisted along with many others to help draft recommendations
for the British response. Although I was not yet a full Professor, I was the
most senior academic in
It
was chaos. Academics argued with academics, industrialists with both academics
and fellow industrialists - all presided over by the British civil
service. We all wanted to carve out a
slice of the action for ourselves. Some of us went further by arguing that we
should follow the lead of the Fifth Generation Project and focus on logic
programming to the detriment of other areas. That was a big mistake.
My
position in the Department deteriorated, as I came into conflict with my
academic colleagues, who wanted the government to focus on mainstream software
engineering and formal method approaches. It wasn’t much better on the national
level, where logic programming was still seen very much as a new comer (and
some would say an intruder) on the Computing scene. In the end, by the time the
Alvey Committee produced its recommendations, virtually every area of Computing
and related Electronics was singled out for special promotion. But logic
programming hardly received a mention.
The
British government decided to decline the Japanese invitation and to go it
alone. The “Alvey Programme” was established, and eventually, after much
further debate, logic programming was identified, along with all the other
areas, as worthy of special promotion. By around 1985, as a result of the Alvey
Programme and with a lot of help from Keith Clark, the logic programming group
at
My
position in the Department and that of the logic programming group were strained.
We wanted to establish ourselves as a separate entity, and the Department
wanted to keep us in our place. In the autumn of 1987 I took a six-month leave
of absence, to get away from it all.
From
1981 to 1987, my professional life was dominated by academic politics. It was
not an area of activity to which I was naturally drawn, but rather an area into
which I was pushed by events around me. Inevitably the politics interfered with
my research.
Fortunately,
I was able to continue to make contributions to research by working with PhD
students. I worked with Marek Sergot on the application of logic programming to
legal reasoning, and along with several other members of the group, including a
new PhD student Fariba Sadri , we investigated the logic programming
formalisation of the British Nationality Act. In the atmosphere of the Alvey
era, even this caused controversy: We were accused of racism, because it was
supposed by some of our critics that the work must have been supported by the
British government to further its racist policies. I ended up writing to the
Guardian, a national newspaper, to try to clear our names.
Marek
and I also worked on the representation of temporal reasoning, developing a
calculus of events, in the spirit of John McCarthy’s situation calculus, but
focusing on the way in which the occurrence of events initiates and terminates local
states of affairs. This work became a major thread of a European Community
research project, which explored among other applications an application to air
traffic flow management. Murray Shanahan further developed the event calculus
and featured it in his book about the frame problem.
Fariba
and I worked on integrity checking for deductive databases. We developed a
proof procedure that uses forward reasoning, triggered by an update, to check
that a database that satisfied integrity constraints before the update
continues to satisfy the integrity constraints after the update. We also
investigated the relationship between integrity constraints in databases and
rules and exceptions in default reasoning.
I
had hoped, during my six-month leave of absence to work on a second book, which
I tentatively titled “Logic for Knowledge Representation”. Instead, I worked
mainly with another PhD student, Kave Eshghi, on abductive logic programming.
We adapted the proof procedure for integrity checking to the problem of
checking that abductive hypotheses, generated by abductive logic programs,
satisfy integrity constraints. We applied the proof procedure to give an
abductive interpretation of negation as failure in logic programming.
Just
as my leave of absence was ending, I received an invitation from
Soon
after the start of the Compulog project, Fujitsu Research Laboratories, which
was one of the main partners in the Japanese Fifth Generation Project, approached
the College with a proposal to support research on logic programming in our
group. As a result of the subsequent
discussions, Fujitsu supported a five-year project, focused on abductive logic
programming, during the period 1990-95.
In
the beginning, the Fujitsu project supported Francesca Toni, as a research
student. But, when the first three-year grant for the Compulog project ended, I
transferred to the Fujitsu project and extended the leave of absence from my
College work.
During
the first part of this period, I worked mainly on abductive logic programming
with Francesca Toni and Tony Kakas. While trying to give an intuitive
explanation of Dung’s admissibility semantics for logic programming, we
formulated an interpretation of the semantics in terms of arguments defending
themselves against attack from other arguments.
Dung
generalised and abstracted this argumentation interpretation of the
admissibility semantics and applied it to other logics for default reasoning.
Francesca and I collaborated with Dung during his several visits to
Towards
the end of the Fujitsu project, Fujitsu encouraged me to investigate the
application of logic programming to multi-agent systems. This proved to be the
most important turning point in my research since my work on logic programming
in 1972.
The
biggest surprise, which came out of this work, was the realisation that, as a
model of computation and reasoning, logic programming is much more restricted
than I had previously understood. Fortunately, our earlier work on integrity
checking in deductive databases and on abductive logic programming provided
much of what was missing. Integrity constraints and integrity checking provided
not only the missing functionality of condition-action rules, but also the
additional functionality of commitment rules, prohibitions and obligations.
Fariba Sadri joined me in this work.
When
the Fujitsu contract ended, I became slowly reintegrated into the life of the
Department. Logic programming was beginning to go out of fashion, and the logic
programming group was no longer seen as a threat to the balance of power.
Indeed, my own rehabilitation was so complete that, during the period 1994-97,
I became a member of a four person Departmental Executive Committee, and was
even given the title of ”Senior Deputy
Head of Department”.
I’m
not really sure what motivated me to get so involved in the running of the
Department. Perhaps I wanted to show that I could rise above the parochial
interests of the logic programming group and could help to look after the
interests of the Department as a whole.
The
Department had both external and internal problems. Externally, we suffered the
same fate as many other Computing Departments elsewhere. We were the poor
relation of the more established departments, and we were inadequately resourced
in comparison. When the College decided it should do more to promote
Information Technology, it looked primarily to the Electronics and Electrical
Engineering Department for its lead.
To
some extent, our low standing in the College was partially our own doing, the
result of a long history of internal conflicts between different, competing
groups. Perhaps it was because I had once been in conflict with the rest
of the Department myself and because I
had now made my peace that I was so welcome on the Department’s Executive
Committee.
I
began to find my teaching more and more tedious. The biggest problem was
preparing the examinations. The British examination system is very rigid, and
examination papers have to conform to strict constraints. In particular, they
need to be approved by an external examiner, and have to be prepared early
enough to leave time for any changes required by the external examiner. As a
consequence, questions often need to be set and submitted for approval before a
course is halfway through. I found that these constraints increasingly
inhibited the amount of spontaneity and enthusiasm I could generate for my
teaching.
In
November 1996, the then Head of Department was so unhappy with the state of the
Department and with our relations with the College that he resigned from his
post. He agreed to stay on as Head
until the Rector found a replacement. By the beginning of March 1997, there was
still no news from the Rector, and the rumour went around that the Department
would be broken up and distributed between the Mathematics and the EEE
Departments. In desperation, as Senior Deputy Head of Department, I went to
talk to the Rector myself.
My
real goal was to return to full time research, to work on my book and to be my
own boss. Instead, the Rector invited me to become Head of Department, and I
accepted. One reason that I agreed to become Head was that I thought that it
would give me the opportunity to apply Logic to the practical problems of the
Department.
I
planned to try to develop general rules to solve problems that would otherwise
involve individual, ad hoc negotiations – such problems as deciding academic
workloads, the amount of overheads needed for research grants, and the
distribution of research grant overheads between the Department and the grant
holders. I thought that establishing a clear set of rules that applied to
everyone alike, without favour or malice, would take the politics out of making
decisions.
At
first, I looked to the College for examples of best practice. I found a number
of different methods used in other departments to calculate and regulate
workloads, but I couldn’t convince the staff in the Computing Department to try
them out. Believing in Logic to the extent that I did, I wasn’t inclined to
impose by force what I couldn’t achieve by logical argument.
I
was even less successful in getting advice in the College about how to
calculate the amount and distribution of research grant overheads; and this was
one of the areas where some of the most difficult problems arose in the
Department. People couldn’t agree whether research overheads should mainly
support the groups doing the research or support the Department as a whole. The
College as a whole had no policy about this, and different departments had
widely different policies and practices. Discussions in our Department didn’t
produce any consensus either.
Although
I tried hard to formulate general rules, I didn’t succeed in convincing the
Department. In addition, there were too many other problems that needed
attention. These ranged from external problems of trying to get more resources
from the College to internal problems of allocating scarce resources, such as
office space, within the Department. I was surprised and disappointed to
discover the extent to which people were unwilling to sacrifice their own
personal interests for the greater good of the community as a whole.
I
resigned as Head of Department, handing over to my successor in July 1999, and
taking early retirement, at the age of 58, on
Having
left the Department, I planned to focus on writing my book about the
application of Computational Logic to everyday life, aimed at a general,
non-technical audience. But first there were a number of other matters that
needed to be cleared out of the way, some purely academic and others domestic.
These took longer than I expected.
In
the meanwhile, I was able to take advantage of extended invitations to the
Among
other activites in which I have taken part, I organised a number of “writers’
workshops”, mainly for PhD students at
I
enjoyed these workshops more than any of the other teaching I had done since
joining
My
main focus remains on the book I am writing, and I have now made enough
progress on the book to acknowledge that I am actually writing it. Trying to
make it accessible to an intelligent, but non-technical audience is proving to
be much more difficult than I had expected, and to some extent you could say
that I am still trying to find my new voice.
My
interest in Logic and my search for truth were triggered in part by my high
school reading of Joad’s “Guide to Philosophy”. I would read one chapter, say
about Plato’s philosophy of ideas, and be totally convinced; and then read
another chapter, say about Aristotle’s empiricism, and be convinced again, only
this time about a completely different philosophy. One of the reasons I later
majored in mathematics at the
My
studies of Logic and Mathematics led me to the truth I was looking for. I
became a relativist, an idealist and a pragmatist. The truth, I thought, is
that there is no truth. Any set of beliefs is as good as any other set of
beliefs, provided it is coherent and is tolerant of other beliefs. In
mathematics, I adhered to the philosophy of formalism, which holds that
mathematics is just a symbol manipulation game, tempered by quasi-empiricism,
which holds that abstract mathematical theories and theorems are to be assessed
by their value for more concrete applications.
The
attractions to me of the idea that truth is relative, that truth lies in the
mind, and that the ultimate test of a set of beliefs is whether or not they
work in practice were not just theoretical, but also ethical. It seemed to me
that much of the evil that there is in the world can be traced to a belief that
there is only one truth and that all other beliefs are not only false but are
not to be tolerated.
This
philosophy influenced my technical work. I wrote a paper called “Logic without
Model Theory”, which argued that Logic could be understood in purely syntactic
terms, without the classical notion of truth, which relates sentences
representing beliefs with real states of affairs. I maintained that, instead of
truth, what we need is an appropriate notion of coherence, which relates
beliefs with observation sentences describing the belief holder’s interactions
with the environment. I formulated an earlier version of this idea in the final
chapter of my book, Logic for Problem Solving.
More
recently, this philosophy has also underpinned my work with Francesca and Dung
on the theory of argumentation. The theory formalises the idea that a set of
beliefs is admissible, provided only that it can defend itself against all
objections and that it does not object to itself. This is a “credulous”
philosophy, which tolerates the possibility that there can be more than one set
of admissible beliefs dealing with the same situation.
My
recent work with Fariba on multi-agent systems or, more accurately, on agents
that combine proactive and reactive behaviour has made me rethink my earlier
idealist philosophy. I now believe that the idealist philosophy undervalues the
significance of the environment in which agents are embedded. I believe, differently
from before, that the environment is a real world, which gives meaning to an
agent’s thoughts, in the same way that a model, in the sense of model theory,
gives meaning to sentences in logical form.
This
new philosophy does not mark a complete reversal of the earlier one. In
particular, it is compatible with the credulous argumentation theory and with
the pragmatist philosophy that the ultimate test of a set of beliefs is that it
be useful for dealing with experience. Only now, I believe, not that experience
might be a virtual experience, all in the mind, but rather that it is imposed
upon us by an external reality.
The
new philosophy has both technical and ethical implications. Technically, it
takes the notion of truth, rather than proof, to be the core relation that links
beliefs with experience. In particular, whereas before, in my work on the
situation calculus and event calculus, I regarded the meta-predicate holds(P, T) as expressing that the proposition P can be
proved at T, I now regard it as expressing that P is true at T.
The
new, realist philosophy also supports the approach to multi-agent systems that
uses a shared memory or environment to coordinate interactions between agents,
in preference to the message passing model of interaction that seems to be more
prevalent today, and which was earlier the dominant model of concurrency in
logic programming and the Fifth Generation Project.
Ethically,
it challenges the more liberal relativist ethics, which comes dangerously close
to holding that there is no right or wrong, only tolerance and intolerance. It
is something that I haven’t yet fully thought through.
There
is another theme that has influenced my life and work, perhaps going back, like
my concerns about truth, to problems in my childhood. In many respects, it a
variant of the problem of whether there is one truth or many alternatives: What
should we do when two belief systems come into conflict, and when the appeal to
mutual tolerance is not good enough?
I
like to think that much of my technical work has been motivated by trying to
reconcile conflicts between different technical approaches to related problems.
The best example of this is the way that logic programming emerged from the
conflict between logical and procedural representations of knowledge.
Here
the solution was not just to live and let live, although that would have been
far better than to kill or be killed. It was to try to disentangle the points
of conflict from the points of agreement, to operate, as much as possible, on a
higher, more abstract level, where concrete and sometimes arbitrary decisions
are irrelevant, and then to put the pieces back together again, leaving out the
ones that caused the most trouble and keeping in the ones that contributed the
most benefit.
My
work on combining proactive and reactive reasoning is both the most recent and
the most explicit such attempt at conflict resolution. Here the proposed
solution is not just to combine two existing alternative approaches, logic
programming and production systems, but to find a point of overlap and to unify
the alternatives at that point. In this case, the proposal unifies integrity
constraints with condition-action rules. It combines logic programs, which are
missing in production systems, with the agent cycle, which is missing in logic
programming.
Another
recent attempt at reconciliation is the work on argumentation with Francesca
and Dung, in which we develop a more abstract approach to argumentation, which
has most of the alternative, earlier approaches to default reasoning as
concrete instances. Thus, we have been able to show that the alternative,
conflicting approaches are mostly identical at the abstract level, and differ
only in the different ways in which they make concrete choices.
I
have always tried to relate my technical work to every-day life, but so far, my
informal attempts to develop systematic procedures for conflict resolution have
not produced very impressive results. In particular, the results of my attempts
as Head of Department were particularly disappointing to me. Part of the
problem is, even if you can find a rational way of reconciling a conflict, you
can’t always convince the relevant parties to accept the solution – especially
if one of them has to give up something without receiving anything in
return. None-the-less, finding ways to
systematically reconcile conflicts is an area that I still hope to contribute
to in the future.