Wednesday, 27 July 2011

Brain Storms - 6 - CODIL and Natural Language

CODIL was designed to be the symbolic assembly language of an information processing system which reflected the way some people thought about open ended tasks (where it was difficult to predefine a processing algorithm). It arose, not from an academic attempt to model human thought processes, but from a pragmatic attempt to help sales staff control the processing of contracts in a very large commercial organisation, and was later generalised to handle a wide range of basically non-numerical tasks.

The interesting question is whether CODIL works because it was also modelling the “symbolic assembly language” of the brain, and it is therefore very relevant to ask whether the approach could be made to work on a neural net. Is it possible, starting from the CODIL model to reverse engineer and intelligent brain model that is capable of being explained in evolutionary terms?

Before going further it is appropriate to consider how a language like CODIL relates to natural language.

In a stored program computer system the symbolic assembly language relates to moving numbers (which represent data) between the memory and registers and carrying out processes and explicit logic tests. This mechanism is remote from normal human thought processes – which is why the stored program computer is a black box whose internal working is utterly incomprehensible to the average user of the “box”. Billions of pounds have been spent over the years to develop elaborate software packages, layer upon layer, like an onion, to hide the mysterious inner workings and provide a more friendly interface.

In CODIL (at least if considered in terms of the original hardware proposals) the symbolic assembly language represents not numbers, but sets and subsets, with the set names being those decided on by the user of the system. All addressing is done associatively by set names (which the user understands) and most processing is done automatically with the decision making unit (the equivalent of the stored program computer's CPU) carrying out simple set operations.

Take a simple CODIL statement:

1 MURDERER = Macbeth,
2    VICTIM = Duncan,
3       WEAPON = Dagger.

This can easily and quickly be recognised that someone called Macbeth used a dagger to kill someone called Duncan. While the statement is not written in English its meaning is immediately recognised by English speakers. If you look at the many other examples in the Publications about CODIL associated with the blog you will find that in many cases you can convert the statements into English with comparative easy. It is almost as if humans have the mechanism to convert such set descriptions into natural language., and there is no reason to think that this would not be true for any other human “natural” language. (I exclude formal mathematical systems from this observation.)

This raises the question of what extra “facilities” might one need in CODIL (and the brain) in order to convert set descriptions (held in parallel on a neural net in the case of the brain) into the serial string of spoken words, and also the reverse process. In terms of brain modelling what functional changes, if any, are needed to an animal's brain in order to handle language, excluding those functions explicitly connected with speech generation (i.e. muscle control of the voice box, tongue, lips, etc.) or simple capacity (number of neurons available.)

If one looks at CODIL (as implemented in MicroCODIL) the following statements will generate “Macbeth murders Duncan with a Dagger” in the DISPLAY window. (TEXT is a reserved set name – and instead of the item being moved to the FACTS the value is displayed on the screen.

2    VICTIM,
3       TEXT := MURDERER.
3       TEXT = murders.
3       TEXT := VICTIM.
3       WEAPON,
4          TEXT = with a.
4          TEXT := WEAPON.

A more general approach would include statements such as

2    VICTIM,
3       VERB = Murder.
3       OBJECT := VICTIM.

with further statements on how to modify verbs such as murder and word order depending on context, to generate sentences such as “Will Macbeth murder Duncan with a dagger?” or “Macbeth used a dagger to murder Duncan”.

When I was engaged in full time research over 20 years ago I was unable to explore the possibility of assessing how good the CODIL approach might be to generating or understanding natural languages or for translating between languages and if anyone is interested in following this approach I am happy to advise. The important thing is that if CODIL (as mapped onto a neural net) is a reasonable model of the brain's “symbolic assembly language” and it is capable of supporting something approximating to natural language, there is no need for any significant new “logic processing” capability between the great apes and humans – simply that humans have greater capacity – to handle the extra language information needed – and also have better sound-generating capabilities.

No comments:

Post a Comment