Expert Systems: Key Concepts and Development

Expert Systems

Expert Systems are computer software applications that:

  • Emulate human experts.
  • Deal with small, well-defined domains of expertise.
  • Are able to solve real-world problems.
  • Are able to act as cost-effective consultants.
  • Can explain the reasoning behind any solutions they find.
  • Should be able to learn from experience.

Definition of Expert Systems

An expert system is a system that employs human knowledge captured in a computer to solve problems that ordinarily require human expertise (Turban).

It’s a computer program that emulates the behavior of human experts who are solving real-world problems associated with a particular domain of knowledge (Pigford & Baur).

Expert System Development

  1. Problem Definition.
  2. System Design (Knowledge Acquisition).
  3. Formalization (Logical design, tree structures).
  4. System Implementation (Building a prototype).
  5. System Validation.

Characteristics of Expert Systems

  • Inferential Processes: Uses various reasoning techniques.
  • Heuristics: Decisions based on experience and knowledge.

Knowledge and Uncertainty

  • Facts and rules are structured into a knowledge base and used by expert systems to draw conclusions.
  • There is often a degree of uncertainty in the knowledge.
  • Things are not always true or false.
  • The knowledge may not be complete.
  • In an expert system, certainty factors are one way to indicate the degree of belief.

Desirable Features of an Expert System

  • Dealing with Uncertainty (certainty factors).
  • Explanation.
  • Ease of Modification.
  • Transportability.
  • Adaptive learning.

Advantages of Expert Systems

  • Capture of scarce expertise.
  • Superior problem-solving.
  • Reliability.
  • Work with incomplete information.
  • Transfer of knowledge.

Limitations of Expert Systems

  • Expertise is hard to extract from experts:
    • They don’t know how.
    • They don’t want to tell.
    • They all do it differently.
  • Knowledge is not always readily available.
  • It is difficult to independently validate expertise.
  • High development costs.
  • Only work well in narrow domains.
  • Cannot learn from experience.
  • Not all problems are suitable.

Creating an Expert System

Two steps are involved:

  1. Extracting knowledge and methods from the expert (knowledge acquisition).
  2. Reforming knowledge/methods into an organized form (knowledge representation).

Acquiring the Knowledge

What is knowledge?

  • Data: Raw facts, figures, measurements.
  • Information: Refinement and use of data to answer a specific question.
  • Knowledge: Refined information.

Sources of Knowledge

  • Documented: Books, journals, procedures, films, databases.
  • Undocumented: People’s knowledge and expertise, people’s minds, other senses.

Levels of Knowledge

  • Shallow level: Very specific to a situation. Limited by IF-THEN type rules. Rules have little meaning. No explanation.
  • Deep Knowledge: Problem-solving. Internal causal structure. Built from a range of inputs (emotions, common sense, intuition). Difficult to build into a system.

Categories of Knowledge

  • Declarative: Descriptive, facts, shallow knowledge.
  • Procedural: The way things work, tells how to make inferences.
  • Semantic: Symbols.
  • Episodic: Autobiographical, experimental.
  • Meta-knowledge: Knowledge about the knowledge.

Good Knowledge

Knowledge should be:

  • Accurate.
  • Non-redundant.
  • Consistent.
  • As complete as possible.

Knowledge Acquisition

Knowledge acquisition is the process by which knowledge available in the world is transformed and transferred into a representation that can be used by an expert system. World knowledge can come from many sources and be represented in many forms. Knowledge acquisition is a multifaceted problem that encompasses many of the technical problems of knowledge engineering, the enterprise of building knowledge-based systems (Gruber).

Five Stages of Knowledge Acquisition

  1. Identification: Break the problem into parts.
  2. Conceptualization: Identify concepts.
  3. Formalization: Representing knowledge.
  4. Implementation: Programming.
  5. Testing: Validity of knowledge.

Organizing the Knowledge

  • Knowledge Engineer: Interacts between the expert and the knowledge base. Needs to be skilled in extracting knowledge. Uses a variety of techniques.

Knowledge Acquisition Methods

The basic model of knowledge acquisition requires that the knowledge engineer mediate between the expert and the knowledge base. The knowledge engineer elicits knowledge from the expert, refines it in conjunction with the expert, and represents the knowledge in the knowledge base using a suitable knowledge structure. Elicitation of knowledge is done either manually or with a computer.

  • Manual: Interview with experts (structured, semi-structured, unstructured interviews). Track the reasoning process and observing.
  • Semi-Automatic: Use a computerized system to support and help experts and knowledge engineers.
  • Automatic: Minimize the need for a knowledge engineer or expert.

Other Problems with Knowledge Acquisition

  • Experts are busy or unwilling to part with knowledge.
  • Methods for eliciting knowledge are not refined.
  • Collection should involve several sources, not just one.
  • It is often difficult to recognize the relevant parts of the expert’s knowledge.
  • Experts change.

Organizing the Knowledge

Representing the knowledge:

  • Rules.
  • Semantic Networks.
  • Frames.
  • Propositional and Predicate Logic.

Representing the Knowledge with Frames

Frames are based on objects. Objects are arranged in a hierarchical manner.

Main XPS Components

  • Knowledge Base: Contains essential information about the problem domain, often represented as facts and rules.
  • Inference Engine: Mechanism to derive new knowledge from the knowledge base and the information provided by the user. Often based on the use of rules.
  • User Interface: Interaction with end-users, development, and maintenance of the knowledge base.

XPS Development Tools

  • XPS Shells: An XPS development tool/environment where the user provides the knowledge base (CLIPS, JESS, EMYCIN, Babylon, …).
  • Knowledge Representation Languages; Ontologies: Higher-level languages specifically designed for knowledge representation and reasoning (KRL, KQML, KIF, DAML, OWL, Cyc).

XPS Elements

  • Knowledge base.
  • Inference engine.
  • Working memory.
  • Agenda.
  • Explanation facility.
  • Knowledge acquisition facility.
  • User interface.

Architecture of Rule-Based XPS

Knowledge-Base / Rule-Base

Store expert knowledge as condition-action-rules (also known as: if-then- or premise-consequence-rules).

Working Memory

Stores initial facts and generated facts derived by the inference engine; maybe with additional parameters like the “degree of trust” in the truth of a fact, also known as a certainty factor.

Inference Engine

  • Matches the condition-part of rules against facts stored in Working Memory (pattern matching).
  • Rules with a satisfied condition are active rules and are placed on the agenda.
  • Among the active rules on the agenda, one is selected (see conflict resolution, priorities of rules) as the next rule for execution (“firing”) – the consequence of the rule is added as new fact(s) to Working Memory.
  • Additional components might be necessary for other functions, like:
    • Calculation of certainty values.
    • Determining priorities of rules.
    • Conflict resolution mechanisms.
    • A Truth Maintenance System (TMS) if reasoning with defaults and beliefs is requested.