ABSTRACT

With the increasing size and complexity of software, help systems that can assist the user in locating tools and understanding their functionality become critical. Help systems are intended to help and should constrain the user as little as possible. For this reason, natural language help systems that accept free-style natural language queries are more desirable than traditional keyword-based or menu-driven systems. Very few existing software systems come with such a help facility. This is due to the fact that current elaborated help systems require a lot of manual encoding and are therefore expensive to build. It would be preferable to have simpler help systems as long as they can be built automatically. The help system should be able to give information about components of a large toolkit. More precisely, it should accept natural language queries and should provide retrieval facilities to identify software components performing a desired functionality, as well as some kind of hypertext links to allow browsing between conceptually related components.

The key idea of our approach is to take advantage of the natural language documentation that comes with most modern software systems. We use information retrieval techniques specifically adapted to the software domain in order to build help facilities that provide not only retrieval information, but also some basic explanatory information, under the form of summarized descriptions, and related information, under the form of simple hypertext links. We embodied this approach in a tool, Guru that allowed us to generate help facilities for various documented software systems such as Aix, SunOS, Inter Views, Emacs, etc..