Turings Child Brain

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
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 JournalJanuary 1987
[MicroCODIL] provides easy access to many advanced information technology facilities ...
Gabriel Jacobs, The Micro UserFebruary 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 UserMarch/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, B ComputingApril 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 SchoolsMay 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.
Mike Page, New Scientist, 24th September 1987 ONLINE
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 ComputerOctober 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 UserNovember 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 Supplement6th 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 ComputingDecember 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 UserJune 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.
[7] Leo Computers Society https://www.leo-computers.org.uk/
[8] Museum of Computing History, Cambridge. http://www.computinghistory.org.uk
[9] C F Reynolds, Algorithms Aren’t Everything, ITNow, Summer 2015, pp 60-61
[14] Department of Computer Science, Brunel University https://www.brunel.ac.uk/
[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.
[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, 1969Fikes, 1970), Smith, Robinson and Jones (Weston, 1970), Three Coins (Ernst & Newell, 1969), Water Jug Problem (Ernst & Newell, 1969,Fikes, 1970)
[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
[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

No comments:

Post a Comment