Exercise 10, Grammar Development

Adding a Finite-State Morphological Analyzer

The unknown entry

In the previous exercise, you added a finite-state morphological analyzer to your grammar. In the morph-lex-10.lfg file there is an "unknown" entry which allows the morphological analyzer to pass its knowledge about lexical items into the grammar.

-unknown  ADJ-S XLE (^ PRED) = '%stem';
	  N-S XLE (^ PRED) = '%stem'.

This entry has the effect that any word not present in the Lexicon section of grammar10.lfg will be guessed to be either a noun or an adjective. If this word then follows the sublexical rules specified in the morph-rules-10.lfg, then it can be parsed by the grammar. So, all count nouns and all adjectives should now be parseable by your grammar without further ado. You should delete all your existing count noun and adjective entries and try it out.

Lexicon Edit Entries

You have several entries in your grammars that could be several different Parts-of-Speech (for example "dog" has been encoded as a verb and as a noun). When you delete your noun entry for "dog", you need to make sure that the remaining entry interacts properly with the -unknown entry in the morph-lex-10.lfg file. The way to do this is to specify that the verb entry is not the only entry.

dog 	  +V-S XLE @(TRANS dog);

Read more about the interactions between lexical entries and lexicons in XLE Lexicon Entries and Lookup Model.

Meta-Categories, Metarulemacros and Coordination

DP is introduced as a Meta-Category in grammar10.lfg. Meta-categories look just like normal c-structure rules except that an "=" is employed rather than a rightarrow. Meta-categories allow for the formulation of generalizations over constituents without the introduction of an overt node in the c-structure representation. This is useful for some things, for example for expressing generalizations in terms of topological fields as in the German Vorfeld, Mittelfeld, Nachfeld. An example of this is provided in german-toy.lfg.

In addition to Meta-categories, XLE also allows for Metarulemacros. Metarulemacros allow the grammar writer to express generalizations that hold for all the rules of a grammar. In the ParGram grammars, this is generally used at least for coordination.

Exercise: Expand your grammar to include coordination. Read up on how to do it in the section on the Starter Grammar in the XLE documentation as well as in the documentation on Regular Expression Macros. Basically all you should need to do is to copy and paste the following from the eng-pargram.lfg: METARULEMACRO, SCCOORD, NPCOORD.

The following sentences should work:

Shuffle Operator for Free Word Order

Another feature demonstrated in german-toy.lfg is the shuffle operator. This allows for an easy and simple treatment of free word order. Look for it in the MITTELFELD1 rule. Try out the following sentences and understand how these are being parsed via the shuffle operator in the MITTELFELD1 rule.


Remember to keep thinking and working on your projects.

Please submit your exericses and your testsuite to Maike Müller (uni konstanz Addresse) by 15.7.2014 at 10 am.

Relevant Reading Material

XLE Lexicon Entries and Lookup Model

Regular Abbreviations

Starter Notes