CIS 479 Assignment 3
                         Winter 1999


     Your third assignment will be a knowledge engineering 
project. In this assignment you are to develop a rule-based 
system which handles some classification or diagnostic task. Your 
system should have a rule-base with 30 to 50 rules. If you work 
in a group your rulebase will need to be 30 to 50 rules per 
person and each person is to be assigned a percentage grade (by 
each group member) indicating the extent of his or her project 
contribution.

     Examples, might be computer system selection based on 
desired component attributes or diagnosing common microcomputer 
system problems (distinct from the approach taken in the M4 
Hardware knowledge base on the Novell network).

     You may implement your system using M1, M4, ESIE, Expert, VP 
Expert, Logic Tree, ExSys, Prolog, the Lisp rule interpreter from 
your text; or develop a system from scratch using Lisp (C++ or 
Pascal) or some other AI development tool you have access to. The 
method of implementation will affect your choices for inference 
and conflict resolution strategies.

     Video tapes, and other self-study materials, discussing M1 
and knowledge engineering are on reserve at the UMD library. 
Documentation for VP Expert, M1, Logic Tree, and ExSys should be 
available in the CW lab. Documentation for ESIE and Expert should 
be on the Novell network.

     Regardless, of the method of implementation you choose, I 
would recommend that you examine pages 15-20 of the ESIE Tutor 
and pages 20-21 in the ESIE Knowledge Engineer's Manual. The 
pages from the tutorial contain a discussion of two different 
strategies for developing rules. One strategy involves building a 
binary decision tree and then using the tree to guide your rule 
construction. The second strategy involves devising rules one at 
a time and checking to see that each is unique to the previously 
defined rules. The pages in the KE manual, discuss the importance 
of rule placement with in the system (when order is used as a 
part of the conflict resolution strategy or to approximate a 
better conflict resolution strategy).

     You will need to turn in an annotated listing of your 
rulebase (comments are not allowed by ESIE or Expert, they are 
allowed in M1, M4, VP-Expert, Lisp, and Prolog), sample output, 
and a memo documenting your system. You must include in this 
memo, a description of your inference strategy and the means of 
conflict resolution. Comments on the performance of your expert 
system relative to your test cases would also be appropriate.

     Prior to beginning the design of an expert system, you 
should identify a domain expert or some printed source for the 
knowledge encoded in your production rules. You will need to 
provide some evidence that your system does in fact perform 
correctly. I would suggest that you construct test cases which 
seem to be representative of problems you are seeking to diagnose 
or entities you are seeking to distinguish from one another. 
Hopefully, your system will provide the same answer as your 
expert source.

     To be sure things don't get stuck in the problem selection 
phase, I would like you to give me a written note (e-mail) by 
March 17th describing your problem and indicating the members of 
your group (if any). You are free to change problems, but you 
will need to have me approve your new problem. You may not to 
drop out of a group once you make the commitment to work with 
other people.

Date assigned: 3/03/99
Date due:      3/24/99