Basic Concepts and Classes

This section gives an overview of the key classes within MMF and the conceptual entities they represent.

Module

Modules are the basic unit in MMF that perform a mathematical or logical function. Abstract class ModuleBase implements the IModule interface, and serves as a base class for all user implementations of modules.

Slot

Slots are the mechanism by which data is passed between modules. Two subtypes exist... InputSlots for receiving data, and OutputSlots for delivering/sending data. Both InputSlots and OutputSlots exist only as a property of a module, and should be defined as part of the module's implementation.

ModuleGraph

A ModuleGraph is a directed graph of interconnected modules which defines workflow. A ModuleGraph contains a public property 'EndPoints', which allows access to the modules which are considered end points in the graph (i.e. modules either with no output slots, or where no output slots are connected to input slots of other modules).

SlotLink

SlotLinks are created within a ModuleGraph, and are the mechanism by which the output slot of one module is connected to the input slot of another module.

Example

The diagram below shows a representation of a simple module graph (from the SimpleML project) performing division of random numbers. The input and output slots of the 3 modules ('Random Integer Generator', 'Integer Divider', and 'Double Divider') are connected via SlotLinks which are represented by the blue lines. The 'Integer Divider' and 'Double Divider' modules are end points in this graph...

Basic Module Graph Example