The interests described here began in 1969 as part of a solution to a specific problem : the task of devising chemical reaction mechanisms given certain, essentially qualitative, information about a reaction. The problem itself stems from my postgraduate research at Leeds between 1957 and 1960. Two ideas in particular from that period have survived, and I might some day get round to doing something about them. Both were suggested by reflection on the nature of the work I was doing. One was purely mechanical : it was very clear that my experimental work could very well be conducted by a machine, and that train of thought led on to my interest in PFL and eventually to real-time control systems.
The other idea was in the nature of comment on the intellectual content of my work, and it seemed to me that this also, to a considerable extent, could be mechanised. The mechanisable part was to do with working out the detailed mechanisms of complex chemical reactions. A chemical reaction begins when the components of a reaction mixture, perhaps under the influence of some imposed stimulus, react together to produce a set of products. Even with a very simple reaction mixture, very many different chemicals can be formed, and one of the chemist's tasks is to elucidate the details of the transformation from reactants to products.
At the time I had no contact with computers - I had only ever seen one, EDSAC at Cambridge, probably in 1956 - and had no idea how to make contact, or, indeed, just what sort of contact would be appropriate, so the ideas languished. I dusted them off in 1969 when I decided to change my career from chemistry to computing, and was looking for a research topic. I still didn't know enough ( or I didn't think I knew enough ) to consider building the experiment machine, but by this time I knew Fortran and I knew about assembly language and it was clear to me that some sort of logical argument could be mechanised in the form of a computer programme.
The problem is not hard to describe. We begin with a set of chemicals present in the reacting system at the beginning of the experiment - the reactants. We are also told that another set of chemicals - the products - are produced during the reaction; in practice, we know that the set of products we are given might not be complete, as others could be formed in small quantities or be hard to identify. It is required to select a set of elementary reactions ( the reaction mechanism ) from a menu of possible reactions in such a way that the observed reactants and products are adequately accounted for.
The problem as a whole comes in several parts, not all equally easy. The first part is comparatively easy, being restricted to simple deduction. This is just the sort of problem that is susceptible of solution by zero-order logic. The statements which form the basis of the logical computations are of two sorts. There are simple assertions of existence : "compound X is present in the reacting system"; "reaction A is significant". There are also implications, which tie the simpler statements together : "reaction A will occur if and only if compounds X and Y are present"; "if compound X is present, and it was not present in the original reaction mixture, then it must be produced by reaction A or reaction B". With any but the simplest reacting system, there are many possible reaction mechanisms which account for the observations, and the requirement is to collect all these mechanisms for later evaluation. That's straightforward logic. But it gets more interesting ( a technical term, meaning "harder" ).
The problems which turn up are of several kinds. Here's a list, intended to be illustrative and certainly not exhaustive.
How am I getting on ? Not spectacularly, but the problems are time and priorities rather than interest. I can do the logic bit fairly straightforwardly, and I've put in quite a bit of work on a representation for molecules which is intended to ease the problems of inventing new reactions. Ask me if you want more.
WORKING NOTES : AC46 ( Computer-readable chemical formulae ); AC55 ( Reaction mechanisms ).