[om-list] Re: Models vs. Meta-Models

Mark Butler butlerm at middle.net
Sat Nov 11 08:31:48 EST 2000


Luke Call wrote:
> 
> Of course I agree with you on storing it in a DB, instead of XML--I
> think we're in total agreement there. But I still keep thinking that the
> data is the model. I think this comes down to our differing views about
> how to think of the lowest level of the model. You're thinking of how to
> store logical statements, and I'm thinking I don't have to create a
> model, since the software saves objects and relations and that is the
> model--created on the fly as data is entered.  Hmmm...

That is why I use the term "meta-model" or even "meta-meta-model".  If we are
creating a model of knowledge then a meta-model is the model of that knowledge
model.  

A standard database is is good example.  Primarily, the knowledge represented
by the database is stored in the contents of the records.  This is a model of
reality with static table definitions.  The table definitions themselves are
designed from a logical model of what types of data needs to be stored, which
in this case is the meta-model.  The meta-meta-model is the database
technology that places fundamental constraints on the structure of the tables.

You should note that conventional database people usually do not call the
actual data in their databases a "model", but that is precisely what it is.
Instead, they call the database contents the "data" and the database design
the "data model". 

XML is another example.  An XML document is a model of reality.  An XML DTD
(Data Type Definition) or schema specifies the allowed object types and
relations in an XML document - i.e. a meta-model.  XML itself specifies the
allowed structure for XML schemas - the meta-meta-model.

So is C++.  The objects themselves are the model.  The classes, as defined in
various header files, are the meta-model.  C++ is the meta-meta-model.
 
Now, in our scheme, we are defining classes and objects on the fly, so there
is no hard difference between where we specify the object instances and the
object classes, so we can call both of them the "model".

The meta-model then is the model of the data structures that we use to
represent arbitrary objects, classes, and so on.  It is a master template for
every possible file / database / or in-memory representation of any such
model.

You write as if the software either needs no such internal structure or that
such structure is arbitrary.  Neither is the case.  Your meta-model is your
destiny - once you too far down the path of one meta-model you will not be
able to change without virtually starting over.

- Mark




More information about the om-list mailing list