If more than one constraint is violated at the same time, the
**select violated constraint** inference chooses one
constraint to be revised. Figure 3 shows the
inference with its knowledge roles: CONSTRAINT RESULTS,
FIX DEPENDENCY RELATIONS, and SELECTED VIOLATED CONSTRAINT.

The constraints have associated fixes to repair their violation. A
constraint may have more than one fix. Each fix modifies the value of some
parameter in order to repair the constraint violation. Besides the modified
parameter, the fix may refer to other parameter values to accomplish
the modification. Thus, the FIX DEPENDENCY RELATIONS establish
the dependencies among the fixes and the parameters. In the VT task,
for instance, the constraint *minimum platform to hoistway left*
says that the * platform to hoistway left* must be at least eight
inches. If it is not, two fixes are associated to the constraint: (1)
increase the * opening to hoistway left* by the amount of the
constraint violation, and (2) decrease the *car return left* by the
amount of the constraint violation. Here, the fixes depend on the
values of the parameters *opening to hoistway left*, *car return
left* and *platform to hoistway left*.

**Figure 8:** The formalization of the
**select violated constraint** inference and its knowledge roles.

The SELECTED VIOLATED CONSTRAINT is the constraint which all
fixes can be applied. A fix can be applied when all values on which
the fix depends are already computed. It may occur that more than
one violated constraint satisfies this criterion. In such case, the
**check** inference must select only one constraint. In our
model of P&R, the constraint with the higher priority is chosen. In
the VT task, there are no priorities associated to the constraints:
If more than one constraint can be processed at the same time, a
constraint is chosen arbitrarily. The only exception is that if the
constraints associated to the parameters * machine groove
pressure* and *hoist cable traction ration* are violated at the
same time, the constraint associated to the * machine groove
pressure* should be revised first. Here, we make the choice of
assigning a priority to each constraint, which allows us to define
the inference abstracting from the VT task and to generalize P&R
for other domains.

Figure 8 illustrates the Ontolingua
formalization of the **select violated constraint**
inference and its knowledge roles. Definitions (17)-(21) represent
the input knowledge roles. In (22), the output knowledge role is
defined. Definition (23) says that **select violated
constraint** inference selects a violated constraint whose all
fixes have all the parameters on which the fixes depend already computed
and, if more than one constraint satisfies these conditions,
the inference chooses the constraint with higher priority.

Wed Sep 4 15:57:17 EDT 1996