For each rule group range declarations for variables (nodes) have to be made (section 3.3). These declarations convey to which node domains the root nodes of the rule group refer [Aßm94]. Also variable declarations (node declarations, section 3.4), options (section 3.6.1), FIRST- and LAST-Code may be given (section 3.6.2).
An GRS or a rule group is recursive, if it defines a relation (an object type) which is also used (tested). Then the generated code contains a fixpoint loop to detect the fixpoint. For non-recursive rule groups no fixpoint loop is generated.
Each rule of a rule group leads to the generation of several rule test loops over the nodes of the mentioned graphs. How the rules are evaluated within a rule group, is decided by according to the evaluation strategy for GRS [Aßm94].
A rule group that only adds edges (an edge-addition rule group) constructs graphs by building a relation between one or two node domains, e.g. relating the node domain of a homogeneous graph or the two node domains of a bipartite graph. Each successful rule application adds one or more edges to the graph. The process can also be seen as inference of predicates between the nodes. Because an edge-addition rule group is confluent and terminating, the process stops and yields the desired graph. You may also say that edge-addition rule groups have a unique fixpoint. Rule syntax for edge-addition rules is given in section 3.6.
Rule groups that contain transforming rules need neither be terminating nor yielding unique normal forms (unique results). The syntax of transformation rules is given in section 3.7.