Future Work and Conclusions

Currently, there are several limitations to our approach. First, our programs are primarily batch and have limited options. We haven't yet tried to create a knowledge base for an interactive program or for a program that does different things in different situations. And second, our approach is only at the prototype stage. We have implemented knowledge bases describing a set of approximately a dozen programs and scripts of their use, as well as first pass implementations of the tools that use this knowledge base to provide new interfaces, and to assist users in entering and executing the scripts for their high-level goals. We are beginning to consider many of the issues that will arise when we scale up to larger collections of programs, such as users being able to find the appropriate script that achieves their goal [Fisc 91].

Besides beginning to deal with scaling issues, we're also starting to explore several new directions. The first is to use the knowledge base to automatically form scripts from initial descriptions of user goals. In particular, we've been considering how to combine our approach with Weaving, a large grained data flow environment designed to support the combination of programs [Gorl 91]. Another problem we've begun looking at is to tryito automatically extract some of the information now placed into our knowledge base by hand. In particular, we're focusing on how we can extract knowledge about a program's input and output behavior.

In summary, we are trying to encourage the use of these batch programs by making them appear to be interactive and by including them as components of more sophisticated interactive, software systems. We're doing so by (1) providing them with better interfaces and by (2) combining them into high-level scripts that reflect how they're used. The key is we're using a knowledge base describing these programs to help us create tools that automatically perform these tasks.