# -*- coding: iso-8859-1 -*- # Script for generating a lexical transducer for Lingala # with finite-state realizational morphology # Data and analysis from Gregoy T. Stump's book # Inflectional Morphology. A Theory of Paradigm Structure # Cambridge University Press. Cambridge, UK. 2001 # Also using data from Michael Gasser's course materials for L103: # http://www.indiana.edu/~gasser/L103/hw10.html # http://www.indiana.edu/~gasser/L103/morph_extra.html # Lauri Karttunen # Palo Alto Research Center # August 20, 2002 define Stems [{bet} | # hit {béb} | # deteriorate {bomb} | # hide {bóndel} | # plead {bóngol} | # change {bót} | # be born {búk} | # break {fung} | # open {kabol} | # divide {kang} | # attach {kom} | # write {kund} | # bury {kóm} | # arrive {lakis} | # teach {lí} | # eat {lob} | # speak {luk} | # search {ndim} | # agree {palangan} | # disperse {pangwis} | # wipe {sál} | # make {sepel} | # enjoy {sómb} | # buy {tál} | # look {támbol} | # walk {tambwis} | # drive {tataban} | # be surprised {tún} | # ask {yébis} # yell ] ; define L [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| á|é|í|ó|ú]; define Person1 [Per ":" 1]; define Person2 [Per ":" 2]; define Person3 [Per ":" 3]; define Number [Num ":" [Sg|Pl] ]; define Gender3 [Gen ":" [1 "." 2 | 1a "." 2 | 3 "." 4 | 5 "." 6 | 7 "." 8 | 9a "." 10a | 10 | 11 "." 6 | 14 "." 6 | 15]]; # define Reflexive [No | Yes]; # Passive: -am- # Causative: -is- # Reciprocal: -an- # Applicative:l -el- # Reversive: -ol- # Iterative: reduplication of the root or root plus other morpheme; # the two copies are separated by -a-; the second copy of the root # has low tone on the first syllable # That is, the order of the morphemes is: REV, CAUS, PASS, APPL, RECIP # alobaloba 'he/she speak SP ITER' # alíalia 'he eat SP ITER' define PastTense [Past ":" [Rec|Hist|MoreRem|MostRem]]; define PresTense [Pres ":" [Cont|Hab1|Hab2]]; define FutTense [Fut ":" [Immed|MostRem]]; # define Reflexive [Refl ":" [No|Yes]]; define Tense [Tns ":" [PastTense|PresTense|FutTense]]; # define Polarity [Pol ":" [Pos|Neg]]; define Agreement [[[Person1 | Person2] " " Number] | [Person3 " " Number " " Gender3]]; # For Gender 15 we have only singular subject marker, no plural # and no object markers. Missing info? define SubjAgr [Sub ":" Agreement] - [$Pl & $15]; define ObjAgr [Obj ":" Agreement] - $15 ; define Agr [Func ":" Agreement]; #define Features [SubjAgr " " ObjAgr " " Tense " " Polarity]; define Features [SubjAgr " " ObjAgr " " Tense]; define VerbLex "<" Stems "," Features ">" ; # Common singular agreement markers. define RAgr1 [[. .] -> {mo} || "<" _ [$[Agr & $Person3 & $Sg & $4]]]; define RAgr2 [[. .] -> {li} || "<" _ [$[Agr & $Person3 & $Sg & $5]]]; define RAgr3 [[. .] -> e || "<" _ [$[Agr & $Person3 & $Sg & $[9a"."10a]]]]; define RAgr4 [[. .] -> {lo} || "<" _ [$[Agr & $Person3 & $Sg & $[10|11]]]]; define RAgr5 [[. .] -> {bo} || "<" _ [$[Agr & $Person3 & $Sg & $14]]]; # Common plural agreement markers define RAgr6 [[. .] -> {bo} || "<" _ [$[Agr & $Person2 & $Pl]]] ; define RAgr7 [[. .] -> {ba} || "<" _ [$[Agr & $Person3 & $Pl & $2]]]; define RAgr8 [[. .] -> {mi} || "<" _ [$[Agr & $Person3 & $Pl & $4]]]; define RAgr9 [[. .] -> {ma} || "<" _ [$[Agr & $Person3 & $Pl & $[5|6]]]]; define RAgr10 [[. .] -> {bi} || "<" _ [$[Agr & $Person3 & $Pl & $7]]]; define RAgr11 [[. .] -> i || "<" _ [$[Agr & $Person3 & $Pl & $[9a|10]]]]; # Rule Block 1 # Singular specific subject markers define R101 [[. .] -> {na} || "<" _ [$[SubjAgr & $Person1 & $Sg]]] ; define R102 [[. .] -> o || "<" _ [$[SubjAgr & $Person2 & $Sg]]] ; define R103 [[. .] -> a || "<" _ [$[SubjAgr & $Person3 & $Sg & $2]]]; define R104 [[. .] -> e || "<" _ [$[SubjAgr & $Person3 & $Sg & $7]]]; define R105 [[. .] -> {ei} || "<" _[$[SubjAgr & $Person3 & $Sg & $15]]]; # Rules of referral for singular subject markers define R106 `[RAgr1, Func, Sub]; define R107 `[RAgr2, Func, Sub]; define R108 `[RAgr3, Func, Sub]; define R109 `[RAgr4, Func, Sub]; define R110 `[RAgr5, Func, Sub]; # Plural specific subject markers define R111 [[. .] -> {to} || "<" _ [$[SubjAgr & $Person1 & $Pl]]] ; # Rules of referral for plural subject markers. define R112 `[RAgr6, Func, Sub]; define R113 `[RAgr7, Func, Sub]; define R114 `[RAgr8, Func, Sub]; define R115 `[RAgr9, Func, Sub]; define R116 `[RAgr10, Func, Sub]; define R117 `[RAgr11, Func, Sub]; define R201 [[. .] -> {ko} || "<" _ [$[Fut":"Immed]]] ; # Singular specific object markers define R301 [[. .] -> n || "<" _ [$[ObjAgr & $Person1 & $Sg]]] ; define R302 [[. .] -> {ko} || "<" _ [$[ObjAgr & $Person2 & $Sg]]] ; define R303 [[. .] -> {mo} || "<" _ [$[ObjAgr & $Person3 & $Sg & $2]]]; define R304 [[. .] -> {ei} || "<" _ [$[ObjAgr & $Person3 & $Sg & $7]]]; # Rules of referral for singular object markers define R305 `[RAgr1, Func, Obj]; define R306 `[RAgr2, Func, Obj]; define R307 `[RAgr3, Func, Obj]; define R308 `[RAgr4, Func, Obj]; define R309 `[RAgr5, Func, Obj]; # Plural specific object markers define R310 [[. .] -> {lo} || "<" _ [$[ObjAgr & $Person1 & $Pl]]] ; # Rules of referral for plural object markers define R311 `[RAgr6, Func, Obj]; define R312 `[RAgr7, Func, Obj]; define R313 `[RAgr8, Func, Obj]; define R314 `[RAgr9, Func, Obj]; define R315 `[RAgr10, Func, Obj]; define R316 `[RAgr11, Func, Obj]; # Tense rules define R401 [[. .] -> {ak} || _ "," [$[Pres":"[Hab1|Hab2]| Past":"[Hist|MostRem]]]]; define R402 [[. .] -> a || _ "," [$[Pres":"Cont|Fut":"Immed]]]; define R501 [[. .] -> i || _ "," [$[Fut":"MostRem|Past":"[Rec|Hist]]]]; # Eliminate Features and auxiliary symbols from the lower side. define Cleanup \L -> 0; # Build the Lingala Verb Transducer regex VerbLex .o. R301 .o. R302 .o. R303 .o. R304 .o. R305 .o. # singular object R306 .o. R307 .o. R308 .o. R309 .o. R310 .o. R311 .o. R312 .o. R313 .o. R314 .o. # plural object R315 .o. R316 .o. R201 # future .o. R101 .o. R102 .o. R103 .o. R104 .o. R105 .o. # singular subject R106 .o. R107 .o. R108 .o. R109 .o. R110 .o. R111 .o. R112 .o. R113 .o. R114 .o. R115 .o. # plural subject R116 .o. R117 .o. R401 .o. R402 .o. R501 # tense .o. Cleanup ;