next up previous contents
Next: A Discussion About Optimization Up: Previous Approaches to Indexing Previous: Quick Check   Contents


Rule Filtering

One of the methods that inspired the work on indexing presented in Chapters 4 and 6 is rule filtering. Unfortunately, this method has received less attention as an indexing technique. The only work mentioning rule filtering is Kiefer et al. kiefer-bag-useful.

Rule filtering has the same goal as the other methods presented in this section: reducing the number of failed unifications. It is based on the observation that many of these failed attempts happen during parsing while matching daughters and edges that can be ruled out before parsing -- a daughter and a mother that do not unify before parsing will also not unify during parsing.

In order to rule out unifications that are sure to fail, all MGSats of daughters in the grammar are unified with all MGSats of mothers at compile time. The mother-daughter pairs that failed the unification are recorded (as a rule filtering function). During parsing, before a daughter is matched with an edge created by a mother, the rule filtering function is consulted for this mother-daughter pair, and the unification is not attempted if the pair is ruled out by the rule filter. The filter is built as a table, where each cell specify whether a particular mother and daughter can be unified. For a corpus of English, German, and Japanese sentences from Verbmobil[Kay et al.1994], the authors report that up to 60% of failed unifications can be avoided (resulting in a 45% improvement in parsing times). However, as it will be shown in Chapter 7, the percent of failed unifications that can be avoided by ruling out non-unifiable mother-daughter pairs before parsing can be much smaller for different grammars.


next up previous contents
Next: A Discussion About Optimization Up: Previous Approaches to Indexing Previous: Quick Check   Contents