Linguistics 567: Knowledge Engineering for NLP

Lab 6 Due 2/11



Some of you may have already covered some of this material. If you would like to work on something else this week, let me know what it is.

Run a base-line test suite instance, and save this to submit with your lab. As usual, consider adding to your basic test suite if you have not sufficiently covered the phenomena addressed here.

Part 0: Fix the HCONS on nouns

There is a bug in the current matrix customization script. To fix it, add the type no-hcons-lex-item as a supertype for noun-lex in klingon.tdl.

Without this fix, the HCONS list in all sentences with nouns is empty. Once it's fixed, HCONS introduced by determiners or the bare-np rule will now show up.

Part 1: Discourse status

First, download an updated copy of matrix.tdl, and drop it in in place of your old matrix.tdl This version has the cognitive status hierarchy (cog-st and subtypes) as well as the feature COG-ST and SPECI defined.

If you have any overt personal pronouns, they should be constrained to be [COG-ST activ-or-more & [SPECI + ]]. (This is a first pass guess at what the function of such things is crosslinguistically. If you have information suggesting this is not appropriate for your language, please let me know.)

If you have any determiners, consider whether they constrain the COG-ST value of the N' they attach to. An indefinite determiner in English, for example, would probably contribute [COG-ST type-id]. Demonstrative determiners should probably be somewhere in the activated-familiar range. For the moment, we won't encode the information about whether the object being pointed to is closer to the speaker or the hearer (or away from both).

If you have any nominal inflections associated with discourse status, implement lexical rules which add them and constrain the COG-ST value appropriately.

Updated 2/8/07 To summarize, here is our first-pass guess at the cognitive status associated with various types of words/markers, with the caveat that this is just a starting point for any given language, and that language-internal evidence might point to a different classification and/or homophony among words/markers of the same form.
MarkerCOG-ST value
Personal pronounactiv-or-more
Demonstrative article/adjectiveactiv+fam
Definite article/inflectionuniq+fam+act
Indefinite article/inflectiontype-id

Note that in some cases an unmarked form is underspecified, where in others it stands in contrast to a marked form.

Part 1': Demonstratives (Added 2/8/07)

By request, here are some instructions for creating demonstrative, first demonstrative adjectives, then demonstrative pronouns, then demonstrative determiners.

All three types of demonstratives will share a set of relations which express the proximity to hearer and speaker. We will arrange these relations into a hierarchy so that languages with just a one- or two-way distinction can be more easily mapped to languages with a two- or three-way distinction. In order to do this, we're using types for these PRED values rather than strings. Note the absence of quotation marks. We will treat the demonstrative relations as adjectival relations, no matter how they are introduced (via pronouns, determiners, or quantifiers).

demonstrative_a_rel := predsort.
proximal+dem_a_rel := demonstrative_a_rel. ; close to speaker
distal+dem_a_rel := demonstrative_a_rel.   ; away from speaker
remote+dem_a_rel := distal+dem_a_rel.      ; away from speaker and hearer
hearer+dem_a_rel := distal+dem_a_rel.      ; near hearer

Demonstrative adjectives

Demonstrative adjectives come out as the easy case in this system. They are just like regular adjectives, except that in addition to introducing a relation whose PRED value is one of the subtypes of demonstrative_a_rel defined above, they also constrain the INDEX.COG-ST of their MOD value to be activ+fam.

Demonstrative pronouns

