Designing Expert Systems• Selecting the appropriate Problem – Why build the expert system? • Need clear identification of the problem, expert, and users. – What is the payoff? • What is the return on investment in money, increased efficiency, or any other advantages. – What tools are available to build the system?
Designing Expert Systems– How much will it cost? • The cost is dependent upon the people, resources, and time devoted to its construction. • Also the costs of hardware and software as well as training need to be considered.
Problem definitionPhase I Needs assessmentProject Initialization Evaluation of alternative solutions Verification of an ES approach Feasibility study Cost-benefit analysis Managerial issues consideration Organization of development teamPhase II Conceptual design and planSystem analysis Development strategyand design Sources of knowledge Computing resources Build small prototype Phase III Testing, improving, expanding Rapid Prototyping Demonstrating and analyzing feasibility Completing design
Completing the Knowledge base Testing, evaluating, and improving thePhase IV knowledge baseSystem Development Planning for integration Acceptance by users Installation, demonstration, deploymentPhase V Orientation, trainingImplementation Security Documentation Integration, field-testing Operation Phase VI Maintenance and upgrades Post-implementation Periodic evaluation
Phase I• Phase I of building an expert system is the project initialization. – This phase requires: • Problem definition • Needs Assessment • Evaluation of alternative solutions • Verification of the ES approach • Cost-benefit analysis • Consideration of managerial issues – This phase ends when the project has been approved in principle.
Problem Definition• A clear problem definition will help to simplify the remaining tasks and generate a productive program. – The problem definition should include as much supporting material and information as possible.
Need Assessment• The Need assessment is a formal study to understand the problem or need.
Alternative Solutions• One should always consider if there is an alternative solution to a problem. – Lack of knowledge does not necessarily mean that there is a need for an expert system. – Can the information be made available from the expert in some other manner? – Can education and training be used to communicate the desired information?
Alternative Solutions– Can documentation of the knowledge be used?– Is this problem better suited for conventional programming techniques?– Can the information be purchased or obtained from the WWW, or some other external source?
Approach Verification• Even if there does not appear to be an alternative solution, an expert system may not be the best approach.
Approach Verification• Waterman  suggested a framework for assessing problem fit. – It is composed of requirements, justification, and appropriateness.
Approach Verification• Waterman’s Requirements – The following 12 requirements must be met: • The task can not require common sense. • The task requires only cognitive, not physical, skills. • There must be one genuine expert who is willing to cooperate. • Experts involved can articulate their methods of problem solving.
Approach Verification• Experts involved can agree on the knowledge and the solution approach to the problem.• The task is not too difficult.• The task is well understood and is defined clearly.• The task definition is fairly stable.• Conventional (algorithmic) computer solution techniques are not satisfactory.• Incorrect or non-optimal results generated by the ES can be tolerated.• The task’s vocabulary has not more than a couple hundred concepts.
Approach Verification• The second phase of Waterman’s framework is Justification. – At least one of the following must be present to justify the ES development: • The solution to the problem has a high payoff. • The ES can preserve scarce human expertise. • Expertise is needed in many locations. • Expertise is needed in hostile and hazardous environments.
Approach Verification• The expertise improves performance or quality.• The system can be used for training.• The ES solution can be derived faster than that which a human can provide.• The ES is more consistent or accurate than a human.
Approach Verification• The final element to Waterman’s framework is Appropriateness. – Each of the following factors should be considered: • Have a symbolic structure and heuristics should be available for the solution. • Not be too easy nor too difficult for the human expert. • Have a manageable scope size.
Feasibility Study• Many times a feasibility study will be used to determine if an expert system should be developed. – Such a study should include the economic feasibility, technical feasibility, and operational feasibility and impacts.
Economic Feasibility• Economic feasibility considers – The cost of system development in an itemized fashion. – The cost of maintenance (usually much more). – The anticipated payoff. – A cash flow analysis. – A risk analysis.
Technical Feasibility• Technical feasibility covers: – Interface requirements – Networking issues – Availability of knowledge and data – Security of confidential knowledge – Knowledge representation scheme – Hardware/software availability and compatibility
Operational feasibility• The operational feasibility considers: – Availability of human and other resources – Priority as compared to other projects – Need assessment – Organizational and implementation issues – Management and user support – Availability of experts and knowledge engineers. – Legal and other constraints – Corporate culture – User environment
Cost-benefit Analysis• The purpose of cost-benefit analysis is to determine the viability of a project by looking at the costs versus the anticipated benefits. – This is hard to do for expert systems. – It is best to start this process with a well defined scope of the project and amount of time required for each participant.
Cost-benefit Analysis• The development costs that should be considered are: – Development tool cost – Any additional hardware cost – Cost to gather expertise from expert(s) – Cost of knowledge engineer and/or programmer. – Cost of time to test, debug, and maintain program. – Possibly, cost of outside consultants.
Cost-benefit Analysis• It is usually more difficult to assess the benefits. – Some benefits are intangible. – Some benefits can not be related to a single cause. – Some actions may occur over long periods of time and are therefore, difficult to predict. – The valuation of benefits should include an assessment of both quantity and quality. – Multiplicity of consequences can pose a major problem for quantification.
Managerial Issues• Managerial support is required to complete any project. Issues to consider are: – All parties and management are convinced of the project’s value. – Someone in top management is strongly sponsoring the project. – End-users are involved early, and receive proper support and training. – Availability of financing, and other resources. – Legal and other potential constraints.
Phase II• The second phase is the system analysis and design. – This includes: • Conceptualization and design • Development strategy • Sources of knowledge • Computing resources – This phase ends when there is an approved and complete project plan.
Conceptual Design• The conceptual design should provide a general idea of what the system will look like and how it will solve the problem.
Development Strategy• There are several strategies that can be used to develop the system. – Do it yourself. • This implies the organization has the skills and resources. – Hire an outside developer • Either a consulting firm or a consortium of companies.
Development Strategy– Participate in a joint venture • The vendor develops the system while testing its own products and services. • Sponsor a university research project.– Merge, acquire, or become a major stockholder in an AI company
Sources of Knowledge• The sources of knowledge are many, but the primary source will be a human expert. – A human expert should posses more complex knowledge than can be found in documented sources. – The more human expertise is required, the longer and more complicated the knowledge acquisition will be.
Sources of Knowledge• Questions that may need to be answered when selecting an expert are: – Should the expert be compensated for their contributions? – How will it be determined if the experts are truthfully describing the solutions? – How can experts be assured that they will not lose their jobs, or that the job will not be de-emphasized? – Are the experts concerned about other people in the organization who may suffer consequences of the new ES?
Sources of Knowledge• Attributes to look for in an expert: – Highly developed perceptual attention ability. – Awareness of the difference between relevant and irrelevant information. – Ability to simplify complexities. – Strong communication skills. – Knowledge of when to make exceptions. – A strong sense of responsibility for their choices. – Selectivity about which problems to solve.
Sources of Knowledge– Outward confidence in their decisions.– Ability to adapt to changing task conditions.– Highly developed content knowledge about their area.– Greater automaticity of cognitive processes (tasks are a habit to the expert.)– Ability to tolerate stress.– Capability to be more creative.– Ability to articulate their decisions processes.
Sources of Knowledge– Thorough familiarity with the domain, including task expertise built up over a long period of task performance.– Knowledge and reputation such that the system will have credibility and authority.– Commitment of a substantial amount of time to the development of the system.– Capability of communicating his or her knowledge, judgment, and experience.
Sources of Knowledge– Cooperative, easy to work with, and eager to work on the project.– Interest in computer systems, even if they are not a computer specialist.
Computing Resources• There are many software options for developing Expert Systems. – The higher-level the software the less programming that is required. But, it is less flexible.
Programming Languages• Expert systems can be developed using various languages. – The languages may be pure AI languages like PROLOG and LISP or may be more object oriented languages. – Object-oriented languages have been found useful given the complexity of problems. • Some problems can be simplified by using inheritance.
Programming Languages• The best programming languages tend to be those that combine procedure- oriented, rule-oriented, object-oriented, and data-oriented programming. – These tend to be more flexible.
Shells• A shell is basically an abstract application environment. – The advantage of shells is that knowledge can be easily represented. – Shells tend to be built once and then reused for many applications.
Shells Knowledge BaseShell Consultation KB Editor manager and Debugger Explanation KB Mangmt Inference Program Facilities Engine
Shells• While shells are easy to use there are also disadvantages: – They can be inflexible. – It may be difficult to fit into nonstandard problems and tasks. – Since they are end-user tools, they are subject to end-user computing problems.
Environments• Development environments usually support different ways of representing knowledge and handling inferences.• Hybrid System Environments create a programming environment that enhances building complex specific systems or complex tools.
Environments• Environments tend to be more specialized than languages so they can sometimes increase development productivity.• Environments also tend to be more flexible than shells.
Phase III• The third phase of expert system development is rapid prototyping and a demonstration prototype. – A prototype is a small-scale system that represents some of the knowledge captured. – Prototypes are important to establish the structure of the knowledge base before building more rules.
Phase III• The advantages of prototypes are: – They allow the developers to get a sense of the feasibility of a full application. – They provide the ability to study the effectiveness of the knowledge acquisition and representation. – They can be used to identify gaps or important problems in the proposed system. – They provide a tangible product early in the development.
Phase III– They provide an opportunity to demonstrate the system capabilities.– They allow for midcourse corrections based upon management, consulting expert, and user feedback.– They provide a system that can be tested.– They may provide a system that can be field tested.– They accelerate knowledge acquisition.
Phase III– They facility expert feedback and provide exceptions to the rules.– They make it easier to win over skeptics.– They help sustain the expert’s interest.– They can help build user support.– They can provide an idea of the value of the system.– They provide information about the initial problem domain definition.
Phase IV• The fourth development phase is the System Development. – During this phase the knowledge base is built and continuous testing, reviews, and improvements are carried out.
Building the KB• Building the KB involves acquiring and representing the knowledge in an appropriate computer format. – The first step is to organize the domain knowledge. • List all possible solutions, outcomes, answers, choices, or recommendations. – Then define the input facts by identifying and listing all the data that is required by the system.
Building the KB– It may be useful to develop an outline of the KB even though the potential solutions and outcomes are known.– A decision tree may be easily developed as some types of knowledge will organize itself into the tree structure.– Other types of knowledge will nicely organize into a matrix.– Finally, once the rules are written they can be entered into the KB.
Testing, Validating, etc.• Testing and evaluation should occur throughout the entire process. – Begin with the prototype and continue through the entire system development. – Evaluation questions. • What characteristics should be evaluated? • How should performance be evaluated? • How should the test problems be selected? • How should the system’s mistakes be evaluated?
Testing, Validating, etc.• Validation attempts to determine if the system was built correctly or whether the system does what is supposed to do with an acceptable level of accuracy.• Verification determines that the ES has been built to correctly implement the specifications.
Phase V• The fifth phase is implementation. – Some implementation considerations are: • The user’s acceptance of the system depends not only on ease of use and quality but also on behavioral and psychological considerations. • The system is ready for implementation when it reaches a minimum level of stability and quality. • Demonstrate as much as possible to the users. • Ensure that the deployment mode is chosen and verified. • User acceptance requires a high level of training.
Phase V• If the knowledge in the KB is proprietary, steps need to be taken to protect the knowledge.• Do not forget the documentation.• At the end of Phase V, if the system is a stand alone system, it is ready for field testing.
Implementation Pitfalls• Waterman lists many pitfalls during implementation and suggestions for avoiding such pitfalls: – The expert’s knowledge can become entwined with the rest of the program. Making it impossible to separate it from general knowledge about search and problem solving. • Use a rule-based organization.
Implementation Pitfalls– Even after a long knowledge acquisition process, the KB can still be incomplete,or not able to solve simple problems because fundamental concepts are missing or are ill-represented. • Such issues can be identified early by using incremental development and testing.– The development environment does not have built-in explanations and it is non- trivial to add such capability. • Design the system from the beginning with transparency.
Implementation Pitfalls– The system is slow and unwieldy because of a very large number of specific rules. • Where possible combine smaller rules into more general rules.
Implementation Suggestions• Work with a core set of representative problems and keep a library of cases that are presented to the system.• Separate domain specific knowledge from general problem solving knowledge. Keep the inference engine simple.• If a rule looks big, it probably should be broken down.
Implementation Suggestions• If several rules look very similar, look for an underlying domain concept and combine them.• Group rules into rule sets.• Adopt a set of programming style conventions to give the program a uniform look. – Implement similar functions the same way throughout the system
Implementation Suggestions• Do not be afraid to throw out prototypes and previous implementations.• Make sure the developers are trained in developing expert systems.
Phase VI• The sixth stage is the post-implementation. This phase includes: – Operation – Maintenance – Expansion – Evaluation
Operation• The operation of the system is concerned with: – Delivering the system – Providing user training
Maintenance• The maintenance of an expert system is never done. It is the nature of the beast. – The system will be revised on a regular basis. • Knowledge and understanding change. – Maintenance also includes the traditional tasks of fixing software and hardware bugs and system upgrades.
Expansion• Expert systems are always changing and expanding as new knowledge is added or old knowledge is updated. – It is best to schedule periodic reviews of the knowledge.
Evaluation• Periodic evaluation of the expert system is necessary, but may be needed less frequently if the users provide continuous feedback.
Evaluation– Questions that are asked: • What is the actual cost of maintaining the system compared to the benefits? • Is the maintenance sufficient to keep the knowledge up to date so that the system maintains a high level of accuracy? • Is the system accessible to all users? • Is acceptance by users increasing?
Why Expert Systems Fail?• The following are reasons that expert systems have failed either during development or after deployment: – The ES no longer solves a meaningful problem or can not provide a meaningful solution. – The maintenance costs are too expensive. – The system is not upgraded to continue to work with the computing environment.
Why Expert Systems Fail?– The company or industry change focus.– The task domain size was too large and could not be reasonably represented.– The users do not perceive the problem as critical.– The solutions are incorrect or inaccurate.– User resistance.– No one is willing to provide maintenance for the system.– Loss of key development personnel.
References• Expert Systems Principles and Programming, third edition by Giarratano and Riley; 1998.• Decision Support Systems and Intelligent Systems, sixth edition by Efraim Turban and Jay E. Aronson; 2000.• D. A. Waterman (1985). A guide to Expert Systems. Reading, MA: Addison-Wesley.