Model representation

In general, expressions examine and gather information about your model. Therefore, all parts of your model must be easily accessible. Not only does this entail easy access to elements such as classes, but also to the relationships among them. In Q, we provide such a uniform view of user model data with a metamodel. All user data then appears as instances of the classes in the metamodel.

As an illustration, consider a model with a package named "Plant Structure" that contains classes named "Branch" and "Leaf." For an expression in Q, the package "Plant Structure" appears as an instance of the metaclass Package with the value of the attribute name of that instance equal to "Plant Structure." Similarly, the classes "Branch" and "Leaf" appears as instances of the metaclass Class with the name attributes equal to "Branch" and "Leaf," Finally, the containment relationship between the package and the classes appears as a link.

A model as a whole appears as an instance of the metaclass Model. All data in a model is ultimately reachable from this Model instance.


Feedback