RABBIT: An Xntelligent Database Assistant

AAAI Conferences

We have designed and implemented an intelligent database assistant to aid the user in formulating a query. The system, named RABBIT, relies upon a new paradigm for retrieval, retrieval by reformulation, based on a psychological theory of human remembering. To make a query, the user interactively constructs a description of his target item(s) by criticizing successive example (and counterexample) instances.

Object-Oriented Programming: Themes and Variations

AI Magazine

The first substantial interactive, display-based implementation was the SMALLTALK language (Goldberg & Robson, 1983). The object-oriented style has often been advocated for simulation programs, systems programming, graphics, and AI programming. The history of ideas has some additional threads including work on message passing as in ACTORS (Lieberman, 1981), and multiple inheritance as in FLAVORS (Weinreb & Moon, 1981). It is also related to a line of work in AI on the theory of frames (Minsky, 1975) and their implementation in knowledge representation languages such as KRL (Bobrow & Winograd, 1977), KEE (Fikes & Kehler, 1985), FRL (Goldstein & Roberts, 1977) and UNITS (Stefik, 1979). One might expect from this long history that by now there would be agreement on the fundamental principles of object-oriented programming.


AAAI Conferences

Smalltalk classes may be arranged in hierarchies, so that a class can inherit the properties of another class. In the standard Smalltalk language, a class may inherit from only one other class. In this paper we describe an implementation of multiple inheritance in Smalltalk.

Comparison of Object-Oriented Approaches for Roles in Programming Languages

AAAI Conferences

This paper presents, explores and compares object-oriented approaches for roles in statically typed programming languages. We choose five solutions which support information hiding. On the one hand, we investigate the established object-oriented possibilities multiple and interface inheritance and the role object pattern, on the other hand, we examine the language extensions Object Teams and the syntactical extension of classes with roles. We discuss all approaches in turn, using a versatile example. The investigation shows that standard approaches interface inheritance and role object pattern are more appropriate for enterprise projects. New approaches are not developed far enough to be used widespread. But they are all promising proceedings, particularly the approach of roles as components of classes.

Beyond Exploratory Programming: A Methodology and Environment for Conceptual Natural Language Processing

AAAI Conferences

This paper presents an attempt to synthesize a methodology and environment which has features both of traditional software development methodologies and exploratory programming environments. The environment aids the development of conceptual natural language analyzers, a problem area where neither of these approaches alone adequately supports the construction of modifiable and maintainable systems. The paper describes problems with traditional approaches, the new "parallel" development methodology, and its supporting environment, called the PLUMber's Apprentice.