Chapter 7 Abstraction Operators and Design Patterns n the previous chapter we have introduced the notion of abstraction operator acting on description frames and configuration spaces. In this chapter we will handle abstraction operators in much more detail, providing a classification depending of their effects and modus operandi. Then, we will address the problem of designing generic operator schemas, and relate them to the notions of abstract Pro- cedural Data Types and Design Patterns, both well known in Software Engineering. Such an approach will allow us to describe the context where these operators can be used. In fact, many of the operators correspond to similar representation problems occurring in various domains. In this chapter only the most basic operators will be described in detail, in order to provide the reader with the feeling of how operators can be defined in practice and concretely applied. The complete list of the currently available operators is reported in Appendix E. 7.1 A Classification of Abstraction Operators In this section we start by classifying abstraction operators according to general properties rather than exploiting specific characteristics of the domain of applica- tion. Thus the definitions will be abstract, while their operational semantics will be specified at the time of their application to specific problems. We have seen in the previous chapter that abstraction reduces the information provided by a system description roughly in two ways: hiding some pieces of infor- mation, or making information less detailed . We also describe some approximation operators inasmuch as this supports explaining the difference between abstraction and approximation. L. Saitta and J.-D. Zucker, Abstraction in Artificial Intelligence and Complex Systems, 179 DOI: 10.1007/978-1-4614-7052-6_7, © Springer Science+Business Media New York 2013