Bratko, Chapter 14: Expert Systems and Knowledge Representation 14.1 Functions of an Expert System - problem solving - using domain-specific knowledge - dealing with uncertainty - user interaction - explanation of intentions and decisions 14.2 Main Structure of an Expert System - knowledge base - inference engine } These two comprise an expert - user interface } system shell or shell 14.3 Representing Knowledge with If-Then Rules - also called production rules - properties of if-then rules - modular - incremental - modifiable - transparent - support 'how did you reach this conclusion' questions - support 'why are you interested in this information' questions - can add certainty to rules - can add necessity and sufficiency of conditions for conclusions 14.4 Forward and Backward Chaining in Rule-Based Systems - backward chaining - Prolog already does backward chaining - better rule/fact interface [fig14.6, p339] - is_true(Fact), if Condition then Conclusion - forward chaining [fig14.7, p341] - assert facts as derived 14.5 Generating Explanation - 'how', ie, proof tree [fig14.8, p344] - 'why', see Chapter 15 14.6 Introducing Uncertainty - representation - Proposition : Certainty - if Condition then Conclusion : Certainty - simple combination strategy - c(P1 and P2) = min(c(P1),c(P2)) - c(P1 or P2) = max(c(P1),c(P2)) - if P1 then P2 : C, c(P2) = c(P1) * C - interpreter with uncertainties [fig14.9, p346] - colon already an operator (package) - have to prove all disjuncts of an OR 14.7 Difficulties in Handling Uncertainty - assumption of independence - if a and b then c, a and b may correlate - belief networks help [later, RN] 14.8 Semantic Networks and Frames - semantic networks - isa(Class1,Class2), isa(Instance,Class) - Property(Class,Value), Property(Instance,Value) - inheritance - fact(Fact) :- Fact, !. - fact(Fact) :- Fact =.. [Rel,Arg1,Arg2], isa(Arg1,SuperArg), SuperFact =.. [Rel,SuperArg,Arg2], fact(SuperFact). - frames - a frame consists of a set of filled/unfilled slots - properies, a_kind_of, instance_of - unfilled slots filled using inheritance - procedural slot - define procedure - pass instance reference up through hierarchy until procedure call found