SMN Ontology

System matrix notation (SMN) is a general system simulation framework, hence here we describe it using the system ontology. First a brief overview of the conceptual foundations then a look at the SMN ontology (smn.owl).

Note that this is different from the smn-modelling.owl ontology. This ontology describes the SMN algorithm and how it works, whereas the smn-modelling ontology allows for the creation of actual SMN models that can be simulated by an smnEngine (see tutorial).


The SMN ontology is developed atop a metaphysical foundation derived from the system.owl ontology, which depends on the information.owl ontology. These define the basic concepts required for a system to exist and to experience phenomena. Below is a very brief overview of the foundational ontologies.

Information Ontology


Above we see information and an information process. A schema structures an information process, which then transforms data. Data can be formed into complex data structures.

System Ontology


Above we see that a system has a state, which is implemented by data. An information process transforms the data and thereby the state changes and the system is animated. Systems have interactions with other systems and thereby participate in complex networks of system interactions. We can also explicitly represent complex systems and their interactions, however these are not directly modelled in SMN (only atomic systems and interactions are directly modelled in SMN).

Also see the PCC ontology for another use of this foundation.

The SMN Ontology


Above is the class hierarchy and diagram. Notice that the SMN ontology specialises every class in both the information and system ontologies except for complex systems and complex interactions. SMN implements the detailed level of the info-sys ontologies and the complex classes are stubs that allow for the creation of logical models that help us comprehend the detailed level of atomic systems and interactions. SMN implements the detailed atomic level.

Notice that the diagram has parallels with the system diagram above. An SMNSystem has a systemState, which is implemented by an SVElement. It also has SMNInteractions with other systems, these have a connectiveState, which is implemented by an SMElement. The SMNProcess transforms the data (SV & SM elements) and thereby the state changes and the system is animated. Here the data comes in complex data structures such as vectors and matrices, and the SMNProcess involves a form of matrix multiplication.

The rest is matrix algebra. See how does SMN work for more details on this.