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
effect SourceEff that establishes Cond and
the (possible) effect GoalEff that is either established
or disabled by the link) with the following properties:
Eff can
possibly unify with either Cond or its negation.
Eff can, according to
the partial order, occur both before the step that produces
GoalEff and after the step that produces
SourceEff.
Eff occurs either before
the step that produces SourceEff or after the step that
produces GoalEff;
Eff cannot in fact
unify with the threatened condition Cond;
Eff. This new open condition is the negation of
one of Eff's secondary preconditions.