James S. Jennings and Nicole D. Terry
Our goal is to support the development of more intelligent and more interactive text-based interfaces for general computer use. In order to enable automation of user tasks, we find a new command shell architecture is needed. Our working prototype, Fish, maintains a global, persistent knowledge repository across concurrent interactive sessions. For example, a user can define a shell function in one session and this function is immediately available to the user’s other concurrently running sessions, as well as future sessions. Our approach is to centralize knowledge in a persistent way while parallelizing execution. Fish is extensible and customizable, with a full programming language. It supports efficient communication between the machine and the user in many ways, most notably by giving the user access to the results of previously executed commands. Indexical references into previous results are possible by using a sophisticated command language which contains a suite of syntactic and semantic analysis functions. Significant strides in learning are possible due to the centralization of knowledge and its persistence. We illustrate the possibilities with an example of how learning may be uniquely applied using Fish.