The vectors used as the second layer index should be of the same size
for each pair of matching mothers and daughters. More than that, a
vector
from the indexing scheme of a daughter
that matches a
mother
and a vector
from the indexing scheme of
associated with
should refer to sets of equivalent nodes (through
) in the mother and in the daughter.
The types extracted for the indexing vectors are those of nodes found
at the end of the indexing paths. An indexing path
for
a mother
that unifies with a daughter
is defined as:
In the current implementation, a more efficient definition of indexing paths is used:
The motivation for not using the
is the high cost of
evaluating the Condition 2 of Definition
6.6, a condition that is tested during parsing (after
each edge is created). Any significant operation performed during
run-time negatively affects the efficiency of the parser. An
experiment using the
to determine the indexing paths
yielded parsing times of more than 100% slower than those of the
baseline. For the
however, the conditions are tested
off-line, with no penalty placed on parsing times.
From an implementation point of view, in order to avoid traversing the indexing path during run-time, the path index key contains pointers to the types at the ends of the indexing paths of the TFSs in the chart.