A uniform architecture



next up previous
Next: Some experimental results Up: Head driven bottom-up Previous: Other extensions

A uniform architecture

Shieber argues for a uniform architecture for parsing and generation [21]. I will argue that BUG1 and a simple version of a left-corner parser [16] can be regarded as two instantiations of a simple general proof procedure for Horn clauses. Such a general procedure can be defined as in:

 

prove(Call) :-
    predict_unit(SubCall,Call), 
    connect(SubCall,Call).

connect(Call,Call).
connect(Child,Ancestor):- 
    predict_rule(Child,Ancestor,Parent,Siblings),
    prove_ds(Siblings), 
    connect(Parent,Ancestor).

prove_ds([]).
prove_ds([H|T]):-
    prove(H), 
    prove_ds(T).

In this definition the two clauses predict_unit and predict_rule are parameterized for a specific task such as parsing or generation. In the case of parsing predict_unit simply finds a representation of the first word of the sentence, in the case of generation it finds a representation of the pivot of the sentence. The clauses for predict_rule similarly are parameterized to define different orders of selection of the literals of the clause. For parsing a left-to-right selection is useful; for generation a head-first selection. Thus the above general proof procedure constitutes a bottom-up proof procedure where top-down filtering is defined via the and predicates. In [19] a generalized version of this proof procedure is defined where is replaced by a predicate that predicts a non_chain_rule.



Gertjan van Noord
Fri Nov 25 13:07:08 MET 1994