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:
kick<tense::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