Using the Forbid constraint in an existing grammar with complex morphology

This isn’t going to be easy to describe clearly but I will try.

I took my old grammar of Yukaghir (for my dissertation purposes) and added a new position class to it, for interrogative inflection. Now, I want the interrogative inflection to be in complementary distribution to indicative PERNUM. So I added a Forbid constraint to both.

It is likely that I am not using the Forbid constraints correctly however, because the grammar which comes out sets the ITRG (interrogative) flag to minus instead of na-or-minus (I am spelling minus out to avoid confusion with dashes). As a result, the minus just remains there after all the inflection applies (and so there is no parse, because the phrase structure rule of course wants ITRG-FLAG na-or-plus).

Like I said, I am probably just not using the constraint correctly (I always do that). I reviewed Michael’s paper ( but can’t yet figure out what’s wrong.

I am suspecting that the problem perhaps is that the already existing lexical rules use Require constraints at the level of the transitive/intransitive contrast. That is, the grammar is set up such that transitive verbs use their own paradigm and intransitive their own. The interrogative paradigm however is just one set of inflections for all verbs.

verb-lex := basic-verb-lex & non-mod-lex-item &
                             SPEC < >,
                             SUBJ < #subj > ],
                   CONT.HOOK.XARG #xarg ],
    ARG-ST.FIRST #subj &
                 [ LOCAL [ CAT cat-sat &
                               [ VAL [ SPR < >,
                                       COMPS < > ] ],
                           CONT.HOOK.INDEX #xarg ] ],
    INFLECTED.ITRG-FLAG - ].  # ***PROBLEM!!! Want na-or-- here***

intransitive-verb-lex := verb-lex & intransitive-lex-item &
                INTRANSITIVE-VERB-FLAG + ] ].

transitive-verb-lex := verb-lex & transitive-lex-item &
    ARG-ST < [ LOCAL.CAT.HEAD noun ],
             #comps &
             [ LOCAL.CAT cat-sat &
                         [ VAL [ SPR < >,
                                 COMPS < > ],
                           HEAD noun ] ] >,
                INTRANSITIVE-VERB-FLAG na-or-- ] ].

intransitive-verb-lex-verb-lex := intransitive-verb-lex & 3PERPL-rule-dtr & ASPECT-rule-dtr & NEG-rule-dtr & PERNUM-rule-dtr & TENSE-rule-dtr &
                PERNUM-FLAG -,
                TENSE-FLAG -,
                3PERPL-FLAG - ] ].

transitive-verb-lex-verb-lex := transitive-verb-lex & 3PERPL-rule-dtr & ASPECT-rule-dtr & NEG-rule-dtr & PERNUM-rule-dtr & TENSE-rule-dtr &
                3PERPL-FLAG -,
                PERNUM-FLAG -,
                ASPECT-FLAG - ] ].

Does it sound like I am using the Forbid incorrectly?

Hi Olga,

Let me try and recall the details…

If you want mutual exclusion, you only need one “forbids” constraint; these work both ways, unlike with “requires” and “forces” (I think the questionnaire merges these two… “requires” means “must have already occurred” and “forces” means “must occur later”).

Next, for “forbids”, the first position class to appear needs to set its flag as +, indicating that it has occurred. The second position class then tries to unify with na, which is compatible with the default value of na-or--, but not with - (meaning the position class must occur) or + (meaning the position class has occurred). This much is described by Table 3 in my paper that you linked.

If the flag is being set as -, that means that either:

  1. A position class before the ITRG one requires (forces) it, or
  2. The position class is marked as being obligatory (i.e., the lexical type forces it)

Can you double-check your choices file for these situations?

I’m not discounting the possibility of some complicated arrangement confusing the morphotactics code, particularly if position classes can scramble (take each other as input)!

Thank you, Michael! It helped me clear things up.

I was not indicating the right input to the new position class; for some reason I just said “any verb” whereas in reality I wanted it in the same slot as PERNUM. Of course it did not work correctly. Setting the same position class as input fixed the problem. Now I have PERNUM-OR-ITRG-FLAG.

1 Like