FAQ: Flag Diacritics and Nominal Compounding

Q:  How can you use Flag Diacritics to Allow Nominal Compounding to include Adjective and Verb Roots, but Only if these Roots are Nominalized?

A: Flag Diacritics are tricky for many users.  Be sure to read the Flag Diacritics chapter of The FSM Book and learn the semantics of each type.  Remember that Flag-Diacritic features are set, checked and perhaps cleared linearly as analysis goes from the beginning to the end of the word.

Assume that the language allows compounding of noun roots, and that such "nominal" compounding can also include nominalized adjectives and verbs.  So compounding can loop on the nounroot dictionary itself, and can explore the adjective roots and verb roots; but to be legal in compounds these adjective and verb roots must eventually be nominalized, typically by a derivational suffix.

The basic idea of "continuing to explore adjective and verb roots, but allowing them only if they are eventually nominalized" corresponds to "Forward-looking Feature Requirements", which are treated briefly in the last section (7.5.6) in the book chapter on Flag Diacritics.  You want to allow something tentatively, but accept it ultimately only if something else is eventually found/satisfied later in the word.

Compounding involves looping, and that complicates the picture a bit more than the simple example in the book.  As you go around the compound loops, you may find a need to set, check and clear features carefully at several critical points.

For my own mnemonic convenience, I name such forward-looking feature requirements with "Need" or "Require" in the title, e.g. NeedNom for "needs nominalization".  The feature names do not, of course, mean anything to the application routines that obey Flag Diacritics.

To simplify things just a bit, let's look just at compounding involving noun roots and nominalized adjective roots.  Nominalized verb roots could be handled in a manner similar to that for nominalized adjective roots.  In a pseudo language that looks a bit like English, we will allow adjective roots to participate in compounds if and only if they are nominalized.  In lexc, we first declare some multicharacter symbols in the form of Flag Diacritics.

    @P.NeedNom.ON@   ! positive setting of NeedNom = ON
    @D.NeedNom.ON@   ! disallow NeedNom = ON
    @C.NeedNom@      ! clear the NeedNom feature back to neutral

    NounRoot ;   ! Start of normal noun
    AdjRoot ;    ! start of normal adj

    dog      N ;
    cat      N ;
    rat      N ;

! at the end of each noun root, or nominalized-adjective stem,
! continue through this LEXICON N

    NounEndings ;  ! whatever they might be, leading to end of word
    Compound ;     ! or look for a noun or nominalized adj to compound onto

LEXICON Compound
    %#:0    NounRoot  ;   ! add a compound boundary, loop back to NounRoot; easy case

    < %#:0 @P.NeedNom.ON@ > AdjRoot ;
! or add a compound boundary and set a feature NeedNom=ON and continue
! to the AdjRoot lexicon

    blue   A ;
    black  A ;

! all adjectives pass through the following LEXICON A

    @D.NeedNom.ON@  AdjEndings ;  ! go to normal adj endings,
                                  ! but DISALLOW this path if NeedNom is ON
    ness@C.NeedNom@    N ;  ! nominalizing suffix, makes the result a noun
                            ! continue (like any nouns) to LEXICON N, which
                            ! leads to nominal endings or compounding;
                            ! Clear any outstanding "need" for nominalization--
                            ! it has been satisfied.

Nominalized verbs can be handled similarly to the nominalized adjectives.

The example above is relatively simple because it is written so that every noun root or nominalized stem has to pass through LEXICON N, and every AdjRoot has to pass through LEXICON ALEXICON A, in particular, is the crucial place where you need to check and clear feature values.  If your grammar has branches all over the place, and no central LEXICON through which all adjective paths are eventually funneled, then it will be harder to identify all the crucial points for checking and clearing features.  Not impossible, but a bit harder.

Setting featires like NeedNom=ON is not difficult.  You do that just before continuing to AdjRoots or VerbRoots that are acceptable only if they are eventually nominalized.  And "removing" (clearing) NeedNom features  when you find a suitable nominalizing suffix is easy. 

The harder part is identifying all the other paths out of AdjRoots and VerbRoots that do _not_ involve nominalization and blocking them if NeedNom=ON.  That's what the first entry in LEXICON A does.  It lets you follow a non-nominalizing path out of AdjRoot, but only if NeedNom is not set to ON.

For forward-looking feature requirements, here and in Section 7.5.6, I have suggested using a combination of P (Positive setting), D (Disallow) and C (Clear) diacritics.  There are no doubt other ways, using U-type (Unification) and perhaps R-type (Require) features, but this one fits my intuition.