My work on knowledge systems has interleaved with work on programming and knowledge representation languages and environments.
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.
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.
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.)
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.)
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.)
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.)
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.)