More on Meta/Domain

I first came across the term Metaclass around 1980 in the context of a programming language - Smalltalk, in fact.  In dynamic OO programming languages like Smalltalk, CLOS, etc a Metaclass is a class whose instances are classes.  That makes good sense to me.

Later, in the modelling world, some people started using Metaclass to mean "a class in a metamodel".  This is much less justifiable.  If your metamodel contains a class called UseCase, say, then instances of that class are objects that represent use cases.  It makes much more sense to say that if my domain concerns use cases, then a class called UseCase is a domain class.  That's why we call them DomainClasses in our framework.

A similar argument applies to DomainProperty - a property of a DomainClass.  "Metaproperty" would mean something like "a property whose instances are properties".