Table of Contents

 

Abstract                                                                                                                       i

Acknowledgements                                                                                                       ii

1.  Project Introduction                                                                                                  

            1.1 Project Background                                                                                     1

1.2 How the work was carried out                                                                      1

1.3 Problem Statement                                                                                       2

1.4 Aims, Objectives and the Methods of approach                                              4

 

2. Literature Review

2.1 Introduction                                                                                                 6

2.2 AI Techniques for Engineering Design                                                          7

2.3 GE Fanuc Sizer                                                                                            7

2.4 What is knowledge Representation?

2.4.1    Introduction                                                                                  7

2.4.2    A Surrogate                                                                                 8

2.4.3    A set of Ontological Commitments                                                9

2.4.4    A theory of reasoning                                                                   11

2.4.4.1    What is intelligent reasoning?                                         11

2.4.4.2    What inferences are made?                                           13

2.4.5    A medium of efficient computation                                                13

2.4.6    A medium of human expression                                                     14

2.4.7    Conclusion                                                                                   14

2.5 NEMA Code                                                                                               14


3. The Engineering Assistant                                                                                         

3.1 Purpose of the expert system                                                                                    16

3.2 Selection of an environment                                                 

            3.2.1 The nature of the environment required                                          16

            3.2.2 Selection of a Representation Scheme                                            20

            3.2.3 Survey of Software Tools and Selection                                          22

3.3 Design and its Rationale

            3.3.1 Introduction                                                                                  25

            3.3.2 How the system works                                                                  25

            3.3.3 Outputs of the system                                                                    28

            3.3.4 A classification of Motors                                                              29

3.3.5 Knowledge Representation Issues                                                 

                        3.3.5.1 Granularity of Representation                                          30

                        3.3.5.2 Ontological Commitment                                     32

                        3.3.5.3 Forward Versus Backward Reasoning                             33

3.3.6 Object Oriented Design

                        3.3.6.1 Introduction                                                                    35

3.3.6.2    The mapping of OO concepts to Logic Programming       35

concepts

3.3.6.3    Hierarchical Reasoning                                                  40

3.3.7    Translating NEMA rules to Logic Predicates                                 44

3.4   Handling of Uncertainty                                                                               45

3.5   Windows Programming and Logic Programming                                           45

3.6   Drawbacks of the Visual Prolog Language                                                   48

 

4. The OI-KSL language

4.1   The need for such a Language                                                                     49

4.2   The Features of the Language                                                                      49

4.3   How the Program is Designed

4.3.1    Introduction                                                                                  50

4.3.2    Object Module                                                                             50

4.3.3    Question Module                                                                          51

4.3.4    How it works                                                                               52

4.4   The Language selection                                                                               54

4.5   Compiler Theory

4.5.1    Introduction                                                                                  54

4.5.2    Stages of a Compiler

4.5.2.1    Introduction                                                                   55

4.5.2.2    Lexical Analysis                                                            55

4.5.2.3    Syntax Analysis                                                             57

4.5.2.4    Semantic Analysis                                                         58

4.6   Architecture and Functionality of the Compiler

4.6.1    Introduction                                                                                  58

4.6.2    Intermediate Structures used                                                        

4.6.2.1    Introduction                                                                   59

4.6.2.2    Terminal Table                                                              59

4.6.2.3    Object Table                                                                 59

4.6.2.4    Attributes Table                                                                        60

4.6.2.5    Rules Table                                                                   60

4.6.2.6    Methods Table                                                              61

4.6.2.7    Question Table                                                              61

4.6.2.8    Uniform Symbol Table                                                   61

4.6.2.9    Difference Table                                                           61

4.6.3    Stages of a Compiler

4.6.3.1    Introduction                                                                   62

4.6.3.2    Lexical Analysis                                                            62

4.6.3.3    Syntax Analysis                                                             63

4.6.3.4    Semantic Analysis                                                         63

4.6.3.5    The Inference Process                                                  64

4.6.4    Reconciling OOP and Backtracking                                               65

4.6.5    Search, Conflict Resolution and Rule Selection                               66

4.6.6    Error Routines                                                                              67

4.6.7    Knowledge Base                                                                          67

4.7   Comparison of Visual Prolog and OI-KSL                                                    67

4.8   The contribution of OI-KSL                                                                         71

 

5. A Fuzzy Logic Implementation

5.1   Introduction                                                                                     72

5.2   Probability Theory & Fuzzy Logic                                                                73

5.3   The case of the Electric bulb                                                                        73

5.4   The Fuzzy Logic Methodology

5.4.1    Identification of Linguistic Variables                                              73

5.4.2    Defining Linguistic Terms                                                 74

5.4.3    Defining the Fuzzy Knowledge Base                                             74

5.4.4    Defining the Fuzzy sets for the Linguistic Terms                             74

5.4.5    Fuzzy Inference

5.4.5.1    Introduction                                                                   75

5.4.5.2    Fuzzification                                                                  75

5.4.5.3    Fuzzy Inference                                                                        77

5.4.5.4    Defuzzification                                                              78

5.5   A Brief note on the use of weighted average method for De-Fuzzification       78


6. Conclusions

6.1   Problems Encountered

6.1.1    Literature Survey                                                                         79

6.1.2    Knowledge Acquisition                                                                 79

6.2   Critical Appraisal                                                                                         80

6.3   Contributions                                                                                               81

6.4   Future Work                                                                                               82

References                                                                                                                   83

Appendix I - The syntax for the OI-KSL language                                                          86

Appendix II - The Prolog Fuzzy Logic Implementation                                                     88

Appendix III – An OI-KSL Program                                                                              92