Programming and Knowledge Representation Languages

My work on knowledge systems has interleaved with work on programming and knowledge representation languages and environments.

Units Package

The Molgen project explored representation and reasoning in the domain of gene cloning experiments in molecular genetics. Peter Friedland and I needed an effective tool for representing DNA structures, plasmids, bacteria, experiments, plans, and many other such elements that made up the relevant domain knowledge. The knowledge would be built up over two to three years as we worked on our dissertations. We needed a tool to develop and persistently store molecular genetics knowledge. We developed the Units Package.

AI was at an inventive stage in representation languages and we were heavily influenced by frame languages such as Bobrow and Winograd’s KRL language, Ron Brachman’s work on KLONE, and others. The Units Package was developed in Interlisp for the PDP-10 and its successors. It was used by many projects around the Heuristic Programming Project at Stanford (later known as the Knowledge Systems Lab) and elsewhere. Later when Intelligenetics/Intellicorp was founded, the Units Package became the foundation and starting point for its commercial product KEE (for Knowledge Engineering Environment).


When we started the KBVLSI project at PARC, we needed a suitable representation language. One candidate was Units, a product of my dissertation research. Its implementation, however, had been designed to compensate for memory limitations of TENEX/TOPS-20. The d-machines at PARC were less limited and we wanted a frame/objects tool for Interlisp-D that could take advantage of the larger memories. Dan Bobrow had built KRL earlier with Terry Winograd, and also PIE with Ira Goldstein on Smalltalk. We joined forces to create Loops –  a Lisp-Oriented Object Programming System.

By this time, the strong similarity between AI frame languages and object-oriented programming was evident. Although we intended to use Loops to represent knowledge in knowledge systems, we characterized it as an object-oriented programming language and integrated it into the Interlisp-D environment. Loops was commercially distributed and supported with Interlisp-D by Xerox on its AI workstations.  Our work on Loops later led to our participation on the design of an object system for CommonLisp and influenced the design of its object programming specification.

The Truckin’ Game and Knowledge Competition (video) Truckin‘ knowledge competition was the equivalent of a final exam for a one-week course that we offered periodically at PARC to teach people about object-oriented programming.

Truckin’ was like a video game except that it was “played” by computer programs rather than by people. Each person taking the Loops course programmed their truck to act for them in the Truckin‘ simulation world. The trucks traversed a game board where a road connected road stops for buying and selling goods. For each kind of good, the stores at the road stops had posted prices for buying or selling goods of various classes.

1982 Bobrow Stefik Data Object Pgming

Stefik, M. Bobrow, D.G. Object-oriented programming: Themes and Variations. AI Magazine 6:4, pp. 40-62, Winter 1986. (Reprinted in Peterson, G.E. (ed), Object-Oriented Computing, Volume 1: Concepts, IEEE Computer Society Press, pp. 182-204, 1987. Also reprinted in Richer, M.H. (ed.) AI Tools and Techniques, pp. 3-45, Ablex Publishing Corporation, Norwood, New Jersey.)Stefik and Bobrow (1986) Object-Oriented Programming: Themes and Variations

Bobrow, D.G., and Stefik, M. J. (1986) Perspectives on Artificial Intelligence Programming. Science 231:4741, pp. 951-956, 28 February 1986. (Reprinted in Rich, C. & Waters R.C. (Eds.) Readings in Artificial Intelligence and Software Engineering, pp. 581-587, Los Altos: Morgan Kaufman Publishers, 1986.)Bobrow and Stefik (1986) Perspectives on AI Programming

Stefik, M. Bobrow, D.G., and Kahn, K. (1986) Integrating access-oriented programming into a multiparadigm environment. IEEE Software, 3:1, pp. 10-18, January 1986. (Reprinted in Peterson, G.E. (ed), Object-Oriented Computing, Volume 2: Implementations, IEEE Computer Society Press, pp. 170-179, 1987. Also reprinted in Richer, M.H. (ed.) AI Tools and Techniques, pp. 47-63, Ablex Publishing Corporation, Norwood, New Jersey.)Stefik, Bobrow, and Kahn (1986) Access-Oriented Programming

Bobrow, D.G., Kahn, K., Kiczales, G., Masinter, L., Stefik, M., and Zdybel, F. (1986) CommonLoops: Merging Lisp and Object-Oriented Programming. OOPSLA ’86: Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 17-29, Portland, Oregon, September 29 – October 2, 1986, Edited by Normal Meyrowitz, Special Issue of SIGPLAN Notices 21:11, November 1986. (Reprinted in Peterson, G.E. (ed), Object-Oriented Computing, Volume 1: Concepts, IEEE Computer Society Press, pp. 169-181, 1987. Also reprinted in Russian in Agafonov, V. (Ed.), Object-Oriented Programming, MIR publishers, 1990.)Bobrow et al 1986 (Integrating Objects in Common Lisp)

Stefik, M. Bobrow, D.G., and Kahn, K. (1986) Access-oriented programming for a multiparadigm environment. Proceedings of the Hawaii International Conference on System Sciences, January 1986. (Note: This paper won the best paper award out of 80 papers for the conference. An expanded version of this paper appeared by invitation in IEEE Software. This paper has also been reprinted in various books.)Stefik, Bobrow, and Kahn (1986) Access-Oriented Programming

Bobrow, D. G., Stefik, M. J. (1982) LOOPS: Data and Object Oriented Programming for Interlisp. European AI Conference, Orsay, France. 1982.Bobrow & Stefik 1982 Data and Object Oriented Programming

Bobrow, D. G., Stefik, M. The Loops Manual. Knowledge-Based VLSI Design Group Memo KB-VLSI-81-13. January 1983. (Parts 1, 2, & 3)Bobrow and Stefik. The Loops Manual (part 3) Bobrow & Stefik. The Loops Manual. (part 2)Bobrow & Stefik. The Loops Manual. (part 1)

Stefik, M. (1979) An examination of a frame-structured representation system. Proceedings of the International Joint Conference on Artificial Intelligence, Tokyo, Japan, pp. 845-852, August 1979.Stefik (1979) An Examination of a Frame-structured Representation System

Comments are closed.