SMILE Diagnostic: Introduction
The diagnostic part of SMILE provides functionality to perform diagnosis on any network in SMILE. With diagnosis we try to determine a state of the network by performing tests or observations. For this process it is necessary to distinguish target nodes, which contains the possible faults, and observation nodes, which represent possible tests that can be performed. From each target node one or more states are defined as faultStates, which represent the possible faults that the network contains. The functions for assigning the nodes and states are provided by the class DSL_extraDefinition. To perform diagnosis, at least one of these faultStates is selected as pursuedFault and the system determines the usefulness of each unperformed test for this pursuedFault. The user is then able to select a test and perform it by setting the evidence of this test. The user can continue this process as long as there are tests available. The functions to perform diagnosis are provided by the class DIAG_network.
To determine the usefulness or value of a test, the module uses the class DSL_valueOfInformation to determine the expected value of observing the test.
During the diagnosis process it is possible to store, open and update the diagnosis session into files, which are associated with the extension .scl. Each file can contain possible statuses of a session but only one session. The class DSL_caseLibrary provides the functions for this.
The diagnostic module, acts like an "extra" layer over the SMILE library and provides the functions, algorithms and variables for performing the diagnosis on a network. Since the module is designed as a layer, the module can make use of any function or class defined in the rest of SMILE. The three main classes of the diagnostic module will be described below.