📜 ⬆️ ⬇️

Difficulties on the way of creating a “universal” metamodel for modeling subject domains

To create a domain model, we first build a model of our ideas. The description of our views is contained in the metamodel (for example, in the BPMN notation). Metamodels, in turn, are built on the basis of a meta-metamodel. However, our ideas have a very complicated structure, which still has no formal description. Therefore, the construction of metamodel and meta-metamodel is very difficult. An attempt to describe this structure was made by the Greeks when they came up with the basics of logic. The ways of our thinking were studied by mathematicians when faced with paradoxes, trying to build the foundations of their science. It would seem that there is progress, but for some reason, focusing on the formal description of the tools of inference, mathematicians did not attempt to apply the results to the modeling of our world (probably because for them it is an applied task that does not cause interest).



As a result, the principles on the basis of which notations and domain modeling languages ​​are created are chosen by developers relatively arbitrarily. It is clear that the modeling languages ​​created in this way have a rather limited scope. This area should have been described by the creators of the language, but developers, as a rule, ignore this requirement.

Imagine that you met an algorithm for solving differential equations. However, the algorithm has not investigated the issue of the limits of convergence and rate of this convergence. Can you use this algorithm in practice? It all depends on your responsibility. In practice, the algorithm must have a description that includes a description of the limits of convergence and an estimate of the rate of convergence. Exactly also, the creators of a language or notation would have to describe the limits of applicability of the notation and evaluate the complexity of its application to solving practical problems. However, I do not find such an analysis for any of the modern notations. For example, when I say that the BPMN notation does not allow modeling scenarios, simulating only typical scenarios, I thereby describe the limits of applicability of this notation. But the developers themselves, even if they wanted to, could not have done such an analysis. The reason for this is that so far there is no possibility to classify the descriptions of subject areas, the reason for which, in turn, is the lack of a corresponding classifier.
')
The problem is clear, and the creation of such a classifier employs many people, but it is still not there. In this article I will talk about the difficulties that the developers of metamodels encounter and try to explain why (in my opinion) the task of constructing a metamodel classifier has not yet succeeded.

I wrote about one of the reasons earlier - we strive to mythologize things, animating the inanimate. And the reason for this is also clear - the language in which we communicate, is based on a mythic consciousness, in which someone is responsible for everything that happens in nature. The river flows, the machine sharpens, the knife cuts, etc. There is always a conscious mythical creature that does something. For example, we all believe that an apple falls to Earth. But few people know that at the same time and the Earth falls on an apple. And even less know that the movement of the apple and the Earth satisfies the principle of least action. Why? Not because the apple is capable of falling to the Earth, and not because the Earth is capable of falling on the apple, but because this is how the world works. Instead of saying, as physicists say, the movement of bodies obeys the principle of least action, we, like in the good old days, endow the apple with the ability to fall. Therefore, language makes us in any action look for an actor performing these actions (remember the “tracks” in BPMN) and the result of these actions (remember the definition of the process). Why does this prevent us from building models? Because the choice of the actor is arbitrary. We can assume that the car is driving along the road, but we can say that the wheelset is rolling, and the motor only helps it to go. An attempt to find an actor leads to the fact that the same knowledge about the subject area can be modeled in different ways, which, in turn, leads to contradictions within the model.

Another reason is that analysts think every time in different meta-metamodels. Most analysts think either in terms of types and categories (an analysis tool invented by Aristotle 2500 years ago and a bit outdated today), or in terms of relational algebra (which is suitable for creating databases, but not at all for modeling subject areas), or in terms of OOP (which is suitable for modeling code written for OOP languages, but is not intended to model subject areas at all). But very few analysts are able to build models in terms of set theory — a tool specifically designed for modeling subject domains.

Analysts do not know how to model 4-dimensional space-time using a meta-metamodel based on set theory. For example, you can hear that an action is something that an actor does. That is, according to analysts, the actor is not part of the action, but is outside. In this case, the term “produces” every analyst understands individually to the best of his personal experience. It turns out that there is something that does not have a strict definition — action, there is a subject — the actor and there is a semantic connection between them — produces. In four-dimensional space-time, the action is a part of the space-time continuum, the actor is part of the action (its participant is “part”). Therefore, instead of a semantic connection, it “produces” between the operation and the actor a “whole-part” relationship. If it is rather difficult to model four-dimensional objects, it is even more difficult to model the variable future (projects), in which there are much more variations. For me, the most difficult object of modeling is the scenario in which the future is variable, the past is known with some precision, and the present is the slider on the time scale. But even this very complex multidimensional object can be modeled on the basis of set theory.

The next obstacle in the way of creating metamodels is the view of many analysts that all objects are known all at once. For example, if we know for sure that a given tree is an oak tree, this allows us to classify a tree once and without errors. However, it may be that we are mistaken and this tree is a maple. To create working models, we need a built-in metamodel object reclassification mechanism.

There is knowledge that is not related to objects, but to classes of objects. For example, we know that half the rabbits are white and half are gray. While in our metamodels there are no ways to model this knowledge.

Models are essentially subjective. For example, if, from the seller’s point of view, a sale was made, from the point of view of the buyer, this was a purchase operation. You can often hear the name of such an operation: “purchase and sale”. This is an attempt to look at one operation from different sides at the same time - both for sale and as for purchase. However, it is not always possible, for example, when we do not know all the possible points of view on the object in question. Real models must have different ideas from different points of view in order to meet the requirement of extensibility.

Although we do not create models to represent different points of view in an explicit form, nevertheless, we create models taking into account different points of view implicitly, without even noticing it. For example, having built a model of the internal and external structure of a person, we build human structures from two different points of view. In my opinion, it is worth making this possibility explicit, and allowing analysts to build different constructions of the same object from different points of view.

The one-sidedness of our thinking is manifested in the fact that we are well able to do analysis and very badly - synthesis. For example, we can disassemble an object into parts, but it is no longer possible to imagine the solar system as an object. Therefore, you can often hear about decomposition models (process decomposition, for example), but we never hear about the composition of objects, for example, about the composition of processes.

It is possible to tell about each restriction: the causes of its occurrence, the limitations and errors to which they lead, the ways of their elimination. As a result, you can go through all of them, remove restrictions and build a metamodel that would allow you to create a classifier of metamodels and their limitations. I intend to gradually go through each restriction and try to remove them. If someone finds restrictions that I have not described, please inform me. I will work with them with pleasure.

Source: https://habr.com/ru/post/318874/


All Articles