RESEARCH INTO THE CONSTRUCTION AND APPLICATION OF INTELLIGENT KNOWLEDGE BASED SYSTEMS THAT AID COMPUTER USERS Dr. Peter Ross, Department of Artificial Intelligence, University of Edinburgh. INTRODUCTION Intelligent knowledge-based (IKB) systems, sometimes referred to as 'expert systems', are computer programs or sets of programs which contain explicit knowledge concerning some particular area of human expertise, organised in such a way that they can function as an expert consultant in that area. Some existing examples are MECHO (which solves problems in mechanics - [Bundy79]), MYCIN (which diagnoses bacterial infections - [Shortliffe76]), MOLGEN (which designs molecular genetic experiments - [Stefik81]) and EL (which analyses analogue electric circuits [Stallman77]). They contain the factual knowledge of their subject as sets of rules - for example, one of MYCIN's rules is If (a) the infection is primary-bacteremia, and (b) the site of the culture is one of the sterile sites, and (c) the suspected entry point is the gastro-intestinal tract, Then there is suggestive evidence (prob. 0.7) that the organism is bacteroides. MYCIN functions by collecting evidence, through questioning a physician, to formulate various hypotheses and weighing the evidence for and against them using rules such as the one above. These rules are also used to guide the questioning, for instance to establish whether or not the preconditions of certain rules are probably or certainly true or false. Much of the current research into intelligent knowledge-based systems is concerned with two questions. The first is, how does one represent and structure the various necessary sorts of knowledge so as to be usable by a computer program? The second question is, how can a program use the various sorts of knowledge and yet avoid a combinatorial explosion of the number of possibilities that need to be considered? Certain useful principles are already emerging (e.g. see [Hayes-Roth82]), but usually the solutions are tailored to fit the area of knowledge in question. One option that is open to almost all existing IKB systems is to ask the user some pertinent questions when there is difficulty deciding what to pursue next, on the assumption that all the user lacks is the expertise to make the best use of his own information. Little work has been done on the problems that arise when the user is using the IKB system to acquire expertise himself, and therefore may not be able to understand the questions or may not be able to formulate the answers properly. In such a situation the system would have to form a model of what the user knows and can do at his current level of competence, and use the model to find the right level at which to communicate with the user. Such a model would have to include not only details of his factual knowledge but also details of his higher-level knowledge of how to apply that knowledge. There are probably two resons why not much work has yet been done in this area. One is that the system would have to begin by being a relatively passive observer of the user's efforts, since it would be unable to assess whether particular questions would be meaningful to him; however there are major linguistic difficulties in extracting the meaning from a user's utterances if he is allowed to use even a small subset of English. The other is that in almost all subject areas the vocabulary needed by the system to represent the higher-level knowledge is too large for the problem to be tractable. PROPOSED RESEARCH The research I wish to do is to investigate the problem of an IKB system forming and using a model of the user's knowledge and competence. To avoid the difficulties mentioned above, I propose to use as subject area the topic of how to use a computer operating system, in particular the UNIX system now coming into widespread use. This restricts the user's utterances to the range of commands meaningful to the operating system and these have well-defined syntax and semantics, neither impossibly large. Moreover, the function of an operating system is to allow users to accomplish certain kinds of tasks by making certain kinds of operations easy to perform. This set of operations provides a natural vocabulary for representing the user's intentions, and it is a vocabulary which the user himself has to acquire in learning how to use the computer. The work breaks naturally into several tasks: (a) constructing a database of static knowledge of the system, such as information about the available commands, what parameters they take, what they do and what effects they produce (b) constructing an IKB program that has knowledge of the use of the system. It will include rules such as IF his program failed THEN the debris is in a file called 'core' IF he couldn't delete a file whe he tried AND it exists but is protected against deletion AND there is a low probability that he knows about the file security mechanism THEN tell him about it and increase the probability that he knows about the mechanism and many others (c) constructing an IKB program that has general rules about any users' possible strategies and intentions, e.g. "good programmers normally keep large programs in several files rather than one unwieldy one", "good programmers normally name files in a logical and consistent fashion" and rules that express the many different kinds of program development cycle that users might choose to adopt (d) constructing an IKB program that can draw on the knowledge and rules described above, and use inferencing and pattern-recognition mechanisms to attempt to model the user's knowledge, aims and competence. Some of these mechanisms will be for essentially mundane tasks such as recognising groups of files that have indeed been named in a logical and consistent manner, others will be for the key tasks of forming hypotheses about the user and then looking for evidence that confirms or refutes them. Volunteers from the (large) community of computer users in the Department of Artificial Intelligence, some of whom are highly experienced and some of whom are novices, will be asked to use the programs so that I can assess progress and get useful fundamental information for directing the work. The most suitable tool for the work is PROLOG, a very high level computer language based on a particular formulation of predicate logic. The Department of Artificial Intelligence wrote and now distribute a UNIX PROLOG system; moreover, the MECHO program mentioned above was written in PROLOG by members of the department led by Dr. Alan Bundy, and it should be possible to draw on their experience when tackling tasks (a), (b) and (c). BENEFITS OF THE RESEARCH In addition to furthering research into IKB systems, the proposed work should also be useful to those working on problems of cognitive modelling and of man-machine communications. It should also provide a practical tool for those people needing to learn to use UNIX, and make interesting contributions to the subject of computer-assisted instruction. RELATED RESEARCH Apart from research into IKB systems at the Departments of Artificial Intelligence and machine intelligence at Edinburgh University and a few other centres, most of the work on this subject area in the U.K. is directed toward modifying the operating system itself to make it more friendly and tolerant of novices. Probably the best system that creates a model of the user has been one called WEST [Brown78] written in the U.S.A., which coaches children in simple arithmetic skills by monitoring how they play a simple 'snakes and ladders' type of game in which the child moves an amount determined by combining three random numbers in any simple arithmetic way. If nothing else, WEST indicates that the proposed research is, at least to a certain extent, possible using current ideas in Artificial Intelligence.