| 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:
-
What ontological choices did you discover you have to make? For example,
are actions sometimes impossible, or always possible but sometimes ineffective?
-
Which extensions of first-order logic do you find necessary, for example
a unique names assumption? Does Otter provide these extensions?
-
Does the axiomatization proposed in the paper Reasoning
about Action in First-Order Logic actually work in practice?
-
Can you give the knowledge base high-level structure and understandability?
-
Can you make the knowledge base reusable for different types of problem-solving?
-
Can you generate explanations of the reasoning performed by Otter?
-
Would it be easy to combine changing data from a database with a permanent
knowledge base?
-
Are soundness and completeness useful concepts here? To what extent
can they be achieved and verified?
-
Are the mechanisms Otter provides for guiding how it searches for proofs
usable and useful?
-
Can you exploit the ability of Otter to do extensive search in order to
solve non-obvious problems?
-
On the other hand, can you guarantee that Otter will always give answers
quickly, at least to some questions?
-
Based on your experience, if you were not using almost pure first-order
logic, what features would you want in a knowledge representation language
and system?
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.
-
One part should discuss the interesting aspects of representing knowledge
in your chosen domain.
-
Another part should explain the approach used to solve the frame problem
and related problems, including some discussion of the drawbacks of this
approach. This part especially should be based on published research.
-
Another part should discuss lessons learned from building the KBS.
Specifically, you should answer most of the questions above, in a nuanced
way.
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.