(c) Erik Hollnagel, 2020
FMI - the FRAM Model Interpreter
The FRAM Model Interpreter (FMI) is a software tool that can be used to interpret a FRAM model and through that determine how the described activity or task may develop. This is possible because a FRAM model in principle is a kind of program - a set of instructions that control the way in which a model operates or "performs". The FMI is simply the "engine" that can interpret these instructions. The FMI provides a realisation or simulation of a given model in the sense that it evaluates the consequences of the couplings specified by the aspects of the model’s functions and thereby shows how an event can develop - or indeed whether it will develop at all. The FMI can be used to determine how the potential couplings defined in the model will be realised as actual couplings for specified conditions – an instantiation.
In the BasicPlus version of the FMI, the variability of functions can be set by specifying an interpretation profile for individual functions. The interpretation profile controls how a function will process the upstream Outputs that are defined by the function's aspects - whether a function will consider ALL of them, ANY of them, or NONE of them. It is furthermore possible to specify whether a function should take into account ALL of the defined aspects or only SOME of them.
How it works
To show how the FMI works, consider the description of how to prepare cup noodles, which is an exercise that is often used in FRAM courses. The model developed for how to prepare cup noodles may look like this (other variations are of course possible).
You then begin the interpretation of the model. The guidance for how to do that can be found in the brief description mentioned above. The interpretation will in this case come to a successful conclusion when the function <To enjoy cup noodles> is reached. The steps-by-step activation of the functions can be seen from the FMI log on screen and can og course also be saved in a sessions log together with more detailed information from each step.
To confirm that the model works - and that it will lead to the desired outcome - it is necessary to go through it satep-by-step or to "execute" it. In this example the model is simple enough to go through by hand but for models with more functions or more couplings it soon becomes impractical. This is where the FMI can help. It will enable you to go through a model step-by-step while keeping track of everything that happens, especially the changes to upstream-downstream relations. It wqill, in other words, interpret the model as it has been specified by you.
If you read and initialise the model in the FMI, you will see the following screen.