Next: *NEEDED*
Up: Project Walk-Through
Previous: RULE FORMAT
At this point, the tree structure in Figure 1 is analyzed with respect to the
dependencies present among each rule. A constraint propagation function is used which
currently can utilize the following propagation types:
- desc - all descendants
- children - children only, not their descendants
- parent - parent only
- parent-desc - parents and all their descendants
- grandparent - grandparent only
- grandparent-desc - grandparent and descendants
- sisters - sisters
- sisters-desc - sisters and their descendants
- (node node) - a particular node
- (node-desc node) - a particular node and its descendants
For each constraint, it is determined which nodes it can affect by using the
propagation function. After recording the constraint information, the following
indices are set up:
- *effects* for each rule
, records list of constraints that
will be imposed if rule is applied.
- *eff-deps* for each constraint, records list of rules that would, if instantiated,
cause effects that would conflict with the constraint.
- *con* for each constraint records a list of rules
that can originate it.
- *dependencies* for each rule records a list of constraints which, if applied,
would conflict with this test's dep rules.
- *dep-deps* for each constraint, records a list of rules which would
be prevented by applying the constraint. For example, if a certain constraint
would invalidate any rule's precondition, the effected rule would be included.
- *needed* for each rule, returns a list of rules that could satisfy needed
constraints.
These indices contain all the information needed about the inter-dependencies that
exist in the current set of active rules. For RELATION-20 in this example, the
following information would be recorded.
Steve Beale
Tue Oct 1 12:13:07 MDT 1996