1 Introduction.- 1.1 Expert Systems.- 1.2 Expert System Features.- Goal-Driven Reasoning.- Uncertainty.- Data Driven Reasoning.
- Data Representation.- User Interface.- Explanations.- 1.3 Sample Applications.- 1.4 Prolog.- 1.
5 Assumptions.- 2 Using Prolog's Inference Engine.- 2.1 The Bird Identification System.- Rule Formats.- Rules About Birds.- Rules for Hierarchical Relationships.- Rules for Other Relationships.
- 2.2 User Interface.- Attribute Value pairs.- Asking the User.- Remembering the Answer.- Multi-Valued Answers.- Menus for the User.- Other Enhancements.
- 2.3 A Simple Shell.- Command Loop.- A Tool for Non-Programmers.- 2.4 Summary.- Exercises.- 3 Backward Chaining with Uncertainty.
- 3.1 Certainty Factors.- An Example.- Rule Uncertainty.- User Uncertainty.- Combining Certainties.- Properties of Certainty Factors.- 3.
2 MYCIN'S Certainty Factors.- Determining Premise CF.- Combining Premise CF and Conclusion CF.- Premise Threshold CF.- Combining CFs.- 3.3 Rule Format.- 3.
4 The Inference Engine.- Working Storage.- Find a Value for an Attribute.- Attribute Value Already Known.- Ask User for Attribute Value.- Deduce Attribute Value from Rules.- Negation.- 3.
5 Making the Shell.- Starting the Inference.- 3.6 English-like Rules.- Exercises.- 4 Explanation.- Value of Explanations to the User.- Value of Explanations to the Developer.
- Types of Explanation.- 4.1 Explanation in Clam.- Tracing.- How Explanations.- Why Questions.- 4.2 Native Prolog Systems.
- Exercises.- 5 Forward Chaining.- 5.1 Production Systems.- 5.2 Using Oops.- 5.3 Implementation.
- 5.4 Explanations for Oops.- 5.5 Enhancements.- 5.6 Rule Selection.- Generating the Conflict Set.- Time stamps.
- 5.7 LEX.- Changes in the Rules.- Implementing LEX.- 5.8 MEA.- Exercises.- 6 Frames.
- 6.1 The Code.- 6.2 Data Structure.- 6.3 The Manipulation Predicates.- 6.4 Using Frames.
- 6.5 Summary.- Exercises.- 7 Integration.- 7.1 Foops (Frames and Oops).- Instances.- Rules for Frinsts.
- Adding Prolog to Foops.- 7.2 Room Configuration.- Furniture Frames.- Frame Demons.- Initial Data.- Input Data.- The Rules.
- Output Data.- 7.3 A Sample Run.- 7.4 Summary.- Exercises.- 8 Performance.- 8.
1 Backward Chaining Indexes.- 8.2 Rete Match Algorithm.- Network Nodes.- Network Propagation.- Example of Network Propagation.- Performance Improvements.- 8.
3 The Rete Graph Data Structures.- 8.4 Propagating Tokens.- 8.5 The Rule Compiler.- 8.6 Integration with Foops.- 8.
7 Design Tradeoffs.- Exercises.- 9 User Interface.- 9.1 Object Oriented Window Interface.- 9.2 Developer's Interface to Windows.- 9.
3 High-Level Window Implementation.- Message Passing.- Inheritance.- 9.4 Low-Level Window Implementation.- Exercises.- 10 Two Hybrids.- 10.
1 CVGEN.- 10.2 The Knowledge Base.- Rule for Parameters.- Rules for Derived Information.- Questions for the User.- Default Rules.- Rules for Edits.
- Static Information.- 10.3 Inference Engine.- 10.4 Explanations.- 10.5 Environment.- 10.
6 AIJMP.- 10.7 Summary.- Exercises.- 11 Prototyping.- 11.1 The Problem.- 11.
2 The Sales Advisor Knowledge Base.- Qualifying.- Objectives -- Benefits -- Features.- Situation Analysis.- Competitive Analysis.- Miscellaneous Advice.- User Queries.- 11.
3 The Inference Engine.- 11.4 User Interface.- 11.5 Summary.- Exercises.- 12 Rubik's Cube.- 12.
1 The Problem.- 12.2 The Cube.- 12.3 Rotation.- 12.4 High Level Rules.- 12.
5 Improving the State.- 12.6 The Search.- 12.7 More Heuristics.- 12.8 User Interface.- 12.
9 On the Limits of Machines.- Exercises.- Appendix A Native.- Sample Dialog.- Birds Knowledge Base.- Native Shell.- Appendix B Clam.- Sample Dialog.
- Car Knowledge Base.- Clam.- Ldruls.- Appendix C Oops.- Sample Dialog.- Room Knowledge Base.- Oops.- Appendix D Foops.
- Sample Dialog.- Room Knowledge Base (Foops).- Foops.- Appendix E Rete-Foops.- Rete Compiler and Runtime.- Appendix F Windows.- Window Demonstration.- Windows (abbreviated).
- Appendix G Rubik.- Rubik.- Rubdata.- References.- Predicate Index.