Louis indicated that we should consider modeling and approaches encompassing the features of all languages [1].
Factors that affect verb conjugation are numerous and we can envision a verb conjugation function which gathers these factors together from across languages, a function resembling:
conjugate(language, stem, person, number, gender, tense, aspect, mood, voice, formality, clusivity, transitivity, valency, evidentiality)
The following example utilizes a Context parameter as we haven’t yet discussed global variables. The following example uses a “::” syntax for enums. The following example shows that, with multilingual conjugation and declension functions, we could encapsulate multilingual conjugation and declension in language-specific convenience functions, perhaps resembling:
kick<T>(Context context, Noun agent, Noun patient) { join(" ", [ agent, context.conjugate("en-US", "kick", person::second, agent.number, agent.gender, T, aspect::perfective, mood::indicative, voice::active, context.formality, clusivity::no, transitivity::transitive, valency::transitive, context.evidentiality), "the", patient ]) }
and, as expected:
kicktense::past(context, Bobby, ball) would produce: “Bobby kicked the ball”.
It appears that there are a multitude of ways to approach implementing NLG-related Wikilambda functions. Conjugation and declension functions could be components of some approaches.
What do you think about conjugation and declension functions?
Best regards, Adam