Skip to main content

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 validations ontology: describes the concepts of validations in our model tooling.
  • The messaging ontology: in this ontology, the domain pub / sub communication is described.
  • The documentGenerator ontology: 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.