ADVISOR an Expert System Shell Written in Prolog
Total Page:16
File Type:pdf, Size:1020Kb
ADVISOR An Expert System Shell Written in Prolog. A Dissertation Presented in Fulfilment of the requirement for the M.Sc Degree in Computer Applications. August 1990 Paul Powell B.Sc. School of Computer Applications Dublin City University * Dublin 9. Supervisor : Mr M. Ryan. DECLARATION This dissertation is based on the author’s own work. It has not previously been submitted for a degree at any academic institution. VcmaÌÌ ^à t/Q-# Jit. „ Paul Powell August 1990. ACKNOWLEDGEMENTS I would like to thank Polydata Ireland Ltd., for their generous scholarship which made it possible for me to pursue this research. 1 would like to thank the staff at Polydata, especially Mr Tadgh Dennahy and Dr. Irwin Bauer for their input in building up a prototype rule set. I would also like to thank my supervisor, Mr. Michael Ryan for his support, direction and patience. Finally I would like to acknowledge the support of my colleagues, friends and family who have kept me sane. Table of Contents. Chapter 1. The Problem Domain 1.1. The Design Process. 1 1.2. The Aim of the Research. 5 Chapter 2. The Foreseen Problems. 2.1. The Knowledge Engineering Problem. 6 2.2. The Communication Problem. 7 2.3. Knowledge Acquisition. 10 2.4. The Desired System Qualities. 12 Chapter 3. The Current Expert System Technology. 3.1. Considerations for PC-Based Expert System Shells. 14 3.2. Existing PC-Based Expert System Shells. 16 3.3. Constructing an Open-Ended Expert System Shell. 20 3.3.1. The Knowledge Base. 20 3.3.2. The Role of the Polymer Expert. 23 3.3.3. The Role of the Designer. 24 3.3.4. The Language. 25 3.4. An Open-Ended System. 28 Chapter 4. Implementation Choices for an Open-Ended Expert System Shell. 4.1. Necessary System Functions. 29 4.2. Implementation Language Choices. 31 4.2.1. Lisp. 33 4.2.2. Prolog. 34 4.2.3. Some Problems with Prolog. 40 4.2.4. Choosing a Suitable Version of Prolog. Chapter 5. Advisor the Prototype System. 5.1. Prototyping. 44 5.1.1. The Shell Intentions. 44 5.1.2. Advisor The First Approach. 46 Table of Contents. 5.2. Advisor A Prototype Shell. 49 5.2.1. The Modularity of Advisor. 50 5.3. The User Interface and Functions. 53 5.3.1. Representing the Quasi-English Natural Language. 54 5.3.1.1. The Parsers. 58 5.3.2. The Graphical Interface. 60 5.3.2.1. Windows and Menus. 61 5.3.2.2. Dialog Boxes. 63 5.4. The Technical Specification. 67 5.5. The Rule Structure and Format. 71 5.5.1. Rule Levels. 73 5.5.2. The Rule Format. 75 5.5.3. Rule Translation. 82 5.5.4. The Inference Mechanism. 88 5.6. Questions, Answers and Customised Explanations. 91 5.6.1. The Questioning Facility. 92 5.6.2. Answers. 94 5.6.3. Customised Explanations. 96 5.7. Summary. 98 Chapter 6. Conclusions and Further Work. 6.1. Conclusions. 100 6.2. Future Work. 103 Bibliography Appendix A Program Listings. Appendix B A List of The CAPS Database Parameter List. Appendix C An Evaluation of the Arity Prolog Product. iv List of Figures Figure 1 The polymer design/specification process 4 Figure 2 The simplified design/selection process 8 Figure 3 The prototype rule set 9 Figure 4 The sentence structure 26 Figure 5 General Language structure 27 Figure 6 Table of proposed paradigms and theirrelative effectiveness 32 Figure 7 The compiled prototype rule set 45 Figure 8 The Advisor structure chart 52 Figure 9 The Application descriptor dialog box 55 Figure 10 The add dialog box 56 Figure 11 The delete dialog box 56 Figure 11a The lexical analysis, parsing and translation process 60 Figure 12 The menu system chart for AdvisOr 62 Figure 13 A popdown menu 62 Figure 14 The Load popdown menu 62 Figure 15a The help list dialog box 64 Figure 15b The rule editor dialog box 66 Figure 16a The technical specification table. 68 Figure 16b The change index dialog box 69 Figure 17 The index/2 predicate 70 Figure 18 The table/1 clause 70 Figure 19 The rule levels 74 Figure 20 A sample Super Rule 75 Figure 21 The Super Rule order 76 Figure 22 A sample Sub Rule 78 Figure 23 The Sub Rule order 79 Figure 24 A sample Leaf Rule 81 Figure 25 A sample rule chain 81 Figure 26 The sample rule base 85 Figure 27 The Meta Rules ( Prolog form ) 86 Figure 28 The Ordinary Rules ( Prolog form ) 87 Figure 29 The rule chain 90 Figure 30 The questioning dialog box 93 Figure 31 The solution dialog box , 94 Figure 32 The explain_index dialog box 96 v Abstract The purpose of the research reported here is to investigate the requirements of a system which will aid a designer in moving from the functional specification of a new product to a detailed Lcchnical specification of the polymer required, and to develop a system for (his purpose. A very wide range of products can be made from polymers and over 5000 polymers are commercially available. The designer usually interacts with a polymer expert and together they try to specify the polymer properties required. Over 150 parameters are involved. Once values have been assigned to these parameters existing databases can be used to identify a suitable material. Polymer experts are scarcc and there is a need for a system which wilt allow the designer to specify the parameter values dictated by the functional requirements of the design. > A number of problems are identified in this area. Some of these are of a terminological and communication nature and arise from the wide range of the application areas and large numbers of parameters to be specified. Others are due to the knowledge engineering problems in fonnalising the knowledge of the polymer expert. An investigation of these problems lead to the specification of a system which combines a flexible quasi-English naLural language with a rule based paradigm. A prototype system called Advisor is built. Advisor has the unique ability of allowing the expert to create not only the rules but also the vocabulary with which these rules are constructed and with which the designer builds up a description of the application. Thus all the vocabulary used within the system is familiar to both the expert and the designer. The underlying language for the implementation of Advisor is Arity Prolog. The prototype validates the basic design decisions. Analysis of it’s performance and suggestions for further refinements and improvements are given. The prototype system which is being puL into use by a commercial plastic design company is currently being evaluated by polymer design experts in Aachcn in Germany. Chapter 1 The Problem Domain Chapter 1 The problem domain. 1.1. The Design process. Many aspects of design are difficult to support using computers because of the vagueness and ambiguity of the concepts and the creative nature of the process involved in transforming them into the detailed specifications necessary to select suitable materials. This problem is heightened in the area of design using polymers where a wide range of applications, everything from forks and other disposable cutlery to bumpers for cars, can be produced. Each application produced can be constructed from a wide range of different polymer materials. Over five thousand grades of polymers are commercially available, each of which has a large number of material properties. Apart from the difficulty of specifying the design objectives in a clear and unambiguous manner, design using polymers i$ complicated because the properties they have are so numerous and varied. Indeed Lovrich and Tucker [LT861] state that "Polymers offer a wider range of material properties than any other class of materials; it is this range that makes them suitable for so many applications". However they go on to say that "Expert designers with years of experience are quite capable of making good design decisions..." but the problem is that "these specialists make up a very small percentage of the designers working with polymers". An example of the wide range of properties is given by Charles MacDermott [CD79]. "A perfect example of the proliferation of candidate materials is the nylon family. Within this family, there are 6, 6/6, 6/10, 6/12 nylons as well as numerous copolymers of these basic polyamides. Furthermore, most of them are available in glass-reinforced, flame- retarded, mineral-filled, etc., versions. To this must be added nylons blended or grafted with 1 toughening agents, such as elastomers and polyesters, and again there are filled and glass- reinforced versions of these nylons". As can be seen from this example of the nylon family, design experts must have an engineering background which enables them to understand the polymer properties and how polymers can be affected by their functionality and their environment. They must also know about the various processing techniques which can be used to manufacture the application. However the majority of designers are either being introduced to the area of polymer design having previously designed in more conventional material ( e.g. steel, wood etc.) or are designers with no engineering background at all. Most material designers faced with the myriad of possible polymers tend just to design in the particular materials with which they are familiar. This can mean that they miss out on polymers which have additional desirable properties to the ones which are essential to the design, or which are more cost effective. The ideas expressed by Lovrich and Tucker [LT861.LT862] were given further support in the course of the work described here and through meetings with polymer design experts from Aachen, Germany.