CIS 479/579 Assignment 3
Summer 2020

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 10 to 20 rules. If you work with a partner your rule-base will need to have 10 to 20 rules per person and each person is to be assigned a percentage grade (by each team member) indicating the extent of his or her project contribution.

For example, you might try computer system selection based on desired component attributes or diagnosing common microcomputer system problems.

You may implement your system using e2glite, M1, Prolog, the Lisp rule interpreter from your text; or develop a system from scratch using Lisp, C++, Python, or some other AI development tool you have access to. Implementing your system using sequence of if-then-else rules is acceptable if you can describe the limitations of this approach.

One strategy for designing an expert system involves building a binary decision tree and then using the tree to guide your rule construction. A second strategy involves devising rules one at a time and checking to see that each is unique to the previously defined rules. Rule placement within the system is very important (when order is used as a part of the conflict resolution strategy).

Prior to beginning the design of an expert system, you must 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.

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

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 May 20th describing your problem and indicating the members of your team (if any). You are free to change problems, but you will need to have me approve your new problem. You may not drop out of a team once you make the commitment to work with other another person.

Assigned: 5-18-20
Due date: 5-29-20

 

M1 runs fine on Windows10 in a DOSBox

            https://www.dosbox.com/

Here are some alternative expert systems you might try if M1 is not working (have not worked them - but they were used last year):

e2gLite Free Expert System Shell - Overview
Web-Enabled Expert System and Decision Table Software and Tutorials

PyCLIPS - expert systems shell in Python | Lambda the Ultimate
CLIPS : A Tool for Building Expert Systems

RME-EP - SQL-based New Generation Expert Systems Shell
Jess, the Java Expert System Shell