Inspection of Dependencies

The first step is to determine whether the problem originates within the Intent system, or from an external source. For example, if a database returns incorrect results, changing rules cannot correct the problem.

The dependencies for all evaluations are recorded. That is, if Rule A references Rule B , after Rule A is evaluated, the dependency on B is recorded. If B is changed, then the system knows to unbind A. you can traverse and inspect the entire recorded dependency tree to find problems.

To show the dependency dialog box, in the Properties window, right-click an evaluated rule , and select Show Dependencies:

The Rule dependencies dialog box displays that Rule at the "root", on both sides. In the following image, both sides are expanded as far as possible.

In Formula, the formula for the selected node in the tree displays. In this case, "diameter" is a simple numeric parameter, and it depends on no other rules. The selected modelSelf rule depends on diameter, but indirectly. The rule is an internal function call that references Radius, not Diameter. But the Group rule diameter_only is triggered to obtain the Radius for the Arc.

Now look at the dependencies for the same modelSelf slot.

Inthe following image, the left window shows both the direct and hidden references that were made during evaluation. It requires the center, radius, start, and end angles, and some other information. With one exception, they are the arguments to the function.

The %%acad_database reference is not obvious from the function call, because the reference is made internally inside the function, which is typical of low-level functions. ALL dependencies are shown.

If rules come from compiled binary files, the rule formulas do not display because they are not known to the running system. However, the dependencies still exist.