expert-system-engineer · diff
v1.0.0 to v1.0.0
1 added, 1 removed. Audit A to A.
---
name: expert-system-engineer
- description: Use when engineering rule-based expert systems, CommonKADS knowledge models, inference engines, certainty factors, or structured knowledge elicitation workflows.
+ description: Use when engineering knowledge-based expert systems using CommonKADS methodology, MYCIN/EMYCIN rule patterns, certainty factors, or backward-chaining inference engines.
author: J StaR Films / Takomi
coauthored: J StaR Films / Takomi
version: 1.0.0
---
# Expert System Engineering
Full lifecycle methodology for engineering knowledge-based expert systems. Upstream phases use CommonKADS for organizational scoping and conceptual modeling. Downstream phases use generalized MYCIN/EMYCIN patterns for rule-based implementation. Follow all phases in order.
For domain terminology, see [terminology.md](references/terminology.md).
---
## Phase 0: Suitability Assessment
Determine whether the problem warrants an expert system before committing to the methodology.
1. **Classify the problem type**:
- **Analytic** (classification, diagnosis, assessment, monitoring) — system interprets existing data
- **Synthetic** (configuration, planning, scheduling, design) — system constructs a solution from components
- **Neither** — redirect to a different approach
2. **Evaluate expert-system fit against alternatives**:
| Criterion | Expert System Fit | Alternative |
|---|---|---|
| Domain has identifiable human experts | Required | If no experts → data-driven ML |
| Knowledge is heuristic, judgmental | Strong fit | If purely algorithmic → conventional software |
| Reasoning must be explainable | Strong fit | If black-box acceptable → ML/statistical |
| Domain is bounded and well-scoped | Required | If open-ended → LLM-based approaches |
| Decisions involve uncertainty | Strong fit (CF/rules) | If precise probabilities needed → Bayesian networks |
| Training data is limited | Advantage over ML | If large labeled datasets exist → ML |
3. Make an explicit **go/no-go decision**. Document the rationale.
### Completion gate
- [ ] Problem type classified (analytic or synthetic)
- [ ] Fit evaluated against at least three alternatives
- [ ] Go/no-go decision documented with rationale
---
## Phase 1: Organizational Scoping & Feasibility
Scrutinize the organizational environment, isolate the knowledge bottleneck, and confirm feasibility before technical work begins.
1. **Map organizational context** (OM-1): Document business mission, drivers, problems, opportunities, and candidate solution directions.
2. **Analyze variant aspects** (OM-2): Map organizational structure, business processes (activity diagrams), people, resources, and culture/power dynamics.
3. **Decompose into tasks** (OM-3): Break business processes into discrete tasks. For each, record the performing agent, knowledge assets used, knowledge-intensity (1–5), and business significance.
4. **Assess knowledge assets** (OM-4): For each asset, evaluate whether it is in the right **form**, right **place**, right **time**, and right **quality**.
5. **Produce feasibility decision** (OM-5): Score business, technical, and project feasibility. Identify the specific knowledge bottleneck the system will address.
### Completion gate
- [ ] Knowledge bottleneck identified and scoped
- [ ] Feasibility scored across all three dimensions
- [ ] Project focus confirmed (which task, which knowledge asset)
---
## Phase 2: Task Analysis & Knowledge Acquisition
Analyze the target task and begin eliciting domain expertise.
### Task Analysis
1. **Characterize the task** (TM-1): Specify goal, value-add, inputs, outputs, control structure, resources, and quality criteria.
2. **Identify knowledge bottlenecks** (TM-2): For each knowledge item the task requires, assess nature (heuristic, formal, procedural, tacit), availability, and the specific bottleneck.
3. **Model agents** (AM-1): For each agent involved, catalogue competencies, responsibilities, communication links, and constraints.
### Knowledge Elicitation
4. **Select elicitation technique** matched to the target knowledge type:
| Target Knowledge | Technique |
|---|---|
| Orientation, scope, terminology | Unstructured interview |
| Heuristic rules, decision criteria | Structured interview (probes P1–P6) |
| Dynamic reasoning, problem-solving trace | Protocol analysis (think-aloud) |
| Concept hierarchies, taxonomies | Laddering |
| Latent dimensions, attribute discovery | Concept sorting / repertory grids |
5. **Execute elicitation sessions** with recording and realistic problem scenarios.
6. **Code transcripts** against the knowledge model structure: mark up concepts, attributes, values, inferences, and candidate rules.
7. **Validate findings** with the domain expert using teach-back.
### Completion gate
- [ ] Task goal, inputs, outputs, and quality criteria specified
- [ ] Knowledge bottlenecks identified with nature and availability
- [ ] At least one elicitation session executed and coded
- [ ] Findings validated with domain expert
---
## Phase 3: Conceptual Knowledge Modeling
Construct an implementation-independent model of domain, inference, and task knowledge. **Model before rules** — do not encode rules until this model is stable.
For detailed construction procedures and the full task template catalog, see [knowledge-modeling.md](references/knowledge-modeling.md).
### Domain Layer
1. **Build the domain schema**: Identify concepts, attributes, value types, relations, and subtype hierarchies. This is the static structure of the domain — independent of any reasoning task.
2. **Define rule types**: Specify logical dependencies between domain expressions (antecedent → consequent) with cardinality and connection type.
### Inference Layer
3. **Specify inferences**: Define each primitive reasoning step as a declarative specification with named input and output knowledge roles. Inferences are black boxes — they must not contain internal control flow.
4. **Map knowledge roles to domain**: Connect dynamic roles (run-time inputs/outputs) and static roles (stable knowledge base references) to domain schema elements.
5. **Define transfer functions**: Specify interaction points with external agents — obtain (system asks), receive (agent volunteers), present (system reports), provide (agent requests).
### Task Layer
6. **Select a task template** matching the problem type:
- **Analytic**: Classification, Assessment, Diagnosis, Monitoring
- **Synthetic**: Configuration Design, Assignment, Planning, Scheduling
7. **Specify task methods**: Define how each task decomposes into subtasks and inferences, with explicit control structures (sequence, iteration, selection).
### Validation
8. **Walk through scenarios**: Trace at least 2 realistic cases through the complete model (domain → inference → task) on paper. Verify no missing inferences, unmapped roles, or dead-end paths.
### Completion gate
- [ ] Domain schema specified (concepts, relations, rule types)
- [ ] Inference layer specified (all inferences, knowledge role mappings)
- [ ] Task template selected, methods defined with control structures
- [ ] At least 2 scenarios traced through the full model without gaps
---
## Phase 4: Knowledge Representation & Rule Engineering
Choose a representation and encode the conceptual model into executable knowledge structures.
For detailed rule engineering patterns (context trees, parameter types, certainty factor calculus, rule syntax, backward chaining mechanics), see [rule-engineering.md](references/rule-engineering.md).
### Representation Selection
1. **Choose representation based on the knowledge model**:
| Knowledge Characteristics | Representation |
|---|---|
| Heuristic associations, evidential reasoning | Production rules + certainty factors |
| Structured entities with inheritance | Frames / object hierarchies |
| Taxonomic relationships, shared vocabulary | Ontologies / semantic networks |
| Tabular decision logic, bounded conditions | Decision tables |
| Similarity-based reasoning | Case libraries |
| Multiple knowledge types | Hybrid combination |
### Rule-Based Encoding (when production rules selected)
2. **Define the domain entity hierarchy**: Organize entities into a context tree with parent-child relationships and specify properties for each node.
3. **Classify domain parameters**: For each attribute, specify value type and bounds, exclusivity (single-valued / multi-valued / binary), and acquisition method (ask user, deduce from rules, or both).
4. **Encode production rules**: Each rule is a standalone modular conditional — a conjunction of predicate functions over parameters concluding a parameter value with a certainty weight.
5. **Assign certainty factors**: Attach evidential strength CF ∈ [-1.0, +1.0] to each rule action. Positive values increase belief; negative values increase disbelief.
6. **Build knowledge tables**: Consolidate repetitive multi-rule mappings into static lookup tables accessed via standardized predicates.
7. **Index rules**: Compile cross-reference indices — UPDATED-BY (rules concluding about each parameter) and LOOKAHEAD (rules referencing each parameter in their premise).
### Completion gate
- [ ] Representation selected with rationale
- [ ] Domain entity hierarchy defined
- [ ] All parameters classified with types and value bounds
- [ ] Rules encoded in modular form with certainty factors
- [ ] Cross-reference indices compiled
---
## Phase 5: Verification & Validation
Verify the knowledge base for consistency and completeness before deployment.
### Static Verification
1. **Partition rules** into clusters concluding about the same parameter within the same context.
2. **Build condition-action matrices**: Enumerate all condition value combinations and map to concluded action values.
3. **Run consistency checks**:
- **Conflict**: Identical conditions → contradictory conclusions
- **Redundancy**: Identical conditions → identical conclusions
- **Subsumption**: Rule A's conditions ⊂ Rule B's conditions, same conclusion
4. **Run completeness checks**: Identify condition combinations with no rule mapping. Determine if each gap is a genuine missing rule or an impossible domain state.
5. **Resolve anomalies** with the domain expert: distinguish real bugs from intentional domain shortcuts.
### Dynamic Validation
6. **Assemble a test case library** with known expert-determined outcomes.
7. **Run consultation traces** and compare outputs against expert determinations.
8. **Trace failures**: For each discrepancy, unwind the reasoning chain to identify the root cause (missing rule, incorrect CF, wrong inference path, unmapped parameter).
### Completion gate
- [ ] Zero unresolved rule conflicts
- [ ] Missing rule combinations reviewed and resolved
- [ ] Test case library exercised with documented results
- [ ] Failure root causes identified and addressed
---
## Phase 6: Design, Implementation & Explanation
Map the verified knowledge model into a working system with explanation and maintenance facilities.
### Architecture
1. **Apply structure-preserving design**: The domain/inference/task distinctions from the knowledge model must appear explicitly in the software architecture. Flattening them destroys transparency, maintainability, and explanation capability.
2. **Decompose via Model-View-Controller**:
- **Model**: Knowledge base access, inference execution, task control
- **View**: User interface, explanation display
- **Controller**: Session management, event dispatch, dialogue flow
3. **Design the inference engine**:
- Select chaining strategy (backward / forward / hybrid)
- Implement rule preview (discard rules with known-false premises before evaluation)
- Implement threshold guardrails (halt low-yield branches when premise tally ≤ 0.2)
- Partition self-referencing rules for deferred execution
### Explanation Facility
4. **Record reasoning trace**: Log the full goal stack, rules evaluated, evidence contributions, and conclusions during each consultation (history tree).
5. **Support interactive explanation**:
- **WHY**: Unwind one level up the goal stack — show current goal, parent goal, linking rule, and premise status
- **HOW**: Descend one level into a subgoal — show rules evaluated and evidence tallies
6. **Support retrospective queries**: Parse post-consultation questions to retrieve reasoning traces, rule citations, and data provenance.
### Maintenance Loop
7. **Interactive knowledge acquisition**: When a test case fails, trace the history tree to locate the fault, solicit a new rule from the expert, validate against existing rules (subsumption, conflict, tautology), and rerun the test library.
8. **Case-based refinement**: Failed cases feed back into elicitation (Phase 2), model refinement (Phase 3), and re-verification (Phase 5).
### Completion gate
- [ ] Architecture preserves knowledge model structure
- [ ] Inference engine handles chaining, pruning, thresholds, and self-referencing rules
- [ ] Explanation facility supports WHY, HOW, and retrospective queries
- [ ] Knowledge acquisition loop operational for incremental refinement
---
## Worked Examples
For worked examples illustrating each phase (housing eligibility assessment, bacterial infection diagnosis, backward chaining traces, interactive explanation dialogues, and knowledge acquisition sessions), see [examples.md](references/examples.md).