“Knowledge Abstraction” has three sections. In the first, Abbott surveys the history of software abstraction. He successfully locates discrete points of importance in the software continuum ranging from totally machine-specific descriptions to totally problem-specific descriptions and discusses the difficulties of relating some of the advances in software abstraction to this continuum. This is the best-thought-out and -developed section.
In the second section, Abbott discusses precursors, examples, and modes of knowledge abstraction and develops a “first principle” of knowledge abstraction. Knowledge abstraction is then contrasted with other software abstraction.
In the third section, Abbott discusses general problems in knowledge programming (e.g., logic programming and expert systems) such as the relation between knowledge and control. This section of the paper could have been strengthened by the inclusion of a direct discussion of the procedural-declarative dichotomy. He concludes the section with an interesting parallel between expert scientific systems and legal systems, both of which emphasize “surface-level information” by abstracting out this knowledge from underlying knowledge.
Although any reasonably well-versed computing professional or computer scientist should be able to follow this paper, it will most interest those working in programming languages or the history of computing, especially those with a decidedly philosophical bent. It will probably not interest most AI workers, because although it is, in part, about “knowledge representation formalisms and methods,” it is not in that area.
The paper is clearly written, although the nature of the material is such that most readers will require a rereading. It is copiously but not overly documented with references, well produced, and, with one significant exception (“intention” instead of “intension” box, p. 669), free of printing errors.