Whenever an open condition is established, links in the plan may be jeopardized either because a new step threatens an existing link, or because a new link is threatened by an existing step. The situations in which a link is unsafe are shown in Figure 5. In general, a link is considered unsafe if there is an effect in the plan that could possibly interfere with the condition established by that link.
There are three general methods of protecting a threatened link (see Figure 5). First, ordering can be used to constrain the threatening action to occur either before the beginning or after the end of the threatened link. Second, the threatening effect and the threatened link can be separated by imposing constraints on the variables involved so that the effect cannot be unified with the established condition. Third, the link can be preserved by generating a new subgoal to disable the effect that threatens the link.
A link establishing the condition
Cond is unsafe
if there is an effect
Eff in the plan (other than the
SourceEff that establishes
the (possible) effect
GoalEff that is either established
or disabled by the link) with the following properties:
Effcan possibly unify with either
Condor its negation.
Effcan, according to the partial order, occur both before the step that produces
GoalEffand after the step that produces
Effoccurs either before the step that produces
SourceEffor after the step that produces
Effcannot in fact unify with the threatened condition
Eff. This new open condition is the negation of one of
Eff's secondary preconditions.