IM-RECIDE

Main Page 

System Architecture

Spaces

Processes

Opportunistic Reasoning

 
Architecture
 In figure 1 is presented the system's architecture. The system is composed of: reasoning unit, knowledge base, validation unit, opportunistic reasoning unit and metacontrol unit.The interaction between the modules of the system is made through the metacontrol unit which controls all the reasoning process. 
 
Figure 1 IM-RECIDE Architecture.
 

Reasoning

The reasoning unit may be decomposed in two halves: one responsible for delimiting the creative spaces and the other responsible for the search processes inside the spaces. The spaces delimitation module is given the new problem's description and the space it must define and gives back the set of cases in that space. 

The search processes have as inputs the problem's description and a set of cases in which to search. If the process is successful it then has as output a case and a set of base cases. 

The user chooses the order by which spaces (see Imaginative Spaces) are tried. He may choose to work in mode 'engineer', 'artist' or 'custom'. In 'engineer' mode spaces are worked from the current problem solving space to the divagation space. In 'artist' mode spaces are tried from divagation space to current problem solving space. 'Custom' mode allows the user to choose the spaces in which IM-RECIDE is going to try to solve the problem and the order by which they are to be tried. 

Knowledge Base

The knowledge base is composed of a case library and a set of derivation rules. The library contains do kinds of cases: success and failure cases. 

Validation

The validation module contains two sub-modules: internal and external validation. When doing internal validation the system checks the validity of a generated case. Failure cases are used to check if a case is a valid one. This module is given a set of cases built, by the processes, and verifies if any of them violates an indivisible or incompatible case. It them yields the set of cases not violating any of the failure cases. 

External validation is performed by the user. The external validation module is given the problem's description, the name of the new case the system built, the base cases used in building this new case and the processes applied to them. This information is then presented to the user. The base cases and the used processes are the justifications for the found solution. With this information the user can then decide whether or not to accept the solution. 

Opportunistic Reasoning

The opportunistic reasoning unit is composed of: library of pending problems, reactivation criteria and a control unit.The library contains the problems stored that wait new information from the outside so that they can be reactivated and possibly solved. Each of this problems is stored together with a name and the set of solutions already presented to the user. A problem is stored in the library only if none of the solutions given by the system was accepted and the user chose not to give a solution. 

The problem reactivation criteria are used by the control unit to decide whether the pending problems should be reactivated. The user may select the criteria to be used. A problem is reactivated if the new case (about to be stored) has: 
- an situation's description equal to the problem's except in the value of an attribute ; 
- an explanation with a complete footprint relating to the problem ; 
- an explanation with an incomplete footprint relating to the problem ; 
- a situation's description that: is a subset of the problem; or contains the problem; or is equal to the problem except in one fact (attribute or value). 

When a new case is about to be stored in the case library the control unit checks to see if any of the stored problems can be reactivated (according to the criteria chosen by the user). All reactivated problems are then placed in a reactivated problems list. When metacontrol finishes its work it will look into this list to see if it there are problems reactivated. If there are, metacontrol will try to solve them and will later come back to the list until it is empty. A new case can reactivate several problems and when solving those, several others may be reactivated. This fact made it necessary to establish a criteria for solving reactivated problems. The user may choose to reactivate the problems in a deep-first or in a breath-first way. In the first option we work first the last reactivated problem. In the other option, reactivated problems are solved in the order they were reactivated. 

When a problem is reactivated a list of spaces is associated with it. This list contains the spaces where metacontrol should try to solve the problem. Each reactivation criteria (above) is related to a creative space. The innovation space is related to the first criteria, creation space to the second, speculation space to the third and divagation space to the fourth. After having identified the criteria that led to problem reactivation, the systems starts from the space associated with it and selects the other spaces by using the selection space mode specified by the user. In engineer mode, spaces are selected in ascending order, that is, for the second criteria the list of spaces to try will be [creation, speculation, divagation]. In artist mode it's the other way round [divagation, speculation, creation]. In custom mode the list depends on the user's choice. For the same example, considering the user chose [creation, divagation, innovation, speculation] then the list of spaces in where to try to solve the problem would be [ creation, divagation, speculation]. Smaller spaces are eliminated, maintaining the order specified by the user. 

The system allows the user to see a problem stored in the pending problem's library and at any time the user may order the system to try to solve one of the pending problems. 

Metacontrol

This unit is responsible for the co-ordination and control of all other modules.