Department of Computer Science and Engineering CSE 250A
University of California at San Diego Winter 2001

Team Project 4

DUE MONDAY MARCH 19, 2001, BEFORE 5 PM.



The purpose of this assignment is to gain experience in building a knowledge-based system (KBS), and in analyzing knowledge representation issues.

First, select a small application domain in which reasoning about actions and their effects might be useful.  Choose a realistic domain, but one with clear boundaries, where the knowledge required is relatively well-defined.  Next, design and implement a KBS for this domain using first-order logic as automated by the theorem-prover Otter.  Otter is easy to install and has very few bugs, if any.  Feel free to cooperate with other teams when installing Otter and figuring out how to use it.

Your KBS should include a solution to the frame problem that is as general and flexible as possible, while remaining sound and useful in practice.  Try to include a solution to the ramification problem, and to allow at least some types of ignorance, concurrency, connectives on fluents, and/or non-determinism.

Some of the issues that you should consider while designing and implementing your system are as follows:

Unlike for the previous projects, systematic experimentation will not be the most important topic of your report.  Instead, your report should include three major parts. For a paper that is somewhat similar to the case study that you should write, see Building a Large Knowledge Base from a Structured Source: The CIA World Fact Book by G. Frank, A. Farquhar, and R. Fikes.

For a general paper that will help you to select an appropriate domain and to identify important research issues, see Expert Systems: A Technology Before Its Time by Avron Barr and Shirley Tessler.

For ideas about knowledge representation in first-order logic, see these papers by John McCarthy: Notes on Formalizing Context, Combining Narratives, and Approximate Objects and Approximate Theories.

As before, your report should follow all the CSE 250A guidelines.  As an appendix, you should attach a printout of your software, which should be adequately commented and documented.