next up previous contents
Next: Precise Characterization of FDs Up: FUF: the Universal Unifier Previous: Linearization

Writing and Modifying Grammars

In this section, we briefly outline what steps must be followed to develop a Functional Unification Grammar. The methodology is the following:

1.
Determine the input to use. In general, input is given by an underlying application. If not, the criterion to decide what is a good input is that it should be as much ``semantic'' as possible, and contain the fewest syntactic features as possible.

2.
Identify the types of sentences to produce.

3.
For each type of sentence, identify the constituents and sub-constituents, and their function in the sentence. A constituent is a group of words that are ``tied together'' in a clause. A constituent in general plays a certain function with respect to the higher level constituent containing it. For example, in ``John gives a book to Mary,'' the group ``a book'' forms a constituent, of category ``noun-group,'' and it plays the role of the ``object upon which action is performed'' in the clause. Such role is often called ``medium'' or ``affected'' in functional grammars.

4.
Determine the output (that is, the unified fds before linearization). In the output, constituents should be grouped in the same pair and the attribute should indicate what function the constituent is fulfilling. In the previous example, we want to have a pair of the form (medium <fd describing ``a book''>) in the output. The output must also contain all ordering constraints necessary to linearize the sentence and provide all the morphological feature needed to derive all word inflections (e.g., number, person, tense).

5.
Determine the ``difference'' between the input and the output. All features that are in the output but not in the input must be added by the grammar.

6.
For each category of constituent, write a branch of the grammar. To do that, you need to specify under which conditions each feature of the ``difference'' must be added to the input.

This is of course an over-simplified description of the process. Sometimes, the mapping from the input to the output is best considered if decomposed in several stages. For example, in gr4 (cf. file gr4.l),   the grammar first maps the roles from semantic functions (like agent or medium) to syntactic roles (like subject or direct-object), and then does the required syntactic adjustments. In gr11, (cf. file gr11.l),  , there are three stages: first the clause grammar maps from semantic roles to a level called ``oblique'', and then oblique is mapped to syntactic functions such as subject or adjunct.

In general, the important idea here is that you must first determine your input and your output and the grammar is the difference of the two.

The process can be complicated if your grammar also includes a lexicon. In this case, a good part of the output should be provided by the lexicon. Grammar gr11 illustrates one way of including the lexicon in your grammar.


next up previous contents
Next: Precise Characterization of FDs Up: FUF: the Universal Unifier Previous: Linearization
Michael Elhadad - elhadad@cs.bgu.ac.il