Lexical filtering and parts of speech

If I have a native lexical entry for an adjective for an orthography which may also be an interjection, but there are no interjections in the lexicon, can I make generic lexical entries fire for such cases?

In the original version of the SRG, all iterjections were supposed to go through an adjectival lexical rule (because that is what the morphological analyzer used to return, I suppose), and then they would undergo a unary rule to turn the utterances into interjections:

But the current version of the morphological analyzer returns an interjection tag. So I have the choices: map the interjection tag to the adjective tag (which seems contirved) or have the grammar work with the interjection tag and re-treebank such items.

If I were to make the grammar to work with the interjection tag, I once again have options: add native lexical entries (I don’t want to) or rely on generic lexical entries. Ideally I want to go this last route (rely on generic lexical entries).

I added a generic entry for interjections, following the example of the ones I already have.

interj_ge := i_-_le & 
 [ STEM < "i_-_le" >,
   TOKENS.+LIST generic_token_list & < [ +POS.+TAGS < "i" > ] >,
    SYNSEM.LKEYS.KEYREL.PRED "_generic_interj_rel ]
 """
 Generic lexical entry for interjections, triggered by tag i.
 """.

But it doesn’t seem to fire:

(1, 0, 1, <0:10>, 1, "fantástico" "fantástico", 0, "i", "i" 0.33871) (2, 1, 2, <11:12>, 1, "!" "!", 0, "fat", "fat" 1)
token #1 le 0x7f9f7906418c vtx [0-1] char [0-10] string 'fantástico' dag #D[token +FORM: #D["fantástico"] +FROM: #D["0"] +TO: #D["10"] +ID: #D[diff-list LIST: #D[cons FIRST: #D["1"] REST: <1>= #D[list] ] LAST: <1> ] +POS: #D[pos +TAGS: #D[cons FIRST: #D["i"] REST: #D[null] ] +PRBS: #D[cons FIRST: #D["0.338710"] REST: #D[null] ] ] +CLASS: #D[token_class] +TRAIT: #D[token_trait] +PRED: #D[predsort] +CARG: #D[string] ]
token #2 le 0x7f9f79064c5c vtx [1-2] char [11-12] string '!' dag #D[token +FORM: #D["!"] +FROM: #D["11"] +TO: #D["12"] +ID: #D[diff-list LIST: #D[cons FIRST: #D["2"] REST: <1>= #D[list] ] LAST: <1> ] +POS: #D[pos +TAGS: #D[cons FIRST: #D["fat"] REST: #D[null] ] +PRBS: #D[cons FIRST: #D["1.000000"] REST: #D[null] ] ] +CLASS: #D[token_class] +TRAIT: #D[token_trait] +PRED: #D[predsort] +CARG: #D[string] ]
finished token mapping
 lexical lookup found lexeme 'fantástico_aj-s'
 lexical lookup found lexeme 'excl-cl_pt'
finished lexical lookup
generated #502 1/1 from #98, #4 for [1-2] with rule fat: !
NOTE: lexemes do not span position 0 `fantástico'!
NOTE: post reduction gap
SKIP: (yy mode)

Is that because I have a native lexical entry for the same orthography (but a different part of speech)? Or did I do something else wrong?

P.S.: I think it is something else because commenting out the sole native lexical entry for this orthography does not help.

Since the grammar already contains an entry for the adjective ```
fantástico (and presumably other interjections), it would seem to be safer to ignore the “i” interjection tag assigned by the morphological analyzer, or if that’s the only result from the analyzer, then allow your treatment of adjectives to also accept that “i” tag (and similarly for other parts of speech that the analyzer tags as “i”). If you go the generic entry route, it’s not clear how you preserve the meaning of the adjective when it’s used as an interjection.

1 Like

Yes, perhaps keeping the adjective analysis is fine. There are only a couple of “true” interjections in the lexicon (which belong to interj_le), and I suppose using adjectives as interjections is productive.

Still, do I understand right that, given the adjective in the lexicon, a generic lexical entry for another POS won’t fire?

You have control in your chart-mapping machinery over whether the presence of a native entry blocks a generic entry, via the lexical filtering rules defined in the file ‘lfr.tdl’.

1 Like