Ontologies
While the term comes from philosophy, meaning the study of the "nature of being", in software engineering, an ontology is a formal way of representing a specific domain. It defines:
- The concepts and categories that exist within that domain.
- The properties belonging to those concepts.
- The relations between them.
For example:
- The
validationsontology: describes the concepts of validations in our model tooling. - The
messagingontology: in this ontology, the domain pub / sub communication is described. - The
documentGeneratorontology: A separate representation for generating documents.
NS Tooling
Ontologies are used to group all related elementClasses for a single domain. As seen in the diagram, a single ExpansionMetamodel can contain
multiple ontologies. Since an ontologies describe a semantic boundary, there is no reason why related ontologies cannot
be bundled into one metamodel.
Metamodel vs. Ontology: What is the difference?
It is easy to confuse these two terms because they are closely related, but they serve two distinct architectural purposes:
- A Metamodel defines the rules and language for constructing models. It is a "model of a model". A metamodel dictates how you are modelling.
- An Ontology represents the actual knowledge and concepts within a specific domain of discourse. An Ontology dictates what you are modelling.