Class summary | |
---|---|
diagnostic | inherits from blackboard |
fix | inherits from blackboard |
problem | inherits from blackboard |
repair | inherits from blackboard |
Method summary | |
---|---|
fixes | problem |
handle-fix | fix repair (problem problem) object-w-learning &key &allow-other-keys |
handle-fix | (fix fix) repair problem object-w-learning &key &allow-other-keys |
issued-by | problem |
issued-by | fix |
open-problem? | (problem problem) |
print-object | (diagnostic diagnostic) stream |
print-object | (repair repair) stream |
print-object | (problem problem) stream |
print-object | (fix fix) stream |
problem | fix |
restart-data | fix |
restart-object | object data &key &allow-other-keys |
score | repair |
trigger | diagnostic |
trigger | repair |
trigger? | (diagnostic diagnostic) trigger &key &allow-other-keys |
trigger? | (repair repair) trigger &key &allow-other-keys |
A problem is created by diagnostics to signal a failure or some inefficiency. Exceptionally it can also be created by repairs that do not trigger on problems. A problem is also a blackboard so that it can store extra data. The issued-by slot is automatically set by method handle-diagnosed-problems. The fixes slot is automatically set to the return value of repair-object and repair-problem
:issued-by | [Initarg] |
:fixes | [Initarg] |
issued-by | [Slot] |
The object that created this problem, i.e. the diagnostic.
fixes | [Slot] |
fixes of this problem
Base class for diagnostics.
:trigger | [Initarg] |
trigger | [Slot] |
A trigger specifies to which notification the diagnostic should respond. It can be a single symbol or a (nested) list of symbols. It is also possible to use a variable (a symbol starting with ?) which can match to any symbol or list. A trigger should respond to at least one notification somewhere, otherwise the diagnostic will never run
Base class for a repair.
:trigger | [Initarg] |
:score | [Initarg] |
trigger | [Slot] |
A trigger specifies to which notification the repair responds. It can be a single symbol or a (nested) list of symbols. It is also possible to use a variable (a symbol starting with ?) which can match to any symbol or list. Normally a trigger should respond to at least one notification somewhere.
Fixes are created by repairs
:repair :issued-by | [Initarg] |
:problem | [Initarg] |
:restart-data | [Initarg] |
issued-by | [Slot] |
pointer to the repair
problem | [Slot] |
pointer to the repaired problem
restart-data | [Slot] |
restart and with what data (can be t also)
Returns and (with setf) changes the restart-data of the specified fix
overload for allowing to restart an object