Principles For Modeling Language Design In Gmodel
  1. A Graph is partitioned into well-defined Sub Graphs, each of which relates to exactly one producer role, and one or more consumer roles.
  2. All Artifacts are based on information produced by a specific role as a result of articulating or clarifying specific knowledge or requirements.
  3. A modeling language is developed for each kind of Instantiable Artifact (work product).
  4. The Graph that defines the Abstract Syntax of a modeling language (the meta model) has exactly one Model Root, a Vertex that relates to the modeled Artifact.
  5. Variants of Graphs (whether they represent meta models or models) are expressed as Specializations of a common Generalization.
  6. Instantiable Artifacts are the only granularity at which versioning is applied.
  7. Instantiable Artifacts can only be edited by one user at a time but can be read by any number of users at any time.
  8. Module References defined in an Architecture Owner Graph in conjunction with the Sub Graph construct provide the basis for specifying modularization mechanisms within modeling languages. This leads to modular meta models and models.
  9. Any Graph can be used in the role of a meta model. A Graph is considered to be a meta model if it is used to instantiate Artifacts that conform to Gmodel instantiation semantics.
  10. Two meta model Graphs may be joined via one or more Edges that connect Vertices in the two Graphs, provided that a Module Reference between both Graphs has been defined in an Architecture Owner Graph.
  11. No circular or bi-directional links in the form of Edges or Module References between Graphs are allowed.
  12. The instantiation links between model Graphs and their meta model Graphs is recorded as part of the model Graphs.

Back to the Fundamental Principles For Modeling Language Design.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License