PROSPEC Computer Systems This is the fifth README file for Expert86 5.1 Introduction Most expert systems are dedicated to solving problems in a particular subject. Within that subject some are very powerful but outside it they falter very quickly, frequently making naive mistakes. An expert system shell such as Expert86 is a general-purpose expert system generator, in much the same way that a compiler or interpreter is a general-purpose program generator. Expert86 contains all the deductive mechanisms of an expert system but it has no knowledge of any specific subject. It is therefore not restricted to solving problems in just one subject but may be used in any number of different applications. A user may add whatever information he choses so as to create an expert system of his own devising. An expert system typically consists of an 'inference engine' which contains all the routines to perform deductive reasoning, and a 'knowledge base' which holds the actual knowledge about a topic. Expert86 has an inference engine and an empty knowledge base. To create a new expert system all you have to do is feed appropriate information into the knowledge base. 5.2 The Expert86 Knowledge Base The task of filling the knowledge base of a large expert system generally falls to a knowledge engineer. To create, say, a medical diagnosis expert system a knowledge engineer will have to spend many hours sifting and refining a doctors comments before they can be used as the basis of an effective knowledge base. Expert systems are not a new idea - they have been under development for more than 20 years. One of the main reasons their use is not more widespread is that there are very few knowledge engineers in the world. If knowledge engineering were not so difficult there would be many more expert systems in everyday use. It makes sense, then, that an expert system should be as simple to 'program' as possible, to make the knowledge engineering painless and quick. Expert86 was designed with precisely this point in mind. A knowledge engineer using Expert86 to build a medical diagnosis expert system would start out by observing a doctor as he made a number of diagnoses, noting which factors the expert looked at and what his eventual decision was. These observations would then be given as a knowledge base to Expert86, and the shell itself, without any further help, would determine what underlying logic the doctor was applying. Henceforth, that logic may be used to allow Expert86 to tackle completely new medical problems, ones that the program has never seen before. Expert86 uses the learning technique of 'rule induction' to find its own rules. As a result very little knowledge engineering is necessary to build an expert system with Expert86. Anyone can gather examples and feed them to Expert86. Furthermore, the knowledge engineer in the example above does not need to understand ANYTHING at all about medicine. The time-consuming, difficult and boring job of structuring the advice of the expert into a form suitable for a knowledge base to hold is done by Expert86 for you. In technical terms, Expert86 performs its own 'knowledge acquisition'. But Expert86 is by no means restricted to solving such specialist problems as medical diagnosis. Young children use something akin to rule induction when they learn to speak. They hear examples of fluent speech, induce rules in an attempt to explain what they have heard, make mistakes because the examples were incomplete, and gradually refine their level of understanding until they become as expert as their teachers. Any situation which has an underlying pattern to it is open to analysis by Expert86. For example, an everyday problem such as deciding why a car refuses to start would be ideal for Expert86. Many problems faced by businesses are governed by rules - tax, VAT, statutory sick pay, submission of accounts, pensions, national insurance. The rules themselves are often quite simple but in combination they can become complicated and difficult to interpret. Expert86 is very powerful in such circumstances. Games (though not games of chance) are also suitable for Expert86. Two years ago we used a prototype of Expert86 to construct a demonstration system to advise Bridge players on the choice of a good opening bid. Others have used similar systems to solve endgames in chess involving King and Knight against King and Rook. Although we have yet to try it, backgammon appears to be very well suited too. Games of chance have a strong random element which prevents Expert86 from finding any sensible pattern by observation. However, many games of chance have aspects which are not at all randomly governed. Backgammon is a good example. On the face of it, backgammon seems to be a game of chance because the moves available to each player are determined solely by the roll of a pair of dice. However, once the dice have been thrown the task of selecting the best move is quite definitely non-random. From there on it is a game of skill, not one of luck. There has even been a suggestion from one respected researcher in rule induction that a financial system could be constructed, using examples of the prevelant economic conditions at various moments in the past, together with a measure of the health of the economy at that time, to seek a rule explaining the workings of the economy. This latter example illustrates how a system like Expert86 might be used to discover a latent rule, a hidden rule, in a situation where the underlying logic is so complicated that it is hard to decide whether a logical pattern is operating or not. 5.3 Why should I use an expert system? Expert86 may be used to build small prototype expert systems, to build full- scale working systems, or simply to assess whether an expert system may be of help to you. Expert86 is an ideal tool for investigating expert systems. It has a number of important qualities. - it is easy to use - a new expert system can be designed and implemented with a minimum of effort and with very little experience. - it is accessible - an expert system constructed with Expert86 is likely to be much more accessible than a human expert. Expert systems are available 24-hours a day. - it is cheap - an expert system running under Expert86 is cheap to get working (it will need very few man-hours of development time) and very cheap to consult. A human expert will often command a high hourly rate for his services, and will take his expertise with him when he leaves. - it is consistent - unlike a human expert Expert86 will always produce the same answer given a particular set of circumstances. It cannot become tired and make mistakes. - it is versatile - any number of different knowledge bases can be used with Expert86, allowing it to advise on a variety of different topics. It can be used in a wide range of situations, anywhere decisions follow a pattern. - it is reliable - Expert86 will always produce rules which are logically consistent with the examples it was given. Unlike typical human experts it cannot draw false conclusions, overlook information or misinterpret information. That is not to say that an expert system can necessarily match the subtlety or ingenuity of a human expert, of course. At present no expert systems are sufficiently powerful to rival humans in really difficult situations. - it is conversational - you can make the system respond in your own terms, in language that is meaningful to you. End-users of an expert system generated with Expert86 need to know very little about computers. Employees can use Expert86 as a 'talking textbook' with very little guidance. 5.4 Registration If you would like to register send £19.95 to PROSPEC Computer Systems Shareware PO BOX 28 Beeston Nottingham NG9 1PH Great Britain For an up to date copy of this disk send £3.50 + 50p postage. The fee covers the price of the disk only - the software is free. We do not even charge a copying fee. On this disk you should find the following files: HELP.COM - advice on getting started README.1 - introduction to Expert86 README.2 - details of our Expert86 competition README.3 - details of other PROSPEC shareware products README.4 - how to copy Expert86 [README.5] - this file README.6 - how to use Expert86 README.7 - a blank order form for you to print out README.8 - details of the ED.COM editor E86.COM - the Expert86 expert system generator CAR - a sample knowledge base for Expert86 - training set CAR.ATT - a sample knowledge base for Expert86 - definitions LIST.COM - a utility, similar to TYPE.COM