Seven Layers of Knowledge Representation and Reasoning in Support of Software Development

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 ...