; ENGLISH.RUL 16-Apr-90 ; Rules file for the English description. ; To load this file, enter the command LOAD RULES ENGLISH. ; This description of English is based on the article "A two-level ; morphological analysis of English," by Lauri Karttunen and ; K. Wittenburg, Texas Linguistic Forum 22:217-228 (1983). ; See appendix A for an exposition of the rules in this file. ; ' = apostrophe ; - = hyphen ; ` = stress ; + = morpheme break ALPHABET a b c d e f g h i j k l m n o p q r s t u v w x y z ' - ` + NULL 0 ANY @ BOUNDARY # SUBSET C b c d f g h j k l m n p q r s t v w x y z ; consonants SUBSET Csib s x z ; sibilants SUBSET Cpal c g ; soft palatals SUBSET V a e i o u ; vowels SUBSET Vbk a o u ; back vowels RULE "1 Consonant defaults" 1 22 b c d f g h j k l m n p q r s t v w x y z @ b c d f g h j k l m n p q r s t v w x y z @ 1: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ; ` and + default to 0 ; - defaults to either - or 0 RULE "2 Vowels and other defaults" 1 11 a e i o u ' - - ` + @ a e i o u ' - 0 0 0 @ 1: 1 1 1 1 1 1 1 1 1 1 1 ; Epenthesis ; LR: fox+0s kiss+0s church+0s spy+0s ; SR: fox0es kiss0es church0es spi0e RULE "3 Epenthesis, 0:e => [Csib|ch|sh|y:i] +:0___s [+:0|#]" 7 9 c h s Csib y + # 0 @ c h s Csib i 0 # e @ 1: 2 1 4 3 3 1 1 0 1 2: 2 3 3 3 3 1 1 0 1 3: 2 1 3 3 3 5 1 0 1 4: 2 3 3 3 3 5 1 0 1 5: 2 1 2 2 2 1 1 6 1 6. 0 0 7 0 0 0 0 0 0 7. 0 0 0 0 0 1 1 0 0 RULE "4 Epenthesis, 0:0 /<= [Csib|ch|sh|y:i] +:0___s [+:0|#]" 6 8 c h s Csib y + # @ c h s Csib i 0 # @ 1: 2 1 4 3 3 1 1 1 2: 2 3 3 3 3 1 1 1 3: 2 1 3 3 3 5 1 1 4: 2 3 3 3 3 5 1 1 5: 2 1 6 3 3 1 1 1 6: 2 3 4 3 3 0 0 1 ; y:i-spelling ; LR: spy+s happy+ly spot0+y+ness ; SR: spies happi0ly spott0i0ness RULE "5 y:i-spelling, y:i <= :C__+:0 ~[i|']" 4 7 @ y y + i ' @ C i @ 0 i ' @ 1: 2 1 1 1 1 1 1 2: 2 1 3 2 1 1 1 3: 2 1 1 4 1 1 1 4: 0 0 0 0 1 1 0 RULE "6 y:i-spelling, y:i => :C__+:0 ~[i|']" 4 6 @ y + i ' @ C i 0 i ' @ 1: 2 0 1 1 1 1 2: 2 3 2 1 1 1 3. 0 0 4 0 0 0 4. 2 1 1 0 0 1 ; s-deletion ; LR: cat+s+'s fox+s+'s ; SR: cat0s0'0 foxes0'0 RULE "7 s-deletion, s:0 <=> +:0 (0:e) s +:0 '___" 5 6 + 0 s ' s @ 0 e @ ' 0 @ 1: 2 1 1 1 0 1 2: 2 2 3 1 0 1 3: 4 1 1 1 0 1 4: 2 1 3 5 0 1 5: 2 1 0 1 1 1 ; Elision ; LR: `move+ed `move+ing `move+able `be+ing ; SR: 0mov0+ed 0mov00ing 0mov00able 0be0ing ; LR: `trace+ed `trace+ing `trace+able ; SR: 0trac00ed 0trac00ing 0trace0able ; except in Cpal___+:0 Vbk RULE "8 Elision, e:0 <= VCC*___+:0 V" 8 8 C Cpal e e + V Vbk @ C Cpal 0 @ 0 V Vbk @ 1: 1 1 1 2 1 2 2 1 2: 3 6 1 2 1 2 2 1 3: 3 6 1 4 1 2 2 1 4: 1 1 1 2 5 2 2 1 5: 1 1 1 0 1 0 0 1 6: 1 1 1 7 1 2 2 1 7: 1 1 1 2 8 2 2 1 8: 1 1 1 0 1 0 1 1 ; elision prohibited after Cpal and before back vowel RULE "9 e:0 /<= VC*Cpal___+:0 Vbk" 5 7 V C Cpal e + Vbk @ V C Cpal 0 0 Vbk @ 1: 2 1 1 1 1 2 1 2: 2 2 3 1 1 2 1 3: 2 1 1 4 1 2 1 4: 2 1 1 1 5 2 1 5: 2 1 1 1 1 0 1 ; LR: a`gree+ed a`gree+ing a`gree+able `hoe+ed `hoe+ing `dye+ed `dye+ing ; SR: a0gre00ed a0gree0ing a0gree0able 0ho00ed 0hoe0ing 0dy00ed 0dye0ing ; ; BUT compare these: ; LR: `argue+ing `argue+able ; SR: 0argu00ing 0argu00able RULE "10 e:0 <= C[V|y]___+:0 e" 5 8 C V y e e + ` @ C V y 0 @ 0 0 @ 1: 2 1 1 1 1 1 1 1 2: 2 3 3 1 3 1 2 1 3: 2 1 1 1 4 1 3 1 4: 2 1 1 1 1 5 4 1 5: 2 1 1 1 0 1 5 1 RULE "11 e:0 <= Cu___+:0 V" 5 7 C u e e + V @ C u 0 @ 0 V @ 1: 2 1 1 1 1 1 1 2: 2 3 1 1 1 1 1 3: 2 1 1 4 1 1 1 4: 2 1 1 1 5 1 1 5: 2 0 1 0 1 0 1 ; clean-up rule for three <= Elision rules above plus i:y-spelling below RULE "12 Elision, e:0 => VCC*___+:0 V, C[V|y]___+:0 e, Cu___+:0 V, i:y___+:0 i" 12 10 C e + i y V e u ` @ C 0 0 y y V e u 0 @ 1: 6 0 1 10 6 2 2 2 1 1 2: 3 0 1 10 3 2 2 2 2 1 3: 3 4 1 10 3 7 7 10 3 1 4. 0 0 5 0 0 0 0 0 4 0 5. 0 0 0 0 0 1 1 1 5 0 6: 6 0 1 10 7 7 7 10 6 1 7: 3 8 1 10 1 2 2 2 7 1 8. 0 0 9 0 0 0 0 0 8 0 9. 0 0 0 0 0 0 1 0 9 0 10: 6 11 1 10 6 1 1 1 10 1 11. 0 0 12 0 0 0 0 0 11 0 12. 0 0 0 0 0 1 1 1 12 0 ; i:y-spelling ; LR: tie+ed tie+ing ; SR: ti00ed ty00ing ; e:@ instead of e:0 to force Elision to apply RULE "13 i:y-spelling, i:y <= ___ e: +:0 i" 4 5 i e + i @ y @ 0 i @ 1: 1 1 1 2 1 2: 1 3 1 2 1 3: 1 1 4 2 1 4: 1 1 1 0 1 RULE "14 i:y-spelling, i:y => ___ e:0 +:0 i" 4 5 i e + i @ y 0 0 i @ 1: 2 1 1 1 1 2. 0 3 0 0 0 3. 0 0 4 0 0 4. 0 0 0 1 0 ; Gemination ; LR: re`fer0+ed `travel+ed `sleep+ing `slip0+ing `spot0+y ; SR: re0ferr0ed 0travel0ed 0sleep0ing 0slipp0ing 0spott0y ; {C} = {b,d,f,g,l,m,n,p,r,s,t} RULE "15 Gemination, 0:{C} => `:0 C* V {C}___[V|y:]" 16 27 ` V y b d f g l m n p r s t 0 0 0 0 0 0 0 0 0 0 0 + @ 0 V @ b d f g l m n p r s t b d f g l m n p r s t 0 @ 1: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 2: 2 5 1 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 1 2 3. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 4. 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5: 2 1 1 6 7 8 9 10 11 12 13 14 15 16 0 0 0 0 0 0 0 0 0 0 0 1 1 6: 2 5 1 1 1 1 1 1 1 1 1 1 1 1 3 0 0 0 0 0 0 0 0 0 0 1 1 7: 2 5 1 1 1 1 1 1 1 1 1 1 1 1 0 3 0 0 0 0 0 0 0 0 0 1 1 8: 2 5 1 1 1 1 1 1 1 1 1 1 1 1 0 0 3 0 0 0 0 0 0 0 0 1 1 9: 2 5 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 3 0 0 0 0 0 0 0 1 1 10: 2 5 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 3 0 0 0 0 0 0 1 1 11: 2 5 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 3 0 0 0 0 0 1 1 12: 2 5 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 3 0 0 0 0 1 1 13: 2 5 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 3 0 0 0 1 1 14: 2 5 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 3 0 0 1 1 15: 2 5 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 3 0 1 1 16: 2 5 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 3 1 1 ; {C} = {b,d,f,g,l,m,n,p,r,s,t} RULE "16 Gemination, 0:0 /<= `:0 C* V {C}___+:0 [V|y:]" 5 16 ` V y b d f g l m n p r s t + @ 0 V @ b d f g l m n p r s t 0 @ 1: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2: 2 4 2 2 2 2 2 2 2 2 2 2 2 2 1 2 3: 2 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 4: 2 1 1 5 5 5 5 5 5 5 5 5 5 5 1 1 5: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 END ; The following rules do epenthesis and gemination by setting up ; correspondences between lexical + (morpheme boundary) and surface ; e, b, d, g, etc. They run faster than the rules above, which do ; genuine insertion of characters from a lexical 0 (NULL). ; To run these rules, substitute them for the corresponding rules ; above; also, +:0 column headers in other rules should be ; changed to +:@. ; Also note that these rules also do not use the #:# header. RULE "3 Epenthesis, +:e => [Csib|ch|sh|y:i]___s[#|+:] " 6 8 c h s Csib y + + @ c h s Csib i e @ @ 1: 2 1 4 3 3 0 1 1 2: 2 3 3 3 3 0 1 1 3: 2 1 3 3 3 5 1 1 4: 2 3 3 3 3 5 1 1 5. 0 0 6 0 0 0 0 0 6: 0 0 0 0 0 0 1 0 RULE "4 Epenthesis, +:e <= [Csib|ch|sh|y:i]___s[#|+:]" 6 8 c h s Csib y + + @ c h s Csib i e @ @ 1: 2 1 4 3 3 1 1 1 2: 2 3 3 3 3 1 1 1 3: 2 1 3 3 3 1 5 1 4: 2 3 3 3 3 1 5 1 5: 2 1 6 3 3 1 1 1 6. 2 3 4 3 3 1 0 1 RULE "7 s-deletion, s:0 <=> +: s+: '___" 5 5 + s ' s @ @ @ ' 0 @ 1: 2 1 1 0 1 2: 2 3 1 0 1 3: 4 1 1 0 1 4: 2 3 5 0 1 5: 2 0 1 1 1 ; {C} = {b,d,f,g,l,m,n,p,r,s,t} RULE "15 Gemination, +:{C} => `:0 C* V {C}___[V|y:]" 15 26 ` V y b d f g l m n p r s t + + + + + + + + + + + @ 0 V @ b d f g l m n p r s t b d f g l m n p r s t @ 1: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 2: 2 4 1 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 2 3. 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4: 2 1 1 5 6 7 8 9 10 11 12 13 14 15 0 0 0 0 0 0 0 0 0 0 0 1 5: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 3 0 0 0 0 0 0 0 0 0 0 1 6: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 3 0 0 0 0 0 0 0 0 0 1 7: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 3 0 0 0 0 0 0 0 0 1 8: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 3 0 0 0 0 0 0 0 1 9: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 3 0 0 0 0 0 0 1 10: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 3 0 0 0 0 0 1 11: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 3 0 0 0 0 1 12: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 3 0 0 0 1 13: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 3 0 0 1 14: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 3 0 1 15: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 3 1 ; {C} = {b,d,f,g,l,m,n,p,r,s,t} RULE "16 Gemination, +:{C} <= `:0 C* V {C}___[V|y:]" 5 16 ` V y b d f g l m n p r s t + @ 0 V @ b d f g l m n p r s t 0 @ 1: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2: 2 4 2 2 2 2 2 2 2 2 2 2 2 2 1 2 3: 2 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 4: 2 1 1 5 5 5 5 5 5 5 5 5 5 5 1 1 5: 2 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1