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
; ! Start of normal noun
; ! start of normal adj
dog N ;
cat N ;
rat N ;
! at the end
of each noun root,
or nominalized-adjective stem,
through this LEXICON N
; ! whatever they might be, leading to end of word
; ! or look for a noun or nominalized adj to
%#:0 NounRoot ; ! add a compound
boundary, loop back to NounRoot; easy case
@P.NeedNom.ON@ > AdjRoot ;
! or add a
compound boundary and
set a feature NeedNom=ON and continue
! to the
blue A ;
black A ;
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
The example above is relatively simple because it is written so that
every noun root or nominalized stem has to pass through LEXICON N,
has to pass through LEXICON A.
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"
features when you find a suitable nominalizing
suffix is easy.
The harder part is identifying all the other paths out of AdjRoots and
that do _not_ involve nominalization and blocking them if
That's what the first entry in LEXICON A
It lets you follow a non-nominalizing path out of AdjRoot, but
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
(Disallow) and C
(Clear) diacritics. There are no doubt other
ways, using U-type
(Unification) and perhaps R-type
but this one fits my intuition.