On this analysis, demonstrative pronouns differ from other pronouns in introducing two relations: the pronoun_n_rel that all other pronouns introduce and one of the demonstrative_a_rel subtypes defined above. Because they introduce two relations, they can't inherit from noun-lex as it is currently defined in your grammars (nor even basic-noun-lex defined in the Matrix), since both of those ultimately inherit the constraint that only one relation is contributed. If we stick with this analysis of demonstratives in the long run, we will probably reformulate things on the Matrix side to make this a bit cleaner. For now, in order to capture the similarites that do exist among nominal lexical items, I recommend doing the following.

  1. Define a type noun-lex-supertype as follows, and add to it any constraints common to all nouns including demonstrative pronouns in your language.
    noun-lex-supertype := basic-one-arg & norm-hook-lex-item &
      [ SYNSEM [ LOCAL.CAT [ HEAD noun,
                             VAL [ SPR < #spr &
                                       [ LOCAL.CAT.HEAD det ] >,
                                   COMPS < >,
                                   SUBJ < >,
                                   SPEC < > ]],
                 LKEYS.KEYREL noun-relation ],
        ARG-ST < #spr > ] .

    This type has all of the information in noun-lex as defined by the customization script and basic-noun-lex defined in matrix.tdl, with the exception of the constraint that it have exactly one thing on the RELS list.

  2. Define a subtype noun-lex of noun-lex-supertype which adds in the single rel constraint. This type should fit into your hierarchy the same way your old noun-lex did (i.e., have the same subtypes).
    noun-lex := noun-lex-supertype & single-rel-lex-item.
  3. Define another subtype of noun-lex-supertype for the demonstrative pronouns.
  4. Define lexical entries for your demonstrative pronouns which constrain their LKEYS.ALTKEYREL.PRED (rather than LKEYS.KEYREL.PRED) to be the appropriate subtype of demonstrative_a_rel taken from the list above.

Demonstrative determiners

As with the demonstrative pronouns, the demonstrative determiners introduce two relations. This time, they are introducing the quantifier relation (Let's say "exist_q_rel") and the demonstrative relation. Once again, this analysis is going to entail changes to the Matrix core, as basic-determiner-lex assumes just one relation being contributed. Accordingly, we are going to by-pass the current version of basic-determiner-lex and define instead determiner-lex-supertype as follows:

determiner-lex-supertype := norm-hook-lex-item & basic-zero-arg &
  [ SYNSEM [ LOCAL [ CAT [ HEAD det,
				  			     LTOP #larg ],
                                SPR < >,
                                SUBJ < >,
                                COMPS < >]],
		     CONT.HCONS < ! qeq &
				 [ HARG #harg,
				   LARG #larg ] ! > ], 
	     LKEYS.KEYREL quant-relation &
		   [ ARG0 #ind,
		     RSTR #harg ] ] ].

This type should have two subtypes (assuming you have demonstrative determiners as well as others in your language --- otherwise, just incorporate the constraints for demonstrative determiners into the type above).

  1. The subtype for ordinary (non-demonstrative) determiners should add the constraint that the RELS list has exactly one thing on it:
    [ RELS <! relation !> ].
  2. The subtype for demonstrative determiners should specify a RELS list with two things on it: the first should have the "exist_q_rel" for its PRED value. (It's already constrained to be a quant-relation because the type norm-hook-lex-item inherited by determiner-lex-supertype identifies the first element of the RELS list with the LKEYS.KEYREL.) The second one should be identified with LKEYS.ALTKEYREL and should be an adjective-relation. The HOOK.INDEX.COG-ST inside the SPEC value should be constrained to activ+fam. Finally, the LBL of the adjective-relation should be identified with the SPEC..HOOK.LTOP of the determiner. (This will result in the demonstrative adjective relation sharing its handle with the N' the determiner attaches to.)

Make sure your ordinary determiners in the lexicon inherit from the first subtype, and that your demonstrative determiners inherit from the second subtype. Demonstrative determiner lexical entries should constrain their LKEYS.ALTKEYREL.PRED to be an appropriate subtype of demonstrative_q_rel.

Part 2: Optional arguments


The goal of this lab is to allow for unexpressed arguments. As many of you have noticed, there are plenty of languages that don't use pronouns as much as English does, but rather leave the NP out entirely if it was just going to be a pronoun. Generally, the meaning is about as recoverable from context as it is with pronouns (afterall, pronouns only give small clues to the referent in terms of person, number, and gender; among 3rd person referents, that usually leaves a lot of ambiguity). In some languages (e.g., Spanish), this kind of pronoun omission seems to be 'licensed' by the fact that the verbal inflections carry as much information as the pronouns would. In other languages (e.g., Japanese), the verbal inflections don't in fact carry person/number/gender information, but pronouns still aren't required.

Even in English (which likes pronouns so much that it has two expletive [meaningless] ones -- it and there) there are cases where arguments appear to be optional. Prime examples are verbs like eat and drink. The sentence I already ate means 'I already ate something', but the addressee is in no way expected to know what exactly was eaten. This is called indefinite null instantiation (see e.g., Johnson and Fillmore 2000) This contrasts with definite null instantiation (ibid), in which null arguments have definite reference, that is, the utterance is only felicitous if the addressee can determine the referent. English verbs which do this include tell as in I already told you. (Which is a cute example, because it's most likely to be used in a case where the addressee can't determine what exactly s/he was already told, but it's licensed because it means something like 'I already told you the answer to that question'.)

Our general strategy is going to be similar to the way we handled missing determiners. That is, we're going to write unary phrase structure rules in which the mother and single daughter have different valence requirements.

I believe that most languages should fall into one of the following patterns (restricting our attention to verbs and their arguments):

I've written this assignment based on those four possibilities, and it should be straight-forward to the extent that I'm right :-). If your language instantiates a different pattern, talk to me.

Create instances of rules

Add ditransitive verbs

If you don't already have any verbs that take three arguments, try putting one in:

Add verbal subtypes for argument optionality

For expository purposes, I'm assuming that you have subtypes of verb-lex called trans-verb-lex and ditrans-verb-lex. If you've called them something else, not to worry, just use your corresponding types whenever I mention these.

For languages without general pro-drop of objects

For languages with general pro-drop of objects

For languages where arugment optionality corresponds to the presence of optional verbal inflection

Part 3: Modification

In this part, you will add basic functionality for intersective adjectives and adverbs.

Head-modifier rules

The Matrix distinguishes scopal from intersective modification. We're going to pretend that everything is intersective and just not worry about the scopal guys for now.



Write up (Updated 2/8/07)

Submit via ESubmit

Back to main course page