Design of Expert Systems Software Engineering methodology for developing practical ES ESDLC General Stages Feasibility study Rapid Prototyping Alpha system (in-house verification) Beta system (tested by users) Maintenance and Evolution
Planning Phase Feasibility Assessment Resource Allocation (HR, time, financial) Task Phasing and Scheduling Determine high-level requirements
Knowledge Acquisition Most important stage in the development of ES During this stage the knowledge engineer works with the domain expert to acquire, organize and analyze the domain knowledge for the ES. Knowledge acquisition bottleneck Acquisition from expert Define strategy (consider various options) Identify concrete knowledge elements Group and classify knowledge. Develop hierarchical representation where possible
Knowledge Acquisition (Cont.) Identify knowledge source. Expert in the domain Identify potential sources (human expert, expert handbooks/manuals), e.g. car mechanic expert system’s knowledge engineer may chose a mix of interviewing an expert mechanic and using a mechanics trouble-shooting manual. Tip: Limit the number of knowledge sources (experts) for simple domains to avoid scheduling and view conflicts However, a single expert approach may only be applicable to restricted small domains Rank by importance Rank by availability Select expert/panel of experts If more than one expert has to be consulted, consider a blackboard system. More than one knowledge source (kept partitioned), interact through interface called Blackboard
Knowledge Elicitation Getting knowledge from the expert knowledg elicitation vs. broader term knowledge acquisition Elicitation methods may be broadly divided into: Direct Methods Interviews Very good at initial stages Balance between structured (multiple choice, rating scale) and un-structured interviewing) Record interviews (transcribe or tape) Mix of open and close ended questions Informal Discussions (gently control digression, but do not offend expert by frequent interruption) Indirect Methods Questionnaire
Problems with Elicitation not be able to effectively articulate her knowledge provide irrelevant information. Provide incomplete knowledge Provide inconsistent or incorrect knowledge
Knowledge Acquisition Techniques Knowledge elicitation by interview Brainstorming session with one or more experts Introduce some structure Define problem at hand Prompt for ideas Looks for converging lines of though Electronic brainstorming On-site observation Documented organizational expertise, e.g. troubleshooting manuals
Knowledge Analysis Analyze and structure the knowledge gained during the knowledge acquisition phase Identify specific knowledge elements From the notes taken during the interview sessions, extract specific Strategies (as a list of points) Translate to rules Heuristics Identify concepts Represent concepts and their relationships using cognitive maps
Cognitive Map Example Age Patient Medical History Gets Personal Tests Blood Sugar hematology Echo Cardiogram Gets
Knowledge Analysis (Cont.) Inference networks Graphical representation of system’s rules Diagnosis is Anemia Inner surface of eyes lids pale Consistent Low Blood Pressure Feeling Listless Symptoms indicate anemia Blood test shows low hemoglobin level OR AND
Knowledge Analysis (Cont.) Flowchart Sequence of steps Depict the order of application of rule sets e.g. Doctor begins by asking symptoms If not indicative of some disease the doctor will not ask for specific tests. If symptomatic of two or three potential diseases The doctor decided disease to check for first Rules out potential diagnoses in some heuristic sequence
Knowledge Design At the end of this phase, we have Knowledge definition Detailed design Decide how to represent knowledge Rules and Logic Frames Decide a development tool. Consider whether it supports your planned strategy. Internal fact structure Mock interface
Code Coding Prepare tests Comment code Develop User’s manual. Installation guide At the end of this phase the system is ready to be tested.
Linear Model for ES development Planning Knowledge Acquisition and Analysis Work Plan Knowledge Baseline Knowledge Design Design Baseline Code Knowledge Verification System Evaluation Encoding of knowledge Using a development tool Formal in-house testing Product evaluation by users