1. The syntax of formulas, since it is taken from OPS5, allows for a variety of special tests on variables. For example, “{}” prohibits variables and from having the same value. The usual unification algorithms do not deal with such tests, and so this special syntax is removed (i.e., “{}” becomes just “ “). However, our serialization algorithm would be more precise if these special tests were incorporated into the matching process. Thus, while our current algorithm does not miss any needed synchronizations, it sometimes synchronizes unnecessarily due to this limitation.
2. Our production system model is more general than that of OPS5, and so we must consider clashing explicitly. We discuss this further in Section 5.3.
3. From here on, we will simply write i to refer to a node that represents i
4. We note that the converse is not true. Assume that IDO(I) is cyclic, so no topological order exists. Assume that we have chosen some serial order in which to execute the members of I. For any cycle within IDO(I), some member of the cycle will be executed first. The execution of that member will disable some other member of the cycle, and so it appears that serialization will not work. However, it is possible for some third element of the cycle to re-enable the disabled instantiation before it is executed.
5. This includes the current author; see [34, 35].