An expert system is a computer application that performs a task that would otherwise be performed by a human expert. Expert systems are not designed to replace all human experts in one field, but rather to allay the dwindling numbers of the latter and to assist both experts and non-experts in the conduct of their day-to-day responsibilities. Expert systems are part of a general category of computer applications known as artificial intelligence. They represent a mostly practical aspect, being used predominantly in industrial applications.
Expert Systems
Expert systems are computer programs that capture an expert's decision-making knowledge so that it can be disseminated to others. Users of the system interact with it in much the same way they would with a human expert to get answers to their questions.
Expert systems use human knowledge to solve problems that normally requires human intelligence. This expert knowledge (procedural and declarative) is stored as data or rules within the computer and is called upon when needed to solve problems. Expert systems differ from conventional programs that perform tasks using decision-making logic, basic algorithms and boundary conditions. The program knowledge is typically embedded and must be changed as knowledge evolves.
Expert systems collect the small fragments of human expertise into a knowledge base which is used to reason through a problem, using whatever fragments is are appropriate.; two Two separate problems, within the domain of the knowledge base, can be solved by the same program without any reprogramming. Additional features include the ability to explain the reasoning process and to handle several different levels of confidence (or uncertainty).
An expert system is composed of two main elements: a knowledge (rule) base and an inference engine (Fig. A1). The knowledge base contains the logic that the human expert would use to make a specific decision. The inference engine is a program that uses the various facts and rules of the knowledge base to arrive at conclusions regarding a specific given problem. Since an expert system is based on a body of knowledge that may cover many aspects of a given problem, it may make a single recommendation, or several recommendations arranged in order of likelihood, and will explain the logical basis for each. This enhances user confidence and knowledge.
Although tens of thousands of expert systems have been implemented over the last 20 years in a wide array of applications, the failure of widespread dissemination of knowledge had been a significant hurdle obstacle to their continued greater adoption in some industries. Local Area Networks (LANs) were a partial solution, but it was not until the advent of the World Wide Web that connectivity became possible to a maximum number of beneficiaries.
Expert System Development
Knowledge engineers expect to work with systems that cannot be well defined in advance. The interaction phases with the user are crucial to the development of the expert system. The process tends to be circular rather than linear (Fig. A2). The original rules developed may later be rewritten entirely or dropped, altogether as the experts and knowledge engineers gradually refine their understanding of the knowledge that must be included in the knowledge base. Interaction with the user in the early stages is crucial. Typically, steps in expert system development includes:
Front-end analysis: Problem identification, cost and effectiveness requirements, stakeholder buy-in.
Task analysis: Identify task(s), behavioral sequence and required knowledge.
Prototype development: Identify case studies, develop small scale system to prove concept and provide practice.
System development: Rearrange overall structure as required, add knowledge.
Field testing: Test system with actual users, revise as necessary.
Implementation: Port system to hardware to be used in the field; train users to use the system.
Maintenance: Establish means to update the system, update as required.
The development is the result of a collaborative effort from among knowledge engineers, domain experts and end-users. The knowledge engineer acts as a bridge between the domain expert and the knowledge encapsulation environment. The tasks are:
- Acquire knowledge from domain experts; formalize terms, eliminate vagueness and inconsistencies
- Model and organize information received from domain experts
- Integrate the facts, rules, objects and relationship information into the expert system source code.
Expert System Shells
Most expert systems are developed using specialized software tools called shells. These shells come equipped with an inference mechanism and a user interface, and require that knowledge to be entered according to a specific format. Typically, they provide a variety of other features, such as tools for writing hypertext, for constructing friendly user interfaces, for manipulating lists, strings and objects, and for interfacing with external programs and databases. These shells qualify as languages, although certainly with a narrower range of applications than most programming languages. They eliminate low level programming and are written in structured high-level programming languages. They include all necessary components except the actual knowledge base. When knowledge is added to the shell, the expert system becomes operational.
It is preferable to use special-purpose development tools. These tools ensure error-free construction and deployment. In order to choose the proper tool, the instigators must analyze the nature of the problem, the area of the organization intended to serve and the skills of the development team must all be analyzed. It is important to choose a tool that ensures ease of construction at a high speed. These tools range from high-level programming languages to shells. The present trend for industrial applications is toward shell programming.
Benefits of Expert Systems
Permanence: Expert systems do not forget.
Reproducibility: Copies of an expert system can be made.
Power: For applications where there is a maze of rules exhibited, it can be unravelled by the expert system.
Efficiency: Expert systems can increase throughput and reduce personnel costs.
- Expert systems are inexpensive to operate.
- Development costs can be amortized over many years.
- Expert systems can eliminate routine costs and reduce major maintenance costs.
Consistency: With expert systems, similar events are handled the same way. Expert systems will make comparable recommendations for 'like' situations and are not affected by recent or primary effects.
Documentation: Expert systems provide permanent documentation of the decision process.
Completeness: An expert system can review all the transactions or possibilities.
Timeliness: Fraud and/or errors can be prevented. Information is available sooner for decision making and action. The expert system works 24 hours a day, all year long.
Scope: The expert system can encompass the cumulative expertise of many human experts.
Business success: Owners reduce the inherent risks of conducting their business due to:
- Consistency of decision making.
- Documentation (ISO requirements)
- Acquired expertise
Positive impacts:
- Productivity gains and cost savings.
- Critical new tool for managers and a proactive answer to expertise attrition.
- Decisions and solutions are more consistent and less subject to biases or sensitivity to the environment
- Employment: shift to-wards more satisfying work. ET