Structural vs. Usage definitions
There are different ways to define a model or a DSL. One is the structural definition and the other one is the usage definition. We may draw these two orthogonal dimensions with the conformance relation between a model and its metamodel and by the representation relation between a model and the system it represents.
The conformance relation between a program and its grammar has been studied in Grammarware for half a century. The conformance relation between a model and its metamodel is of similar nature and is starting to be understood.
But the problem we have is that the representation relation has practically never been studied seriously as of today. As B. Cantwell Smith puts it:
“What about the [relationship between model and real-world]? The answer, and one of the main points I hope you will take away from this discussion, is that, at this point in intellectual history, we have no theory of this [...] relationship”.
The structural definition answer the question of how a model is organized, of what it is composed, etc. These are important questions, but of course not as important as the usage definition adressing the questions of how a model is or should be used, when it should be used (in which situations), how it should be used, etc.
In order to stress the importance of the usage definition vs. the structural definition, we could do this for any tool that we are using, for example a hammer:


