Recently, I read a piece of very interesting blog “Rich World – Poor Models” by modelpractice, and have some discussions with the author at (1)What is the essential difference between MODELING and PROGRAMMING? ^{[1]} and (2)The Mathematical Foundations for Models.

I (1), the author said:

From my perspective:

Programming: using a very expressive language and restrict it by coding rules.

Modelling: using a very restricted language, s.t. it is expressive enough, but also easy enough to handle (read, write, …), for creating different views on a thing.

… …

what I mean is that independent from its domain, even if it comes in different notations, every languages has a certain level of expressiveness. think e.g. of the chomsky hierarchy.

According to the author’s clues, I imagined a rough view as follows:

- a machine language maybe close to recursively enumerable or context-sensitive language corresponding to Chomsky hierarchy Type-0 or Type-1, and
- a high-level programming language maybe more close to a contex-free language at the Type 2, thus
- a modeling language such as UML is basically close to a regular language at Type-3, it (a model by it) can be taken such as some business context then has rich semantics to describe a system include software intended.

For this, the author commented:

roughly, yes. where I think in much smaller bits than the whole UML.

by the way, regular languages have the same expressiveness as (relational) Monadic Second Order Logic.

This is how Finite Model Theory comes in.the point is that languages from propositional logic up to chomsky-0 form a hierarchy, where modeling comes from the low and programming from the high end.

(the bold is added by me)

And at (2), I said:

I think, Model Theory (mathematical) may be the most important foundation for models.

However, it seems there are some basic puzzles, such as some inconsistencies in the use for term of model?

The author replied:

Totally agree, Model Theory is it, but please let it be finite (here’s why: http://bit.ly/eg9VHb )

Finite Model Theory has provided the essential basis for database theory. Think it could also do for modeling.

Above discussions maybe touched some meaningful issues, I think the author point out certain propositions clearly, also I was looking for. Maybe it is one of the important piece of a jigsaw – about models and modeling.

I want to try to explain it a bit more. I have been having the basic viewpoint, that is, a model (or a domain) must be finite (so-called “universe of discourse” is ambiguous). This is a premise for our cognition – more specifically, this is a premise of that we gain stable, reasonable outcome from requirements analysis for a system.

In other words, to face the infinite and open world, our logical premise has to opened but any effective cognition always based upon a finite model (e.g. a theory with a model satisfied it), the closed word assumption^{[2]}. Perhaps someone would say it is simply obvious but, it maybe one of the primary premise to introduce mathematical basis for models and modeling we are interested.

By the way, how do we get a finite domain? It is to do *modeling*. Here, the meaning of “models” have being reduced insensibly.

Just to mention – a classic problem with infinite domains: For an infinite domain dom (like the Naturals) and finitely many entries in R: dom x dom a query

R(x, y) AND R(y, z) always gives a finite result set of (x, y, z),

whereas R(x, y) OR R(y, z) always gives an infinite result set of (x, y, z)

Thanks but, I’d not well understand that, what are the significant meanings in mathematics or others (such as models and modeling? – would you like tell me more?)

From my perspective (which is for how to put models and modeling on a appropriate mathematical basis, rather then mathematics itself), the “infinite” at premise can or must be eliminated, such as an infinite domain.

E.g., I think, it perhaps can be regarded as a premise that all computational problems in a discrete and countable – finite space. So, why must we take some infinite domain at premise?

Hi TY

it was a standard DB-Theory problem. It mainly says that one has to take care, when working in the finite, not to end up in the infinite ‘suddenly’.

I agree, in the end it comes down to finite space, e.g. by appropriate restrictions.

|=

Thank you. Those theories need learning for me.