Tuesday, January 20, 2009

Why Model?

Models represent information needed to answer a question.

Transforming one model of reality into another can transform a question that is difficult to answer in the original model into one that is easy to answer in the transformed model.

For example, "What is 1,234,567 x 98,765,432 ?" is more difficult for a human to answer than "What is 14.0262308592797 + 18.4082582229538 ?"

Here is a mathematical transformation (using exponents and logarithms) that converts the first question "What is x times y?" into the second "What is u plus v?":

f(x) = u, g(u) = x
f(y) = v, g(v) = y

Define inverse functions f and g such that:

f(xy) = f(x) + f(y), x,y ≠ 0
g(u+v) = g(u)g(v) = xy

f(1) = 0
g(0) = 1

f(x) = loge(x) = u
g(u) = eu = x

So, if:
x= 1,234,567
y = 98,765,432

then:
u=14.0262308592797
v=18.4082582229538

u+v = 32.4344890822335

xy = g(u)g(v) = g(u+v) = e32.4344890822335
= 121,932,543,087,944

Of course, the transformations from one model to the other and back are not so easy for humans without the aid of a calculator, which could have easily solved the original problem without transformation.

What is a Model?

An information model is an abstraction of reality with a particular scope and focus.

In this blog, I will create an information model to talk about information modeling with the following scope and focus:
  • Scope: Three different levels of abstraction:
    • Metamodel: A pre-defined set of graphical notations and rules of composition for representing models, referred to as a "Construct" in my first model (M1) shown below.
    • Model: An explicit representation of information with a shared focus using the pre-defined graphical notations and rules of composition.
    • Model Instance: Items of interest for which information is being modeled, referred to as a "Object" in M1 below.
  • Focus: Basic semantic constructs in information models, e.g.:
    • Entity: A type of information, represented as a rectangle with the name of the Entity as text within the rectangle
    • Relationship: An association that may exist between instances of Entities, represented as an arrow, with the description text of the relationship read from the source Entity (at the arrow tail) to the destination Entity (at the arrow head).
    • Subtype Partition: A partitioning of an Entity into subtypes, represented as a hierarchical upside-down tree structure, where each partition has its own name and is represented by a separate rectangle, with the constraint that every instance of the child entity (Subtype) is also an instance of the parent entity (Supertype).
Figure 1a represents my first model for information models. 


Figure 1a Model One (M1) for Information Models

Here are some basic Model Constructs:
The subtype partition construct can be used to explicitly identify these constructs in the updated model shown in Figure 1b: