DesignExpert-

Designing Backward Chaining Systems

Major tasks when developing a backward chaining system:

  1. Define the problem

  2. Define the goals

  3. Define the goal rules

  4. Expand the system

  5. Refine the system

  6. Design the interface

  7. Evaluate the system



Example (Financial Planning)



Task1: Defining the Problem




2.Defining the Goals

Task3: Designing the Goal Rules

INVESTMENT
AMOUNT

PERSONAL
STATE

FINANCIAL
STATE

ADVICE

Small



Portfolio 1


Conservative

Conservative

Portfolio 1


Conservative

Aggressive

Porfolio 2


Aggressive

Conservative

Portfolio 3


Aggressive

Aggressive

Portfolio 4





Task4: Expanding the System







Task5: Refining the System



Task6: Interface Design



Task 7: System Evaluation



Future Direction

Example Session:

SYSTEM: Welcome to ....
Please press RETURN to begin our session

USER: RETURN

SYSTEM: How much money in dollars does the client want to invest? Please enter the dollar amount without commas, e.g. 10000.

USER: 50000

SYSTEM: What is client's age

USER: 30

SYSTEM: How many years has the client been with the present company?

USER: 5

SYSTEM: Layoffs at the organization are:
Low
High

USER: Low

[The user may have trouble with this question. May need deepening]

SYSTEM: The client has
children
No children

USER: children

SYSTEM: After considering the client's personal issues, I would suggest a conservative position. I will next look into the client's financial issues.
Please press RETURN to continue the session.

USER: RETURN

...

SYSTEM: I would recommend the client invest the money in
60% stocks, 30% bonds, 10% savings.
The major reasons why I recommend this investment is that I found the client's personal state suggests a conservative position and financial state suggests an aggressive position.

Designing Forward-Chaining Systems

Major tasks in designing a forward chaining system:

  1. Define the problem

  2. Define input data

  3. Define data-driven structure

  4. Write initial code

  5. Test the system

  6. Design the interface

  7. Expand the system

  8. Evaluate the system



Example: (Automobile Diagnostics Domain)



Task1: Define the problem



Section 1

Starting Problem

Test

Results

Proceed to

1.1 Turn on the ignition

If engine turns slowly or not at all

2.1 Ranking system problems


If engine turns normally

1.2

...



Task2: Define Input Data



Task3: Define Data-driven Structure

Task4: Write Initial Code



Task5: Test the System

SYSTEM: What is the problem with the car?
- won't start
- hesitates at high speed ...

USER: won't start

SYSTEM: Please turn on the ignition.
How does the engine turn?

- Slowly or not at all
- normally

USER: not at all

...

Task6: Design the Interface



Task7: Expand the System



Task8: Evaluate the System