! Morphophonological rules for Bokmål 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 æ ø å á é ó ú í à è ò ù ì ä ë ö ü ï â ê ô û î ã ý þ ñ ð ß ç 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 Æ Ø Å Á É Ó Ú Í À È Ò Ù Ì Ä Ë Ö Ü Ï Â Ê Ô Û Î Ã Ý þ Ñ Ð ' o:ø u:y a:e g %#:0 %>:0 X1:0 X2:0 X3:0 X4:0 X5:0 X6:0 X7:0 X8:0 X9:0 Q1:0 Q2:0 Q3:0 Q4:0 Q5:0 Q6:0 Q7:0 Q8:0 Q9:0 Y1:0 Y2:0 Y3:0 Y4:0 Y5:0 Y6:0 Y7:0 Y8:0 Y9:0 Z1:0 Z2:0 Z3:0 Z4:0 Z5:0 Z6:0 Z7:0 Z8:0 Z9:0 ; Sets Vow = a e i o u y æ ø å ; Cns = b c d f g h j k l m n p q r s t v w x z ; LNR = l n r ; Dummy = X1 X2 X3 X4 X5 X6 X7 X8 X9 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z9 ; ! %+ ! Use of diacritics ! Q = Verbal rules ! Q1 = Passive ! Q3 = Verb vowel and geminate deltion kalte, fylte ! X = Nominal rules ! X1 = Epenthetic vowel moden:modne ! X3 = Plural r deletion -er, -ene ! X4 = dumm:dum Delete m ! X5 = um deletion, faktum:fakta ! X6 = t:d weakening, oppskjørtet:oppskjørtede ! Z = Common rules ! Z1 = o:ø, a:e Umlaut ! Z2 = protects vowel Rules ! Epenthetic deletions ! -------------------- "e Deletion" e:0 <=> Cns: _ LNR X1: %>: ( e | a ) ; Vow ( Cns:* ) _ ( Dummy:* - Z2: ) %>:0 [ Vow | Cns Cns ] ; _ %>:0 Q3: ; !€ modenX1%>e !€ mod0n00e !$ modenX1%>e !$ moden00e !€ hare%>er !€ har00er "Consonant shortening before deletion" Cx:0 <=> Cx _ e: LNR X1: %>: ( e | a ) ; where Cx in ( b d f k p s v ) ; !€ sikkerX1%>e !€ sik00r00e "Geminate deletion in front of -t and -d" Cx:0 <=> Cx _ (e:0) %>: Q3:0 [d|t] ; ! kaller:kalte Cx _ e: LNR X1: %>: ( e | a ) ; ! sikker:sikre where Cx in ( l n g ) ; !€ kalle%>Q3te !€ kal0000te !€ all%>Q3t !€ al000t !€ bygge%>Q3te !€ byg0000de !"Delete schwaa" ! h a r e:0 %> e r ! e:0 <=> Vow ( Cns:* ) _ ( Dummy:* - Z2: ) %>:0 [ Vow | Cns Cns ] ; "Delete foreign vowel" Vx:0 <=> _ X2: ; where Vx in (a o) ; !€ kollegaX2%>er !€ kolleg000er !"Delete Consonant before schwaa Deletion" ! Cx:0 <=> Cx _ e: LNR X1: %>:0 e ; ! where Cx in ( d s ) ; ! overlap with Consonant shortening before deletion? !€ knusselX1e !€ knus00l0e "Delete r" r:0 <=> _ %>:0 X3: ; r _ e: LNR X1: %>: ( e | a ) ; ! sparepengar : sparepengane "Delete m" m:0 <=> _ X4: [ #: | %>:0 s ] ; ! kammX4:kam m _ e: LNR X1: %>: ( e | a ) ; ! gammel:gamle u: _ X5: %>:0 ; "Umlaut" Vx:Vy <=> _ Cns:* ( e:0 ) Z1: ; where Vx in ( u o a ) Vy in ( y ø e ) matched ; ! bok : bøker !"m deletion" ! m:0 <=> Vow: _ m #: ; "um Deletion 1" u:0 <=> _ m: X5: %>:0 ; !€ museumX5%>er !€ muse0000er !"um Deletion 2" ! now m rule ! m:0 <=> u: _ X5: %>:0 ; "t weakening" t:d <=> [Cns:|Vow:] _ X6:0 %>:0 e ; !€ oppskjørtetX6%>e !€ oppskjørted00e "Double t deleteion" t:0 <=> t: %>:0 _ ; t _ e: LNR X1: %>: ( e | a ) ; !€ svart%>t !€ svart00 !" inf-e" ! e:0 <=> _ %>:0 Q3: ; !€ presentere%>Q3t !€ presenter000t ! Insertion rules ! --------------- "Insert t in passives" 0:t <=> _ e s Q1: ; "Insert d in passives" 0:d <=> _ e s Q1: ; ! Clitics ! ------- "Clitic after s-final" s:' <=> s %>:0 _ ; ! huss -> hus'