Draft for discussion purposes (Version 1)
A Possible Evolutionary Neural Net Model of Turing’s “Simple
Child Brain”
A Reassessment of the CODIL Project
By C. F. Reynolds
Abstract
In 1968 John Pinkerton and David Caminer, of LEO computer fame,
decided to fund research into a user-friendly symbolic assembly language
(CODIL) for possible use in future computer central processing units. Like many
other experimental computer languages at the time it never became commercially
viable and active research ceased in 1988. Recently it has been decided that
the archives of this project should form part of the LEO Society Archives to be
housed at the Museum of Computing History, Cambridge. This has provided an
opportunity to re-assess the system in the light of current research. and it is
clear that one of the limitations of the original research, and undoubtably one
of the reasons the research was abandoned, was the lack of a suitable
theoretical model to explain how the system worked.
This paper shows that CODIL can be best understood as a language for
transferring knowledge from one neural net (the human brain) to another net
(the memory of a CODIL computer). The simple processing system could reasonably
be seen as a crude but logically powerful working model of human short term
memory. The approach fits well with Turing’s 1950 suggestion that a child’s
brain might be considered to be like a blank notebook, with a simple mechanism,
and where intelligence emerges as a result of being taught by adults.
The reasons to think the CODIL research can be considered as a simple
working model of the Turing’s child brain are:
·
It provided a working model of a surprisingly
simple network-based language that could handle sophisticated applications from
complex commercial tasks to supporting a powerful heuristic problem
solver.
·
It can be considered as a version of a primitive
natural noun-based language, which has developed as a result of deep learning
as information has been passed from generation to generation over perhaps a
million years.
·
It suggests an evolutionary pathway for the
origins of human intelligence
Because the research was, unfortunately, discontinue thirty years,
this paper leaves a number of significant questions unanswered, If this model is accepted the unfinished
nature of the reseach raises questions about the support and funding of
unconventional “blue sky” projects – but that is an issue which is more
appropriately raised elsewhere.
CONTENTS
Introduction
The Child Brain Model
The Child Brain Model
Background to the CODIL Model
The CODIL Language as Implemented
The FACTS and a Neural Net Model
CODIL Features relevant to the Neural
Net Model
Properties
Managing the FACTS
Fuzzy Matching
Alternative Definitions
CODIL and Natural Language
Learning, Levels and Neural Networks
CODIL in an Evolutionary Context
A Global Evolutionary Information
Flow Model
Implications of a CODIL=like Model
Conclusions
APPENDIX 1: A Brief History of the
CODIL Project
1967-1970 – The Origins of the CODIL
Research
1972-1980 – including TANTALIZER, a
Heuristic Problem Solver
1980-1988 – FIXIT and MicroCODIL
The Re-assessment of the Project
APPENDIX 2: MicroCODIL Reviews
Introduction
In 1950 Turing[1] described the imitation test and
suggested that one approach to demonstrate computer intelligence might be to
simulate a child’s brain and then train it. He wrote “Presumably the
child-brain is something like a note-book as one buys it from the stationers.
Rather little mechanism, and lots of blank sheets. … Our hope is that there is so little mechanism
in the child-brain that something like it can be easily programmed.”
In the subsequent 70 years significant advances have been
made in many relevant areas of brain and computing research and many artificial
intelligence systems using neural nets and other powerful mathematical tools
have achieved spectacular results. However in no way do they fit Turing’s idea
of a generalist simple note-book model of the brain which learns by interacting
with humans. Either no such simple model is possible or everyone has been
looking for a very clever model for anthropocentric reasons because it is
“obvious” that our brain works in a way that is very much better than animals[2]. The
present lack of a theoretical model of how the brain processes information is
emphasized by Professor
Terrence Sejnowski[3] writing about the
first 5 years progress in the massively funded US BRAIN program[4]:
We also
need to develop better theoretical approaches for understanding some general
principles about brain function. For example, the brain is a pattern recognizer
that can generate abstractions from the inputs it receives from the
world. Well, we now have machine-learning algorithms that can recognize
patterns in massively complex data sets. Deep learning networks are
commercially very successful–Google uses them, for example for speech
recognition, language translation and search. They also have some similarities
with how the brain might represent data. We need theoreticians to use these and
even more powerful algorithms to better understand the brain.
Clearly most current research is looking for an even more
highly-powered model, because the sophisticated artificial intelligence models
have not provided us with the answer and the majority of researchers have ruled
out Turing’s Child Brain model as being too simple.
But are they right to do so? This paper suggests that
relevant research on a “simple theoretical model,” which could support
significant information processing activities, started some 50 years ago under
the name of CODIL[5] but was
later abandoned because it failed to get sufficient support and funding. The
current assessment of the abandoned project looks at the evolutionary
implications of CODIL and Turing’s child brain model – which suggests that
human intelligence is the result of information passing from generation. If you
also include information being transferred between adults the resulting
intelligence transferred to a child’s brain is the result of a “deep learning”
within a vast but logically simple network involving billions of human brains,
each with approaching a hundred billion neurons, operating over possibly a
million years or more.
So what happened to the “lost” research? During the development of computers many
different computer languages were created and nearly all have vanished, and
often the records of what they were trying to do have been lost. The extensive
project archives[6] of one of these “lost” languages is
currently being considered for inclusion in the LEO Computer Society[7] archives
at the Museum of Computing
History[8]
at Cambridge. Before the papers are filed away in dusty boxes I decided to review
the CODIL research[9], carried
out between 1967 and 1988, in the light of contemporary research.
The original research, which was supported by the LEO computer[10]
pioneers John
Pinkerton[11]
and David Caminer[12], was
aimed at designing a computer with a human-friendly symbolic assembly language.
This was aimed at complex commercial tasks which needed a good human interface
to a transparent (rather than an incomprehensible black box) system. Despite initial success of a pilot simulation
the hardware aspects of the project were abandoned as a result of the merger to
form ICL[13]. While
the research continued as a software project at Brunel University[14] it
suffered the fate of many other experimental computer languages and never
became commercially successful.
The re-assessment[15] has shown that at the time of the
original research the theoretical foundations of CODIL were not understood and
the approach can best be explained in terms of
a network model, rather than a conventional stored program computer
model. The surviving research data can be re-interpreted to show that the CODIL
language provided a way for information to be transferred from one neural net
(the brain of the human user) to the neural net (represented as a table of
connections between nodes) of a human-friendly computer clerk. The simple and task independent “decision
making unit” can be seen as a model of how human short-term memory works and
this suggested a comparison with Turing’s idea of an easily programmed and
initially empty child’s brain. Of particular relevance is one of the test
applications, TANTALIZER, in which CODIL is shown to be capable of supporting a
powerful heuristic problem solver. While no more experimental research has been
done since 1988 (because the main-frame
computers that supported the CODIL interpreters
no longer exist) the re-assessment suggests that the system is likely to be
compatible with the current research on learning in neural nets in as far as low level pattern recognition is
concerned,, and to link into a global
information flow network model which includes pathways by which human
intelligence has evolved.
This paper briefly outlines the history of CODIL and the
applications it was used for, using the very large commercial application which
inspired the research to provide examples, and TANTALIZER a powerful heuristic
problem solver. It describes the CODIL language and how it was implemented as a
table-driven system, which dynamically generates individual mini-programs for
each transactions, in contrast to the convention approach which is to rely
on a global program which can process
every possible transaction.
The paper also shows that the CODIL knowledge base tables can
be viewed as a map of a neural network, defining the nodes and the ways they
are connected. The idea of the child brain model automatically raises the
question “who taught the first teacher?” and an evolutionary network of
“decision making units” is used to suggest a possible evolutionary pathway for
the appearance of language and human intelligence. The simple model also
suggests some of the observed weaknesses of the human mind, and supports the
idea that human intelligence owes more to cultural information passed from
generation to generation than to any uniquely human information genetically
controlled processing techniques.
Appendix 1 gives details of the different versions of the
CODIL interpreter and the test applications. Appendix 2 gives published reviews
of the BBC computer version, MicroCODIL;
The Child Brain Model
In 1950 Alan Turing wrote the paper “Computing
machinery and Intelligence”[16]
which introduced the idea of an imitation
game[17]
to assess the apparent intelligence of a computer – by testing, under
controlled conditions, whether a human could identify whether they were
interacting with a computer or another human. He asked:
May not machines carry out something
which ought to be described as thinking but which is very different from what a
man does? This objection is a very strong one, but at least we can say that if,
nevertheless, a machine can be constructed to play the imitation game
satisfactorily, we need not be troubled by this objection.
In the subsequent nearly 70 years research in the field of
artificial intelligence has advanced very considerably and there are many
systems which can match, and even greatly exceed the ability of a single
unaided human to carry out specific tasks. These successful systems often
involve the use of “big data,” powerful mathematical and statistical techniques
and significant computing power in ways which may be deemed satisfactory, in
that they perform useful tasks, but which clearly do not simulate the way the
human mind works. Perhaps this is not
surprising as such powerful mathematical tools would not be available to the
animal brains from which the human brain evolved.
A search of the voluminous literature failed to find a
mathematically based information flow model which approach the imitation game
by simulating how activities at the neuron level in the human brain combine
with remembered information to produce what we consider intelligent behaviour. In fact Turing suggested that we should start
by looking a very simple basic model which, in effect, became intelligent
because of what it learnt from intelligent humans
Instead of trying to produce a
programme to simulate the adult mind, why not rather try to produce one which
simulates the child's? If this were then subjected to an appropriate course of
education one would obtain the adult brain. Presumably the child-brain is
something like a note-book as one buys it from the stationers. Rather little
mechanism, and lots of blank sheets. (Mechanism and writing are from our point
of view almost synonymous.) Our hope is that there is so little mechanism in
the child-brain that something like it can be easily programmed. The amount of
work in the education we can assume, as a first approximation, to be much the
same as for the human child.
A key feature of such a model is that when a human child is
learning the instructor was once a child, who had to be instructed, and the
intelligence shown by the child is the result of passing information from one
neural net (the brain of the instructor) to another neural net (the brain of
the child). It is reasonable to assume that the communication is two way and is
somewhat similar to the imitation game’s questions and answer sessions. The
child can ask the instructing adult for guidance and clarification, and the
adult can set tests to see if the child has correctly accepted the information
provided. Although Turing does not explicitly say so the child brain model
implies that the intelligence of any living human is the result of combining
and refining the knowledge of millions of individual neural nets over many
thousands of generations involving countless question and answer sessions.
What is needed is a working model which combines a logically
simple empty notebook and a logically simple processing language which is
capable of passing information between neural net systems and which will
support intelligent activities. CODIL provides such a model – as it aimed to
provide a symbiotic interface between the human user and a computer clerk. The
idea was for the basic information to be
provided by the human which was then processed by the electronid clerk in a way
that the human could easily understand[18]. While
CODIL is not a natural language its simple noun-based approach can be related
to the foundations of language and hence how the very first children were
taught by the very first teachers many hundreds of thousands of years ago. As
such the CODIL model also deals with the implied “chicken and egg” dilemma
inherent in Turing’s child brain model.
Background to the CODIL Model
The idea behind CODIL started in a
very different context to Turing’s imitation game. The context was the sales
accounting computer department of a major oil company in 1967. The target human
users were salesmen negotiating contracts in a very large and complex (and
hence unpredictable) market place and the computer was their very reliable
clerk, whose job was to use the contracts to price orders and send bills to the
customers. The aim was to get away from the massive black box conventional
application program and replace it with a dynamically flexible and transparent
system which would work symbiotically with the salesmen. What was needed was a simple formal language
to describe contracts, and an easy to understand processing routine. Because
the date was 1967, it was also essential to use the computer resources
efficiently.
The original proposal never got
beyond the outline design stage but it was quickly realised that the idea could
be applied to a wide range of information processing tasks where a flexible and
friendly human computer interface would be useful. It was thought that the key driving routines
were almost certainly simple enough to be incorporated in the central
processing unit of an early 1970s computer (c.f. Turing’s “so little
mechanism in the child-brain that something like it can be easily programmed”).
The syntactically simple language (one of the first thing a child learns is to
associate names with objects) would effectively be the symbolic assembly
language for this modified computer. The
CODIL statements would be stored in an associatively addressed knowledge base
(Turing’s “something like a note-book … rather little mechanism, and lots of
blank sheets”).
It was only at the time of this
assessment of the project archives that it was realised that the knowledge base
could be considered to describe the connections in a neural network, and the
processing mechanism scanned through the network activating the nodes that
described the current context.
The CODIL Language as Implemented
CODIL (COntext Dependent Information
Language) is a language for describing patterns which are stored in a knowledge
base and the task independent decision making unit processes information by
matching patterns. While many different applications were tested in the life of
the project (see Appendix 1) it seems appropriate to introduce the language
using the application which inspired the research
In the initial examples I describe
the systems using examples based on the original application. Hardware related
system functions (for instance to control the input, to describe the output, storage of information and arithmetic)
have been omitted.
In CODIL the basic unit of
information identifies a named set or a subset to a named set, called a CODIL
item. Thus CUSTOMER NAME identifies the set of all customer names while PRODUCT
= DIESEL FUEL identifies
the subset of products called diesel fuel. QUANTITY >= 1000 identifies a range of acceptable
values in the set quantity. Items may also be evaluated dynamically[19] as in TOTAL
PRICE IS = QUANTITY * UNIT PRICE.
A CODIL statements is a list of
associated items which form a significant pattern and so a single clause in a
sales contract could be:
CUSTOMER
NAME = SMITH, PRODUCT = DOMESTIC FUEL OIL, DISCOUNT = 10%.
Such statements are organised in
files[20] such
as:
0 CUSTOMER CONTRACTS,
1 CUSTOMER
NAME = BROWN,
2 PRODUCT
= PETROL,
3 STANDARD
GARAGE CONTRACT.
2 PRODUCT
= DIESEL FUEL,
3 QUANTITY
>= 1000 gallons,
4 DISCOUNT
= 5%.
1 CUSTOMER
NAME = NOBBY’s AIRLINE,
2 PRODUCT
= JET FUEL,
3 AIRPORT
= HEATHROW,
4 AIRPORT
SURCHARGE = 5%.
3 AIRPORT
= STANSTEAD,
4 AIRPOST
SURCHARGE = 7%.
The above example
contains four statements (two for each customer) and by eliminating duplicate
items, and numbering the position of each item, the result is a more compact
and more readable format. The file names (shown in italics) also represent items
and the STANDARD GARAGE CONTRACT in effect provides a crosslink to
another file which contains the statements applying to garages with no
individually drafted contracts.
In the simulation
programs there is a single statement, called the FACTS which describes the current context
as seen by the system. For example assume that 2000 gallons of diesel fuel has
been delivered to Brown the FACTS would contain:
CUSTOMER
NAME = BROWN, PRODUCT = DIESEL FUEL, QUANTITY = 2000 gallons.
By pattern matching
the FACTS with the knowledge base the CODIL
“decision making unit” will find the[chris rey1] statement:
CUSTOMER
NAME = BROWN, PRODUCT = DIESEL FUEL, QUANTITY >= 1000 gallons, DISCOUNT =
5%.
and DISCOUNT
= 5% would automatically
be moved to the FACTS. Jn practice the pattern matching process in the
decision making unit would continue and the price of a gallon of diesel would
also be added to the FACTS, followed by a calculation to add the total price.
It is important to
realise that filenames also represented sets and CUSTOMER
CONTRACTS = TODAYS SALES represents a set in which, every statement in the TODAYS
SALES set is loaded
into the FACTS and is augmented with the appropriate contract details
relating to the customer[21]. It is
also possible to search the knowledge using the set QUESTION
FILE to search the CUSTOMER
CONTRACTS to display
a list of all the customers which have a contract involving AIRPORT
= HEATHROW.
0 QUESTION FILE,
1 AIRPORT
= HEATHROW,
2 CUSTOMER
(DISPLAY).
The key factor to
realise is that the decision making unit’s pattern matching routines are
completely task independent and highly recursive (which allows very much more
complex tasks than those illustrated here) and all the rules are held in the
knowledge base. When information is placed in the FACTS the system simply selected the
relevant rules – and in conventional computing terms generates a microprogram
tailor-made for the current task and
couched in terms that sales staff could understand. The result is a
transparent system as not only is it easy amend to search the knowledge base of
rules but the system can readily provide answers to “Why did you give that
result?” or “What would the final price be if we tried this new kind of
contract?” This is in complete contrast to the conventional programming
approach which involved splitting the information into “program” and “data” and
creating (often at great expense) a “black box” global program which embodied
every know rule, written in a conventional procedural computer language which
the average human users find very hard to understand.
The Facts and a Neural Net Model
At the heart of the
CODIL system are the FACTS which contain the description of the current working
context. When the work on CODIL started in 1968 the possibility of designing a
computer with processor driven by a human friendly assembly language meant
providing a series of associatively addressed hardware “registers” for the FACTS. One of the initial research aims
was to see how many registers might be needed. It was quickly realised that the
number was comparatively small – because as the number increased it was harder
for the human user to understand what the system was doing. It became clear that for tasks in which the
system was making logical deductions the practical limit was set by the size of
the human short term memory – which is considered by Miller[22] to be
about seven. Larger numbers of items
were possible in retrieval tasks where some of the items were not really
active. It was found that the decision making unit had to organise the FACTS in a way which kept the number of
items small, and to ensure that items which were no longer needed were lost as
soon as possible.
In reassessing the
results of the project years later it became obvious that the CODIL system had,
to some extent, been modelling the way human short term memory processed
information. At the time CODIL was being developed the possibility of using a
neural net model had been considered but had been dropped, at least in part
because of the views of Papert & Minsky[23]. Many people
now feel that their pessimistic predictions discouraged other researchers from
investigate neural nets. For this reason I decided to look further at neural
nets.
What I found is that
the CODIL knowledge base can be seen as describing connections in a neural
network and that CODIL can be seen as a language for transferring knowledge in
the human neural net brain to a electronic neural net which processed information
in a way that the human can understand. For instance consider the following
statement where all the names are the names of nodes in a neural net.
CUSTOMER
NAME = NOBBY’S AIRLINE, PRODUCT = JET FUEL, AIRPORT = HEATHROW, AIRPORT SURCHARGE = 5%.
The item CUSTOMER
NAME = NOBBY’S AIRLINE describes
a link between the CUSTOMER NAME node and the NOBBY’S
AIRLINE node, and also
defines the nature of the set relationship between the two nodes. The statement
as a whole describes an “event” linking the four items. Now the FACTS can be seen, not as special
locations, but rather as representing active nodes in the network. As
information (in the form of node names and links) are added to the system the
relevant nodes become active. This means that as details of a sale to NOBBY’S
AIRLINE are typed, the
relevant nodes in the network become active and when the nodes representing the
first three items all become active at the same time the nodes for AIRPORT
SURCHARGE = 5% also
becomes active.
Thus it would seem
that the note book with a simple mechanism discussed earlier can be explained
in term of a neural network model of human short term memory.
CODIL Features relevant to the Neural
Net Model
The earlier versions of the CODIL
interpreter contained a number of features which in retrospect were only there
because they were relevant to conventional programming systems, and were phased
out in MicroCODIL where the system used windows to look inside the transparent
box. Overall the chief effect of these changes has been to introduce more
recursion, the ability of associating inheritable properties to items, and reduce
the need for explicit commands. In addition aspects of the language relevant to
device-dependent activities, such as formatting text on a graphics screen or
the details of the arithmetic unit, are irrelevant in discussing the
relationship between CODIL and neural networks.
Properties
Properties are used to control the
flow of information, including specific transfers between the human user and
the CODIL system, and are particularly relevant to the sharing of properties in
the network. The best way to explain properties is to look at some simple
examples from MicroCODIL,
!QUERY is a system word[24] used to
indicate where the CODIL system may require guidance from its human user. If
the CODIL item encounters DELIVERY (!QUERY) = FIRST CLASS POST.
the system prompts the
human user for a “True” or “False” response or accepts an alternative value,
displaying:
DELIVERY
= FIRST CLASS POST?
and requesting a response[25]. The
item DELIVERY
(!ACTION) = !QUERY tells
the interpreter that !QUERY is the default property associated with DELIVERY, and ensures that the human user is
asked to check every delivery. If the
qualified item is a file of statements, rather than a single item the property
is applied to every item on the file. Thus PRICE SALES (!QUERY) =
TODAYS SALES will single
step through the process, asking the user to confirm every step.
Properties can also be inherited by
defining the relation between items such as MURDERER (!ISA) = PERSON and VICTIM (!ISA)
PERSON, and in addition
it is possible to set up and access
files containing complex alternative definitions.
In processing terms the decision
making routine use the existence of an item property to interact with the user,
to copy statements from the FACTS to the knowledge base, or recursively look for further
information in the knowledge base before continuing where it was.
Managing the FACTS
The whole purpose of having the FACTS is to provide a window on the current
working context which can be seen by the human user and the CODIL interpreter.
In practice the software could handle a large number of items so the constraint
is the number of active items of
information which the human user can handled without being confused.
This is clearly related to the human’s short term memory. Once a working
interpreter became available it was obvious that in any deductive task the
maximum number should be somewhere between 5 and 10. This corresponds to
Miller’s magic number seven plus or minus two[26]. As statements
in the knowledge base are logically copies of information once held in the
FACTS this puts a similar limit on any statements used in the deductive
process.
In theory the basic design of the
CODIL interpreter could come with hundreds, and the software was written
allowing a maximum of 31. This meant that part of the processing algorithm had
to ensure that items were only held in the Facts when they were needed, and
removed once they are no longer needed.
If the idea was simply to model human short term memory a “forgetting
algorithm” could ensure that the least used items dropped out when space was
needed for new items, but of course when a human short term memory gets
overloaded they forget what they were doing. However the whole purpose of CODIL
was to provide a reliable clerical assistant who wouldn’t get confused under
pressure (which is what happens in the human case) so a more sophisticated
algorithm was used.
Fuzzy Matching
In its role as a reliable clerk the
default when two items are compared is either “true” or “false” but the use of
properties makes it possible to handle uncertain or poorly defined information.
if required items can be given probabilities such as DISEASE (0.75) = MEASLES
and there are property functions, such as (!APPROX) to calculate or assign probabilities, where there are
multiple items with probabilities the decision making unit combines them as
appropriate, and rejects any path as “false” when the probability falls below a
pre-defined threshold..
Alternative Definitions
The later versions of the interpreter
allowed alternative definitions such as shown the following recursive example
relevant to a historical data base:
0 HISTORIC
SYNONYMS,
1 OCCUPATION = FARMER,
2 ADDRESS (!CONTAINS) = FARM,
3 LIVESTOCK = CATTLE.
3 LIVESTOCK = PIG.
3 CROP.
2 OCCUPATION = FARM BAILIFF.
2 OCCUPATION = HUSBANDMAN,
3 PARISH = SANDRIDGE.
1 LIVESTOCK = CATTLE,
2 LIVESTOCK = COW.
2 LIVESTOCK = BULL.
|
If someone is not
recorded as a farmer they should be treated as a farmer if they:
·
Live on a farm
and own cattle, pigs, or raise any crop
·
Are a farm bailiff
·
Recorded as a
husbandman in the records of the parish of Sandridge.
Cattle includes
cows and bulls, so a farmers is also someone who lives on a farm and owns
cows or bulls.
|
For the above to work OCCUPATION
and LIVESTOCK would
need to be given the default property
HISTORIC SYNONYMS,
CODIL
originated with a study of a complex commercial application where the original
legal documents would have been in highly formalized language to avoid
ambiguity – and where the information had already be structured as part of a
complicated computerized application. The result was a language for describing
objects, organized into sets and the result was, in effect a simple syntax
structure which described how things (nouns) were connected. Thus it is easy to
see, in an appropriate context, that the statement:
CUSTOMER NAME =
BROWN, PRODUCT = DIESEL FUEL, QUANTITY = 2000 gallons.
Is
a formal way of saying “Brown has brought 2000 gallons of diesel fuel.”
Moving
to a very different type of information it is easy for an English speaker
interpret the following structured list of nouns in a wide variety of different
English sentences.
MURDERER =
MACBETH, VICTIM = DUNCAN, WEAPON = DAGGER.
This
can be read as “Macbeth murdered Duncan with a dagger.” And
reordered as “A dagger was used by Macbeth to murder Duncan” … …
The
relevant language rules can also be expressed as structured lists of nouns:
SUBJECT = MURDERER, OBJECT = VICTIM, VERB
= MURDER.
There
seems little doubt that the most recent CODIL interpreter (and MicroCODIL if
given enough memory) have the child brain like ability to generate reasonably
realistic natural language output to describe the contents of the FACTS,
given that a human teacher supplies a knowledge base of grammar rules and a
suitable support dictionary. However
converting natural language into a knowledge base of connected nouns would be
harder using the implemented interpreters because they were designed to read
information at a level where the input is assumed to already consist of nouns
understood by the human user.
Learning, Levels and Neural Networks
In
CODIL the aim was to design a transparent information processing box and this
meant certain areas were deliberately not considered in any detail. While the
human user would appreciate a system which handled the current task in an
easily understood way he would also want to be protected from excessive detail.
For instance he does not want to know the mechanism by which the keyboard input
was held in memory and later displayed. In addition he would not want the
system to do things in a way he did not expect, unless he had specifically
asked it to see if the current task
could be tackled in a more efficient way.
As a result two areas relevant to current neural net research were not
considered in detail in the original research..
Neural networks are widely uses in
modern artificial intelligence application to look for patterns involving large
numbers of inputs – for instance to identify objects in a digital image
containing many pixels, or looking for patterns in the sales in a supermarket.
An important factor is that such learning applications that they tend to
involve “big data”, sophisticated matching algorithms and are computationally
heavy.
CODIL uses a very different approach
which is computationally much lighter. It is specifically designed to work at a
high level with people who have given names to the objects of interest and
initially “learning” simply means remembering what it is told. For instance, in
network terms:
YEAR = 1066, EVENT = BATTLE, PLACE = HASTINGS.
simply involves naming six nodes and
setting up links between them. In addition the human is likely to input statements
in a logical order, so that they are easy to find. For instance in the sales
accounting application which triggered the CODIL research it is pretty obvious
that all the statements that referred to a named customer should be held
together, and indexed to provide rapid access.
However some very limited work was
done which relates to machine learning. The ICL1903 version of the interpreter
was provided with a leaning memory area and if you put a statements comprising
a small task into it in random order and repeatedly search until the required
answer was found the memory would end up with the statements in an optimum
order, with any unused statements at the end. The only task that used this was
the heuristic problem solver TANTALIZER, which, for certain puzzles, generated
a series of statements needed to solve the problem and used the facility to
optimise their order. In most cases this resulted in solving the logic problem
very much faster that a more random search.
The design approach to the keyboard
input was considered a low level activity. The input routines were written in
conventional “black box” procedural code because the typical user would not
want the computer to tell him, for example, how it decided that the letter B R
O W N represented the word BROWN. The same black box approach was taken about
arithmetic calculation. In fact the CODIL model should be task independent and
at the time the project was abandoned the possibility of extending the system
to handle these lower level information processing tasks was being considered.
This suggested that the recursive framework could be extended to handle
subsidiary nodes at various levels – each of which had their own local context.
Such lower levels could well use established neural net learning methods and
they would not be seen by the human user.
CODIL in an evolutionary context
If one considers that the Turing
Child Brain model is a model which simulates human intelligence, it implies
that a significant part of human culture is passed between adults and children
from generation to generation. As humans
evolved from earlier ape-like primates it is useful to consider the emergence
of the first child brain in a wider biological context – along with the growth
of the cultural information passed to children by adults. To assess whether
CODIL is compatible with an evolutionary child brain model, and what we know
about human intelligence it is useful to
reduce the commonly accepted theories of Darwinian evolution, and the history
of cultural growth into an information flow model and this is discussed in the
following table
A Global Evolutionary
Information Flow Model
Turing’s child brain model requires a teacher, who was originally a
child, which required a teacher and to understand how intelligence originated
it is useful to think in terms of an all-embrassing hardware-independent
network of decision making nodes, of which a child’s brain is just one. A
“Decision making node” represents any entity which receives information and
as a result passes information on to one or more decision making nodes. A
node may normally seen as black box generating messages, but in theory (with
complete knowledge of all inputs, etc) it can be seen as an interacting group
of simpler nodes. In general simple nodes will pass simple messages and
larger nodes will send more complex messages. For instance a single neuron might
send a single bit of information, while the human node we call William
Shakespeare sent a message – the play “Macbeth” - which is still being
received by other human nodes long after his death.
The evolutionary network for genetic information is logically quite
simple. Every animal that ever lived can be considered a node with two
genetic inputs from its parents, and many unknown inputs from the environment
in which it lived. With perfect knowledge the network would take the form of
a vast family tree, with an active growing front, behind which there is a
narrow band where the nodes are still active. Some of the living nodes will
be human children, some will be their human teachers, while others will
represent totally different species.
Each animal will consist of a number of smaller nodes (organs)
competing for resources, and one of these nodes will be the brain, which in
turn is subdivided into smaller specialist nodes. The brain’s job is to help
maximise the chances of survival and is limited by the general evolutionary
economic rule that no organ becomes bigger, or more complicated, than is
needed to maximize the survival chances of the whole animal. While the brain
will build some kind of mental map of the environment in which its animal
host lives this information is automatically when the animal dies.
If there is a parent/juvenile relationship the situation changes,
from the simple follow-the-leader situation where the parent ensures that the
juvenile is in a suitable environment, through to simple trial and error
teaching, as is the case when an adult chimpanzee uses a stone to crack a
nut, with the young chimp watching and trying to imitate. However brains are
expensive organs, trial and error learning is slow, and time which might be
spent on other survival-related activities has to be spent by both the
youngster and the teaching adult. No species is going to evolve a brain which
holds more information than it can possibly trial and error learn in its
lifetime and this would seem to put an effective limit on brain size and
complexity.
Human brains appear to be an exception to this rule, as not only are
their brains bigger in proportion to the body size, but a considerable
proportion of a lifetime is spent either learning as a child, or acting as a
parent/teacher. In addition changes to
the body, such as the skull in a new-born baby and the shape of female pelvis
indicate a heavy investment in a large brain. In evolutionary terms there
must be a very good reasons for such a heavy investment. Two evolutionary
pressures seem to be significant.
·
Tools in the widest sense,
include hunting techniques and the use of fire, seem to be essential. If an
early human invented a new tool this might improve their chances of survival
but in evolutionary terms there is no advantage in such an invention unless
there is an effective way of passing the information on how to make and use
it on to the next generation. This clearly requires an effective means of
communicating tool-making skills between generations, and bigger brain
capacities as the number and complexity of the tools increased.
·
Changes in the climate
over the last five or six million years meant that there were changing
opportunities to exploit different environments using different tools. This
lead to different sub-species which occasionally interbred, and presumably
had different tool-making skills. When this happened the children would be
exposed to the tool-making knowledge of both their parents – so children who
had a larger, more receptive brain would be a big advantage.
If we extend Turing’s
child brain model back in time the critical start of the process could be the
appearance of a language suitable for passing on tool making skills. But
language is a tool for building better tools,
and the result will be the development, over many generations, of a
better language tool, capable of building ever more powerful tools.
Eventually this led to further powerful tools for transferring information
between brains, such as writing. One can now extend the idea of a global
information flow network to include both individual brains, groups of people
working together, and tools such as computers.
|
In the above evolutionary model the turning point towards a high level of intelligence
appears to be when our early ape ancestors had important information to
exchange between generations about tools and started to use a simple language.
At this point one has a “simple” animal brain and some kind of prototype
language and it is useful to consider how far CODIL and its task independent
pattern matching routine might be a model of the early child brain and the
early prototype language. The following points identify the areas where useful
comparisons can be made:
·
Neural network: Clearly a child’s brain contains a very significant neural network,
which needs filling with information, While the CODIL research used a table
driven digital approach this can be interpreted in terms of neural network.
·
Naming Objects: One of the first things a
child will learn to do is how to name objects and then classify them into
groups of similar objects. The ability to identify object with names also
occurs in animals – for example in trained dogs. CODIL is a language using
lists of names, organised into named sets, to describe the current situation,
and to hold information stored in the knowledge base.
·
Active Memory: Humans, and presumably animals, have a conscious window on the world
which holds some kind of representation of the current context. Human short term memory has a limited capacity
of about seven items and this is reflected in “The Facts” in the CODIL
interpreters. In computer terms the CODIL system is deliberately restricted to
ensure that humans can follow what the system is doing, and there is no reason
why the size of “The Facts” could not be much bigger in an artificial
intelligence system which did not need to explain to humans what it was doing.
·
Recursion: The power of CODIL arises from the combination of a simple pattern
matching algorithm and almost unlimited recursion. This works at different
levels of complexity and also allows properties to be shared across the sets. The implemented interpreters assume a
base level input consisting of digital representations of words representing
objects in the human user’s world. There is no reason why the recursive model
should not be extended to handling the recognition of words in strings of
characters, of even digitized imaged of text, with one reservation. The
restriction is that each level of processing would need is own “Facts” – for
instance one for analysing images to identify letters, one for arranging
letters to words, and one (the current CODIL level) for making decisions using
words. The would be similar localized processing for all sense inputs. There
would need to be some cross-talk between levels – for instance a higher level
may ask a lower level “can you see/smell/hear a dog” but, in part because of
the limited technology at the time the work was started no research was carried
out on multisensory inputs before the project closed.
·
Complexity: Young children (and baby
animals) find themselves in a complex world, surrounded by what Donald Rumsfeld
described as “unknown unknowns.” CODIL started from a study of how sales staff,
who had to sell into a complex market place, could be interfaced to a
rule-based sales contract system. The requirement was a good robust interface
for exchanging information and the ability to easily accept changing rules.
This is diametrically opposite to the type of well-defined closed tasks, such
as chess-playing, which dominated early artificial intelligence research.
·
Fuzzy Logic: Any system designed to
recognise complexity must be able to handle missing, approximate, ambiguous and
uncertain information and a range of facilities to handle these were built into
MicroCODIL, in many cases based to features in the larger interpreters., In
effect these meant that the system could work on the basis of “may be true” and
“maybe false.” This could lead to
problems involving negatives (you can’t explicitly see “the elephant is not in
the room”) and there is no doubt that
the human mind finds positive information easier to handle than negative
information. Minsky’s
observations[27] about
the limitations of “Perceptrons” can be a problem if you are looking at it as a
trained mathematician – but if you are simulating human intelligence there is a
need for some ambiguity, because humans are not mathematically perfect logic
machines.
·
Programming Power: The fact that CODIL
could be used to write a powerful heuristic problem solving “program” which
worked by generating a “program” to solve the puzzles put to it shows that the
simple child’s brain model is capable of supporting sophisticated information
processing tasks of a type which, in humans would be described as intelligent.
Because it uses a network memory model it is not suitable for programs which
work best with access to fixed format array address by number – but of course
the stored program computer model was designed to do mathematical task which
humans are unable to do quickly and accurately.
·
Learning: Turing’s idea for a child’s
brain model was that a significant part of its “learning to be intelligent”
would be from a human teacher and the original idea behind CODIL is that it
would simply accept what it was told and process information accordingly. Some
simple learning and forgetting functions were tried, for instance ordering
statements so that the most useful were accessed first, but apart from
TANTALIZER, which optimised the time to solve problems by ranking statements in
this way, only limited work was carried out. However the recursive nature of
CODIL suggests that there would be no difficulty in adding yet another
recursive path, with each level having its own facts. This would provide a
hierarchic framework processing the raw input information, and with trial and
error learning at the lower levels.
·
Natural Language: CODIL transfers
information between the human and computer neural net visually, in a way that
links nouns within sets, and displays closely related multiple statements by
using indentations to represent the structure as a connected tree. The Macbeth
example given earlier shows that it is easy for someone who knows a natural
language to understand the CODIL representation. Trying to pass the same
information in speech involves reformatting information held in a network into
a linear message and then analysing the result and storing in a similar
network. Natural languages can be
considered to be a way of passing such information quickly between individuals
and have probably developed over five or ten thousand generations, and, as we
all know are still changing. During the research it was found difficult to
reconcile the CODIL approach with that of Chomsky, Universal Grammar[28]
and for that reason no work was done on to see if CODIL would support natural
language. Now that many linguists no longer accept Chomsky’s model a
reassessment of CODIL’s potential would seem appropriate.
Implications of a CODIL-like Model
As the previous section has shown, there are many areas where relevant
questions had not been answered when the project closed down, and other areas
where relevant questions had not even been identified. If it is agreed that
CODIL can be considered a tentative move towards Turing’s child’s brain model –
involving a simple mechanism and initially blank storage – the following points
should be noted.
·
The model proposed is a mathematical network model
of the flow of information within and between brains and is not directly
concerned with the physical or chemical structures use to store and process the
information.
·
If human intelligence is the result of teaching a
minimal child’s brain by adults, the key to human intelligence is in the
cultural information accumulated and refined from generation to generation over
perhaps half a million years. While the
process may not have been very efficient the current level of human
intelligence developed in a network with perhaps 5000 level of “deep learning”
involving information exchange between many millions of individuals.
·
It is reasonable to assume that the “first child
brains” worked in the same way as other animal (specifically great ape) brains
and that the decision making units in animal and modern child brain are
similar.
·
On the physical & genetic sides many things
have happened to the human body to support a bigger brain, containing more
neurons. All the changes appear to be of a type common in evolution – such as
change in size, changes in development, etc. in the brain itself, and in other parts
– such female hips modified to allow infants to have a bigger brain at birth.
Changes to the basic body plan are far slower and are less likely, and the way
neurons communicate is likely to be part of the hard to modify body plan. If
the CODIL model proves correct there is no need for any major “intelligence”
genetic affecting the way information is used to make decisions.
·
If our intelligence is supported by a simple
child brain, which is logically identical to animal brains, it should be
possible to identify weaknesses in the way our mind works. The following are
suggested areas how our intelligent mind is affected by the simple child brain
mechanism which controls it:
o
Size of Short Term Memory: While our short term memory may be bigger than that of other animals
it is still woefully short of what could easily be provided in any artificial
intelligence implementation of the child brain model.
o
Unreliable long term memory: Leaning in the brain means
reinforcing, or reducing, links between neurons and if old memories are reused
their importance relative to others change – and over time this can
significantly modify the memory. (One of the reasons fro developing CODIL was
to provide a clerical assistant which had a reliable long term memory!)
o
Ambiguous Logic: Minsky was correct in pointing out that a simple neural net model
would have problems in handling certain situations handling negatives. However
Gödel's incompleteness
theorems[29]
points out that there are limitations in all formal axiomatic system so the key
question is not whether there are logical weaknesses in a simple model, as is
used in CODIL, but whether the inherent ambiguities matter, or can be avoided.
In an animal or early child brains the problem is avoided by ranking statement
in importance (e.g. avoiding danger always takes priority over eating or having
sex) and in CODIL it can be avoided by using properties. In adult humans the effect of using a simple
logical model is to make tasks which involve negatives slower and more error
prone. The point to emphasise is that in modelling human intelligence it is
important to use a similar logic system to the child’s brain. Of course any
mathematician, trained in formal logic, would use a more powerful logic system
in designing so-called artificial intelligence systems
o
Punishment and Reward
Training: Neural nets inside the brain typically learn by
trial and error, with some kind of feedback, and this is an expensive and time
consuming process. The “stick and carrot” approach to training is effectively
an externalized version of the internal trial and error learning process which
works because, in an animal brain, it is important to rapidly learn to avoid danger. However young children seem to have acquired a
speed learning technique in order to allow them to accept vast quantities of
information in a short time. This could be explained if any instruction from a
respected adult is rapidly committed to memory (without any detailed trial and
error checks) using the same fast learning mechanism associated with danger.
This leads to a weakness in how our brain works as it means that there is a
tendency to accept information from a charismatic “teacher” (salesman or politician??)
without giving it a trial and error check for reasonableness.
o
Confirmation Bias: Various factors combine to
make confirmation bias more likely in a child brain. The way memories are
reinforced in long term memory mean that the brain is quicker at picking out
information which can be rapidly recognised as relevant; processing negative
ideas are harder than those which confirm what is already known; and speed
learning means that the chosen respected “teacher” (whose statements we do not
check) will almost certainly hold similar views.
Conclusion
In discussing the possibility of
computer intelligence almost 70 years ago Turing suggested that “the
child-brain is something like a note-book as one buys it from the stationers.
Rather little mechanism, and lots of blank sheets” and the aim of this
paper was to see if the CODIL approach fits the Turing model.
The answer must be a very
definite “Yes.”
In CODIL model the “note-book” can be considered to
be an empty neural net and CODIL can be considered as the language used to name
the nodes and define the linkages “transferred” from the neural net in the
brain of the human teacher. The decision making unit (“rather little
mechanism”) is a small and highly recursive routine which activates nodes
in the neural net, and as is implied in the Turing model, this mechanism is
task independent.
Of course Turing was talking
about his child brain model as part of an intelligent computer that could pass
the “imitation game” using natural language and an extensive knowledge base.
The CODIL system took a very different approach, in that it aimed to provide a
human user with an intelligent clerk, and in doing so act as a kind of mirror
which reflects not only the human’s knowledge using the human’s own
terminology, but also reflected the ways the human processes that knowledge.
Because there is no attempt made to hide the fact that the CODIL system is a
machine no attempt was made during the research to imitate natural language ,
as long as the human would easily understand the conversation. However the aim,
as in the Turing imitation game, was to construct a generalist system that
could process complex ideas and, for example, answer questions such as “Why did
you say that?”
There are areas of the child’s
brain model that Turing did not cover. If a child’s brain model depends on
being taught by an adult human using some kind of teaching language one is
immediately faced by the question of who taught the teacher. Here CODIL
suggests a possible evolutionary model of information flows with and between
brains which suggests a pathway to explain how and why human language and
intelligence developed. The following points are of particular interest:
·
The highly recursive nature of CODIL mechanism
suggests how it can be extended to input from sensory organs, which use neural
nets in a trial and error mode.
·
The emergence of natural language must have
started by giving names to objects, and later categorising them into named
sets, and indicating how the named objects are related. CODIL can be considered
as a noun-based language and natural languages being a shorthand for passing
information between humans.
·
The simple mechanism, and the fact that it is
shared with higher animals without significant modification in how it works
(despite genetic changes to optimise efficiency) explains weaknesses in the
human brain such as the limited capacity of short term memory, the
unreliability of long term memory, problems with handling negatives, and
confirmation bias.
·
If one extends the network model to include both
the flow of information between neurons in the brain and the flow of
information between individual animals the result involves billions of brains
(each with billions of neurons) over many thousands of generations. The combined
network provides an extremely deep network to support the development of
language, and the building of the shared knowledge base.
Clearly a number of these ideas
would benefit by further research, but for various reasons active research, (apart
from this assessment of the archives) ceased in 1988, and it is no longer
possible to run any of the mainframe interpreters – although very limited work
could still be done with MicroCODIL on antique BBC computers. In view of the
great interest in the brain and how it works it may well be worth considering
reopening the project – perhaps starting with the implementation of a new CODIL
interpreter specifically using the
neural net model. There could also be interest in the archives for anyone
interested on the problems of funding unconventional “blue sky” research, and
documentation exists on the problems thi project had in getting support.
|
|
|
|
|
APPENDIX 1 – A brief history of the
CODIL Project
|
1967-1970
- The origins of the CODIL Research
It is important to understand that
the research started as a possible solution for a specific commercial problem
at a time (the mid 1960s) when computer hardware, software and programming
techniques were very primative by today’s standards. What little research had
been done on the human interface was aimed at making things easier for computer
programmers to write programs. There was no academic input and in any case
virtually nothing had been published about how to interface ordinary people to
computers[30]. Basically I
was asked[31]
to carry out a preliminary design study involving moving a very large program
which processed sales contracts from a
LEO III computer (one of the most powerful commercial batch processing
computers in the 1960s) to a yet unnamed “next generation” system that would
have direct access storage and possibly some terminals to give users limited
access. Looking back on the proposals,
in the light of the Turing quotation above) the task can be seen as a question
answering system where the human supplied information consisted of sales
contracts for perhaps a quarter of a million customers (ranging from single
households up to London Transport) and pricing tables for perhaps 5000 products
(ranging from liquid propane gas to tarmac). The “Questions” would be delivery
notes describing the goods provided and the “Answers” would be priced invoices.
The standard way of handling such a task was (and still is) to draw up a
specification covering all the options, and write a global program to process
all possible variations in the supplied information. The resulting system
should produce the intended results (if specified and programmed correctly) but
would appear to the sales staff to be a black box. Because sales are made in the complex real
world changes in customers, contracts, sales promotions and products would mean
changes to the global program, and experience over the years has shown that
many of the “computer errors” in the existing program were due to mistakes and
misunderstanding along the chain of command from the sales department, via
systems analysts and programmers, to the resulting source code.
The immediate reaction to the proposal
was that “It won’t work because sales staff cannot program computers” and my
argument that we should design systems which the human users could understand
and control was dismissed. However at this point I
was recruited by English Electric Leo Marconi[32] to do
market research on the next generation of large commercial computers (planning
5 years ahead for circa 1973) which would be the first to make significant use
of computer terminals. I soon discovered that there were many other commercial
situations where a flexible human interface was required – and realised that my
sales contract language could be generalized and might well be much more
effective if it used some of the latest hardware developments involving
associative addressing. Within months I asked by the computer pioneers David
Caminer and John Pinkerton to becomes project leader looking at the possibility
of providing a “transparent” computer with a user-friendly symbolic assembly
language, which could always explain what it was doing in terms the human user would
understand. A
“pilot program” was written and tested[33], and
while it met all the original test targets the research into a modified computer
processor was abandoned because, after the merger to form ICL, the work was not
considered relevant to the proposed new ICL 2900 series of computers.
1972-80 including TANTALIZE, a heuristic
problem solver
ICL gave permission for the research
to continue as a software project in a university environment. In 1972 work
started on an improved version of the CODIL interpreter to run on Brunel
University’s batch ICL 1903. As it was expected that most test applications
would be commercial or data base oriented it was written in the commercial
programming language, COBOL[34]. The
first large application was a specialist medical records project in conjunction
with Hillingdon
Hospital[35].
Because the medical data base contained confidential patient information it
could not be used to demonstrate how CODIL worked and a family
history data base[36] (where
the named people were dead) was created which eventually expanded to included
information on over 6000 individuals – and up to 200 statements for some of the
key figures. A comparison was made between the flexible CODIL knowledge base
and the more formal Relational Data Base model[37].
It was becoming increasingly obvious
that the CODIL system architecture in
some way mimicked the workings of the human short term memory[38] and I
discovered that many of the logic problems in the artificial intelligence
literature could be easily described in CODIL. It was then realised that CODIL could be used as
a powerful highly recursive programming language. . The result was TANTALIZE[39] which
asked the user questions about the logic problem and then generated a set of
statements which in turn were used to search for the answer. Not only did TANTALIZE
solve many of the examples in the contemporary literature[40] but it
actually solved 15 consecutive weekly puzzles published in the New Scientist[41], and at
the time no A.I paper had attempted such a challenge.
TANTALIZE
– various strategies moving a knight across the chess board
The real difficulty was in getting
papers published – as papers which described TANTALIZE and included example of
it working were being returned with comments such as “Too theoretical ever to
work” or “If you want people [ie the AI establishment] to understand your
research you should use pop-2 [a popular procedural research language at
the time]. Basically I got so depressed I abandoned this area of research. Basically
I got so depressed I abandoned this area of research.
So what was the problem? With
hindsight it is clear that the A.I. establishment in the 1970s was strongly
committed to looking at very well defined tasks. The “barrier” I faced related
to the philosophical difference between open-ended complex problems (such as
the problems faces by salesmen dealing with a complex market place) and
deterministic closed problems – where it is possible to have a precisely
understood global model of the task. Many of the early published A.I. papers
related to games such as chess which have a small number of well-defined rules
and is played on a fixed 8 by 8 grid. The logic problem which they were
researching (and TANTALIZE had been solving) were also precisely defined,
operating within the bounds of standard mathematical logic.
The difference in approach arose
because CODIL is based on a complex model of information and does not use the
idea of a global algorithmic model for the task - instead selecting rules from
a knowledge base which might well be dynamically changing. For instance, if
CODIL was used to play chess it would continue to “play” even if the legal
moves or the board size changed between moves! The difference is fundamental as
closed deterministic tasks (which the A I establishment were then concentrating
on) are a valid subset of the set of open-ended complex tasks (which is where CODIL
started) – while the converse is not true.
In retrospect, if I had a better
understanding of the theoretical reasons behind CODIL at the time I could have
emphasised the difference, for instance by making it clear that CODIL was designed
as an open-ended tool for programming neural nets and was fundamentally
different from conventional procedural languages (such as pop-2).
1980-1988 - FIXIT & MicroCODIL
In 1980 the ICL 1903 at Brunel
University was replaced by a Honeywell Multics system and for the first time it
was possible to use CODIL online on a regular basis, but only via glass
teletypes. The first big application was a package called FIXIT[42], based
on a demonstration earlier prepared for a 12 year old boy in connection with a
Jim’ll Fix It TV show. The package was used to introduce classes of up to 125
students to the university’s online system for the first time and prior
experience varied from never having even used a typewriter keyboard through to
having taken A level Computer Science and, in a few cases, owning their own
early personal computer. FIXIT was set up as a package for a 12 year old, with
a varied number of activities, all of which had some hidden relevance to
aspects of an advanced computer science course – and to make it fair to all
students, whatever their prior experience, they were asked to write a critical
account of how suitable they though it would be for a 12 year old. The results
were so successful that CODIL was used to support a number of tutorial and
demonstration packages [2]. FIXIT and these interactive lessons were used to
demonstrate how CODIL might be use to support online publication of scientific
papers as part of the British Library’s BLEND Project[43].
In 1982 work started on a new
version of the CODIL interpreter with the following aims:
·
A complete redesign of the way the decision
making worked to increase the variety of recursive pathway the system could
follow, particularly with respect to properties and their inheritance.
·
To have complete control of the display – so
that the different windows could be used to show, for the first time, the inner
workings of the system in convenient formats.
·
To run on a personal computer to demonstrate
that the approach really involved a small central processing algorithm.
·
To provide an easily portable version of the
language, with a wide range of demonstration examples that could be supplied to
anyone who wanted to use it.
The result was MicroCODIL[44], an
educational package aimed at schools and running on the BBC computer. The CODIL
interpreter came on two floppy discs with 12 very different knowledge bases,
each demonstrating a different way of processing information, taking the
educational ideas behind FIXIT even further. In addition there was a
supplementary disc concentrating on the use of the system to handle historical
data. It was a truly transparent “computer” as when the system was running it
was possible to switch windows to see what it was doing step by step. It was trial marketed and received many very
favourable reviews (see Appendix 2) but support was withdrawn because a new
head of department considered that the Reader in Computer Science at a
technological university should not be wasting his time writing software for
“toy” computers. Partly for health reasons I decided not to argue as I needed a
break and the research never found a new home.
On the scientific side MicroCODIL
was a major advance as for the first time it had not only a user-friendly
language but also a fully interactive interface that made use of windows – and
could demonstrate a wide range of information processing ideas in a novel
manner. The improved recursive decision making unit was only a few hundred
bytes long (i.e both small and simple) and while the software had been written
for loading from floppy discs it should have been possible not fit MicroCODIL,
together with support software, such as the windows control package, onto a 32K
read only memory chip. The revised architecture made it very easy to include
new properties, such as different ways of fuzzy matching, and potentially
including the processing of other format, such as images.
However the problem was that
while MicroCODIL could work on a BBC with as little as 25K bytes of memory,
there was not enough space to handle any but the smallest demonstration
knowledge bases and the problems of making the most of the available space, and
the adjustments needed for different models of the BBC computer, made setting
up new knowledge bases harder than it should be.
The Reassessment of the Project
Some years ago the question of
what should happen to the bulky project records was raised and I decided to
look on the web to see how the CODIL research related to the current research
on artificial intelligence and on how the brain worked. Clearly a vast amount
has happened but it soon became clear that there was a major “black hole” in
that there was no model of the language neurons used to communicate which could
be linked to intelligent human though processes[46]. My
progress in assessing the work is recorded on my blog Trapped-by-the-box
until I created a new blob An Evolutionary Model of Human
Intelligence in 2018. This is will contain details of all new research,
including a copy of this paper for comment, and also copies of some of the original
research when that had been digitized.
APPENDIX 2 – MicroCODIL Reviews
Computers in Education
Journal, January 1987
[MicroCODIL] provides easy access to many
advanced information technology facilities ...
Gabriel Jacobs, The Micro User, February 1987
MicroCODIL .... is a
language for micros designed to tackle the problems of intelligent interaction
between human beings and machines. Whereas most languages require a regular structure
in the data they access, MicroCODIL accepts and manipulates poorly defined
information. ...[while] adding information which does not fit the original data
structure can involve the Prolog user in extra logical rules, and a
proliferation of nested brackets, the operation in MicroCODIL is trivial.
To help you along,
MicroCODIL has been provided with a very comfortable user interface, with
excellent use of colour coding and menus, and a well designed screen layout.
The 240 page
instruction manual is aimed partly at plain folk, partly at the established
computer fraternity. Generally speaking a reasonable balance has been achieved.
Keith Chandler, Network User, March/April 1987
MicroCODIL - Language of the Gods? [Title]
I have often dreamed of
a data handling program which requires less structure, so that the data can be
types in 'willy nilly' and then questions asked, leaving the computer to make
sense of the data. MicroCODIL does just that.
[The disc ... ]
included a music knowledge base with three tunes that played through the
internal speaker. How many other database type programs can do that?
If, like me, you enjoy
something that you can get your teeth into, I can thoroughly recommend it ...
it is an excellent example of the type of application that our pupils should be
exposed to.
Jonathan Evans, A & B
Computing, April 1987
I was favourably
impressed with MicroCODIL and feel that it should be considered seriously as an
alternative to micro-prolog for teaching IKBS [Intelligent Knowledge Based Systems]
principles to children .... there is much to be said for MicroCODIL with its
superior user interface, more flexible reasoning mechanisms and supplied
programs not to mention its lower price.
Another big advantage
lies in the quality and quantity of the supplied [knowledge bases] which are
interesting and useful in themselves as well as good illustrations of the
flexible applications of the system.
Searching the kings and
queens data base provides a simple example of good educational software. The user
is actively involved and the process feels more like fun than learning.
The 'Body in the Bog'
is enormous fun and is cleverly written at two different levels [MicroCODIL]
actually develops alternative hypothesis about the identity of the body' for
which it provides probability estimates which are updated at each inference.
Educational Computing, April 1987
Simple Power [title]
MicroCODIL provides the
user with a knowledge based environment which contains all the tools that a
novice needs to handle null and multiple values, ranges, approximate matching
(both numeric and spelling errors), probabilities, fuzzy matching, etc. Such
facilities are totally missing from most conventional computer languages and
are often difficult to use in sophisticated research-based AI and expert system
packages, which will only run on the most powerful computers.
Computers in Schools, May 1987
This package .,. bears
much resemblance in approach to Prolog, but is a lot simpler for young people
(and adults) to use.
The package is
remarkably effective as a tool and as a demonstrator at secondary level.
The author must be
congratulated on the impact and effectiveness of the software (which uses
colour often and wisely) and on the excellence of the manual.
MicroCODIL is a
software package designed to illustrate the features of "human"
information processing. It attempts to overcome the explicitly mathematical
formalities of other languages that are used for educational programming (such
as BASIC or Prolog) through a simple, hierarchical structure that can be made
complex through association and inference.
Many MicroCODIL
features are easily accessible and clearly illustrated, while the potential for
its use in schools is enormous.
Christopher Reynolds,
the author states that it is important to teach children "about the
functional capabilities of the kinds of computer systems they will encounter in
adult life". The demonstration disc gives them a taste.
The full MicroCODIL
language may turn out to be one of those few packages that allow students to
take control of a computer, that also allow for a development of understanding
in ways appropriate to individual abilities and interests, and that perform
meaningful and worthwhile tasks.
Jill Phillips, Your Computer, October 1987
One of the advantages
of investing your time and energy in a language like this is that you have the
backup of someone who is enthusiastic and dedicated to it.
Leaving the computer to
work ... gives you a feeling that real 'intelligence' is at work ... it
means the language is better at coping with the kind of vague, intuitive
knowledge which you find in the real world.
What will really make
it work in the classroom is that it is fun. The software is robust enough for
children to be able to play around with.
With packages like the
History Project becoming available, MicroCODIL is potentially a very powerful
teaching tool.
This is a fascinating
language ... It will prove useful to anyone who has a genuine need for a
flexible and intelligent database, from amateur genealogists to teachers and
historians.
Steve Mansfield, Acorn User, November 1987
Expert systems have
finally made it out of the artificial intelligence labs .... This is the result
of two converging factors the increasing power of micros and the increasing
elegance of software systems. The latter point is shown most clearly in
MicroCODIL, a language which allows you to build useful expert systems and
knowledge bases, and it succeeds in doing this even on a BBC.
The system can seem strange
to those raised on Basic, but it doesn't take long to get into it.
Apart from the
languages great potential in teaching, there is a lot to recommend it to home
users. If you are interested in expert systems ... then MicroCODIL is worth
trying out.
The documentation is
excellent, providing both a tutorial and a reference source for the language.
Jaquetta
Megarry, Times Educational Supplement, 6th Nov 1987
MicroCODIL provides an
attractive entree to the study of intelligent knowledge based systems. There is
an elegant simplicity built into its highly unconventional operation, and
considerable attention has been paid to screen design and to providing windows
that make the system transparent to the user. Its ability to deal with
real-life information - in a variety of formats, complete with ambiguities and
misspellings - is very impressive.
A good example of a
serious database application is the History Project Pack - a disc and 72 page
manual which comprises a substantial knowledge base (475 records) on a group of
Hertfordshire farms and farmers in the 19th century. Parish register, census
returns, trade directories, land tax records, tithe returns and wills are
combined and indexed to provide rapid access to information on any named person
or place.
Dr Reynolds has gone to
great length to solve the technical problems of compatibility all the way from
the basic Model B through to the Turbo Master.
Provision of a range of
interesting knowledge bases makes it easy to get started with MicroCODIL, and
the new step-by-step instructions provide a vital starting-point. At £5 the
sampler disc is excellent value and highly recommended.
R._McDermott NEXT (Ceefax), 13th November 1987
MicroCODIL is an
intelligent data base language of use to teachers of any subject where large
amounts of data need to be searched, sorted or listed.
The MicroCODIL database
system is a powerful and useful package.
A & B Computing, December 1987
MicroCODIL: An
interesting newcomer to the BBC, a declarative language with good support material.
If you are interested in artificial intelligence or in database work for any
subject - then take a serious look. (From "Learning with the BBC, a
retrospective look at the best educational packages around".)
Francis Botto, Disk User, June 1988
[MicroCODIL]'s inherent
'blurred' type of logic is an attempt to emulate another part of human
intelligence, as our thought process in terms of comparisons and so on is not
as exacting as the strict logic of almost all computer languages ....
[MicroCODIL] will no
doubt find application in teaching children about AI as well as acquainting
them with expert systems. There is most certainly a niche for such a language
in schools, so who knows, MicroCODIL could eventually become to AI what LOGO is
to mathematics.
Jean Underwood, The
Psychologist, September 1988
MicroPROLOG is an
earlier and obvious competitor to MicroCODIL, but the later has certain
advantages for education. In the first place it is a relatively simple
language and therefore children can very rapidly achieve meaningful goals
without being bogged down in syntax. In this
sense the language is in tune with other school-oriented software developments
based around LOGO. The ability of the software to cope with data which are not
rigidly structured further contributes to a feeling of easy accessibility. The
simplicity of the language also leaves sufficient memory-space for data entry
and manipulation whereas MicroPROLOG eats extensively into working memory.
[1]
A. M. Turing, Computing Machinery and Intelligence, Mind Vol LIX No
236, October 1950.
[2]
Of course it is admitted that the human brain is bigger, has more neurons connections, etc. The key
question is whether there is a significant difference in the way the human
neurons interact with each other..
[3]
The Brain Initiative: Three years at the Frontiers of Neuroscience. A
group of scientists and funders reflect on what the BRAIN Initiative has
already achieved and how it is evolving. https://www.braininitiative.org/achievements/brain-initiative-three-years-frontiers-neuroscience/
[4]
The Brain Initiative https://braininitiative.nih.gov/
and https://en.wikipedia.org/wiki/BRAIN_Initiative
There is a similar very large European funded Human Brain Project https://www.humanbrainproject.eu/en/
[5]
The paper CODIL: The architecture of an information language (http://trapped-by-the-box.blogspot.com/2011/06/reprint-architecture-of-information.html]
appeared after the project had closed and summarises what had been achieved.
For further references see Appendix 1.
[6]
The CODIL archives cover the period from 1967 to 1988, and include listings of
the programs and test applications, manuals, copies of all published material
together with extensive correspondence, drafts, etc.
[15]
The early parts of the assessment were carried out as part of the blog “Trapped by the Box“
and are continued on the blog “An
Evolutionary Model of Human Intelligence” where
links to the most
relevant papers can be found.
[16]
A. M. Turing, Computing Machinery and Intelligence, Mind Vol LIX No
236, October 1950. https://www.csee.umbc.edu/courses/471/papers/turing.pdf
[17] This
paper is only concerned with simulating the mechanisms which underpin human intelligence
and is not concerned with the wider philosophical question “Can machines
think?” Both Turing’s child brain model and the CODIL model depend on human
“teachers” to provide the information they use. It is more appropriate to say
that any systems built in this way can be considered as an information mirror
which do no more than reflect the intelligence of its human instructors. For a
detailed critique of the Turing Test and the related artificial intelligence
research see Mark Halpern, The Trouble with the Turing Test, The New Allantis, Winter 2008 https://www.thenewatlantis.com/publications/the-trouble-with-the-turing-test
[18]
During the research the target was often thought of as an information mirror,
which not only reflected the human user;s knowledge, but which could also
process the information in a way that reflected the way the human user would do
the same task.
[19]
The CODIL system clearly needed to do simple arithmetic, and the interpreters
were provided with a conventionally programmed arithmetic unit. No
attempt was made to mimic how a human might handle numeric information.
[20]
For the purposes of this paper all file names are shown in italics, and if they
are used as file headers they are shown
at level 0. In the actual interpreters they are stored in a table
[21]
As described here the decision making unit will logically generate a logical
file of delivery notes updated by the customer contract information but not
make a permanent copy.
[22]
G. A. Miller, The Magical Number Seven, Plus or Minus Two: Some Limits on
Our Capacity for Processing Information, 1956 https://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two
When the design study which lead to CODIL started
Miller’s paper was unknown to me, but it was realised that any easy to
understand computer system should be able to sescribe what it was doing through
a small window – the equivalent of no more than about ten lines of teletype
output.
[23]
M. Minsky & S. Papert, Perceptrons: an
introduction to computational geometry, 1969 https://en.wikipedia.org/wiki/Perceptrons_(book)
[24]
For the purpose of this paper all system words are prefixed by “!”
[25]
Of course the human user will need to know the context of this query, and
normally this would be used with a window which automatically dispaleys all the
Fasts.
[26]
G A Miller, The Magical
Number Seven, plus of minus Two: Some Limits on Our Capacity for processing
Information, Psychological Review 1956, vol 63, pp
81-97.
[27]
M. Minsky & S. Papert, Perceptrons: an
introduction to computational geometry, 1969 https://en.wikipedia.org/wiki/Perceptrons_(book)
[28]
N. Chomsky is credited with the invention of a genetically controlled universal
grammar, but the idea is now much disputed. https://en.wikipedia.org/wiki/Universal_grammar
[30]
At the time the research into CODIL was beginning in 1967 very little research
had been carried out anywhere on interfacing users (as opposed to specialist
computer staff) to the computer. The vast majority of commercial computers were
batch systems, with magnetic tape storage, and no user terminals. If there were
terminals they would be teletype systems (basically a typewriter style keyboard
and paper output) and glass teletypes were not yet on the commercial market.
Xerox Parc, which pioneered the graphics terminals we now take for granted, was
not founded until 1970. In the same year the first UK conference on
man-computer interaction was held at Teddington. Gerald Weinberg’s book The
Psychology of Computer Programming” appeared in 1971 –
but it was some time before guides to interfacing non-specialists with the
computer appeared. For example James Martin’s pioneering book, Design of
Man-Computer Dialogues, appeared in 1973, and was mainly about the
design of forms to be filled in by clerks at the terminals. The Apple 1 personal
computer came on the market in 1976, nine years after the CODIL research
started.
[31]
A biographical account of my work with Shell Mex & BP, including how I had
become very interested in the problems of writing reliable computer programs, and the birth of
the CODIL idea, are described in The SMBP Story. http://evolution-human-intelligence.blogspot.com/p/the-smbp-story.html
[32]
CODIL (also known as DORIS) - the E.E.C. and I.C.L. Story
is a draft biographical account of my period at ICL with particular reference
to the establishment and abandoning of the CODIL project. See https://evolution-human-intelligence.blogspot.com/p/the-eec-icl-story.html
[33]
The pilot program was written in System 4 Usercode in batch mode (often
simulating online mode)is described in two papers, CODIL: The Importance
of Flexibility and CODIL: The CODIL Language and its Interpreter
which were published in the Computer Journal in 1971 [Introduction
and pdf texts]
[34]
In retrospect this was probably a mistake as COBOL was not a good language for
handling recursion.
[35]
Reynolds, Shackell & Sutton, Using CODIL to handle poorly structured
clinical information, Medical Informatics Europe 78, editor J.
Anderson, pp 465-474, 1978 http://trapped-by-the-box.blogspot.com/2011/06/reprint-handling-clinical-information.html
[36]
Reynolds, CODIL as a knowledgebase for handling historical information,
in Computer and Quantitative Methods in Archaeology 1988 http://trapped-by-the-box.blogspot.com/2011/05/reprint-historical-knowledge-bases-1988.html.
CODIL was also used to publish four family history books.
[37]
Reynolds & Omrani, Formalism or Flexibility, Proceedings,
International Conference on Data Base Management Systems, 1978
[38]
Reynolds, An Evolutionary Approach to Artificial Intelligence,
Proceedings of Datafair 1973 http://trapped-by-the-box.blogspot.com/2011/05/reprint-evolutionary-approach-to-ai.html
[39]
Reynolds, TANTALIZER: a conversational problem solver presented
at the Second One Day Conference on Recent Topics in Cybernetics, 1973 https://trapped-by-the-box.blogspot.com/p/tantalize-conversationalproblem-solver.html
[40] Bridges of Konigsbery (Ernst & Newell, 1969), Confusion of
Patents (Fikes, 1970), Couples Tennis Problem (Fikes, 1970), Eight Queens on a Chess
Board (Fikes, 1970), Magic Square (Fikes, 1970), Missionary and Cannibals (Ernst & Newell, 1969), Monkey and
Bananas (Ernst & Newell, 1969, Fikes, 1970), Smith, Robinson and Jones (Weston, 1970), Three Coins (Ernst & Newell, 1969), Water Jug Problem (Ernst & Newell, 1969,Fikes, 1970)
[41]
The trouble with Tantalizer. http://trapped-by-the-box.blogspot.com/2016/08/having-trouble-with-tantalizers.html#more
[42]
CODIL as an Information Processing Language for University Use http://trapped-by-the-box.blogspot.com/2011/06/reprint-codil-for-university-use-1981.html
[43]
A Software Package for electronic Journals http://trapped-by-the-box.blogspot.com/2011/05/reprint-electronic-journals-1983.html
[44]
MicroCODIL is discussed in details, together with references to its use in CODIL, the Architecture of an
Information Language http://trapped-by-the-box.blogspot.com/2011/06/reprint-architecture-of-information.html
[45]
This paper uses the SOLIDS knowledge base to supply examples.http://trapped-by-the-box.blogspot.com/2011/05/reprint-information-processing-concepts.html
[46]
See, for example The Black Hole in Brain Research https://evolution-human-intelligence.blogspot.com/2019/08/the-following-post-was-first-published.html
No comments:
Post a Comment