gwitwer / foma

Automatically exported from code.google.com/p/foma
0 stars 0 forks source link

Question: Consonant assimilation rule can be written more elegant? #8

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
I have written a consonant assimilation rule that works:

define HarmRuleV V -> v || Vowel %^  _ ,,
                 V -> b || b %^ _ ,,
                 V -> c || c %^ _ ,,
                 V -> d || d %^ _ ,,
                 V -> f || f %^ _ ,,
                 V -> g || g %^ _ ,,
                 V -> h || h %^ _ ,,
                 V -> j || j %^ _ ,,
                 V -> k || k %^ _ ,,
                 V -> l || l %^ _ ,,
                 V -> m || m %^ _ ,,
                 V -> n || n %^ _ ,,
                 V -> p || p %^ _ ,,
                 V -> q || q %^ _ ,,
                 V -> r || r %^ _ ,,
                 V -> s || s %^ _ ,,
                 V -> t || t %^ _ ,,
                 V -> v || v %^ _ ,,
                 V -> z || z %^ _ ;
What it does is:
If the words ends with vowel, it is a v
If the word ends with consonant, it is the ending consonant.

for example: rém- rémm
             rab - rabb
             hajó- hajóv

In sfst there is a special variable, a so called agreement variable, that takes 
the value of the matching character, and that simplified the above rule, since 
one can express with one line: if a consonant is matched, take its value.

Is there nothing similar in foma to simplify the above rule?

Original issue reported on code.google.com by eleonor...@gmx.net on 4 Jan 2012 at 6:00