French Conjugation, Nobo Komagata, Aug. 21, 2000 (org., Aug. 9, 2000) Java program: http://nobo.komagata.net/programs/FrenchConj =========================================================================== Motivations =========================================================================== When I was learning Spanish some time ago, I wanted a computer-based tool to list verb forms and also search a particular verb form in the conjugation table. While reference books are indispensable, they often become an obstacle to systematic way of learning conjugation. I actually made an attempt to write such a program in early 1980s. At that time, the microcomputer I had access to was too primitive and was not able to complete it as I wanted. Later, when I was learning French, I felt the same way. Recently, I noticed a nice web-based conjugator such as Conjuge (for many languages!) and McManus'. While this seems a very solid product, I wanted a little more flexibility. For example, I would like the reverse search function. I would also like to see the relation among paradigms so that I can learn the conjugation systematically. This program minimally meets these desires of mine. It is still a prototype (a very rough implementation) as I'm planning to improve on it. In fact, I'm interested in computer-based language learning tools more broadly, and planning to make an edulational tool for morphology, syntax, semantics, and pragmatics. At this point, the conjugator can be adapted for Spanish and other similar languages by preparing the data files. If you have comments, please send them to me by e-mail. =========================================================================== Operation =========================================================================== Accent composition: Suffix a letter with similar-looking symbol: e' e` e^ i" c, 1. Paradigm list Enter the dictionary form of a verb and press "Display List". Uppercase letters will be converted to the corresponding lowercase. The verb list contains about 1200 entries, most irregular verbs and many frequently-used verbs. If the dictionary form matches one of them, the conjugation table is generated from the paradigm specified for the verb. If no match is found, the program still tries to match with some regular patterns: -er, -e'X(X)er, -eler, -eter, -eX(X)er, -ayer, -oyer, -uyer, -ir. 2. Verb form search Enter a verb form and press "Search Form". Currerntly, this process is very slow because it searches many verbs (verbs beginning with an irrelevant letter are the only those excluded from the search). The search will succeed only when the entered verb form matched one or more of the inflected forms of the verbs in the verb list. 3. Parameter limit By using "Limit Parameters", the result of paradigm list can be limited to the parameters of choice. This does not affect verb form search. 4. Data customization By using "Customize Data", one can control the data completely. Any text can be changed and the change takes effect by pressing "Update" button. The data parser and rule interpreter are rather crude and may cause Java errors (not responsible for system crash). By rewriting the data, it is possible to change the conjugator for other languages. The details of the customization section is given below. The button "Restore" restore to the state after the last update. Note: The Java TextArea seems to have the maximum of 30k or so. When the size of the text exceeds, no further editing seems possible. =========================================================================== Definitions =========================================================================== There are three areas divided by the indicators: ".Sections" ".Parameters" ".Abbreviations". ".Sections" specifies /: . is used in the paradigm data. is used on the web page (no accent composition allowed). Each section can specify arbitrary number of parameters. The parameters are specified in ".Parameters" area. Each parameter can have arbitrary number of distinct values. ".Abbreviations" lists the abreviations used in the paradigms data. These are macros, which may include at most one variable "X". For each data specification, end-of-line comments beginning with "//" can be used. =========================================================================== Paradigms =========================================================================== This data set contains only one area ".Paradigms". There can be as many ".paradigm"s as needed. ".paradigm" may extends another paradigm. A paradigm contains rules of the forllowing form:
= must not appear for a section that does not specify a parameter. Otherwise, there must be appropriate parameters. The wildcard '?' can be used for arbitrary matching and {1,2} can be used for two-way option (no more than two). At most one two-way option can appear in a single . The part may contain the following components. such as "er"; "0" is interpreted as the null string Note: Accent composition can be used. + forms a binary branch; nesting possible -N removes N characters at the end lexeme() be substituded by the lexeme defect() will show as "---" in the list left(X) extracts the left branch right(X) extracts the right branch rule(,
) retrieves the specified rule rule(,
) retrieves the specified rule copy(
) copies the rule in the same paradigm THIS (uppercase) refers to the current paradigm or section SUPER (uppercase) refers to the base paradigm (specified by "extends" keyword) In the default paradigms data, several abbreviations (defined in the Definition data) are used. For example, base() is replaced with left(rule(THIS,inf)), say, corresponding to lexeme()-2 of "lexeme()-2 + er". There are several orthographic consideration built in the current version. Verbs ending in cer, ger, and cre are treated with appropriate orthographic operations. In addition, there are some customizable features. The singular plural form of a past participle ending in s will not have double s's. This is done by specifying "S" instead of "s" as the suffix. At the end of the process, the sequence "sS" will be replaced with "s"; otherwise, "S" with replaced with "s". The i/y alternation can be handled by specifying "Y" in the paradigm. The use of the grave accent and consonant doubling in certain first conjugation paradigms can be specified by adding special codes !1, !2, and !3 as can be seen in the paradigm data. =========================================================================== Verb List =========================================================================== The verb list contains only one area ".Words". Verb entries may have either of the following two patterns: = = [, ] Here, no accent composition is allowed. =========================================================================== References =========================================================================== Bescherelle Complete Guide to Conjugating 12000 French Verbs. Hatier Hatier. 1998. Conjugaison. Le Robert & Nathan. 1995. Conjuge. http://www.puterweb.com/conjugue/ Conjugate. http://www.mtcc.com/~eamonn/conjugate/conjugate.html // EOF