# The Importance of the Metamodel of Object-Role Modeling

## The Rosetta Stone of the Infinity Fountain

Imagine an Infinity Fountain, where you can store any information, pull it out in exactly the way it was put in and with the same interpretation, or interpret it in multiple ways depending on your needs:

The metamodel of Object-Role Modeling (ORM), I believe, is soon to have a special place in the history of computer science.

Object-Role Modeling, and its predecessor, NIAM, have at their core, when implemented in computer software, a metamodel of a restricted first-order logic (FOL), senza negation, restricted by Finite Model Theory (FMT).

We know that an FOL under FMT is subject to variable interpretation of the structures defined by theorems of that FOL and over a finite set of moves when considered under Ehrenfeucht Fraisse Games (EFGs).

But there is no restriction over what theorems are studied under an EFG, the variety of individual games that can be played is infinite.

What this means is that if we think of the metamodel of ORM as a **metamodel of first-order logic, senza negation**, we are at liberty to store whatever set of equivalent theorems of the FOL of ORM as we like, and pull out (interpret) as many different variable interpretations as we find a suitable isomorphism to.

Because ORM can define relational and graph databases, we can say this in layman’s terms:

The schema of a relational or graph database can store any database schema compatible with that schema. And one can pull out of that database any data stored in it. So the metamodel of ORM, may as well be seen as the metamodel of Entity Relationship Diagrams, Property Graph Schema, Healthcare Database Schema and Data, Google Maps, whatever you like…but it is only one metamodel. Someone may look at medical records and interpret one thing, for instance, another something else entirely…over the same data.

How can this possibly work?

Well, you (the interpreter) are as important as the data you interpret.

I have never seen the concept so well put than as by Lewis Carrol in **“Through the Looking-Glass”** and as mind-bending as it initially seems:

“You are sad,” the Knight said in an anxious tone: “let me sing you a song to comfort you.”

“Is it very long?” Alice asked, for she had heard a good deal of poetry that day.

“It’s long,” said the Knight, “but it’s very, very beautiful. Everybody that hears me sing it — either it brings the tears into their eyes, or else — ”

“Or else what?” said Alice, for the Knight had made a sudden pause.

“Or else it doesn’t, you know. The name of the song is called

Haddocks’ Eyes.”“Oh, that’s the name of the song, is it?” Alice said, trying to feel interested.

“No, you don’t understand,” the Knight said, looking a little vexed. “That’s what the name is called. The name really is

The Aged Aged Man.”“Then I ought to have said ‘That’s what the song is called’?” Alice corrected herself.

“No, you oughtn’t: that’s quite another thing! The song is called

Ways and Means: but that’s only what it’s called, you know!”“Well, what is the song, then?” said Alice, who was by this time completely bewildered.

“I was coming to that,” the Knight said. “The song really is

A-sitting On A Gate: and the tune’s my own invention.”

This way of looking at the same thing in many ways grabbed my attention at young age (about 19) when I first started learning Turbo Pascal and reading it in a textbook on the same by Walter J. Savich.

It was my first introduction to the variable interpretation of whatever is stored in a metamodel.

The second time I saw it was when working for a Telecommunications Billing company and where the lead architect of the billing system recounted how the billing system was first developed and conceived.

The general manager of the company came to the architect and said, “We need a billing system that can bill anything”.

Taken aback, and quite offended by the enormity of the challenge, the architect said quite spitefully, “Just give them [the customers] an ORACLE database and let them build whatever they like on top of it”.

Of course, this didn’t go down well, and he didn’t really mean it, and the challenge was set…build a variable use database model that acts as a metamodel within which the service plans of any (or practically any) telecommunications offering can be implemented.

That billing system is now Singl.eView and one of the most successful Telecommunications Billing systems in the world.

It fascinated me to study the model, and as a metamodel, and wonder at the seeming infinite variety of things that can be done with it.

The Object-Role Modeling metamodel is one such enigma and Infinity Fountain, given that it represents the metamodel of a first-order logic, senza negation, and in that first-order logic, restricted to Finite Model Theory one can store anything (any set of theorems, or ORM models) that they like…and because of Ehrenfeucht Fraisse Games, there is an exploitable opportunity to variably interpret what is stored in the metamodel, as long as one finds a suitable isomorphism to the theorems, and data (because ORM supports sample data populations).

So, why is the metamodel of Object-Role Modeling important?

Because you can store any conceptual modelling language you like in that metamodel, as metamodels with data, and extract from it variable interpretations of the same metamodel/data combination within the metamodel of ORM acting as a meta-metamodel.

If that isn’t *Haddock’s Eyes*, to *The Aged Aged Man*, to *Ways and Means*, to *A Sitting on A Gate*…then I don’t know what is.

It means you can do things like this:

Or this…click to enlarge…

Or in layman’s terms…

The metamodel of ORM is infinitely variable in what it can store, although restricted to Finite Model Theory, and ambiguous by default because we never know what is going to be stored in it, or which structure a Duplicator of an Ehrenfeucht Fraisse Game is going to pull out of it…the metamodel acting as the Spoiler itself.

I.e. You can get software to play the role of a Duplicator in an EF Game, and variably interpret the metamodel of a graphical language, and wich includes data, as another graphical language (click to enlarge):

This is extremely powerful, and that is why I perceive the metamodel of ORM important.

Further reading on EF Games and ORM, [here].

Thank you for reading. As time permits, I will write more on the metamodel of Object-Role Modeling, Ehrenfeucht Fraisse Games and their application, and variable interpretation over a metamodel that is inherently ambiguous and that can be defined as an Object-Role Model.

==============End============