This Article 
 Bibliographic References 
 Add to: 
Seven Layers of Knowledge Representation and Reasoning in Support of Software Development
June 1992 (vol. 18 no. 6)
pp. 451-469

The authors' experience in the Programmer's Apprentice project in applying knowledge representation and automated reasoning to support software development is summarized. A system, called Cake, is described that comprises seven layers of knowledge representation and reasoning facilities: truth maintenance, Boolean constraint propagation, equality, types, algebra, frames, and Plan Calculus. Sessions with two experimental software development tools implemented using Cake, the Requirements Apprentice and the Debugging Assistant, are also included.

[1] C. Rich and R. C. Waters, "The Programmer's Apprentice: A research overview,"IEEE Computer, vol. 21, pp. 10-25, Nov. 1988.
[2] C. Rich and R.C. Waters,The Programmer's Apprentice. Reading, MA: Addison-Wesley, and Baltimore, MD: ACM Press, 1990.
[3] Manna, Z., and R. Waldinger, "A Deductive Approach to Program Synthesis,"Trans. Programming Languages and Systems, Vol. 2, No. 1, Jan. 1980, pp. 90-121.
[4] D. A. McAllester, "Reasoning utility package user's manual," Memo 667, MIT Artificial Intelligence Lab., Apr. 1982.
[5] Y. A. Feldman and C. Rich, "BREAD, FRAPPE, and CAKE: The gourmet's guide to automated deduction," inProc. 5th Israeli Symp. on Artificial Intelligence, Vision, and Pattern Recognition, pp. 77-93, Dec. 1988.
[6] Y. A. Feldman and C. Rich, "Knowledge representation and reasoning in the FRAPPE system," inProc. 6th Israeli Symp. Artificial Intelligence, pp. 133-148, Dec. 1989.
[7] Y. A. Feldman and C. Rich, "Pattern-directed invocation with changing equations,"J. Automated Reasoning, vol. 7, pp. 403-433, 1991.
[8] G. Nelson and D. C. Oppen, "Simplification by cooperating decision procedures,"ACM Trans. Program. Lang. Syst., vol. 1, no. 2, pp. 245-257, Oct. 1979.
[9] A. M. Frisch, "A general framework for sorted deduction: Fundamental results on hybrid reasoning," inProc. 1st Int. Conf. Knowledge Representation and Reasoning, pp. 126-136, May 1989.
[10] S. Rowley, H. E. Shrobe, and R. Cassels, "JOSHUA: Uniform access to heterogenous knowledge structures or why joshing is better than conniving or planning," inProc. 6th National Conf. Artificial Intelligence, pp. 48-52, Aug. 1987.
[11] S. A. Miller and L. K. Schubert, "Using specialists to accelerate general reasoning," inProc. 7th National Conf. Artificial Intelligence, pp. 161-165, Aug. 1988.
[12] Y. M. Tan, "Supporting reuse and evolution in software design," Memo 1256, MIT Artificial Intelligence Lab., master's thesis, Oct. 1990.
[13] R. C. Waters and Y. M. Tan, "Toward a Design Apprentice: Supporting reuse and evolution in software design,"ACM SIGSOFT Software Engineering Notes, vol. 16, pp. 33-44, Apr. 1991.
[14] H. B. Reubenstein and R. C. Waters, "The Requirements Apprentice: Automated assistance for requirements acquisition,"IEEE Trans. Software Engineering, vol. 17, pp. 226-240, Mar. 1991.
[15] R. G. Babb, "Workshop on models and languages for software specification and design,"IEEE Computer, vol. 18, pp. 103-108, Mar. 1985.
[16] R. I. Kuper, "Dependency-directed localization of software bugs," Tech. Rep. 1053, MIT Artificial Intelligence Lab., master's thesis, May 1989.
[17] W. L. Johnson and E. Soloway, "PROUST: knowledge-based program understanding,"IEEE Trans. Software Eng., vol. SE-11, pp. 267-275, Mar. 1985.
[18] D. Shapiro, "SNIFFER: A system that understands bugs," Memo 638, MIT Artificial Intelligence Lab., master's thesis, June 1981.
[19] J. Doyle, "A truth maintenance system,"Artificial Intelligence, vol. 12, pp. 231-272, 1979.
[20] W. Swartout, "The GIST Behavior Explainer," inProc. 3rd National Conf. on Artificial Intelligence, pp. 402-407, Aug. 1983.
[21] D. A. McAllester, "An outlook on truth maintenance," Memo 551, MIT Artificial Intelligence Lab., Aug. 1980.
[22] G. J. Sussman and G. L. Steele, "CONSTRAINTS--A language for expressing almost-hierarchical descriptions,"Artificial Intelligence, vol. 14, pp. 1-40, 1980.
[23] A. K. Macworth, "Consistency in networks of relations,"Artificial Intelligence, vol. 8, pp. 99-118, Feb. 1977.
[24] G. L. Steele Jr.,Common Lisp: The Language (Second Edition). Burlington, MA: Digital Press, 1990.
[25] Y. A. Feldman and C. Rich, "Reasoning with simplifying assumptions: A methodology and example," inProc. 5th National Conf. on Artificial Intelligence, pp. 2-7, Aug. 1986.
[26] G. Nelson and D. C. Oppen, "Fast decision procedures based on congruence closure,"J. ACM, vol. 27, pp. 356-364, Apr. 1980.
[27] R. Milner, M. Tofte, and R. Harper,The Definition of Standard ML. Cambridge, MA: MIT Press, 1990.
[28] A. G. Cohn, "A more expressive formulation of many sorted logic,"J. Automated Reasoning, vol. 3, pp. 113-200, June 1987.
[29] R. W. Weyhrauch, "Prolegomena to a theory of mechanized formal reasoning,"Artificial Intelligence, vol. 13, pp. 133-170, 1980.
[30] M. L. Minsky, "A framework for representing knowledge," inThe Psychology of Computer VisionP. H. Winston, Ed. New York: McGraw-Hill, 1975, pp. 211-217.
[31] P. Devanbu, R. Brachman, P. Selfridge, and B. Ballard, "LaSSIE: A knowledge-based software information system,"Commun. ACM, vol. 34, pp. 35-49, 1991.
[32] R. C. Waters, "The programmers' apprentice: A session with KBEmacs,"IEEE Trans Software Eng., vol. SE-11, no. 11, pp. 1296-1320, Nov. 1985.
[33] C. Rich, "A formal representation for plans in the Programmer's Apprentice," inProc. 7th Int. Joint Conf. Artificial Intelligence, (Vancouver, British Columbia, Canada), pp. 1044-1052, Aug. 1981.
[34] J. F. Allen, "The RHET system,"ACM SIGART Bulletin, vol. 2, pp. 1-7, June 1991.
[35] D. McAllester, R. Givan, and T. Fatima, "Taxonomic syntax for first order inference," inProc. 1st Int. Conf. Knowledge Representation and Reasoning, pp. 289-300, 1989.

Index Terms:
knowledge representation; reasoning; software development; Programmer's Apprentice; Cake; truth maintenance; Boolean constraint propagation; equality; types; algebra; frames; Plan Calculus; software development tools; Requirements Apprentice; Debugging Assistant; inference mechanisms; knowledge representation; software engineering; software tools
C. Rich, Y.A. Feldman, "Seven Layers of Knowledge Representation and Reasoning in Support of Software Development," IEEE Transactions on Software Engineering, vol. 18, no. 6, pp. 451-469, June 1992, doi:10.1109/32.142869
Usage of this product signifies your acceptance of the Terms of Use.