Module 12: Expert Systems
5.1 Expert Systems (ES):
● Expert systems are knowledge based programs which provide expert
quality solutions to the problems in specific domain of applications.
● The core components of expert system are
– knowledge base and
– navigational capability (inference engine)
● Generally its knowledge is extracted from human experts in the domain
of application by knowledge Engineer.
– Often based on useful thumb rules and experience rather than
absolute certainties.
● A process of gathering knowledge from domain expert and codifying it
according to the formalism is called knowledge engineering.
5.2 Phases in building Expert System
● There are different interdependent and overlapping phases in building an
expert system as follows:
● Identification Phase:
– Knowledge engineer finds out important features of the problem
with the help of domain expert (human).
– He tries to determine the type and scope of the problem, the kind
of resources required, goal and objective of the ES.
● Conceptualization Phase:
– In this phase, knowledge engineer and domain expert decide the
concepts, relations and control mechanism needed to describe a
problem solving.
● Formalization Phase:
– It involves expressing the key concepts and relations in some
framework supported by ES building tools.
– Formalized knowledge consists of data structures, inference rules,
control strategies and languages for implementation.
● Implementation Phase:
– During this phase, formalized knowledge is converted to working
computer program initially called prototype of the whole system.
● Testing Phase:
– It involves evaluating the performance and utility of prototype systems
and revising it if need be. Domain expert evaluates the prototype
system and his feedback help knowledge engineer to revise it.
5.3. Expert System Architecture
Expert System
Inference Engine
Special Interfaces
Inference & Control
Human Case History
Expert Knowledge Acquisition
& Learning Module
Knowledge Base
Static database
User User Interface
Dynamic database
(working memory)
Explanation Module
Fig: Architecture of Expert System
Knowledge Base (KB)
• KB consists of knowledge about problem domain in the form of static and
dynamic databases.
• Static knowledge consists of
– rules and facts which is complied as a part of the system and does
not change during execution of the system.
• Dynamic knowledge consists of facts related to a particular consultation
of the system.
– At the beginning of the consultation, the dynamic knowledge base
often called working memory is empty.
– As a consultation progresses, dynamic knowledge base grows and
is used along with static knowledge in decision making.
Working memory is deleted at the end of consultation of the system
Inference Engine
• It consists of inference mechanism and control strategy.
• Inference means search through knowledge base and derive new knowledge.
• It involve formal reasoning involving matching and unification similar to
the one performed by human expert to solve problems in a specific area
of knowledge.
• Inference operates by using modus ponen rule.
• Control strategy determines the order in which rules are applied.
• There are mainly two types of control mechanism viz., forward chaining
and backward chaining.
Knowledge Acquisition
● Knowledge acquisition module allows system to acquire knowledge about the
problem domain.
● Sources of Knowledge for ES
– text books, reports, case studies,
– empirical data and
– domain expert experience.
● Updation of Knowledge can be done using knowledge acquisition module
of the system.
– insertion,
– deletion and
– updation of existing knowledge
Case History
● Case History stores the file created by inference engine using the
dynamic database created at the time of consultation.
● Useful for learning module to enrich its knowledge base.
● Different cases with solutions are stored in Case Base system.
● These cases are used for solving problem using Case Base Reasoning
(CBR).
Explanation module
● Most expert systems have explanation facilities that allow the user to ask
the system why it asked some question, and how it reached to conclusion.
● It contains 'How' and 'Why' modules attached to it.
– The sub-module ‘How’ tells the user about the process through w
– hich system has reached to a particular solution
– ‘Why' sub-module tells that why is that particular solution offered.
● It explains user about the reasoning behind any particular problem
solution.
● Questions are answered by referring to the system goals, the rules being used,
and any existing problem data.
Explanation Modules Responses
User Why module
System Do you have running nose?
User Yes.
System I am trying to prove that you have cold. Do you have headache?
User Yes
System Do you have sore throat?
User No
System Then you do not have cold. Do you have fever?
User Yes
System Now I am looking at the possibility of measles. Do you have cough?
User Yes
System I can infer measles using rule “If symptoms are fever, cough,
running_nose, then patient has measles” measles is concluded.
User How Module
System Since you have fever, running_nose and cough and there is a rule “If
symptoms are fever, cough, running_nose, then patient has measles”.
So measles is concluded for you.
User Interfaces
● Allows user to communicate with system in interactive mode and helps
system to create working knowledge for the problem to be solved.
Dialogue Module (User Interface)
System Do you have fever?
User Yes
System Do you have bad throat?
User No
System Do you have cough?
User Yes
System Are you suffering from running nose?
User Yes
System Are you suffering from headache?
User No
Special interfaces
● It may be used for specialized activities such as handling uncertainty in
knowledge.
● This is a major area of expert systems research that involves methods for
reasoning with uncertain data and uncertain knowledge.
● Knowledge is generally incomplete and uncertain.
● To deal with uncertain knowledge, a rule may have associated with it a
confidence factor or a weight.
● The set of methods for using uncertain knowledge in combination with
uncertain data in the reasoning process is called reasoning with
uncertainty.
5.4 Rule Based Expert Systems
● A rule based expert system is one in which knowledge base is in the form
of rules and facts.
– Knowledge in the form of rules and facts is most popular way in
designing expert systems.
● It is also called production system.
● Example: Suppose doctor gives a rule for measles as follows:
"If symptoms are fever, cough, running_nose, rash and conjunctivitis
then patient probably has measles".
● Prolog is most suitable for implementing such systems.
hypothesis(measles) :- symptom(fever), symptom(cough),
symptom(running_nose),symptom(conjunctivitis),
symptom(rash).
Simple Medical diagnostic system with dynamic databases:
● The system starts with consultation predicate, that initiates dialog with
user to get information about various symptoms.
● Positive and negative symptoms are recorded in dynamic database and
'hypothesis(Disease)' is satisfied based on stored facts about symptoms.
● If the hypothesis goal is satisfied then the disease is displayed otherwise
display 'sorry not able to diagnose'.
● Finally in both the situations, symptom database for a particular user is
cleared.
Query:?-consultation.
Medical Consultation System
consultation :- writeln(‘Welcome to MC System’),
writeln(‘Input your name),
readln(Name),
hypothesis(Dis), !,
writeln(Name, ‘probably has’, Dis),
clear_consult_facts.
consultation :- writeln(‘Sorry, not able to diagnose’),
clear_consult_facts
hypothesis(flu) :- symptom(fever),
symptom(headache),
symptom(body_ache),
symptom(sore_throat),
symptom(cough),
symptom(chills),
symptom(running_nose),
symptom(conjunctivitis).
symptom(fever) :- positive_ symp(‘Do you have
fever(y/n) ?’, fever).
symptom(cough) :- positive_ symp(‘Do you have
cough (y/n) ?’, cough).
symptom(chills) :- positive_ symp(‘Do you have
chills (y/n) ?’, chills).
positive_ symp(_, X) :- positive(X), !.
positive_ symp(Q, X) :- not(negative(X)),
query(Q, X, R), R = ‘y’.
query(Q, X, R) :- writeln(Q), readln(R),
store(X, R).
store(X, ‘y’) :- asserta(positive(X)).
store(X, ‘n’) :- asserta(negative(X)).
clear_consult_facts :- retractall(positive(_)).
clear_consult_facts :- retractall(negative(_)).
Applications of Expert System
o In designing and manufacturing domain
It can be broadly used for designing and manufacturing physical devices such as camera
lenses and automobiles.
o In the knowledge domain
These systems are primarily used for publishing the relevant knowledge to the users. The
two popular ES used for this domain is an advisor and a tax advisor.
o In the finance domain
In the finance industries, it is used to detect any type of possible fraud, suspicious activity,
and advise bankers that if they should provide loans for business or not.
o In the diagnosis and troubleshooting of devices
In medical diagnosis, the ES system is used, and it was the first area where these systems
were used.
o Planning and Scheduling
The expert systems can also be used for planning and scheduling some particular tasks for
achieving the goal of that task.
Traditional System Vs Expert System
The traditional system solves common numerical problems. while
expert system is fixed the problem in a relatively limited area.
Traditional system :
• The traditional system solves common numerical problems.
• It is a sequential program that combines information and processing.
• A well-tested program will never make a mistake.
• There is no explanation given for the output.
Expert system :
• It fixes the problem in a relatively limited area.
• The knowledge base may or may not be separated from the processing.
• It is possible that the well-tested expert system will make blunders.
• In most cases, an explanation is given.