Structure of Software Models

There are plenty of different kinds of software models. For each kind, there is a corresponding description of the required structure of software models of this kind. Those descriptions are often called meta-models. Adapting the concepts sketch-axiom [15] and graph constraint [14], we introduced "universal constraints" and "negative universal constraints", respectively, to specify the structure of software models (sketches) [18,21].

Universal constraints are, however, not expressive enough to specify all the restrictions we want or have to impose on software models. Analogous to arbitrary first-order statements, to be used as components of sketches, we want to also define therefore arbitrary first-order sketch constraints to be used to specify the structure of sketches.

To achieve this goal, we have been choosing a more unconventional approach. We neither wanted to encode traditional first-order logic of binary predicates by graphs [22] nor to emulate nested graph conditions by traditional first-order formulas [23]. We instead developed a method to define, in a conservative way, first-order constraints in arbitrary categories of sketches. By conservative, we mean that the application of our universal method to different categories of graphs, as in [22–25], for example, allows us to describe the various corresponding variants of (nested) graph constraints.

To validate the use of the term "first-order", we have to ensure, in addition, that the application of our method to the category Set results in constraints comprising essential features of traditional first-order predicate logic.

## Semantics of Diagrammatic Predicates

The advantage of the traditional Ehresmann sketches in Category Theory is that there are fixed universal definitions (formulated in a language based on the concepts graph, composition and identity) of the properties commutative, limit and colimit, respectively. Since these definitions axiomatize the concepts limit and colimit "up to isomorphism", we can presuppose a fixed semantics of all corresponding diagrammatic predicates in any category, i.e., for any fixed interpretation of the concepts graph, composition and identity complying to the axioms of a category.

A price we have to pay, moving from Ehresmann sketches to generalized sketches, is that we have to describe the intended semantics of the predicates we want to include in a formalism on our own. In some cases, a complete axiomatization of the semantics of predicates will be not feasible but we should provide, at least, a partial axiomatization.

At present, we do have in DPF only the very simple notion of sketch entailment at hand to express properties of predicates. We have to extend this notion or find other notions of "arrows" between sketches that provide more appropriate tools for the axiomatization of the semantics of predicates.

On the other side, if we find a way to define arbitrary first-order diagrammatic statements, we will also have closed formulas, like (∀*x*1∃*x*2∃*x*<sup>3</sup> : parent(*x*1, *x*2, *x*3)), available for axiomatization purposes.

We intend to develop necessary tools to describe the semantics of diagrammatic predicates. We want to understand how these tools are related and, especially, find an answer to the question:

> Question 3: How are the concepts specification morphism, universal constraint and specification entailment in DPF actually related?
