# The nominal inverse rolling up rule is essentially a

• 199

This preview shows page 135 - 137 out of 199 pages.

The nominal inverse rolling up rule is essentially a combination of the simple in- verse rolling up rule, combined with the duplicating arguments we already presented in the case of the nominal rolling up rule. The functional inverse rolling up rule takes a different approach, exploiting the functional restriction on the role names. Consider the transformation shown in Figure 7.5, which is exactly the same pattern as seen in the functional rolling up rule (see Figure 7.3). (a) (b) . . . (c) Figure 7.5: Functional inverse rolling up rule. In this case we duplicate the variable ; the new nodes can then be rolled up by using the same arguments as the simple rolling up rule. The resulting structure shown in Figure 7.5 (c) is then suitable for the application of a simple inverse rolling up rule in a subsequent step. The rolling up rules eliminate nodes and edges from the graph, but we should make sure that the two conditions, maintaining the joining variable and maintaining the connectedness, are still satisfied by the resulting graph. The second condition is guaranteed by the fact that rules only operate on leaves, while the first one is explicitly stated on each rule (with the condition ). However, this latter requirement for the rules clashes with the necessity of eliminating the equality terms as well as the
7.4. ANSWERING QUERIES IN NORMAL FORM 136 role terms. In fact, equalities with individual names are eliminated by the rolling up procedure (by the nominal rolling up and nominal inverse rolling up rules; but they never apply to the joining variable . For this reason we have the nominal elimination rule which applies to only. Note that this rule must be applied only when there are no role terms in the conjunctive formula, otherwise the fact that must be identified with a particular individual name would be lost. Cycles in query formulae Until this point we have shown the rules which handle tree–like structures; in fact, when the graph is a tree we can simply roll it up starting from the leaves. 11 When the query graph contains cycles we need a means for “breaking” these cycles and rolling up the graph using the rules described above. This means is provided by the cycle breaking rules toghether with the nominal introduction rules. Let us first examine the three cycle breaking rules, starting from the cycle breaking and inverse cycle breaking rules. They work using the very same principle which has been exploited for the nominal rolling up rules. The fact that the variable is identified with an individual name allows us to introduce a new variable forced to have the very same interpretation as (because the new variable is identified with the very same individual name). In addition, the path still connecting the two variables guarantees the connectedness of the resulting graph (see Figure 7.6). The inverse cycle breaking rule is similar, the only difference being the direction of the edges connecting the two variables. The two rules also cover the case in which the two variables coincide; in