Blocks of rules

The first environment without Uniqueness Principle is called a “Block of rules” (or “Block”). Dependent nodes are only removed at the end of the Block.

The syntax of a Block is the following:

Rule-1

NEXT

Rule-2

NEXT

.

.

.

Rule-N

%

A Block allows two different tasks: on the one hand, it identifies as many dependencies as rules it contains, and on the other, it removes the dependent tags only after having applied all rules of the Block. So, it identifies the main head of the Block, i.e., the only tag that does not play the role of dependent in any rule. Let's see an example. Take the expression “movie that I see”, transformed in the following string:

movie_NOUN_<...> that_PRO_<...> I_PRO_<...> see_VERB_<...>

To analyze this expression, we propose the following Block of 3 rules:

DObjectLeft : [NOUN] PRO<type:R> [PRO<type:P>] VERB

NEXT

SubjectLeft : [NOUN] [PRO<type:R>] PRO<type:P> VERB

NEXT

AdjunctRight : NOUN [PRO<type:R>] [PRO<type:P>] VERB

%

Each rule identifies a specific dependency. The first one identifies the direct object relation between the relative pronoun “that” and the verb “see”. The second rule identifies the personal pronoun “I” as being the subject of the verb. And the third rule links the nominal antecedent (“movie”) with the verb of the relative clause (“see”), which is its right adjunct. As the noun is the main head of the Block, the other dependent constituents are removed. The removal of all dependents is only performed at the end of the Bloc.

The rule where the main head of the Block actually plays the role of head (so, it is not a context tag) must be the last one of the bloc. Otherwise, it would be difficult to identify the main head. In sum, when all the rules of a block are applied, all tags that were not always contextual or that are not the head in the last rule of the block are removed from the search space.