As the world produces and consumes data at dramatically increasing rates, a new kind of database technology is needed that will meet this demand. Traditional database systems are too inflexible, so a different kind of system, called a knowledge base, is beginning to emerge. It provides a more flexible environment for expressing knowledge and for making queries.
But, this added flexibility has also created new problems. The manner in which data is stored in the knowledge base is more complex than in the older database languages. This complexity can easily overwhelm the user, especially when the knowledge base grows large. Thus, a well-designed interface is needed that will help the user not only to view the contents of the knowledge base, but to edit them as well. The interface needs to take the following two considerations into account:
First, the knowledge base needs to be viewed selectively. Since the contents of the knowledge base can be overwhelming, the interface should tailor the displays, such that only needed information is displayed.
Second, the user needs tools to operate on the knowledge base. These operations include the addition, removal, and modification of information as well as more complicated operations such as copying blocks of information.
The goal of this thesis is to develop an interface that meets these requirements.
In 1987, Dr. Bruce Porter began work on the Botany Knowledge Base Project [Porter:88]. The goal of the project is to develop a large-scale multi-functional knowledge base in the area of Botany. The Botany Knowledge Base (BKB) is to be used to support research projects in question answering, automated modeling, and intelligent tutoring. Due to the size and complexity of the BKB, a decision was made in 1989 to begin construction of a new knowledge representation language and interface to support the knowledge base. The knowledge representation language, named KM (Knowledge Manager), was initially based on the THEO system, developed by Tom Mitchell at Carnegie Mellon University [Mitchell:89]. The interface, KnEd (Knowledge Editor), was partly based on the ideas of Brad Blumenthal (Dr. Blumenthal is a Professor of Computer Science at the University of Illinois at Chicago).
One difficultity faced in the project was that it was impossible to completely specify KnEd due to two factors:
the design of KM was in flux
KnEd displays needed to be experimented with to determine which form was best
So, it was decided to develop KnEd using structured growth. In [Sandewall:84], Sandewall defines structured growth as:
an initial program with a pure and simple structure is written, tested, and then allowed to grow by increasing the ambition of its modules. The process continues recursively as each module is rewritten.
A Problem/Solution cliché is used in this thesis to show specific examples of the structured growth of KnEd. The problem section defines a particular problem that was encountered by a user of KnEd. The solution section describes how the problem was solved.
Another important aspect of the structured growth of KnEd is the user study that was carried out by Brad Blumenthal in 1990 [Blumenthal:90]. His study pointed out several weaknesses of the KnEd interface and provided many excellent suggestions for improvements to KnEd.
KnEd was initially implemented using Zetalisp on TI-Explorers. It has since been reimplemented in Lucid Lisp on SparcStations and DecStations, Allegro Lisp on SparcStations, and MACLisp on Macintoshes.