For starters, we have the Domain, Class and a first stab at the Type (datatype) subsystems.  The State Model subsystem is coming shortly (we've got a good first draft, but it's not quite ready yet).  After that, the Action Model subsystem will follow and then some serious work on domain bridges.  Object Population will emerge (we have a good initial draft, again not ready yet) somewhere along the way.  There is a long road ahead of us, but hopefully this will keep you mildly entertained for a while.

On the right is a link to a Google spreadsheet detailing the current state of the metamodel API.  There are two tabs at the bottom of this spreadsheet to categorize commands and queries.  A Postgresql schema has been created for the metamodels along with plpgsql code to implement the API.  Scroll down for a link to the schema and code and a more detailed description.


Polymorphism Subsystem Added

The state model Polymorphism Subsystem is ready for download.  In a reflexive twist, much intricate generalization was required to crack this nut.  This is the final portion of the state model metamodel.  One step closer to action language!

Diagram PDF / Omnigraffle

Descriptions PDF / Pages

Defines both normal (monomorphic) and polymorphic events as well as event and state signatures.


State Model Subsystem added

The first (of at least two) State Model Subsystem's is ready for your perusal.

Diagram PDF / Omnigraffle

Descriptions PDF / Pages

Defines State Models, Events, Transitions, Assigners and other fundamental state model componenets.  Does not address polymorphism, parameters and event signatures.  These will be coming in the very next subsystem update.


About the files

Why Omnigraffle?

You were, no doubt expecting to see the models entered into a proper modeling tool instead of a vector graphics application like Omnigraffle (mac's counterpart to Visio).   See this post in the discussion area for an explanation.

Hey, those arrows aren't correct UML!

1 and 1..* are represented as solid --> and -->> arrows.

0..1 and 0..* are represented as hollow --> and -->> arrows.

Here is a post explaining our reasoning for this egregious deviation.


All Subsystems

If you want all of the downloads in a single zip file, click on one or both of the following links:


Native Mac (choose PDF if you're not an iPerson)

Otherwise, scroll along to choose individual subsystems.


The Big Picture



Here is an overview showing how all the class metamodel subsystems are interconnected.