Device representation and reasoning with affective relations provides a middle ground between classical model-based reasoning and heuristic expert systems, for monitoring and diagnosing complex devices that are largely self-checking. While model-based diagnosis would seem to be well suited for such tasks, in practice the models of traditional approaches are often too difficult to obtain (e.g., due to system complexity, inadequate documentation, lack of an appropriate representation language). This has often led developers to rely on heuristic expert systems, which themselves have many well-known limitations.
Our work has proposed an approach to device modeling that specifies a set of diagnostically motivated affective relations among the components of a device. Reasoning is then performed by a set of inference rules that reason with the model to propagate symptoms through the components. By providing an abstract level of device modeling that is both easy to acquire and to represent, the work brings the advances of model-based reasoning to domains in which the development of traditional models is difficult. These advances include: the model as a unifying framework for knowledge, methodical coverage of the domain, and diagnostic reasoning based on equipment design and causality. Related work at the implementation level also brings to expert systems the benefits of relatively recent advances in object-oriented knowledge-representation --- principally the use of objects to organize knowledge, and a tight integration of objects within the rule-based paradigm. In particular, the device model as well as the diagnostic rules of inference are implemented using R++, an extension to C++ that we have developed to support forward chaining directly on C++ objects. Both R++ and the affective relation model evolved from the redesign of a heuristic expert system for monitoring long-distance telephone switching systems.