D2K Modules are software components that perform data preparation and transformation, implement discovery and learning algorithms, and assist in the interpretation and evaluation of results. Modules are designed to be connected together, using the D2K Toolkit, to form a more complex system know as a D2K Itinerary. There are six types of modules described in a later section.
Modules take 0 or more inputs and produce 0 or more outputs. This simple concept is what we will refer to as a data flow paradigm. Data simply flows through an itinerary, enabling the execution of modules. Each module performs some service then exits. This topic is discussed in more detail in the execution section.
Of course, there are more features and capabilities that the module developer needs to be aware of. There are computational and data preparation modules, which simply perform some service. But there are also user input and visualization modules which employ graphical user interface elements. These modules create a user interface component that actually does most of the work. They don't even require the execution method which implements the functionality of the other modules. From the infrastructure's perspective, these too are just modules that take some inputs and produce some outputs. These modules are described in the section on GUIs.
There are many characteristics that all modules share however. How they are enabled, and how they are documented are examples of capabilities that are shared among all modules. There are also methods that modules share that are guaranteed to be called before execution starts and when it ends. All modules may also have properties (fields that are accessible to the system) and are serializable.
![]() |