parsinglatin

Latin inflection:


I have a database of words (including nouns and verbs). Now I would like to generate all the different (inflected) forms of those nouns and verbs. What would be the best strategy to do this?

As Latin is a highly inflected language, there is:

a) the declension of nouns

b) the conjugation of verbs

See this translated page for an example of a verb's conjugation ("mandare"): conjugation

I don't want to type in all those forms for all the words manually.

How can I generate them automatically? What is the best approach?

There's a program called "William Whitaker's Words". It creates inflections for Latin words as well, so it's exactly doing what I want to do.

Wikipedia says that the program works like this:

Words uses a set of rules based on natural pre-, in-, and suffixation, declension, and conjugation to determine the possibility of an entry. As a consequence of this approach of analysing the structure of words, there is no guarantee that these words were ever used in Latin literature or speech, even if the program finds a possible meaning to a given word.

The program's source is also available here. But I don't really understand how this is to work. Can you help me? Maybe this would be the solution to my question ...


Solution

  • You could do something similar to hunspell dictionary format (see http://www.manpagez.com/man/4/hunspell/)

    You define 2 tables. One contains roots of the words (the part that never change), and the other contains modifications for a given class. For a given class, for each declension (or conjugation), it tells what characters to add at the end (or the beginning) of the root. It even can specify to replace a given number of characters. Now, to get a word at a specific declension, you take the root, apply the transformation from the class it belongs, and voilĂ !

    For example, for mandare, the root would be mand, and the class would contains suffixes like o, as, ate, amous, atis... for active indicative present.