Copyright © 1998, 2001 by Ian Horswill, see comment within this file.
The situation system is a simple frame-like system that supports multiple inheritence. The frames are implemented as chunks of circuitry that continually compute their activation conditions. Thus they aren't passive data structures as in conventional frame systems, but rather active computations as in Minsky's Society of Mind.
Since frames are implemented by chunks of circuitry, they do not support dynamic instantiation of multiple copies, as is common with traditional frame systems. Instead, there is just one copy of a frame and it is either active or not. Hence, it is often more natural to think of them as predicating situations than as predicating objects, as frames typically do.
At some point, we'll integrate it in with the context system. This will allow (limited) multiple instantiation, but first requires figuring out what that would mean.
- (active-when signal-expression)
- The frame will be active when signal-expression is true.
- (trigger-when signal-expression)
- The frame will be become active whenever signal-expression is true, and will remain active until its termination condition is true.
- (terminate-when signal-expression)
- The frame will become inactive whenever signal-expression is true, unless there is some other condition keeping it active (e.g. a subclass that is active).
- (when-active signal-expression)
- The frame will drive the signal denoted by signal-expression whenever it is active. This is equivalent to including the frame itself as an input to signal-expression.
- (when-triggered signal-expression)
- The frame will drive the signal denoted by signal-expression for one clock tick when it first becomes active. This is equivalent to including (onset frame) as an input to signal-expression.
- (when-terminated signal-expression)
- The frame will drive the signal denoted by signal-expression for one clock tick when it first becomes inactive. This is equivalent to including (termination frame) as an input to signal-expression.