Although this book is slim (only slightly more than 100 pages), it is not lightweight. It is a thoroughly researched and insightful essay on the mathematical bases of modeling and ontologies. Taking a critical approach, the author emphasizes the role of modeling languages for constructing models and expressing their behavior. Within the formal mathematical presentation, it is possible to discern the leitmotiv of critical philosophical analysis.

Despite the book’s brevity, it contains nine chapters (although the last two, on related work, conclusions, and ideas for future work, are only a few pages each). The seven substantive chapters are organized in a manner that directly reflects the book’s title. The introductory chapter lays the foundation for the remainder of the book. It outlines the relationships among reality, the cognitive model (that is, the conceptual model), and the communicated model (that is, the implemented model). These are explored from alternate viewpoints from the literature and extended to metamodels, which are described diagrammatically. The author’s illustrations are plentiful, well drawn, and informative. His drawings appear throughout the book, and they are really helpful for understanding the material.

The second chapter describes the mathematics of modeling based on set theory and morphisms. The author shows how the many different kinds of mappings and relationships common in modeling and used in software engineering can be implemented in mathematics. This mathematical language is used in the third chapter in a critical analysis of what a model is. The author emphasizes the role of type models, as found in designs using the unified modeling language (UML), in the generation of metamodels and ontologies. Chapter 4, on metamodels, is short and serves as a bridge to a longer fifth chapter on ontologies. The chapter on ontologies critically evaluates the different ways in which ontologies can be expressed and understood. The author discusses using UML, the ontology definition metamodel specification, and set theory to understand and document ontologies. He concludes the chapter with a section on linguistics for ontological metamodeling. The introduction of linguistics leads to chapter 6, on modeling languages. These languages are often graphically based, like UML. However, the author’s approach is to look at the properties of modeling languages and their capabilities in general, and to avoid elaboration on any particular language.

Chapter 7 pulls together models, metamodels, languages, and ontologies by describing two schools of thought. In the first, a metamodel is a language for specifying languages. In the second, a metamodel is a model of a modeling language. He then reconciles these approaches and applies the result to ontologies.

This book is well written, and the scholarship is evident. It has to be read very slowly with a pencil in hand, preferably in a library with access to the references invoked. This is because the ideas are profound and will require work to understand them. The effort will be worthwhile.