# * FINCG (CONSTRAINT GRAMMAR FOR FINNISH) * # * (C) FRED KARLSSON 1989-2000 * # * (GPL) 2010- * # * Adjusted to vislcg3 and the Giellatekno * # * tag conventions 2010- * # ******************************************* SUBREADINGS = LTR ; # ========== # # Delimiters # # ========== # #DELIMITERS = "<$\.>" "<$!>" "<$?>" "<$END-OF-SENTENCE>" "<$ENDDOC>" "<$ENDDOCHEAD>" "<$ENDHCODE>" "<$ENDHEAD>" "<$ENDTEXT>" "<$ENDTITLE>" "<$PARAG>" "<$HEAD>" "<$END-P>" "<.>" "" "" "<...>" "<¶>" CLB sent ; # ("<$\.>" "<$!>" "<$?>") ; # "<$\:>" DELIMITERS = "<.>" "" "" "<..>" "<...>" "<¶>" sent ; PARENTHESES = ("<(>" "<)>") ("<[>" "<]>") ("<{>" "<}>") ("<“>" "<”>"); # ============= # # Tags and sets # # ============= # SETS LIST BOS = >>> ">>>" "<$START-P>" "<$start-p>" ; # look at BOS/EOS LIST EOS = <<< "<<<" "<$END-P>" "<$end-p>" ; LIST <<< = <<< ; LIST >>> = >>> ; LIST ABC = "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" ; LIST POS = N Pron A Num V Adv Adp Po Pr CC CS Pcle Interj ACR ; # Parts of speech # --------------- LIST Np = N ; LIST Ni = Ni ; LIST N = N (V Der/minen) (V Der_minen) ; LIST A = A ; LIST APrc = A PrsPrc PrfPrc "tämä" "millainen" "sellainen" ; LIST Adv = Adv ; LIST V = V ; LIST REAL-V = V ; # XXX fix. LIST Pron = Pron ; LIST Comp = Comp ; # comparative of adj LIST Sup = Sup ; # superlative of adj LIST CMP_SUP = Comp Sup ; LIST Foc/ka = Foc/ka ; LIST Po = Po ; LIST Pr = Pr ; LIST Adpp = Adp ; LIST Adp = Adp Po Pr ; LIST PP = Adv Adp Po Pr ; # replaced PP->Pr, PSP->Po #LIST PSP = PSP ; # PP preP, PSP postP #LIST PSP-CASE = Gen Par Ela Ill Abl All ; LIST CC = CC "enkä" "etkä" "eikä" ("ei" Foc/ka) ("ei" Foc_ka) "emmekä" "ettekä" "eivätkä" "/" ; LIST CCC = CC "enkä" "etkä" "eikä" ("ei" Foc/ka) ("ei" Foc_ka) "emmekä" "ettekä" "eivätkä" "/" "," ; LIST CS = CS ; LIST Conj = CS CC "enkä" "etkä" "eikä" ("ei" Foc/ka) ("ei" Foc_ka) "emmekä" "ettekä" "eivätkä" ; LIST Part = Part ; # particle? still in use? LIST Pcle = Pcle ; # apertium LIST Acro = Acro ACR ; LIST AcroW = "sek" "min" "h" "l" "tl" "g" "kg" "m" "km" ; # Clitics LIST Qst = Qst ; # -ko/-kö LIST Foc_ko = Foc/ko Foc_ko ; LIST Foc_ka = Foc/ka Foc_ka ; LIST Foc_han = Foc/han Foc_han ; LIST Foc_kin = Foc/kin Foc_kin ; LIST Foc_kaan = Foc/kaan Foc_kaan ; # POS sub-categories # ------------------ LIST Dem = Dem ; LIST Det = Det ; LIST Rel = Rel ; LIST Refl = Refl ; LIST Recipr = Recipr ; LIST Indef = Indef ; LIST Qu = Qu ; # Quantifier, what is difference with Qnt?? LIST Qnt = Qnt ; LIST Tempr = Tempr ; LIST INTERR-KO = Interr Qst ; LIST Interr = Interr ; # TP: INTG > Interr LIST Interj = Interj ; # FMT: INTJ > Interj LIST ParDem = (Pron Dem Sg Par) ; LIST ParRel = (Pron Rel Sg Par) ; LIST ParInterr = (Pron Interr Sg Par) ; # Morphosyntactic properties # -------------------------- LIST Num = Num ; LIST Ord = Ord ; LIST Card = Card ; LIST PE4 = Pe4 ; LIST Pers = Pers ; LIST Prop = Prop ; LIST Pass = Pass Pss ; LIST Act = Act ; LIST ActPass = Act Pass Pss ; LIST Sg_Pl = (Sg Pl) ; LIST Pl = Pl Sg/Pl ; LIST Pl1 = Pl1 ; # apertium (p1 pl) ; LIST Pl2 = Pl2 ; # apertium (p2 pl) ; LIST Pl3 = Pl3 ; # apertium (p3 pl) ; LIST Pl123 = Pl1 Pl2 Pl3 ; # apertium (p1 pl) (p2 pl) (p3 pl) ; LIST Sg = Sg Sg/Pl ; LIST Sg1 = Sg1 ; # apertium (p1 sg) LIST Sg2 = Sg2 ; # apertium (p2 sg) LIST Sg3 = Sg3 ; # apertium (p3 sg) LIST Sg123 = Sg1 Sg2 Sg3 ; # apertium (p1 sg) (p2 sg) (p3 sg) ; LIST PxSg1 = PxSg1 ; LIST PxSg2 = PxSg2 ; LIST PxSg3 = PxSg3 ; LIST PxPl1 = PxPl1 ; LIST PxPl2 = PxPl2 ; LIST PxPl3 = PxPl3 ; LIST Px3 = Px3 ; LIST SOMEPX = PxSg1 PxSg2 PxSg3 PxPl1 PxPl2 PxPl3 Px3 ; # Noun Case sets # -------------- LIST Nom = Nom ; LIST Ade = Ade ; LIST Gen = Gen ; LIST Ela = Ela ; LIST Ess = Ess ; LIST Ill = Ill ; LIST All = All ; LIST Abl = Abl ; LIST Ine = Ine ; LIST Tra = Tra ; LIST Ins = Ins ; LIST Par = Par ; LIST Acc = Acc ; LIST Abe = Abe ; LIST Com = Com ; LIST Cmt = Cmt ; LIST NNom = (N Sg Nom) (N Pl Nom) ; LIST NGen = (N Sg Gen) (N Pl Gen) ; LIST NPar = (N Sg Par) (N Pl Par) ; LIST NomSg = (Nom Sg) ; LIST NomPl = (Nom Pl) ; LIST GenSg = (Gen Sg) ; LIST GenPl = (Gen Pl) ; LIST ParSg = (Par Sg) ; LIST ParPl = (Par Pl) ; LIST Pers1 = Sg1 Pl1 ; LIST Pers2 = Sg2 Pl2 ; LIST SGa = Sg Sg1 Sg2 Sg3 ; LIST PLa = Pl Pl1 Pl2 Pl3 ; SET NPSgNom = N + (Sg Nom) OR (Pron Nom) + SGa ; SET NPPlNom = N + (Pl Nom) OR (Pron Nom) + PLa ; SET NPSg3Nom = N + (Sg Nom) OR (Pron Sg Nom) OR (Pron Sg3 Nom) ; SET NPPl3Nom = N + (Pl Nom) OR (Pron Pl Nom) OR (Pron Pl3 Nom) ; SET NSgNom = N + (Sg Nom) ; SET NSgAde = N + (Sg Ade) ; SET NSgGen = N + (Sg Gen) ; SET NSgEla = N + (Sg Ela) ; SET NSgEss = N + (Sg Ess) ; SET NSgIll = N + (Sg Ill) ; SET NSgAll = N + (Sg All) ; SET NSgAbl = N + (Sg Abl) ; SET NSgIne = N + (Sg Ine) ; SET NSgTra = N + (Sg Tra) ; SET NSgIns = N + (Sg Ins) ; SET NSgPar = N + (Sg Par) ; SET NSgAcc = N + (Sg Acc) ; SET NSgAbe = N + (Sg Abe) ; SET NSgCmt = N + (Sg Cmt) ; SET NPlNom = N + (Pl Nom) ; SET NPlAde = N + (Pl Ade) ; SET NPlGen = N + (Pl Gen) ; SET NPlEla = N + (Pl Ela) ; SET NPlEss = N + (Pl Ess) ; SET NPlIll = N + (Pl Ill) ; SET NPlAll = N + (Pl All) ; SET NPlAbl = N + (Pl Abl) ; SET NPlIne = N + (Pl Ine) ; SET NPlTra = N + (Pl Tra) ; SET NPlIns = N + (Pl Ins) ; SET NPlPar = N + (Pl Par) ; SET NPlAcc = N + (Pl Acc) ; SET NPlAbe = N + (Pl Abe) ; SET NPlCmt = N + (Pl Cmt) ; SET ASgNom = APrc + (Sg Nom) ; SET ASgAde = APrc + (Sg Ade) ; SET ASgGen = APrc + (Sg Gen) ; SET ASgEla = APrc + (Sg Ela) ; SET ASgEss = APrc + (Sg Ess) ; SET ASgIll = APrc + (Sg Ill) ; SET ASgAll = APrc + (Sg All) ; SET ASgAbl = APrc + (Sg Abl) ; SET ASgIne = APrc + (Sg Ine) ; SET ASgTra = APrc + (Sg Tra) ; SET ASgIns = APrc + (Sg Ins) ; SET ASgPar = APrc + (Sg Par) ; SET ASgAcc = APrc + (Sg Acc) ; SET ASgAbe = APrc + (Sg Abe) ; SET ASgCmt = APrc + (Sg Cmt) ; SET APlNom = APrc + (Pl Nom) ; SET APlAde = APrc + (Pl Ade) ; SET APlGen = APrc + (Pl Gen) ; SET APlEla = APrc + (Pl Ela) ; SET APlEss = APrc + (Pl Ess) ; SET APlIll = APrc + (Pl Ill) ; SET APlAll = APrc + (Pl All) ; SET APlAbl = APrc + (Pl Abl) ; SET APlIne = APrc + (Pl Ine) ; SET APlTra = APrc + (Pl Tra) ; SET APlIns = APrc + (Pl Ins) ; SET APlPar = APrc + (Pl Par) ; SET APlAcc = APrc + (Pl Acc) ; SET APlAbe = APrc + (Pl Abe) ; SET APlCmt = APrc + (Pl Cmt) ; LIST Gen_Par = Gen Par ; LIST Gen_Par_Acc = Gen Par Acc ; LIST Gen_Punct = Gen Punct ; LIST Ela_Abl = Ela Abl ; LIST Ela_Tra_Ill_All = Ela Tra Ill All ; LIST LOC-CASE = Ine Ela Ill Ade Abl All ; LIST Ill_All = Ill All ; LIST Ill_Tra = Ill Tra ; LIST Ill_Tra_All = Ill Tra All ; LIST Nom_Gen_Par = Nom Gen Par ; LIST Nom_Par = Nom Par ; LIST SUBJECT-CASE = Nom Gen Par ; LIST NONSUBJECT-CASE = Ess Tra Ine Ela Ill Ade Abl All Abe Com Ins ; LIST NOT-Gen-CASE = Nom Par Ine Ela Ill Ade Abl All Ess Tra Abe Com Ins ; LIST ALLCASES = Nom Gen Acc Par Abl Ade All Ela Ill Ine Ess Tra Abe Com Ins Loc ; LIST Par_Gen = Par Gen ; LIST Par_Punct = Par Punct ; LIST INT-LOC = Ine Ela Ill ; LIST EXT-LOC = Ade Abl All ; # Verbal Properties # ------------------- LIST Neg = Neg ; LIST NEGV = "ei" ; LIST ConNeg = ConNeg ; # choose one of them later LIST Prs = Prs ; LIST Prt = Prt ; LIST Prs_Prt = Prs Prt ; LIST AgPrc = AgPrc ; # ma as adjectival modifier LIST PrfPrc = PrfPrc ; # nut / PrfPcp LIST PrsPrc = PrsPrc ; # va / PrsPrc LIST PCP = AgPrc PrfPrc PrsPrc ; LIST PPPCPs = PrfPrc PrsPrc ; LIST PCPs = AgPrc PrfPrc PrsPrc ; LIST PrsPrc_InfMa_InfE_REF_TEMP = PrsPrc (PrfPrc Gen) (PrfPrc Par) InfMa InfE ; LIST Imprt = Imprt ; LIST Ind = Ind ; LIST Cond = Cond ; LIST Pot = Pot ; LIST FINV = Ind Cond Imprt Pot ; LIST InfA = InfA ; LIST InfE = IIInf InfE ; LIST InfMa = InfMa ; LIST InfA23 = InfA InfE InfMa ; LIST InfA_3 = InfA InfMa ; LIST InfV = InfA InfE InfMa ; # Not sure I should count PrfPrc PrsPrc as LIST InfV-PCPs = InfA InfE InfMa PrfPrc PrsPrc ; LIST Abbr = Abbr ; #LIST AD = AD ; Pcle # Derivation # ---------- LIST DA-US = DA-US ; # vaikeus, no spec tag LIST DV-US = DV-US ; # muodostus, no spec tag #LIST DV-TTA = DV-TTA ; # johdattaa, no spec tag, DV-NTA toimintaa #LIST DER = DA-UUS DA-US DN-IneN DN-LAIneN DN-LLIneN DN-UUS DN-MINEN Der/minen Der/u Der_minen ; # Added with _ LIST DER = Der/inen Der/ja Der/lainen Der/llinen Der/minen Der/u Der_inen Der_ja Der_lainen Der_llinen Der_minen Der_u ; # Added with _ #LIST DV = DV-MINEN DV-US DV-NTA DV-TTA ; LIST DV = Der/minen Der_minen ; # All derivation tags in omorfi: # +Der/inen +Der/ja +Der/lainen +Der/llinen # +Der/minen +Der/oi +Der/sti +Der/tar +Der/ton # +Der/tse +Der/ttain +Der/u +Der/vs LIST N-DER = Der/minen Der/u Der/ja Der/tar Der_minen Der_u Der_ja Der_tar; LIST Der_minen = Der/minen Der_minen ; LIST Der_inen = Der/inen Der_inen ; LIST Der_sti = Der/sti Der_sti ; # Phrasal groups # -------------- LIST AD_PCP = Adv Pcle PrfPrc PrsPrc ; #LIST AD-A = AD-A ; not used, don't have this combined tag anymore (A Adv Pcle) ; LIST A-A_N-PCP = A PrfPrc PrsPrc ; # removed A/N LIST A-A_N-Q = A Qu Pcle ; # HIEMAN, HIUKAN - Pcle, so added Pcle, removed A/N LIST A_AD-A = A Adv Pcle ; # removed A/N AD-A LIST A_AD-A_Q = A Adv Pcle Qu ; # removed A/N AD-A LIST A_Adv = A Adv ; # removed A/N LIST A_Adv_PCP_Det_Q = A Adv PrfPrc PrsPrc Det Qu ; LIST A_N = A N A/N ; LIST A_N_Q_Pron_PCP_Num = A N Qu Pron PrfPrc PrsPrc Num ; # removed A/N LIST A_Num_Pron_Q = A Num Pron Qu ; LIST A_Q_Pron = A Qu Pron ; # removed A/N LIST A_PCP = A PrfPrc PrsPrc ; LIST C_Adv = CS CC Adv ; LIST C-Adv-ETC = CS CC Adv >>> "<,>" "olla" ; LIST N_Pron = N Pron ; # 1 with "toimia" LIST N_Pron_Q = N Pron Qu ; LIST N_V_A_Pron_Q = N V A Pron Qu ; # removed A/N LIST N_Pron_Q_V_SUP = N Pron Qu V Sup ; #LIST Ela-POSP = "asti" "huolimatta" ; not used #LIST Ela-PREP = "huolimatta" ; not used LIST NomHEAD = N Pron Num (V Der/minen) (V Der_minen) ; #LIST NomINAL-FORM = InfA InfE InfMa PrfPrc PrsPrc ; not used LIST VFIN = Prs Prt Cond Pot Neg Imprt ; LIST VFIN-C = Prs Prt Cond Pot Neg Imprt CS CC ; LIST VFIN-C-MYOS = Prs Prt Cond Pot Neg Imprt CS CC "myös" ; LIST VFIN-PCP = Prs Prt Cond Pot Neg Imprt PrfPrc PrsPrc ; #LIST VFIN_PrsPrc = Prt Prs Cond Pot PrsPrc ; not used LIST VFIN_PrsPrc_Inf = Prt Prs Cond Pot PrsPrc (PrfPrc Gen) (PrfPrc Par) InfA InfE InfMa ; # Word lists # ---------- LIST AD-HYVIN = "aika" "aikaisin" "alas" "alhaalla" "alhaalta" "alhaalle" "harvoin" "hiljaa" "kauan" "kauas" "kaukaa" "kaukana" "paljon" "pian" "sekaisin" "tarkoin" "suoraan" "usein" "varhain" "yksin" "yhtä" "mielellään" "vähän" "lähellä" "läheltä" "lähelle" "myöhään" ; LIST AD-MILTEI = "kokonaan" "hiljaa" "suoraan" "yksin" "sekaisin" "tyystin" "täysin" ; LIST AD-PALJON = "aika" "erittäin" "ihan" "hyvin" "kovin" "kyllin" "liian" "melko" "niin" "noin" "näin" "perin" "sangen" "varsin" "ylen" "yhtä" "jokseenkin" "kylliksi" "tarpeeksi" "vallan" "kuinka" "miten" "oikein" ; LIST AD+PrfPrc = "ailahdella" "arveluttaa" "haastaa" "haavoittua" "houkutella" "huomata" "huvittaa" "ilahduttaa" "kannattaa" "raivostua" "kattaa" "kiehtoa" "kiinnostaa" "kunnioittaa" "kuulua" "kuvata" "laskelmoida" "luottaa" "luvata" "mahtailla" "mullistaa" "painaa" "paljastaa" "rasittaa" "rohkaista" "sopia" "taitaa" "valaista" "vaatia" "vaihdella" "vakuuttaa" "uhata" "toivoa" "suositella" "suoda" "tarttua" "tavoitella" "merkitä" "uskoa" "valittaa" "luulla" "yllättää" "tuomita" ; LIST AD+PrsPrc = "alistaa" "ansaita" "arvostaa" "hallita" "hermostua" "huolestua" "innostua" "kiinnostua" "kiusaantua" "kokea" "loukkaantua" "masentua" "pelkistää" "pettyä" "pitää" "hillitä" "rajoittaa" "saastua" "suosia" "tyrmistyä" "vaivautua" "vakuuttua" ; LIST ADSET = "hyvin" "melko" "melkein" "kovin" "niin" "näin" ; LIST AIKA = "aika" ; LIST AIVAN-IHAN = "aivan" "ihan" "melkein" ; LIST ALETA = "aleta" ; LIST All = All ; LIST All-POSP = "asti" ; LIST ASIA = "asia" "ruoka"; LIST ASTI = "asti" "saakka" ; LIST ASTUA = "astua" ; LIST AUX-S = "itse" "kaikki" "kumpikin" "molemmat" ; LIST AVOSYLIN = "avo_syli" ; LIST Gen-PREP = "yli" "läpi" ; LIST Gen-WORD = "metri" "milli_metri" "kilo_metri" "vuosi" "päivä" "kuu_kausi" "minuutti" "sekunti" "tunti" "vuoro_kausi" "maa" "prosentti" "paras" "markka" "penni" "dollari" "kruunu" "henkilö" "kierros" "maa" "maisema" "uutinen" "tienoo" ; LIST HARVA = "harva" "kumpikin" "suora" "enin" ; # "enin" added 19.01.2015 -FMT+KM LIST HARVA-SET = "asua" "tahti" "hammas" "verkko" "pensaikko" "asutus" ; LIST HITTO = Interj "hitto" "herra_jumala" "kuinka" "sinä" "te" "<\!>" "hellanlettas" "saatana" "perkele" "vittu" "voi" ; LIST HYVA = "hyvä" ; LIST HYVA_HUONO = "hyvä" "huono" "ikävä" "kiva" "mukava" "hauska" "järkevä" "vaikea" "helppo" "mahdollinen" "mahdoton" "tärkeä" "hankala" "aiheellinen" "tarpeellinen" "välttämätön" ; LIST HYVANSA = "hyvänsä" ; LIST HYVIN-1 = "hyvin" ; LIST HYVIN = "aikaisin" "alas" "alhaalla" "alhaalta" "alhaalle" "harvoin" "hiljaa" "kauan" "kauas" "kaukaa" "kaukana" "paljon" "pian" "sekaisin" "tarkoin" "suoraan" "usein" "varhain" "yksin" "mielellään" "vähän" "lähellä" "läheltä" "lähelle" "hyvin" "tyystin" "kovin" "monasti" "paljon" "usein" "ylhäällä" "usea" "harva" "moni" "monta" "kovaa" "hiljaa" "täynnä" ; LIST Ill-POSP = "asti" ; LIST Ill-VERB = "vaikuttaa" "rientää" "siirtää" "siirtyä" "pyytää" "tuoda" ; LIST ITSE = "itse" ; LIST JALKEEN = "jälkeen" ; LIST JOHDOSTA = "johdosta" ; LIST JOKA = "joka" ; LIST JOKIN = "jokin" ; LIST JUURI = "juuri" ; LIST KAIKKI = "kaikki" ; LIST KAIKKIAAN = "kaikkiaan" ; LIST KANSSA = "kanssa" ; LIST KAUPPA = "kauppa" ; LIST KAUTTA = "kautta" ; LIST KELLO = "kello" "klo" ; LIST KERRAN = "kerta" ; # NB KERRAN NOT YET Adv IN FINTWOL ; LIST KERTA = "kerta" "tapaus" "paikka" "puoli" "suhde" "suunta" "ainoa" "ikinen" "käänne" "lähtö" ; LIST KESKUSTA = "keskusta" ; LIST KIELI = "kieli" "virka_kieli" "kieli_muoto" "kieli_kunta" "kieli_kohtainen" "suku_kieli" "kieli_perhe" "opiskelu" "opiskella" "opettaa" "opetus" "tyttö_koulu" "poika_koulu" "hallinto_kieli" "yli_opisto" "korkea_koulu" "perus_koulu" "koulu" "opetus_ohjelma" ; LIST KO = Qst ; LIST KOKO = "koko" ; LIST KOOTA = "koota" "haluta" "siirtää" "siirtyä" "tulla" "mennä" "ottaa" "vetää" "sijoittaa" "majoittaa" "muuttaa" ; LIST KUIN = "kuin" ; LIST KYSY = "kysyä" "kysymys" "tiedustelu" "tiedustella" Qst ; LIST LAIllA = "lailla" ; LIST MAANANTAI = "maanantai" "tiistai" "keskiviikko" "torstai" "perjantai" "lauantai" "sunnuntai" ; LIST LIIAN = "liian" ; LIST LUKU = "num-luku" ; LIST MAKSAA = "maksaa" "tuntua" ; LIST MENNA = "mennä" ; LIST MIELI = "mieli" ; LIST MITTAIneN = "mittainen" "pituinen" "kokoinen" "oloinen" "tuntuinen" "näköinen" "painoinen" "kaltainen" "tapainen" "mukainen" "sorttinen" ; LIST MOLEMPI = "molempi" ; LIST MUKAIneN = "mukainen" "tuntuinen" "oloinen" ; LIST MUTTA = "mutta" ; LIST MYOS = "myös" ; LIST VAAN = "vaan" ; LIST NAIN = "näin" ; LIST NEG-AMBIGUOUS = "niittää" "muuttaa" "kerrata" "he" ; LIST NES = "pitää" "täytyä" "täytyy" "tulla" "pakko" ; LIST NIIN = "niin" ; LIST NIIN-YHA = "niin" "yhä" "yli" "ylitse" "mitä" ; LIST NIIN-NOIN-NAIN = "niin" "noin" "näin" ; LIST NOUN+InfA = "halu" "tahto" "yritys" "päätös" "lupa" "aikomus" "tarve" "alttius" "tavoite" "oikeus" "mahdollisuus" "velvollisuus" "valmius" "ajatus" "tarkoitus" "syy" "tapa" "määrä" "pyrkimys" "pakko" "kyky" "taito" "vara" "hanke" "vastentahtoisuus" "keino" "aika" ; LIST NOUN-OF-MEASURE = "kilo" "metri" "litra" "osa" "pala" ; LIST OLLA = "olla" ; LIST OLLA_TULLA = "olla" "tulla" ; LIST OMIEN = "oma" "kirja" "asia" ; LIST OTTAA = "ottaa" ; LIST OTTAA-2 = "ottaa" "omaksua" "liittää" "antaa" "siirtyä" ; LIST OTTAA_KELVATA = "ottaa" "kelvata" ; LIST PAATTYA = "päättyä" "loppua" "johtaa" ; LIST PARI_PUOLI = "pari" "puoli" ; LIST PAASTA = "laskea" "sijoittaa" "antaa" "sallia" "tunkeutua" ; LIST PALJON = "paljon" "vähän" "jonkin=verran" ; LIST PALJON-MONI = "paljon" "vähän" "moni" "usea" "harva" "hyvin" "oikein" "väärin" "kovin" "tarpeeksi" ; LIST PANNA = "panna" "arpi" "sakka" ; LIST PAREMPI = "parempi" ("hyvä" A Comp) ; LIST PersPl123 = "me" "te" "he" ; LIST PIENIA_ELAA = "pieniä" "elää" "omata" "juuria" ; LIST POIKA = "poika" "mies" "veijari" "elämä" "tapa" ; LIST IHM = "nainen" "vaimo" "mies" "poika" "tyttö" "veli" "sisko" "ystävä" "kuopus" ; LIST POSS-DEL-V = "pitää" "saada" "tehdä" "menettää" "kestää" "pitää" "ummistaa" "kantaa" ; LIST POSS-NomSg = "surma" "paikka" "kaikki" "merkitys" "aika" "pinta" "silmä" "vastuu" ; LIST POSS-NomPl = "kaikki" "aika" ; LIST PUHUA = "puhua" "käyttää" "kirjoittaa" ; LIST PUOLA = "puola" ; LIST PUOLI = "puoli" ; LIST PUOLI-KOKO-OSA = "puoli" "koko" "osa" ; LIST SAADA = "saada" ; LIST SAAPUA = "saapua" ; # CLASH SAAPUA/SAAVUTTAA, I.E. ACT/PASS ; LIST SANOA = "sanoa" ; LIST SE = "se" ; LIST SEITSEMAN = "seitsemän" "kahdeksan" "yhdeksän" "kymmenen" ; LIST SIIRTYA-TULLA-JOUTUA = "siirtyä" "tulla" "joutua" "siirtää" "sijoittaa" ; LIST TAHANSA_VAIN = "tahansa" "vain" "hyvänsä" "mikä" "mikäkin" "missäkin" "kulloinkin" ; LIST TAHANSA-2 = "tahansa" "hyvänsä" ; LIST TAI = "tai" "tahi" "taikka" ; LIST TAllAIneN = Num Pron Det "tällainen" "sellainen" "semmoinen" ; LIST TALVIneN = "kesäinen" "keväinen" "syksyinen" "talvinen" ; LIST TAMA = "tämä" ; LIST TARVITA = "tarvita" "pitää" ; LIST TIETAA = "tietää" "kysyä" "tiedustella" ; LIST TILANNE = "tilanne" "kuusi" ; LIST TIME-WORD = ("aika" N) "ikä" "hetki" "sekunti" "minuutti" "tunti" "aamu" "ilta" "päivä" "ilta_päivä" "arki_aamu" "arki_päivä" "kesä_aamu" "yö" "viikko" "kuu" "kuu_kausi" "vuosi" "vuosi_kymmen" "vuosi_sata" "kausi" "kesä" "talvi" "syksy" "kevät" "maanantai" "tiistai" "keski_viikko" "torstai" "perjantai" "lauantai" "sunnuntai" "suku_polvi" "mies_polvi" ("([0-9]*)-luku"r) ; #LIST TIME-MEASURE = ; # add! LIST TOSI = "tosi" ; LIST TULI = "tuli" "voi" "jätti" "myy" ; LIST TULLA = "tulla" ; LIST TULLA_SAADA = "tulla" "saada" ; LIST TULOS = "tulos" ; LIST TUO = "tuo" ; LIST UUSIA = "uusia" "pieniä" ; # AS A REPrsENTATIVE OF V/A -AMB LIST VAllAN = "vallan" ; LIST VAllAN-WDS = "saada" "poliittinen" "taloudellinen" "presidentti" "edus_kunta" "kuningas" "anastaa" "pitää" "joutua" "alistaa" "alla" "ottaa" "antaa" "luovuttaa" ; LIST VERRAN = "verta" ; LIST VIIME = "viime" "ensi" "vuosi" ; LIST VIREIllA = "vireillä" ; LIST VUOSI = "vuosi" "kausi" "kevät_kausi" "syys_kausi" "kesä_kausi" "talvi_kausi" "alku_kausi" "loppu_kausi" ; LIST VUO_VOI = "vuo" "voi" ; LIST YKSI = "yksi" ; LIST YLI_AllE = "yli" "alle" ; LIST EHTA = "ehta" "normaalinen" "lehtinen" "koti-ikävä" ; LIST ELAMA_KUOLEMA = "elämä" "kuolema" "voima" "taantuma" ; LIST ELAVA-SELVA = "elää" "elävä" "selvä" ; LIST ENEM-VAHEM = "enemmän" "vähemmän" "tarpeeksi" ; LIST ENEMMAN = "enemmän" ; LIST ENNEN = "ennen" ; LIST ERI = "eri" ; LIST ESIM = "esimerkiksi" ; LIST NORJA = "norja" "suomi" "ruotsi" "tanska" "Norja" "Suomi" "Ruotsi" "Tanska" ; LIST SITTEN = "sitten" ; LIST SUHTEEN = "suhteen" ; LIST Num-words = "tuhat" "miljoona" "miljardi" ; LIST Num-PUOLET-KOLMANNES = Num "puoli" "kolmannes" "neljännes" "viidennes" "kuudennes" "seitsemännes" "kahdeksannes" "yhdeksännes" ; LIST UNDECL_ADJ = "eka" "ensi" "viime" "koko" "ainut" "ehta" "haka" ; # VERB LISTS # ---------- LIST VOI = "voida" ; LIST VOIMA = "voima" ; LIST YLLATTAA = "yllättää" ; LIST REALCOPULAS = "olla" "voida" "saattaa" ; LIST COPULAS = "olla" "taitaa" "saattaa" ; LIST COP = "olla" ; LIST MOD-ASP = MOD-ASP ; # ?? "voida" "saattaa" "taitaa" ?? # Some things to consider from sme-dis.rle # These verbs can take arguments, so they do not belong in the AUX group, # but they are nevertheless mapped to (@+FAUXV). # Halvhjelpeverb: álgit, berret, dohkket, gártat, heivet, liigut, šaddat - in some of the meanings # LIST MOD-ASP = "bállet" "berret" "dáidit" "fertet" "galgat" "gillet" "lávet" "sáhttit" "seahtit" "soaitit" "viggat" ; LIST InfA-VERB = "alkaa" "haluta" "tahtoa" "yrittää" "päättää" "saada" "voida" "täytyä" "sallia" "luvata" "aikoa" "meinata" "pitää" "sietää" "tulla" "tarvita" "viitsiä" "antaa" "muistaa" "unohtaa" "saattaa" "uskaltaa" "pelätä" "kannattaa" "mahtaa" "osata" ; LIST InfMa-VERB = "päästä" "alkaa" "ruveta" "ohjeistaa" ; LIST Ref-VERB = "ajatella" "arvella" "arvioida" "epäillä" "haluta" "havaita" "huomata" "huomauttaa" "huutaa" "ilmoittaa" "katsoa" "kerskailla" "kertoa" "kirjoittaa" "kokea" "korostaa" "kuolla" "kuulla" "kuvitella" "laskea" "luulla" "lähettää" "mainita" "muistuttaa" "myöntää" "nähdä" "näkyä" "näyttää" "odottaa" "olettaa" "osoittaa" "osoittautua" "paljastaa" "pelätä" "sallia" "sanoa" "tahtoa" "tajuta" "tarjota" "tiedostaa" "tietää" "todeta" "toivoa" "tulkita" "tuntea" "tuntua" "uskoa" "vaikuttaa" "valittaa" "vannoa" "vuotaa" "väittää" ; # Ref-VERB - verbs from text_cg1.txt, there may be more of them LIST InfMa-Ela = "estää" "kieltää" "kieltäytyä" "lakata" "luopua" "lähteä" "pidätellä" "poistua" "päästä" "varoitella" "varoittaa" "välttyä" "yllättää" ; # verbs from text_cg1.txt, there may be more of them LIST InfMa-Ill = "alistua" "ankara" "arka" "asettua" "astua" "auttaa" "ehtiä" "etevä" "hakea" "haluta" "harjoitella" "heittää" "herkkä" "herättää" "herätä" "hidas" "hyvä" "ilmestyä" "innoittaa" "innostaa" "innostua" "johtaa" "joutua" "jättää" "jäädä" "kannustaa" "kehottaa" "keskittyä" "kiinnostua" "kiire" "kokoontua" "kova" "kutsua" "kääntyä" "käydä" "kyetä" "kykenemätön" "kysyä" "luoda" "luonteva" "lähteä" "mahtua" "matkustaa" "mennä" "mukautua" "määrätä" "neuvoa" "nimetä" "nimittää" "nojautua" "nopea" "nousta" "ohjata" "onnistua" "opetella" "opettaa" "oppia" "osua" "pakottaa" "palkata" "paneutua" "panna" "pelastaa" "perustaa" "pistää" "pätevä" "päästä" "päästää" "päättyä" "päätyä" "pyrkiä" "pystyä" "pysähtyä" "pyytää" "rajoittaa" "rientää" "riittää" "rikas" "rohkaista" "ryhtyä" "saada" "saapua" "sattua" "siirtää" "siirtyä" "siittää" "sitoutua" "sokea" "sopeutua" "suostua" "suunnitella" "suuntautua" "syntyä" "syvällinen" "taata" "taipuvainen" "tarkka" "tarvita" "tehdä" "tottua" "tulla" "tuoda" "täydellinen" "täysi" "uhrata" "utelias" "uudistaa" "vaatia" "vahvistaa" "valita" "valmis" "valmistautua" "valmistua" "valtuuttaa" "vapaa" "vapautua" "varautua" "varma" "varoittaa" "välittää" "äänestää" ; # verbs from text_cg1.txt, there may be more of them LIST Ins-Advl = "johtua" "toimia" ; LIST Ill-Advl = "keskittyä" "kiirehtiä" "luottaa" "mennä" "tulla" "vedota" ; # + all InfMa-Ill ?? LIST Ela-Advl = "elää" "huolehtia" "huolia" "ilmestyä" "jutella" "kommentoida" "käydä" "nauttia" "osoittaa" "paeta" "pitkällä" "pitää" "poistua" "puhua" "päästä" "rakentaa" "siirtyä" "tehdä" "tulla" "tuottaa" "vaalia" "vilkaista" "virkkaa" "vähentää" "välittää" ; # verbs from text_cg1.txt, there may be more of them # + all InfMa-Ela ?? LIST Par-OBJ = "ahdistaa" "aiheutua" "aineellistaa" "ajaa" "ajatella" "aktivoida" "alentaa" "aloittaa" "analysoida" "antaa" "arpoa" "arvioida" "arvostaa" "arvostella" "asettaa" "asua" "aukaista" "auttaa" "avata" "avustaa" "edeltää" "edetä" "edistää" "edustaa" "ehdottaa" "elää" "ennakoida" "entistää" "epäillä" "eristää" "erottaa" "esitellä" "esittää" "estää" "haavoittaa" "hahmottaa" "haitata" "hakea" "hallita" "haluta" "hankkia" "hapuilla" "harjoitella" "harjoittaa" "harrastaa" "haudata" "havainnollistaa" "havaita" "hedelmöittää" "heijastaa" "heitellä" "heittää" "helpottaa" "hengittää" "henkiä" "herättää" "hidastaa" "hoitaa" "huolia" "huomata" "huutaa" "huvittaa" "häiritä" "hämmentää" "hämmästyttää" "hävetä" "hävittää" "hymyillä" "hyväksyä" "hyödyttää" "ihailla" "ihmetellä" "ilmaista" "ilmentää" "ilmoittaa" "inhimillistää" "innostaa" "iskeä" "istua" "istuttaa" "itkeä" "jakaa" "jarruttaa" "jatkaa" "johdattaa" "johtaa" "juhlia" "julkaista" "julkistaa" "juuria" "jäljitellä" "jännittää" "järjestää" "järkeillä" "järkyttää" "jättää" "jynssätä" "kadottaa" "kahlita" "kaihtaa" "kaivaa" "kaivata" "kaivella" "kammota" "kammottaa" "kannattaa" "kantaa" "kartoittaa" "kasvattaa" "katsella" "katsoa" "kauhistua" "kaunistaa" "kehittää" "kehottaa" "keittää" "keksiä" "kerrata" "kertoa" "kertyä" "kerätä" "keskittää" "kestää" "kieltää" "kiinnittää" "kiinnostaa" "kiittää" "kirjoittaa" "koetella" "kohdata" "kohdella" "kohottaa" "kokea" "kokeilla" "kommentoida" "koota" "koristaa" "korjata" "korostaa" "korottaa" "korvata" "koskettaa" "kouluttaa" "kuivaa" "kuivata" "kukkia" "kuljettaa" "kulkea" "kuluttaa" "kumarrella" "kumartaa" "kumota" "kunnioittaa" "kutsua" "kuulla" "kuunnella" "kuvailla" "kuvata" "kuvitella" "kärsiä" "käsitellä" "käsittää" "kätkeä" "kääntää" "käynnistää" "käyttää" "kylvää" "kysellä" "kysyä" "laatia" "laittaa" "laskea" "lausua" "leikata" "leikkiä" "leimata" "levittää" "liata" "liikauttaa" "liikuttaa" "liioitella" "liittää" "lisätä" "lopettaa" "loukata" "luetella" "lukea" "luoda" "lähestyä" "lähettää" "lähetä" "löytää" "löytyä" "lykätä" "lyödä" "maalata" "mainita" "mainostaa" "mairitella" "masentaa" "merkitä" "miellyttää" "miettiä" "mitata" "moittia" "muistaa" "muistella" "muistuttaa" "mullata" "muokata" "muotoilla" "muovata" "museoida" "muuttaa" "määritellä" "myöntää" "myydä" "nauraa" "nauttia" "neuvoa" "niellä" "niistää" "niittää" "nimittää" "normaalistaa" "nostaa" "nostattaa" "noudattaa" "nousta" "nähdä" "näyttää" "odottaa" "ohjata" "omaksua" "omata" "omia" "omistaa" "opetella" "opettaa" "opiskella" "oppia" "osata" "osoittaa" "ostaa" "ottaa" "ounastella" "paeta" "paheksua" "painaa" "paljastaa" "palkata" "palvella" "parantaa" "parjata" "peittää" "pelata" "pelästyä" "pelätä" "periä" "perustella" "perätä" "pestä" "pettää" "pidättää" "piilotella" "piirtää" "pilkata" "pirstoa" "pistää" "pitää" "pohtia" "poistaa" "polkea" "potkia" "puhaltaa" "puhdistaa" "puhua" "puhuttaa" "puida" "puolustaa" "purkaa" "purra" "puuttua" "pyyhkiä" "pyytää" "raahata" "rajoittaa" "rakastaa" "rakentaa" "rangaista" "rauhoittaa" "ravistella" "rikkoa" "saattaa" "saavuttaa" "salata" "samanlaistaa" "sammuttaa" "sataa" "sattua" "selittää" "selvittää" "seurata" "sietää" "siirtää" "siivota" "sijata" "sisäistää" "sisältää" "sitoa" "siunata" "soittaa" "solmia" "sosiaalistaa" "soveltaa" "suitsuttaa" "sukia" "sulkea" "suomia" "suoria" "suorittaa" "suosia" "suositella" "surra" "suunnata" "säikähtää" "säädellä" "sääliä" "säästää" "syödä" "syyttää" "tahtoa" "takoa" "tallata" "taltioida" "taluttaa" "tarjota" "tarkastella" "tarkistaa" "tarkkailla" "tarkoittaa" "tarvita" "tavata" "tavoitella" "tehdä" "teorioida" "tervehtiä" "tietää" "tilata" "tiukata" "todeta" "toimittaa" "toistaa" "toivoa" "totella" "tuhlata" "tuhota" "tukea" "tulkita" "tulvia" "tuoda" "tuottaa" "tutkia" "täydellistää" "täyttää" "töniä" "tyrkyttää" "työntää" "työstää" "uhata" "uskoa" "uudistaa" "vaalia" "vaarantaa" "vaatia" "vahvistaa" "vaihdella" "vaihtaa" "vaimentaa" "vaivata" "valaista" "valita" "valmistaa" "valua" "varista" "varjella" "varoitella" "varoittaa" "vaurioittaa" "vetää" "viestiä" "viettää" "vihata" "viljellä" "vilkaista" "virallistaa" "virkistää" "virrata" "virvoittaa" "voidella" "väheksyä" "vähentää" "vähätellä" "väistää" "välittää" "välttää" "vääntää" "ärsyttää" "yksilöllistää" "yleistää" "yliarvioida" "ylläpitää" "ymmärtää" "yrittää" ; # verbs from text_cg1.txt, there may be more of them LIST LOC-V = "sopia" "tulla" "mennä" "muuttaa" ; LIST Tässä-verb = "asettaa" "istua" "joutua" "keskittyä" "kiirehtiä" "mennä" "pysyä" "rientää" "saapua" "sattua" "seistä" "siirtää" "siirtyä" "sijoittaa" "tulla" "tuoda" "vedota" "viedä" ; LIST Tästä-verb = "liikua" "mennä" "siirtää" "siirtyä" "tulla" "tuoda" "vedota" "viedä" ; # Funky Case # ---------- # Partitive # --------- # Sataa lunta. Paistaa aurinkoa. LIST Weather-Verbs = "sataa" "tuulla" "paistaa" ; # verbs that can potentially not have a subject. Can add to these, but this is a start now. LIST Impersonal = "kannattaa" "pitää" ; LIST Non-Nom-Subj = "kiinnostaa" "tuntua" ; # partitive too LIST AUXs = "olla" "ei" ; # Complementizers # --------------- LIST ETTA = "että" "" "" "" ; # vaillettä? LIST VAIKKA_KUIN_JOS = "vaikka" "kuin" "jos" "ties" ; LIST JOS_VAIKKA = "jos" "vaikka" ; LIST JOS_KUN_KOSKA_VAIKKA = "jos" "kun" "koska" "vaikka" ; LIST Compl = CS CC "<,>" Punct "joten" "jotta" "että" "jos" "kun" "koska" "vaikka" "kuin" ; # Question Words # -------------- LIST MIKA = "mikä" ; LIST MIKA-KUKA = "mikä" "kuka" ; LIST KUINKA-MITEN-MIllOIN = "kuinka" "miten" "milloin" ; #SET QWords = MIKA-KUKA OR KUINKA-MITEN-MIllOIN ; in sets # Punctuation # ----------- LIST Dash = Dash ; LIST COLON = ":" ; LIST SCOLON = ";" ; LIST COMMA = "," ; LIST COMMA_SCOL = "," ":" ";" ; LIST ComMA = "<,>" Punct ; LIST ComMA_N_Pron_Q = "<,>" N Pron Qu ; LIST ComMA_N_Pron_Q_V_SUP_BOS = "<,>" N Pron Qu V Sup >>> "kuin" ; LIST LEFT = LEFT ; LIST RIGHT = RIGHT ; LIST OM = >>> """ "“" ; LIST OMS = >>> """ ":" ";" "“" ; LIST TERMINATIVEPO = "asti" "saakka" ; LIST NPron = N Pron ; LIST PrCase = Par Gen ; LIST SIEL = "sieltä" "siellä" "sielle" ; LIST PoCaseNonLoc = Par Gen ; LIST PoCase = Ela Abl Par Gen All Ill ; LIST EXTENDED_CASE = "asti" "mennessä" "saakka" ; # "nähden", "katsoen", etc., handled by rule below # but IFF they have Po and V analysis LIST PAR_ONLY = "ennen" "ilman" ; # LIST PAR_AND_GEN # LIST GEN_ONLY LIST NUMS = "yksi" Num; LIST VOISIKO = ""i ; # Things to sort # -------------- LIST UP = "<\\p{Lu}(.*)>"r ; LIST Unknown = () () ? ; LIST Digit = Digit ; LIST Roman = Roman ; SET Letter = Num - Digit - Roman ; #LIST = ; #LIST = ; #LIST = ; #LIST = ; # don't have this tag! #LIST = ; #LIST = ; # now POSS_SUFF #LIST = <Title> ; not used #LIST <Title>_Prop = <Title> Prop ; not used #LIST <Tulos> = <Tulos> ; not used LIST ElaLeft = "asti" "huolimatta" "lähtien" "riippumatta" "käsin" ; # rakenteista käsin # <ElaLeft> verbs from text_cg1.txt, there may be more of them LIST ElaRight = "huolimatta" ; # <ElaRight> verbs from text_cg1.txt, there may be more of them LIST NomLeft = "sitten" ; LIST GenLeft = "aikaan" "aikana" "aikoihin" "alla" "alle" "alta" "alusta" "ansiosta" "avulla" "edelle" "edellä" "edessä" "edestä" "eteen" "eteensä" "hyväksi" "johdosta" "jälkeen" "kanssa" "kautta" "keskelle" "keskellä" "keskeltä" "kesken" "keskuudessa" "keskuuteen" "kohdalla" "kohdalle" "kuluttua" "laidassa" "lisäksi" "lomassa" "luo" "luokse" "luota" "lähellä" "läheltä" "lähettyville" "lähtien" "läpi" "lävitse" "mennessä" "mielestä" "muassa" "mukaan" "mukana" "myötä" "nojalla" "ohella" "ohessa" "ohi" "pariin" "parissa" "parista" "perusteella" "perässä" "perään" "poikki" "puoleen" "puolella" "puolelle" "puolesta" "puolivälissä" "päälle" "päällä" "päältä" "päässä" "päästä" "rinnalla" "rinnalle" "sijaan" "sijasta" "sisälle" "sisällä" "sisältä" "sisään" "sitten" "suhteen" "taakse" "takaa" "takana" "takia" "tasalla" "tasalle" "tienoilla" "tähden" "ulkopuolella" "ulottuvilla" "varaan" "varassa" "varrella" "varressa" "verran" "viereen" "vieressä" "vierestä" "vuoksi" "väliin" "välillä" "väliltä" "välissä" "välistä" "yli" "ylitse" "yllä" "yläpuolella" "ympäri" "ympärille" "ympärillä" "ympäriltä" "äärelle" "äärellä" "ääreltä" ; # <GenLeft> verbs from text_cg1.txt, there may be more of them LIST GenRight = "alle" "alta" "kautta" "kesken" "läpi" "ohi" "yli" "ylitse" ; # "jälkeen" ? # <GenRight> verbs from text_cg1.txt, there may be more of them LIST ParLeft = "edelle" "edellä" "ennen" "jälkeen" "kautta" "kohden" "kohtaan" "kohti" "lähellä" "läheltä" "myöten" "paitsi" "pitkin" "päin" "sitten" "vailla" "vaille" "varten" "vastaan" "vastapäätä" "vasten" ; # <PtvLeft> verbs from text_cg1.txt, there may be more of them LIST ParRight = "edelle" "edellä" "ennen" "ilman" "keskelle" "keskellä" "kesken" "kohti" "lähellä" "läheltä" "paitsi" "pitkin" "päin" "vailla" "vaille" "vasten" "vastoin" "ympäri" ; # <PtvRight> verbs from text_cg1.txt, there may be more of them # List between the rules: Following can all be Po and Pr according to morph: alkaen, alla, alle, alta, asti, ennen, huolimatta, katsomatta, keskellä, keskelle, keskeltä, kohti, koskien, liki, lähelle, läheltä, lähellä, lähtien, myötä, paitsi, pitkin, pitäen, päin, vastoin, vastapäätä, välillä, välissä, välistä, yli LIST Kieli = "amhara" "aramea" "englanti" "espanja" "flaami" "gaeli" "heprea" "islanni" "italia" "japani" "kerkeä" "kiina" "kolta" "kopti" "kreika" "kreikka" "lapi" "latina" "liivi" "mongoli" "norja" "persia" "puola" "ranska" "romani" "ruotsi" "saame" "saksa" "suomi" "tanska" "turki" "unkari" "venäjä" "viro" ; LIST KieliV = "puhua" "oppia" "opiskella" "harrastaa" "lukea" "osata" "kääntää" ; LIST KieliVy = "ymmärtää" ; LIST KieliVk = "kääntää" "käännos" ; LIST KieliN = "opiskelu" "osaaminen" "ymmärtäminen" "taito" "kurssi" "keskustelukurssi" ; LIST ORG = "pankki" ; #LIST <LG> = <LG> ; # don't have this tag! # N <LG> in CG1 was language in addition to N Prop LIST Nec-V = "tulla" "pitää" "täytyä" ; # was <NEC-V>; added tulla, pitää, täytyä LIST Prt-w = "viime" "eilen" "aikaisemmin" "aiemmin" "menneisyys" ; LIST Prs-w = "ensi" "tänään" "huomenna" "seuraava" "pian" "tulevaisuus" "aikomus" "aikoa" ; LIST QMARK = "<?>" ; LIST ?! = "<?>" "<!>" ; LIST CLB = CLB ; LIST CLB? = >>> <<< "<:>" "<#>" "<(>" "<)>" "<'>" "<">" "<,>" Rel "<->" "kuinka" "miten" "milloin" "-" CS CC Qst Punct ; LIST CLB?-C = >>> <<< "<:>" "<#>" "<(>" "<)>" "<'>" "<">" "<,>" "<->" ; LIST CLB?_Neg = >>> <<< "<:>" "<#>" "<(>" "<)>" "<'>" "<">" "<,>" CS CC Neg ; LIST CMP-ENNEN = Comp "ennen" ; LIST MAINV = Prs Prt Imprt ; #LIST MAINV_CLB? = Prs Prt Imprt >>> <<< "<:>" "<#>" "<(>" "<>" "<'>" "<">" "<,>" CS CC ; not used LIST Punct = Punct ; LIST QUOTE = Quote ; LIST QUO = "<">" ; #LIST MAN = MAN ; # erityisesti hyvinkin; -mmin, -kin, -sti A / ADV; Inf2 katsoen, pitäen, luovien -- don't have this special tag (only Foc/kin), removed! LIST Num_C_HETI_CLB = Num "heti" >>> <<< "<:>" "<#>" "<(>" "<>" "<'>" "<">" "<,>" Rel "<->" "kuinka" "miten" "milloin" "-" CS CC Qst Punct ; LIST Num-Q-Ill = Num Qu Ill ; #LIST Prop_HEUR = Prop <MORPH-HEUR!> ; not used #LIST QUANTIFIER = Qu Num ; not used #LIST REF = REF ; - obsolete tag for: V Act/Pss PrfPrc/PrsPrc Sg Gen - moved to SETs #LIST REF_TEMP = REF TEMP ; # don't have these tags! zero example of such wordform in text_cg1.txt - changed in one rule to REF (was about REF-form) ; LIST REF-CORR = Prs Prt InfA InfE InfMa PrsPrc ; # required form of Ref-VERB LIST TEMP = (V Pss PrfPrc Sg Par) (V Act InfE Ine) (V Pss InfE Ine) ; LIST TEMP-Par = (V Pss PrfPrc Sg Par) ; # CG-1 TEMP = (V Pss PrfPrc Sg Par) (tultua) or (V Act InfE Ine) (ollessaan) PxSg3 / PxPl3, but it doesn't make any ambiguity (only PxSg3 / PxPl3) ; #LIST THREE = \3 ; # ??? LIST Pe4 = Pe4 ; LIST WORD = N A Adv V Pron CS CC Po Pr Adp Interj Pcle Num Abbr ACR ; # removed \? LIST Cmpnd = Cmpnd ; #LIST Compounds = Pref (N A) (N V) (A V) (Sg Pl) (Nom Gen) (Nom Par) (Gen Par) (Nom Ess) (Gen Ess) (Nom Tra) (Gen Tra) (Nom Ine) (Gen Ine) (Nom Ela) (Gen Ela) (Nom Ill) (Gen Ill) (Nom Ade) (Gen Ade) (Nom Abl) (Gen Abl) (Nom All) (Gen All) (Nom Abe) (Gen Abe) (Nom Com) (Gen Com) (Nom Ins) (Gen Ins) ; # was before changes in morph #LIST NONSUBJECT-CASE = Ess Tra Ine Ela Ill Ade Abl All Abe Com Ins ; #LIST VN = (V N); # V and N tag in one reading (compound) ; # was before changes in morph #LIST AN = (A N); # A and N tag in one reading (compound) ; # was before changes in morph LIST Hauskaa = ("hauska" Par) ; LIST Täytyy = ("<täytyy>") ; LIST VPcle = VPcle ; LIST AdvPcle = (Adv VPcle) ; LIST Ottaa-pcle = "mukaan" "vastaan" ; LIST Nostaa-pcle = "sisälle" ; LIST Jättaa-pcle = "väliin" ; LIST Tulla-pcle = "vastaan" ; LIST AdvAdds = Ade All Dem Der/Sti Der_Sti Foc/pa Foc_pa Foc/ko Foc_ko Ine Interr Qst Qnt Qu Rel Ins ; LIST Foc_ko = Foc/ko Foc_ko ; LIST Pref- = Pref- Pref ; LIST Sem = Sem/Human Sem/Geo Sem/Org Sem_Human Sem_Geo Sem_Org ; LIST Sem_Human = Sem/Human Sem_Human ; LIST Sem_Geo = Sem/Geo Sem_Geo ; LIST Sem_Org = Sem/Org Sem_Org ; LIST Geo_word = "kaupunki"i "tori"i "katu"i "meri"i "lahti"i "järvi"i "joki" "saari"i ; LIST Geo_dir = "itä" "louna" "lounais" "länsi" "pohja" "pohjois" "pohjainen" "etelä" ; LIST Use_Rare = Use/Rare Use_Rare ; LIST Dial/East = Dial/East ; LIST Dial/West = Dial/West ; LIST ADes = "seuraava" "tyytyväinen" "jännittävä" "painava" "mahtava" "inhottava" "käytävä" "merkittävä" "miellyttävä" "palava" ; LIST VÄRI = "valkoinen" "musta" "punainen" "sininen" "keltainen" "vihreä" "ruskea" "harmaa" "harmahtava" "kirjava" "värillinen" ; LIST Lainen = "(.*)lainen"r "(.*)läinen"r "(.*)mainen"r ; LIST Llainen = "(.*)lainen"r "(.*)läinen"r "(.*)mainen"r "(.*)llinen"r ; LIST W0 = <W:0> ; LIST Use_Hyphen = Use_Hyphen Use/Hyphen ; LIST Use_NoHyphens = Use_NoHyphens Use/NoHyphens ; # ======================================================================== # ============= # # Sets # # ============= # # Sets # ---- SET VERB = V - DER - NEGV; # V is all readings with a V tag in them, VERB should # be the ones without an N tag following the V (compound) ; # Personal Pronouns # ----------------- SET ImprtActSg2 = Imprt + Act + Sg2 ; SET V-Pl = VERB + PLa ; SET V-Sg = VERB + SGa ; SET SGPRON = Pron + SGa; SET PLPRON = Pron + PLa; SET OBJ-CASEs = NomPl OR Par OR GenSg ; SET MINÄ = SGPRON + ("minä") ; SET SINÄ = SGPRON + ("sinä") ; SET HÄN = SGPRON + ("hän") ; # Changed from PLPRON + ("hän") etc. - 20.01.2015 - FMT+KM SET ME = PLPRON + ("me") ; SET TE = PLPRON + ("te") ; SET HE = PLPRON + ("he") ; # Pron Pers instead? SET FIRST_PersON_SG = MINÄ OR Sg1 OR PxSg1 ; SET SECOND_PersON_SG = SINÄ OR Sg2 OR PxSg2 ; SET THIRD_PersON_SG = HÄN OR Sg3 OR PxSg3 ; SET FIRST_PersON_PL = ME OR Pl1 OR PxPl1 ; SET SECOND_PersON_PL = TE OR Pl2 OR PxPl2 ; SET THIRD_PersON_PL = HÄN OR Pl3 OR PxPl3 ; SET THIRD_PersON_SG_Noun = HÄN OR Sg3 OR NSgNom OR PxSg3 ; SET THIRD_PersON_PL_Noun = HE OR Pl3 OR NPlNom OR PxPl3 ; SET ALL_PersON = FIRST_PersON_SG OR FIRST_PersON_PL OR SECOND_PersON_SG OR SECOND_PersON_PL OR THIRD_PersON_SG OR THIRD_PersON_PL OR NSgNom OR N + Sg_Pl ; SET CAP_NOCAP = N - Prop ; #CAP NOCAP ; SET REALVFIN = VFIN - ConNeg ; SET PART-SUBJ = Weather-Verbs ; SET REAL_AUX = AUXs OR Neg ; # to get ettei, ellei SET AUX-OR-MAIN = InfA-VERB OR InfMa-VERB ; SET AUX = COPULAS OR Neg OR MOD-ASP OR AUX-OR-MAIN ; SET VFIN-NOT-AUX = Ind - AUX ; SET V-NOT-COPULAS = V - REALCOPULAS; SET REF = V + ActPass + PPPCPs + GenSg; SET QWords = MIKA-KUKA OR KUINKA-MITEN-MIllOIN ; SET PPRON-NOT-GEN = Pron + Pers - Gen ; SET POSS_SUFF = PxPl1 | PxPl2 | PxPl3 | PxSg1 | PxSg2 | PxSg3 | Px3 ; SET ALL_SGPRON = Sg1 OR Sg2 OR Sg3 OR Sg ; #SET LEX-N = N - N-DER; not used SET CNOUN = N - Prop; SET HNOUN = N - Cmpnd ; #SET HNOUN-NOM = NNom - Cmpnd ; not used #SET N-NOT-GEN = N - Gen ; not used SET VSg1 = V + Sg1 ; SET VSg2 = V + Sg2 ; SET VSg3 = V + Sg3 ; SET VPl1 = V + Pl1 ; SET VPl2 = V + Pl2 ; SET VPl3 = V + Pl3 ; SET SGAGR = VSg1 OR VSg2 OR VSg3 ; SET PLAGR = VPl1 OR VPl2 OR VPl3 ; SET ALL_PLPRON = PLPRON OR SGAGR OR N + Pl ; # Boundaries # ---------- SET N_P_SG = SGPRON OR N + Sg ; SET N_P_PL = PLPRON OR N + Pl ; SET N_P_NOM = Pron + Nom OR NNom ; SET N_P_GEN = Pron + Gen OR NGen ; #SET CCC = CC - ("sekä") ; #SET CC-CS = CC OR CS ; SET CP = Interr OR Rel OR QWords OR JOS_KUN_KOSKA_VAIKKA; SET V-MAIN = V - COPULAS - Neg - MOD-ASP OR ("orrut") ; SET S-BOUNDARY = Interr OR Rel OR ("miksi") OR ("mutta") OR ("sitten") + CC OR QWords OR (";") OR (":") OR ("-") OR ("–") OR CS OR ("eikä") ; SET S-BOUNDARY1 = Interr OR Rel OR ("miksi") OR ("mutta") OR ("sitten") + CC OR QWords OR (";") OR (":") OR ("-") OR ("–") ; SET S-BOUNDARY2 = Interr OR Rel OR ("miksi") OR ("mutta") OR ("sitten") + CC OR QWords OR (";") OR (":") OR ("-") OR ("–") OR (@CVP) ; # OR Sup SET SV-BOUNDARY = S-BOUNDARY OR InfV OR V-MAIN - PrsPrc ; SET BOC = S-BOUNDARY OR BOS ; SET BOC2 = S-BOUNDARY2 OR BOS ; SET BOC-PUNCT = BOC - ("-") - ("–") ; SET EOC = S-BOUNDARY OR EOS ; SET EOC2 = S-BOUNDARY2 OR EOS ; SET NP-BOUNDARY = BOS OR EOS OR CLB OR VFIN OR InfA23 OR Act + Ess OR ConNeg OR PCP OR PPRON-NOT-GEN OR Po OR Pr OR Pcle OR CS OR CP ; # Removed VGen, Recipr, "jed", Interj # NP boundary xxx* # ----------- SET NP = N OR A ; # anything that can take except numerals SET NP-HEAD = Pron OR HNOUN - ("hyvä") ; SET NP-HEAD-SG = SGPRON OR N + Sg OR A + Sg - Cmpnd - Dem - ("hyvä"); SET NP-HEAD-PL = PLPRON OR N + Pl OR A + Pl - Cmpnd - Dem - ("hyvä"); SET NP-HEAD-SG-NOM = SGPRON + Nom OR NSgNom OR ASgNom - ("hyvä") - Cmpnd ; SET NP-HEAD-PL-NOM = PLPRON + Nom OR NPlNom OR APlNom - Cmpnd - ("hyvä"); SET NP-HEAD-NOM = NP-HEAD-SG-NOM OR NP-HEAD-PL-NOM ; SET NP-HEAD-ACC = Pron + Acc OR N + Acc OR A + Acc - Cmpnd - Dem - ("hyvä"); SET NP-HEAD-GEN = Pron + Gen OR NGen OR A + Gen - Cmpnd - Dem - ("hyvä"); # why gen? #SET PRE-NP-HEAD = (Prop Attr) OR Prop + (@>N) OR (A Attr) OR (Abbr Attr) OR ("hyvä") OR Pron + Pers + Gen OR NGen OR SET PRE-NP-HEAD = Prop + Gen OR Prop + (@>N) OR A OR Abbr + Gen OR ("hyvä") OR Pron + Pers + Gen OR NGen OR Num OR Cmpnd OR CC OR Pron + Dem OR Pron + Refl + Gen OR Pron + Indef OR PrfPrc + (@>N) OR PrsPrc OR Ord OR PCP ; # The strict version of items that can only be premodifiers, not parts of the predicate SET NOT-A = WORD - A ; SET NPNH = WORD - PRE-NP-HEAD OR Abbr ; # (A Pos) changed to A - 19.01.2015 -FMT+KM SET NAttrs = PCP OR A OR Pron OR Ord OR NGen OR Card OR UNDECL_ADJ ; SET N_Pron_Nom = NNom OR Pron + Nom ; SET NECESSITIVE_SUBJS = NGen OR Pron + Gen ; SET JaPcleCC = ("ja") + Pcle + CC ; # ======================================================================== # ==================== # # Syntax tags and sets # # ==================== # # SYNTACTIC FUNCTION DECLARATIONS # The original function declarations # @+FM @-FMN @-FMP @-FMI @+FAUX @-FAUX @-FMQ @H @SUBJ @NEC-S @NF-S @OBJ @PC @ADVL @N> @NN> @AD-A> @<P @P> @<PN @C @OA @A> @AUX-S @AUX-O # These are used in nonrevised heuristic rules and therefore kept for the moment: LIST @SUBJ = @SUBJ @<SUBJ @SUBJ> ; LIST @NEC-S = @NEC-S ; LIST @NF-S = @NF-S ; LIST @OBJ = @OBJ ; LIST @PC = @PC ; LIST @<P = @<P ; LIST @P> = @P> ; LIST @Num< = @Num< ; LIST @>Num = @>Num ; # Syntactic tags from sme # These should be used, for tag harmonisation. LIST @+FAUXV = @+FAUXV ; LIST @+FMAINV = @+FMAINV ; LIST @-FAUXV = @-FAUXV ; LIST @-FMAINV = @-FMAINV ; LIST @-FSUBJ> = @-FSUBJ> ; LIST @-F<OBJ = @-F<OBJ ; LIST @-FOBJ> = @-FOBJ> ; LIST @SPRED<OBJ = @SPRED<OBJ ; LIST @-FADVL = @-FADVL ; SET FOBJ = @-F<OBJ OR @-FOBJ> ; SET FMAINV = @-FMAINV OR @+FMAINV ; SET FAUXV = @-FAUXV OR @+FAUXV ; LIST @ADVL = @ADVL @ADVL> @ADVL< @<ADVL @>ADVL @-FADVL ; LIST @>ADVL = @>ADVL ; LIST @ADVL< = @ADVL< ; LIST @<ADVL = @<ADVL ; LIST @ADVL> = @ADVL> ; LIST @HAB = @HAB ; LIST @>N = @>N ; LIST @N< = @N< ; LIST @>A = @>A ; LIST @P< = @P< ; LIST @>P = @>P ; LIST @HNOUN = @HNOUN ; LIST @INTERJ = @INTERJ ; LIST @Pron< = @Pron< ; LIST @>Pron = @>Pron ; LIST @<OBJ = @<OBJ ; LIST @OBJ> = @OBJ> ; LIST @OPRED = @OPRED ; LIST @<OPRED = @<OPRED ; LIST @OPRED> = @OPRED> ; LIST @PCLE = @PCLE ; LIST @COMP-CS< = @COMP-CS< ; LIST @SPRED = @SPRED ; LIST @<SPRED = @<SPRED ; LIST @SPRED> = @SPRED> ; #LIST @SUBJ = @SUBJ ; LIST @<SUBJ = @<SUBJ ; LIST @SUBJ> = @SUBJ> ; SET SUBJ = @<SUBJ OR @SUBJ> OR @SUBJ ; SET SPRED = @<SPRED OR @SPRED> OR @SPRED ; SET OPRED = @<OPRED OR @OPRED> OR @OPRED ; LIST @PPRED = @PPRED ; LIST @APP = @APP ; LIST @APP-N< = @APP-N< ; LIST @APP-Pron< = @APP-Pron< ; LIST @APP>Pron = @APP>Pron ; LIST @APP-Num< = @APP-Num< ; LIST @APP-ADVL< = @APP-ADVL< ; LIST @VOC = @VOC ; LIST @CVP = @CVP ; LIST @CNP = @CNP ; SET OBJ = (@<OBJ) OR (@OBJ>) OR (@OBJ) OR (@-F<OBJ) OR (@-FOBJ>) ; LIST <OBJ = @-F<OBJ @<OBJ ; LIST OBJ> = @OBJ> @-FOBJ> ; SET <OBJ-OTHERS = <OBJ OR Gen OR Nom OR Ess OR LOC-CASE OR Adv ; SET OBJ>-OTHERS = OBJ> OR Gen OR Nom OR Ess OR LOC-CASE OR Adv ; LIST @X = @X ; LIST ALLSYNTAG = (@+FAUXV) (@+FMAINV) (@-FAUXV) (@-FMAINV) (@-FSUBJ>)(@-FOBJ)(@-FADVL)(@>A) (@>ADVL) (@ADVL<) (@<ADVL) (@ADVL>) (@ADVL) (@HAB) (@>N) (@APP) (@APP-N<) (@APP-Pron<) (@APP>Pron) (@APP-Num<) (@APP-ADVL<) (@VOC) (@CNP) (@CVP) (@P<) (@>P) (@HNOUN) (@INTERJ) (@Pron<) (@OBJ) (@OBJ>) (@<OBJ) (@OPRED) (@<OPRED) (@OPRED>) (@SPRED<OBJ) (@PCLE) (@COMP-CS<) (@N<) (@SPRED) (@<SPRED) (@SPRED>) (@PPRED) (@Num<) (@SUBJ) (@<SUBJ) (@SUBJ>) (@X); LIST SYNT = @+FMAINV @+FAUXV @-FMAINV @-FAUXV @<SPRED @SPRED> @SUBJ @<SUBJ @SUBJ> @OBJ @<OBJ @OBJ> @NEC-S @NF-S @OBJ @PC @<P @P> @>P @N> @>N @N< @<N @<NUM @Num< @ADVL @<ADVL @LOC @PCLE @HAB @CVP @CNP @CNB @NES @X ; # Called SYNFYNC in cg1 # ======================================================================== # PRINCIPAL FUNCTION DECLARATIONS LIST PRINCIPAL-FUNCTION-DECLARATIONS = @SUBJ @OBJ @SPRED ; # original set was @SUBJ @OBJ @PC ; ### TODO: ### BARRIERS in var AUP-BORDERS ### BOS EOS "<:>" "<#>" "<(>" "<)>" "<'>" "<">" "<,>" Rel ### "<$->" "kuinka" "miten" "milloin" "-" CS CC KO Punct) ; ### Do not understand these… Trond. #Pl1 OR # Pl2 OR # Pl3 OR # Sg1 OR # Sg2 OR # Sg3 OR # ======================================================================== BEFORE-SECTIONS #ADD:fin (<fin>) TARGET WORD ; # berre viss vi bruker functions. SECTION # Dialects REMOVE:NotDialEast Dial/East ; # e.g. työ. Idea: assume standard. ### TODO: # CLAUSE BOUNDARY CONSTRAINTS # First rule of voisiko is that it is never "your butters" REMOVE N IF (0 VOISIKO) ; SELECT COLON; IFF QUOTE (0 QUO); SELECT ("<->") + Dash; SELECT Punct; ### =**CLB (ComMA) (0 Punct) ; ### =**CLB (C) (1 VFIN) ; ### =**CLB (C) (2 VFIN) ; ### =**CLB (C) (3 VFIN) ; ### #(@w =**CLB (C) ; ### =**CLB Rel ; ### =**CLB (KO) ; ### =**CLB Adv (0 KUINKA-MITEN-MIllOIN) ; ### Do not understand these. Trond. # looks like = is just ADD. #ADD CLB ComMA IF (0 Punct) (NEGATE 0 CLB) ; # TP: every punctuation mark is not CLB! TODO #ADD CLB KUINKA-MITEN-MIllOIN (NEGATE 0 CLB) ; #ADD CLB (*) (0 Conj) (1 VFIN) (NEGATE 0 CLB)(NEGATE -1 CLB) ; #ADD CLB (*) (0 Conj) (2 VFIN) (NEGATE 0 CLB)(NEGATE -1 CLB) ; #ADD CLB (*) (0 Conj) (3 VFIN) (NEGATE 0 CLB)(NEGATE -1 CLB) ; ### #(@w =**CLB (C) ; # do not understand this one - Ryan #ADD CLB Compl IF (NEGATE 0 CLB)(NEGATE -1 CLB) ; #ADD CLB Rel IF (NEGATE 0 CLB)(NEGATE -1 CLB) ; # Problematic because we don't have CLB for this in gold corpus - 20.01.2015 - FMT+KM #ADD CLB Qst IF (NEGATE 0 CLB)(NEGATE -1 CLB) ; #ADD CLB Adv IF (0 KUINKA-MITEN-MIllOIN) (NEGATE 0 CLB)(NEGATE -1 CLB) ; #ADD CLB Conj IF (NEGATE 0 CC) (NEGATE 0 CLB)(NEGATE -1 CLB) ; # Including (NEGATE 0 CLB) because it adds multiple times otherwise - Ryan REMOVE ("aikainen") + Adv ; # XX MAN SELECT ("ainoastaan") + Adv ; SELECT ("alkuaan") + Adv ; SELECT ("alkujaan") + Adv ; SELECT ("edelleen") + Adv (NEGATE -1 Gen) (NEGATE -2 Gen) (NEGATE *-1 PAASTA) ; SELECT ("edellä") + Adv (NEGATE *-1 NEGV) (NEGATE -1 Gen_Par) (NEGATE 1 Par) ; SELECT ("edestakaisin") + Adv ; SELECT ("enemmän") + Adv (NEGATE 1 Gen) ; # XXXX SELECT ("enimmäkseen") + Adv ; SELECT ("enintään") + Adv ; SELECT ("ennakolta") + Adv ; SELECT ("ennen") + Adv (1 KUIN) ; SELECT ("ensin") + Adv ; SELECT ("entiselleen") + Adv ; SELECT ("entisellään") + Adv ; SELECT ("erikseen") + Adv ; SELECT ("erilleen") + Adv ; SELECT ("erillään") + Adv ; SELECT ("hiljaa") + Adv ; SELECT ("hiljakseen") + Adv ; SELECT ("hiljalleen") + Adv ; SELECT ("hukkaan") + Adv ; SELECT ("hyväkseen") + Adv ; SELECT ("hyvänsä") + Adv ; SELECT ("ikinä") + Adv ; REMOVE ("johtuen") + Adv ; SELECT ("jotenkin") + Adv ; SELECT ("jäljellä") + Adv ; SELECT ("kahden") + Adv (NEGATE 1 Gen OR Po OR KAUPPA) (NEGATE 2 Gen) (NEGATE 3 Gen) (NEGATE 4 Gen) ; SELECT ("kai") + Adv (NEGATE 1 Prop) ; SELECT ("kaikkiaan") + Adv ; SELECT ("kauemmaksi") + Adv (NEGATE 1 Tra) ; SELECT ("kauempaa") + Adv (NEGATE 1 Par) ; SELECT ("kauempana") + Adv (NEGATE 1 Ess) ; SELECT ("kohta") + Adv (-1 JOS_VAIKKA) ; SELECT ("kokonaan") + Adv ; SELECT ("koolla") + Adv (*-1 OLLA LINK NOT *1 CLB?) (NEGATE -1 Ade OR CLB?) ; SELECT ("koolle") + Adv ; SELECT ("korkeintaan") + Adv ; SELECT ("kotoisin") + Adv OR ("kotiin") + Adv ; REMOVE ("kovaa") + Adv (*-1 OLLA LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; #PELIONKOVAAA SELECT ("kumminkin") + Adv ; SELECT ("kumminkaan") + Adv ; SELECT ("liioin") + Adv ; SELECT ("käsiksi") + Adv ; SELECT ("lisää") + Adv (*-1C VFIN LINK NOT *1 CLB?) (*1 Par LINK NOT *-1 CLB?) (NEGATE 1 CLB?) (NEGATE -1 CLB?) ; SELECT ("lisää") + Adv (*-1C VFIN LINK NOT *1 CLB?) (*-1 Par LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; SELECT ("lisää") + Adv (*1C VFIN LINK NOT *-1 CLB?) (*1 Par LINK NOT *-1 CLB?) (NEGATE 1 CLB?) ; SELECT ("lisää") + Adv (*-1C VFIN LINK NOT *1 CLB?) (*1 Par LINK NOT *-1 CLB?) (NEGATE 1 CLB?) (NEGATE -1 CLB?) ; SELECT ("lähemmäksi") + Adv (NEGATE 1 Tra) ; SELECT ("lähempänä") + Adv (NEGATE 1 Ess) ; SELECT ("lähimmäksi") + Adv (NEGATE 1 Tra) ; SELECT ("mielellään") + Adv ; SELECT ("mielestä") + Adv (0 POSS_SUFF) (NEGATE -1 Gen OR Ela) ; SELECT ("mieliksi") + Adv ; SELECT ("mielin") + Pcle (-1 ("avoin")) ; SELECT ("miten") + Adv (1 TAHANSA_VAIN) ; SELECT ("muutoin") + Adv ; SELECT ("myöhemmin") + Adv ; SELECT ("naimaton") + A ; SELECT ("naimisiin") + Adv ; SELECT ("naimisissa") + Adv ; REMOVE ("nimittäin" Adv DN-ITTAIN) ; # XX SELECT ("nykyisin") + Adv (NEGATE 1 Ins) ; REMOVE ("nähden") + Adv ; REMOVE ("nähdäkseen") + Adv (NEGATE -1 Gen OR OLLA) (NEGATE -2 OLLA) ; SELECT ("nähdäkseen") + Adv (-1 OLLA) ; SELECT ("nähdäkseen") + Adv (-1 Gen) ; SELECT ("näin") + Adv (-2 NIIN) (-1 TAI) ; SELECT ("näin") + Adv (1 ESIM) ; SELECT ("näköjään") + Adv ; SELECT ("oikeastaan") + Adv ; SELECT ("osaksi") + Adv (-1 C-Adv-ETC) ; SELECT ("paikoin") + Adv (NEGATE -1 Ins) ; SELECT ("parhaimmillaan") + Adv ; SELECT ("pelkästään") + Adv ; SELECT ("periksi") + Adv ; SELECT ("perille") + Adv ; SELECT ("perillä") + Adv ; SELECT ("pitkään") + Adv (NEGATE 1 Ill) ; SELECT ("pystyssä") + Adv ; SELECT ("pystyyn") + Adv ; SELECT ("rinnan") + Adv (*1 KANSSA) ; SELECT ("selin") + Adv ; SELECT ("siksi") + Adv (-1 BOS) (NEGATE 1 Tra) ; SELECT ("silloin") + Adv ; SELECT ("suinkin") + Adv ; SELECT ("suinkaan") + Adv ; SELECT ("suoraan") + Adv (NEGATE 1 Ill) ; SELECT ("suorastaan") + Adv ; SELECT ("suotta") + Adv ; SELECT ("suunnilleen") + Adv ; SELECT ("suunnitteilla") + Adv ; SELECT ("syksyisin") + Adv ; SELECT ("syntyisin") + Adv ; SELECT ("syvällä") + Adv (NEGATE 1 Ade) ; SELECT ("takaisin") + Adv ; SELECT ("tarpeen") + Adv (*-1 OLLA LINK NOT *1 CLB?) (NEGATE -1 Gen) (1 CLB?) ; # XX SELECT ("tietenkin") + Adv ; SELECT ("tietenkään") + Adv ; SELECT ("<todellakaan>") + Adv ; SELECT ("toisin") + Adv (1 VFIN) ; # TOISIN ON SIllOIN ... SELECT ("toisin") + Adv (1 Conj) ; SELECT ("toisin") + Adv (-1 AIVAN-IHAN) ; SELECT ("toisinaan") + Adv ; SELECT ("toistamiseen") + Adv (NEGATE -1 Gen) ; SELECT ("tosiaan") + Adv ; SELECT ("tuskin") + Adv ; REMOVE ("työkseen") + Adv ; SELECT ("usein") + Adv ; SELECT ("uudelleen") + Adv ; SELECT ("vaan") + Adv (1 CLB?) ; SELECT ("vallan") + Adv (-1 JOKIN) (1 Par) (NEGATE *1 VAllAN-WDS) (NEGATE *-1 VAllAN-WDS) ; SELECT ("vallan") + Adv (1 JOKIN) (2 Par) (NEGATE *1 VAllAN-WDS) (NEGATE *-1 VAllAN-WDS) ; REMOVE ("vallan") + Adv ; SELECT ("vanhastaan") + Adv ; SELECT ("vasta") + Adv ; SELECT ("vihdoin") + Adv ; SELECT ("viimeistään") + Adv ; SELECT ("vireillä") + Adv (NEGATE 1 Ade) ; SELECT ("vähemmän") + Adv (NEGATE 1 A-A_N-PCP) ; SELECT ("vähintään") + Adv ; SELECT ("vähän") + Adv (NEGATE 1 A OR CMP-ENNEN) (NEGATE 2 JALKEEN) ; # 4.1.2001 SELECT ("välillä") + Adv (NEGATE -1 Ade OR Gen) (NEGATE -2 Gen) (NEGATE -3 Gen) (NEGATE -4 Gen) ; # XX SELECT ("yhdessä") + Adv (NEGATE 1 Ine) ; SELECT ("yhteensä") + Adv ; SELECT ("yhtään") + Adv (NEGATE *1 Par) ; IFF ("yksiin") + Adv (NEGATE 1 Ill OR Pl) ; SELECT ("yksinään") + Adv ; REMOVE ("yksissä") + Adv ; SELECT ("yksistään") + Adv ; SELECT ("öisin") + Adv ; SELECT ("jälkeen") + Adv + POSS_SUFF (NEGATE -1 Gen) ; # TANKEROUS, CF. JäTTI JäLKEENSä SELECT ("osaksi") + Adv + POSS_SUFF (-1 SAADA) ; SELECT Adv (0 AIVAN-IHAN) (1 PrsPrc) (*-1C VFIN LINK 0 OLLA) ; SELECT Adv (0 AIVAN-IHAN) (1C VFIN-C) ; SELECT Adv (0 AIVAN-IHAN) (1C CLB?-C) ; SELECT Adv (0 AIVAN-IHAN) (1C InfA_3) (-1C VFIN) ; SELECT Adv (0 AIVAN-IHAN) (1C InfA_3) (-2C VFIN) ; #(@w SELECT Adv (0 ENEM-VAHEM) (NEGATE 1C Gen) (NEGATE 1 A) ; SELECT Adv (0 NIIN-NOIN-NAIN) (1C Adv) (NEGATE 1 HYVIN) (NEGATE *-1 MINÄ OR Sg1) (*-1C VFIN LINK NOT *1C CLB?) (NEGATE -1 CLB?) ; SELECT Adv (0 NIIN-NOIN-NAIN) (1C Adv) (NEGATE 1 HYVIN) (NEGATE *-1 MINÄ OR Sg1) (*1C VFIN LINK NOT *-1C CLB?) (NEGATE 1 CLB?) ; SELECT ("lujaa") + Adv (NEGATE 1 Par) ; SELECT ("myöhään") + Adv (NEGATE 1 Ill) ; SELECT ("samalla") + Adv (NEGATE 1 Ade) ; SELECT ("pitkällä") + Adv (NEGATE 1 Ade) ; IFF ("tavallaan") + Adv (NEGATE -1 Pron OR Ade) ; SELECT ("turhaan") + Adv (NEGATE 1 Ill) ; SELECT ("varmaan") + Adv (NEGATE 1 Ill) ; SELECT ("vinossa") + Adv (NEGATE 1 Ine) ; IFF ("yhteen") + Adv (NEGATE 1 Ill) (NEGATE 2 Ill) ; IFF ("kohdalta") + Adv + POSS_SUFF (NEGATE -1 Abl) ; IFF ("osalta") + Adv + POSS_SUFF (NEGATE -1 Abl) ; # ++ TP ++ SUBSTITUTE (Nom\#toista) (Nom \#toista clash) (Nom\#toista) ; SUBSTITUTE (Nom\#kymmentä) (Nom \#kymmentä clash) (Nom\#kymmentä) ; SUBSTITUTE (Gen\#toista) (Gen \#toista clash) (Gen\#toista) ; SUBSTITUTE (Gen\#kymmentä) (Gen \#kymmentä clash) (Gen\#kymmentä) ; SUBSTITUTE (Par\#toista) (Par \#toista clash) (Par\#toista) ; SUBSTITUTE (Par\#kymmentä) (Par \#kymmentä clash) (Par\#kymmentä) ; SUBSTITUTE (Ill\#toista) (Ill \#toista clash) (Ill\#toista) ; SUBSTITUTE (Ill\#kymmentä) (Ill \#kymmentä clash) (Ill\#kymmentä) ; SUBSTITUTE (Ine\#toista) (Ine \#toista clash) (Ine\#toista) ; SUBSTITUTE (Ine\#kymmentä) (Ine \#kymmentä clash) (Ine\#kymmentä) ; SUBSTITUTE (Ela\#toista) (Ela \#toista clash) (Ela\#toista) ; SUBSTITUTE (Ela\#kymmentä) (Ela \#kymmentä clash) (Ela\#kymmentä) ; SUBSTITUTE (All\#toista) (All \#toista clash) (All\#toista) ; SUBSTITUTE (All\#kymmentä) (All \#kymmentä clash) (All\#kymmentä) ; SUBSTITUTE (Ade\#toista) (Ade \#toista clash) (Ade\#toista) ; SUBSTITUTE (Ade\#kymmentä) (Ade \#kymmentä clash) (Ade\#kymmentä) ; SUBSTITUTE (Abl\#toista) (Abl \#toista clash) (Abl\#toista) ; SUBSTITUTE (Abl\#kymmentä) (Abl \#kymmentä clash) (Abl\#kymmentä) ; SUBSTITUTE (Tra\#toista) (Tra \#toista clash) (Tra\#toista) ; SUBSTITUTE (Tra\#kymmentä) (Tra \#kymmentä clash) (Tra\#kymmentä) ; SUBSTITUTE (Ess\#toista) (Ess \#toista clash) (Ess\#toista) ; SUBSTITUTE (Ess\#kymmentä) (Ess \#kymmentä clash) (Ess\#kymmentä) ; SUBSTITUTE (Abe\#toista) (Abe \#toista clash) (Abe\#toista) ; SUBSTITUTE (Abe\#kymmentä) (Abe \#kymmentä clash) (Abe\#kymmentä) ; SUBSTITUTE (Com\#toista) (Com \#toista clash) (Com\#toista) ; SUBSTITUTE (Com\#kymmentä) (Com \#kymmentä clash) (Com\#kymmentä) ; REMOVE (clash); SUBSTITUTE (?) (Po ?-) GenLeft OR ParLeft; SUBSTITUTE (?) (Pr ?-) GenRight OR ParRight; SUBSTITUTE (?) (Num Card Sg Gen ?-) (?) (0 ("[0-9%.,:= +/]+[A-Z]*:n"r)) ; SUBSTITUTE (?) (Num Card Sg Nom ?-) (?) (0 ("[0-9%.,:= +/]+[A-Z]*"r)) ; SUBSTITUTE (?) (Num Card Sg Nom ?-) (?) (0 ("[0-9%.,:= +/]+[A-Z]*-[0-9%.,:= +/]*[A-Z]*"r)) ; SUBSTITUTE (?) (Num Card Sg Nom ?-) (?) (0 ("[0-9%.,:= +/]+[A-Z]*–[0-9%.,:= +/]*[A-Z]*"r)) ; ADD Digit Num - Digit (0 ("[0-9%.,:= +/]+[A-Z]*"r)) ; ADD Digit Num - Digit (0 ("[0-9%.,:= +/]+[A-Z]*-[0-9%.,:= +/]*[A-Z]*"r)) ; SUBSTITUTE (?) (Num Ord Sg Nom Roman ?-) (?) (0 ("[IVXLCDM-]+"r)) ; # ACR? SUBSTITUTE (?) (Num Ord Sg Nom Roman ?-) (?) (0 ("[IVXLCDM]*–[IVXLCDM]+"r)) ; SUBSTITUTE (?) (Num Ord Sg Gen Roman ?-) (?) (0 ("[IVXLCDM-]+:n"r)) ; SUBSTITUTE (?) (N Sg Gen Pref- ?-) (?) (0 ("(.*)n-"r)) ; # maybe first part is Gen SUBSTITUTE (?) (N Sg Nom Pref- ?-) (?) (0 ("(.*)-"r)) ; # usually the first part is Nom #!! Idiomatic cases SELECT N + Ins IF (-1 A + Ins); ## väliaikaisin toimin #ADD UP (*) IF (0 ("<[A-ZÄÖÜÕÆØ¢ı¥ŠŽ](.*)>"r)) (NEGATE 0 UP) ; defined UP reg ex #UP# ADD UP (*) IF (0 ("<[A-ZÄÖÜÕÆØ¢ı¥ŠŽ](.*)>"r)) (NEGATE 0 UP) ; #UP guesser# #UP# SUBSTITUTE (? UP) (N Prop Sg All ?- UP) (? UP) + ("(.*)(lle|llekin)"r); #UP# SUBSTITUTE (? UP) (N Prop Sg Ade ?- UP) (? UP) + ("(.*)(lla|llä|llakin|lläkin)"r); #UP# SUBSTITUTE (? UP) (N Prop Sg Abl ?- UP) (? UP) + ("(.*)(lta|ltä|ltakin|ltäkin)"r); #UP# SUBSTITUTE (? UP) (N Prop Sg Ill ?- UP) (? UP) + ("(.*)(aan|ään|iin|hin|yyn|een|oon|öön|aankin|äänkin|iinkin|hinkin|yynkin|eenkin|oonkin|öönkin)"r); #UP# SUBSTITUTE (? UP) (N Prop Sg Ine ?- UP) (? UP) + ("(.*)(ssa|ssä|ssakin|ssäkin)"r); #UP# SUBSTITUTE (? UP) (N Prop Sg Ela ?- UP) (? UP) + ("(.*)(sta|stä|stakin|stäkin)"r); #UP# SUBSTITUTE (? UP) (N Prop Sg Ess ?- UP) (? UP) + ("(.*)(na|nä|nakin|näkin)"r); #UP# SUBSTITUTE (? UP) (N Prop Sg Tra ?- UP) (? UP) + ("(.*)(ksi|ksikin)"r); #UP# SUBSTITUTE (? UP) (N Prop Sg Abe ?- UP) (? UP) + ("(.*)(tta|ttä|ttakin|ttäkin)"r); #UP# SUBSTITUTE (? UP) (N Prop Sg Par ?- UP) (? UP) + ("(.*)(aa|ää|oa|ua|ea|eä|ia|iä|yä|ta|tä|aakin|ääkin|oakin|uakin|eakin|eäkin|iakin|iäkin|yäkin|takin|täkin)"r); #UP# SUBSTITUTE (? UP) (N Prop Sg Gen ?- UP) (? UP) + ("(.*):n"r); #UP# SUBSTITUTE (? UP) (N Prop Sg Gen ?- UP) (? UP) + ("(.*)n"r)(1 GenLeft); #UP# #UP# COPY (N Prop Sg Nom ?- UP) TARGET (N Prop Sg Par ?- UP) ; #UP# #UP# SUBSTITUTE (? UP) (N Prop Sg Nom ?- UP) (? UP) (1 Ind + Sg3 OR Ind + Sg1); #UP# SUBSTITUTE (? UP) (N Prop Sg Nom ?- UP) (? UP) (-1 Ind + Sg3 OR Ind + Sg1)(NEGATE -2 NSgNom); #UP# SUBSTITUTE (? UP) (N Prop Sg Nom ?- UP) (? UP) (-1 Prop + Nom)(-2 Ind + Sg3 OR Ind + Sg1)(NEGATE -2 NSgNom); #UP# SUBSTITUTE (? UP) (N Prop Pl Nom ?- UP) (? UP) (1 Ind + Pl3)(NEGATE -1 CC LINK -1 Nom); #UP# SUBSTITUTE (? UP) (N Prop Pl Nom ?- UP) (? UP) (-1 Ind + Pl3)(NEGATE -2 NPlNom)(NEGATE 1 CC LINK 1 Nom); #UP# SUBSTITUTE (? UP) (N Prop Pl Nom ?- UP) (? UP) (-1 Prop + Nom)(-2 Ind + Pl3)(NEGATE -2 NPlNom)(NEGATE 1 CC LINK 1 Nom); #UP# SUBSTITUTE (? UP) (N Prop Sg Nom ?- UP) (? UP) (1 UP)(NEGATE -1 OMS); #UP# #UP# SUBSTITUTE (? UP) (N Prop Sg Nom ?- UP) (? UP) (NEGATE -1 Prop + Nom)(NEGATE *-1 NSgNom OR Ind + Sg3 OR Ind + Sg1 BARRIER S-BOUNDARY)(NEGATE *1 NSgNom OR Ind + Sg3 OR Ind + Sg1 BARRIER S-BOUNDARY); #UP# SUBSTITUTE (? UP) (N Prop Sg Nom ?- UP) (? UP) (-1 Prop + Nom)(NEGATE *-2 NSgNom OR Ind + Sg3 OR Ind + Sg1 BARRIER S-BOUNDARY)(NEGATE *1 NSgNom OR Ind + Sg3 OR Ind + Sg1 BARRIER S-BOUNDARY); #UP# SUBSTITUTE (? UP) (N Prop Sg Nom ?- UP) (? UP) (NEGATE -1 Prop + Nom)(*0 Ind + Sg3 OR Ind + Sg1 BARRIER S-BOUNDARY)(NEGATE *-1 NSgNom BARRIER S-BOUNDARY)(NEGATE *1 NSgNom BARRIER S-BOUNDARY); #UP# SUBSTITUTE (? UP) (N Prop Sg Nom ?- UP) (? UP) (-1 Prop + Nom)(*0 Ind + Sg3 OR Ind + Sg1 BARRIER S-BOUNDARY)(NEGATE *-2 NSgNom BARRIER S-BOUNDARY)(NEGATE *1 NSgNom BARRIER S-BOUNDARY); #UP# SUBSTITUTE (? UP) (N Prop Pl Nom ?- UP) (? UP) (NEGATE -1 Prop + Nom)(*0 Ind + Pl3 BARRIER S-BOUNDARY)(NEGATE *-1 NPlNom BARRIER S-BOUNDARY)(NEGATE *1 NPlNom BARRIER S-BOUNDARY); #UP# SUBSTITUTE (? UP) (N Prop Pl Nom ?- UP) (? UP) (-1 Prop + Nom)(*0 Ind + Pl3 BARRIER S-BOUNDARY)(NEGATE *-2 NPlNom BARRIER S-BOUNDARY)(NEGATE *1 NPlNom BARRIER S-BOUNDARY); #UP# #UP# SUBSTITUTE (? UP) (N Prop Sg All ?- UP) (? UP) (1 CCC)(2 UP + All)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg Ade ?- UP) (? UP) (1 CCC)(2 UP + Ade)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg Abl ?- UP) (? UP) (1 CCC)(2 UP + Abl)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg Ill ?- UP) (? UP) (1 CCC)(2 UP + Ill)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg Ine ?- UP) (? UP) (1 CCC)(2 UP + Ine)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg Ela ?- UP) (? UP) (1 CCC)(2 UP + Ela)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg Nom ?- UP) (? UP) (1 CCC)(2 UP + Nom - Pref-)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg Par ?- UP) (? UP) (1 CCC)(2 UP + Par)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg Gen ?- UP) (? UP) (1 CCC)(2 UP + Gen)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg Ess ?- UP) (? UP) (1 CCC)(2 UP + Ess)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg Tra ?- UP) (? UP) (1 CCC)(2 UP + Tra)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg Abe ?- UP) (? UP) (1 CCC)(2 UP + Abe)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg All ?- UP) (? UP) (-1 CCC)(-2 UP + All); #UP# SUBSTITUTE (? UP) (N Prop Sg Ade ?- UP) (? UP) (-1 CCC)(-2 UP + Ade); #UP# SUBSTITUTE (? UP) (N Prop Sg Abl ?- UP) (? UP) (-1 CCC)(-2 UP + Abl); #UP# SUBSTITUTE (? UP) (N Prop Sg Ill ?- UP) (? UP) (-1 CCC)(-2 UP + Ill); #UP# SUBSTITUTE (? UP) (N Prop Sg Ine ?- UP) (? UP) (-1 CCC)(-2 UP + Ine); #UP# SUBSTITUTE (? UP) (N Prop Sg Ela ?- UP) (? UP) (-1 CCC)(-2 UP + Ela); #UP# SUBSTITUTE (? UP) (N Prop Sg Nom ?- UP) (? UP) (-1 CCC)(-2 UP + Nom - Pref-); #UP# SUBSTITUTE (? UP) (N Prop Sg Par ?- UP) (? UP) (-1 CCC)(-2 UP + Par); #UP# SUBSTITUTE (? UP) (N Prop Sg Gen ?- UP) (? UP) (-1 CCC)(-2 UP + Gen); #UP# SUBSTITUTE (? UP) (N Prop Sg Ess ?- UP) (? UP) (-1 CCC)(-2 UP + Ess); #UP# SUBSTITUTE (? UP) (N Prop Sg Tra ?- UP) (? UP) (-1 CCC)(-2 UP + Tra); #UP# SUBSTITUTE (? UP) (N Prop Sg Abe ?- UP) (? UP) (-1 CCC)(-2 UP + Abe); #UP# SUBSTITUTE (? UP) (N Prop Sg All ?- UP) (? UP) (-1C All); #UP# SUBSTITUTE (? UP) (N Prop Sg Ade ?- UP) (? UP) (-1C Ade); #UP# SUBSTITUTE (? UP) (N Prop Sg Abl ?- UP) (? UP) (-1C Abl); #UP# SUBSTITUTE (? UP) (N Prop Sg Ill ?- UP) (? UP) (-1C Ill); #UP# SUBSTITUTE (? UP) (N Prop Sg Ine ?- UP) (? UP) (-1C Ine); #UP# SUBSTITUTE (? UP) (N Prop Sg Ela ?- UP) (? UP) (-1C Ela); #UP# SUBSTITUTE (? UP) (N Prop Sg Nom ?- UP) (? UP) (-1C Nom); #UP# SUBSTITUTE (? UP) (N Prop Sg Par ?- UP) (? UP) (-1C Par); #UP# SUBSTITUTE (? UP) (N Prop Sg Gen ?- UP) (? UP) (-1C Gen); #UP# SUBSTITUTE (? UP) (N Prop Sg Ess ?- UP) (? UP) (-1C Ess); #UP# SUBSTITUTE (? UP) (N Prop Sg Tra ?- UP) (? UP) (-1C Tra); #UP# SUBSTITUTE (? UP) (N Prop Sg Abe ?- UP) (? UP) (-1C Abe); #UP# #UP# SUBSTITUTE (? UP) (N Prop Sg ?- UP) (? UP) (1 CCC)(2 UP)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg ?- UP) (? UP) (-1 CCC)(-2 Prop)(NEGATE -1 OMS); #UP# SUBSTITUTE (? UP) (N Prop Sg ?- UP) (? UP) (NEGATE -1 OMS); #UP# #UP# SUBSTITUTE (?) (Adv ?-) ("(.*)sti"r) ; ADD Cmpnd (*) IF (0/1 W0) (NEGATE 0 Cmpnd) ; # have to get it from subreading REMOVE Use_Rare ; REMOVE Neg (0 V - Neg)(NEGATE *1 ConNeg) ; # elä = ei/elää SELECT ("ei") + V ; REMOVE ConNeg (NEGATE *-1 Neg) ; REMOVE ConNeg (0 JUURI)(*1 ConNeg BARRIER S-BOUNDARY OR Punct OR V + Neg); SELECT ConNeg (-1 Neg)(NEGATE 0 Pron) ; SELECT ConNeg (-1 Neg)(NEGATE 1 ConNeg OR Conj OR Punct) ; SELECT POSS_SUFF (-1 Pers + Gen); #REMOVE ("itse") + Pl ; #SELECT ("itse") + POSS_SUFF (NEGATE 0 Ela) ; # va itsestään +?l SELECT ("itse") + Adv OR ("<itsestään>"i) + Adv; # do not distinguish Pron SELECT NSgEla (-1 ("kotoisin")) ; # usein A Pron? SELECT Pcle + A + ("eri") ; SELECT ("millainen") + A OR ("sellainen") + A; # more? REMOVE Ins (0 APrc OR Pron)(NEGATE 1 Ins); REMOVE Ins (0 KUIN OR Num OR Pers OR Foc_kaan OR ("vain") OR ("noin") OR ("niin")) ; REMOVE Ins (1 HYVIN); SELECT Pron (NEGATE 0 V OR Num OR Pers OR Indef)(NEGATE 1 Conj OR Pers) (0 $$ALLCASES)(1 $$ALLCASES); # even instr: samoin perustein SELECT Pron (NEGATE 0 V OR Num OR Pers)(NEGATE 1 Conj OR Pers OR Geo_word OR Geo_dir) (0 $$ALLCASES)(1 $$ALLCASES); # even instr: samoin perustein SELECT ("aika") + Pl + Ins (*0 FINV BARRIER S-BOUNDARY); # ajoin SELECT A + Sg + Ins (1C N + Sg + Ins); # virallisin tilaisuuksin SELECT A + Pl + Ins (1C N + Pl + Ins); SELECT Ins (NEGATE 0 UP OR FINV - ("omia"))(NEGATE 1 UP OR FINV)(1 Ins OR Ins-Advl) ; SELECT Ins (NEGATE 0 UP OR FINV)(NEGATE -1 UP OR FINV - ("omia"))(-1 Ins OR Ins-Advl) ; SELECT Ins (NEGATE 0 UP OR FINV)(NEGATE -1 UP OR FINV - ("omia"))(-1 NomHEAD OR APrc OR Adv)(-2 Ins-Advl) ; REMOVE Ins - V; REMOVE Ins (0 V - Ins - Pot); REMOVE Ins (0 Adv); SELECT N + ("aamu") OR A + ("mahdollinen") ; LIST Hullu = "hullu"; LIST Vuotias = "vuotias"; REMOVE N (0 VÄRI + A); SELECT A - Nom (0 Hullu) ; SELECT A (0 Vuotias) ; SELECT A (0 Vuotias OR Hullu) (NEGATE 1 FINV) ; REMOVE A (0 Vuotias OR Hullu) (1 FINV) ; # before subs REMOVE Prop + Lainen (-1 >>>) ; REMOVE A (0 Llainen)(0 ("perus(.*)"r)) ; # suomalainen = soome or soomlane REMOVE A (0 Lainen)(1 Prop)(2 Prop) ; # but organisations REMOVE KEEPORDER N (0 Lainen)(-1 ("muu"))(1 N)(0 $$ALLCASES)(-1 $$ALLCASES); REMOVE KEEPORDER A (0 Lainen)(-1 Pron)(0 $$ALLCASES)(-1 $$ALLCASES); REMOVE KEEPORDER N (0 Llainen)(1 N)(0 $$ALLCASES)(1 $$ALLCASES); REMOVE KEEPORDER N (0 Llainen)(1 N)(1 $$ALLCASES)(0 $$ALLCASES); REMOVE KEEPORDER N (0 Llainen)(1 A OR N)(2 N)(0 $$ALLCASES)(2 $$ALLCASES); REMOVE N (0 Llainen)(*-1C Llainen + A LINK 1 CCC) ; REMOVE N (0 Llainen)(*1C Llainen + A LINK -1 CCC) ; REMOVE N (0 Llainen)(*1C Llainen + A LINK -2 CCC) ; #REMOVE N (0 Llainen)(1C N OR A) ; REMOVE A (0 Llainen)(0C N OR A) ; REMOVE SUB:1 (*) ; # prefer whole word REMOVE SUB:2 (*) ; REMOVE SUB:3 (*) ; SELECT SUB:1 Use_Hyphen (0 ("<[^-]+-[^-]+>"r)) ; REMOVE SUB:1 Use_Hyphen (0/1 Use_NoHyphens) ; REMOVE SUB:2 Use_Hyphen (0/2 Use_NoHyphens) ; REMOVE SUB:1 Use_NoHyphens (0/1 N - Use_NoHyphens) ; REMOVE SUB:2 Use_NoHyphens (0/2 N - Use_NoHyphens) ; REMOVE SUB:1 Ni ; REMOVE SUB:2 Ni ; REMOVE SUB:3 Ni ; SELECT SUB:1 Pref- ; SELECT SUB:2 Pref- ; SELECT SUB:3 Pref- ; SELECT Sem_Geo + Nom OR Sem_Geo + Gen (1 Geo_word OR Geo_dir) ; SELECT Sem_Geo (0/1 Geo_word) ; SELECT SUB:1 Sem_Geo (0 Geo_word) ; SELECT SUB:1 Sem_Geo (0/1 Geo_word) ; SELECT Sem_Geo (-1 Geo_word OR Geo_dir) ; SELECT Sem_Geo (0/1 Geo_dir) ; SELECT SUB:1 Sem_Geo (0 Geo_word) ; SELECT SUB:1 Sem_Geo (0/1 Geo_word) ; REMOVE N + Prop (0 CC OR CS OR Pr OR Adv OR Pcle OR Pron OR Acro)(-1 OMS)(NEGATE 1 Prop)(NEGATE 2 Prop) ; REMOVE N + Prop (0 CC OR CS OR Pr OR Adv OR Pcle OR Pron OR Acro)(-1 Punct OR Num OR ABC)(-2 OMS)(NEGATE 1 Prop)(NEGATE 2 Prop) ; REMOVE N + Prop (0 CC OR CS OR Pr OR Adv OR Pcle OR Pron OR Acro)(-1 Punct)(-2 Num OR ABC)(-3 OMS)(NEGATE 1 Prop)(NEGATE 2 Prop) ; REMOVE KEEPORDER ("(.*)"r) + Prop (<*-1C ("$1"v) - Prop) ; REMOVE KEEPORDER ("(.*)"r) + Prop (*1C ("$1"v) - Prop) ; SELECT KEEPORDER ("(.*)"r) + Prop (<*-1C ("$1"v) + Prop LINK NOT -1 >>>) ; SELECT KEEPORDER ("(.*)"r) + Prop (*-1 >>> LINK <*-1C ("$1"v) + Prop) ; LIST UNP = "markkinat" "yhtiö" "sarja" "vaimo"; SELECT N + Prop + Nom (NEGATE 0 UNP) (1 Ref-VERB) ; SELECT N + Prop + Nom (NEGATE 0 UNP) (1 OLLA)(2 Ref-VERB) ; SELECT NORJA; # lemma SELECT ("Valio") OR ("Helsinki") OR ("Turku") OR NORJA + Prop ; #SUBSTITUTE (N) (N Prop) N + UP - Prop (NEGATE -1 OMS); # for transl common names are preferred REMOVE Prop + Nom (NEGATE 1 Prop)(NEGATE -1 Prop)(*1 OLLA BARRIER S-BOUNDARY LINK *1 ASIA + Nom_Par BARRIER S-BOUNDARY OR PCP); SELECT Prop + UP (NEGATE -1 OMS OR Prop OR Punct)(NEGATE 1 Prop); # still SELECT Prop + UP (-1 Prop OR Punct - OMS)(NEGATE -2 OMS)(NEGATE -3 OMS)(NEGATE 1 Prop); # still SELECT PARI_PUOLI + Num (1 Num) ; # puoli kahdeksan SELECT ("joka") + Indef (1 TIME-WORD + Nom); # iga aasta SELECT ("päivä") + NSgPar (*1 ("!") OR ("?")); SELECT ("ensi") + Pcle (1 TIME-WORD); SELECT TIME-WORD + Nom (-1 Pron OR ("koko")); SELECT ("ollenkaan") + Adv OR ("<lienee>i") + Pot ; SELECT OLLA (*0 PrfPrc BARRIER S-BOUNDARY OR OLLA + FINV) ; # Olen REMOVE PPPCPs + Pl (*0C OLLA + Sg BARRIER S-BOUNDARY) ; REMOVE PPPCPs + Pl (*0 OLLA + Act + Sg BARRIER S-BOUNDARY) ; REMOVE PPPCPs + Sg (*0C OLLA + Pl BARRIER S-BOUNDARY) ; REMOVE PPPCPs + Sg (*0 OLLA + Act + Pl BARRIER S-BOUNDARY) ; REMOVE PPPCPs + Pl (0 Act + Pl3)(*-1C NPlNom BARRIER S-BOUNDARY)(NEGATE *-1 Act + Pl3 BARRIER S-BOUNDARY)(NEGATE *1 Act + Pl3 BARRIER S-BOUNDARY) ; SELECT ADes + A OR ADes + N; REMOVE APrc + Sg (0 PPPCPs)(0 Act + Sg3)(1C NSgNom)(NEGATE *-1 NPSg3Nom BARRIER S-BOUNDARY)(NEGATE *-1 Act + Sg3 BARRIER S-BOUNDARY)(NEGATE *1 Act + Sg3 OR Pass + Ind + Prs BARRIER S-BOUNDARY) ; REMOVE APrc + Pl (0 PPPCPs)(0 Act + Pl3)(1C NPlNom)(NEGATE *-1 NPSg3Nom OR NPPl3Nom BARRIER S-BOUNDARY)(NEGATE *-1 Act + Pl3 BARRIER S-BOUNDARY)(NEGATE *1 Act + Pl3 OR Pass + Ind + Prs BARRIER S-BOUNDARY) ; # osviittaa antavat SELECT V - PPPCPs (0 Qst OR Foc_ko)(-1 OMS OR Punct)(NEGATE *1C FINV - Pot - Neg BARRIER S-BOUNDARY OR CC OR Punct) ; REMOVE FINV - Pot - Neg (*1C FINV - Pot - Neg BARRIER S-BOUNDARY OR CC OR Punct LINK NOT *-1/1 Conj) ; REMOVE FINV - Pot - Neg (*-1C FINV - Pot - Neg BARRIER S-BOUNDARY OR CC OR Punct LINK NOT *1/1 Conj) ; SELECT ("ei") + Foc_ka OR ("ei") + Imprt; # vs Impv ? SUBSTITUTE (CSei) (CS V) (CSei); LIST Muu = "muu"; REMOVE ConNeg (0 Muu + Pron)(1 KUIN); SELECT V + Neg (*1 ConNeg BARRIER S-BOUNDARY OR Neg) ; # et, etten, .. REMOVE ConNeg + Imprt (0 Pron)(*1 ConNeg + Imprt BARRIER S-BOUNDARY OR Punct OR V + Neg + Imprt) ; SELECT ConNeg + Imprt (NEGATE 0 Pron)(*-1 V + Neg + Imprt BARRIER S-BOUNDARY OR Punct OR ConNeg + Imprt) ; SELECT ConNeg + Ind (NEGATE 0 Pron OR A)(*-1 V + Neg - Imprt BARRIER S-BOUNDARY OR Punct OR ConNeg OR ("<mitään>")) ; SELECT ConNeg + Ind (NEGATE 0 Pron)(0 A + $$ALLCASES)(NEGATE 1 N + $$ALLCASES)(*-1 V + Neg - Imprt - Foc_ka BARRIER S-BOUNDARY OR Punct OR ConNeg OR ("<mitään>")) ; SELECT ConNeg + Ind (NEGATE 0 Pron)(0 A + $$ALLCASES)(*-1 V + Neg - Imprt BARRIER S-BOUNDARY OR Punct OR ConNeg OR ("<mitään>") LINK NOT -1 $$ALLCASES OR CCC) ; SELECT ConNeg + Ind (NEGATE 0 Pron)(0 A + $$ALLCASES)(*-1 V + Neg - Imprt BARRIER S-BOUNDARY OR Punct OR ConNeg OR ("<mitään>") LINK -1 CCC LINK NOT -1 $$ALLCASES) ; SELECT NES OR InfA-VERB (1 InfA)(NEGATE 1 Pron); SELECT InfA (NEGATE 0 Pron)(-1 NES OR InfA-VERB); SELECT InfMa OR NSgIll (-1 OLLA OR InfMa-VERB)(NEGATE 1 Po); #? satamaan SELECT InfMa OR NSgIll (-1 OLLA OR InfMa-VERB)(NEGATE 0 Gen_Par); REMOVE Prt - ConNeg (0 Prs - ConNeg)(*0 Prs-w BARRIER S-BOUNDARY OR CC OR Prt-w); # voi REMOVE Prs - ConNeg (0 Prt - ConNeg)(*0 Prt-w BARRIER S-BOUNDARY OR CC OR Prs-w); # voi REMOVE Prt - ConNeg (0 Prs - ConNeg)(**-1C Prs - ConNeg BARRIER Prt-w); # voi REMOVE Prs - ConNeg (0 Prt - ConNeg)(**-1C Prt - ConNeg BARRIER Prs-w); # voi REMOVE Prt - ConNeg (0 Prs - ConNeg)(<*0 Prs-w OR Prs - ConNeg BARRIER Prt-w); # voi REMOVE Prs - ConNeg (0 Prt - ConNeg)(<*0 Prt-w OR Prt - ConNeg BARRIER Prs-w); # voi REMOVE Prt - ConNeg (0 Prs - ConNeg); # voi SELECT Ind + ("voida") (-1 ("miten")); # voi SELECT Ind + ("voida") (-1 ("<sille>"))(-2 MIKA); # voi SELECT Ind + ("voida") (*0 InfA OR ("huonosti") BARRIER S-BOUNDARY OR InfA-VERB); # voi REMOVE V (0 VUO_VOI)(NEGATE *0 InfA OR ("miten") OR ("<sille>") OR ("huonosti") BARRIER S-BOUNDARY); # voi SELECT Interj + ("voi") (NEGATE 0 V)(-1 OMS)(1 Punct OR CS OR Interj)(NEGATE 2 NSgNom); # voi SELECT AgPrc + Sg + $$ALLCASES - Ill - POSS_SUFF (-1C NomHEAD + Gen OR Act + Ind)(1C N + Sg + $$ALLCASES); SELECT AgPrc + Pl + $$ALLCASES - Ill - POSS_SUFF (-1C NomHEAD + Gen OR Act + Ind)(1C N + Pl + $$ALLCASES); SELECT AgPrc + Sg - Ill (0 $$ALLCASES) (-1C NomHEAD + Gen OR Act + Ind)(1C N + Sg + $$ALLCASES); SELECT AgPrc + Pl - Ill (0 $$ALLCASES) (-1C NomHEAD + Gen OR Act + Ind)(1C N + Pl + $$ALLCASES); # heidän tuomistaan kaulakoruista REMOVE AgPrc + $$ALLCASES - POSS_SUFF (NEGATE 1 N + $$ALLCASES); REMOVE AgPrc + $$ALLCASES + POSS_SUFF - Gen (NEGATE 1 N + $$ALLCASES); REMOVE AgPrc + ALLCASES (-1 InfMa-Ill); SELECT InfA (NEGATE 0 Pron)(1 NES OR InfA-VERB LINK NOT 0 InfA LINK NOT *1 InfA-VERB BARRIER FINV OR S-BOUNDARY OR Conj OR Punct); SELECT InfA (NEGATE 0 Pron OR InfA-VERB)(1 NES OR InfA-VERB LINK NOT *1 InfA-VERB BARRIER FINV OR S-BOUNDARY OR Conj OR Punct); SELECT InfA (NEGATE 0 Pron)(-1 NES OR InfA-VERB); SELECT InfA (NEGATE 0 Pron)(-1 Adv OR Pcle)(-2 NES OR InfA-VERB); REMOVE Act + Ind + Sg3 (0 InfA)(NEGATE 0 Pron)(*-1C InfA-VERB BARRIER FINV OR S-BOUNDARY ^ KUIN OR Conj ^ KUIN OR Punct); #SELECT InfA (NEGATE 0 Pron OR InfA-VERB)(*-1C InfA-VERB BARRIER FINV OR S-BOUNDARY OR Conj OR Punct); # tulee vähitellen vihreitä _lehtiä_ SELECT InfA (NEGATE 0 Pron OR InfA-VERB)(-1 CCC LINK *-1C InfA BARRIER FINV OR S-BOUNDARY OR Conj OR Punct); REMOVE InfA (0 Act + Ind + Sg3)(*-1 NSgNom OR Pron + NomSg BARRIER S-BOUNDARY) (NEGATE *1 FINV - Pot - Neg BARRIER S-BOUNDARY OR Conj OR Punct)(NEGATE *-1 FINV - Pot - Neg BARRIER S-BOUNDARY OR Conj OR Punct) ; REMOVE InfA (0 Act + Ind + Sg3)(*-1 COMMA LINK *-1 NSgNom OR Pron + NomSg OR Act + Ind + Sg3 BARRIER S-BOUNDARY) (NEGATE *1 FINV - Pot - Neg BARRIER S-BOUNDARY OR Conj OR Punct)(NEGATE *-1 FINV - Pot - Neg BARRIER S-BOUNDARY OR Conj OR Punct) ; REMOVE InfA (0 Act + Ind + Sg3 OR N + Par)(*0C InfMa BARRIER S-BOUNDARY OR Conj OR Punct) ; REMOVE Pron + Qst (0 Pron + Foc_ko - Qst) ; # may be the other way round, would be nice, if agreed REMOVE Adv + Qst (0 Adv + Foc_ko - Qst) ; SELECT Der_minen + Pl - Ine - Ill (NEGATE -1 ("<mitään>")); SELECT Der_minen - Ine - Ill OR N + Pl (0 Der_minen)(NEGATE -1 ("<mitään>")); # probably for transl better to derive (as only a few may be in dict) REMOVE Pcle (0C Pcle OR Interj); REMOVE Interj (NEGATE 1 Punct OR Interj); REMOVE Adv OR Pcle (0 Interj)(-1 >>> OR Punct OR Interj); REMOVE N OR V (0 Interj)(-1 >>> OR Interj)(1 Punct - COLON OR CS OR Interj); SELECT HYVA_HUONO (-1 >>> OR Punct); SELECT Imprt (-1 >>>)(1 COMMA)(2 ETTA OR Interr) ; SELECT Imprt (-1 >>>)(1 COMMA)(*1 ("?") OR ("!")) ; SELECT FINV + Sg1 (-1 OMS)(1 CLB OR Punct)(2 CS)(*1 V + Sg1); SELECT FINV + Pl1 (-1 OMS)(1 CLB OR Punct)(2 CS)(*1 V + Pl1); SELECT FINV + Sg2 (-1 OMS)(1 CLB OR Punct)(2 CS)(*1 V + Sg2); SELECT FINV + Pl2 (-1 OMS)(1 CLB OR Punct)(2 CS)(*1 V + Pl2); SELECT FINV + Sg3 (-1 OMS)(1 CLB OR Punct)(2 CS)(*1 V + Sg3); SELECT FINV + Pl3 (-1 OMS)(1 CLB OR Punct)(2 CS)(*1 V + Pl3); SELECT A + ("suosittu"); SELECT MINÄ (*0 VSg1); SELECT ("kulta") + A (-1 Interj)(NEGATE 1 N); SELECT ("kulta") + A (0 $$ALLCASES) (1 N + $$ALLCASES); SELECT ("kulta") + N (*0 FINV); SELECT A (0C A OR N) (-1 OLLA); SELECT ("<teille>") + N (-1 A)(NEGATE -1 ALLCASES) ; # tie vs Pron IFF ("<teille>") + N (-1 APlAll) ; # tie vs Pron SELECT ASgPar (-1 ("<mitään>")); "<syövät>" REMOVE N OR A (-1 NPron + Pl + Nom); "<syövät>" REMOVE N OR A (NEGATE *-1 V BARRIER Punct)(NEGATE *1 V BARRIER Punct); SELECT ("(.*)vuosi"r) (1 Num OR Pron OR Po); SELECT ("(.*)vuosi"r) (-1 Num OR APrc OR Pron OR Pr OR VIIME); SELECT PARI_PUOLI + Num + Nom (1 NSgPar); SELECT PARI_PUOLI + Num + $$ALLCASES (1 N + Sg + $$ALLCASES); SELECT Num + Par (-1C Num + Nom); SELECT Num + $$ALLCASES (-1C Num + $$ALLCASES - Nom); SELECT N + Ill (NEGATE 0 A)(-1C Num + Nom)(2C N + Ela)(1C Num + Nom); SELECT N + Ela (NEGATE 0 A)(-1C Num + Nom)(-2C N + Ill)(-3C Num + Nom); SELECT N + Par (NEGATE 0 A)(-1C Num + Nom); SELECT A + Par (1 N + Par)(-1C Num + Nom); SELECT N + $$ALLCASES (-1C Num + $$ALLCASES - Nom); SELECT Num + Nom (0C Num)(1 NSgPar); SELECT Num + $$ALLCASES (0C Num)(1 N + Sg + $$ALLCASES); SELECT Num + Nom (0C Num OR Pref-)(NEGATE -1 Num)(*-1 ("kestää")); SELECT Num + Gen (0C Num OR Pref-)(NEGATE -1 Num)(*-1 ("kestää")); SELECT ("oikea") + Ade OR ("vasen") + Ade (1 ("puolella") OR N + Ade); SELECT ("oikealla") + Adv OR ("vasemalla") + Adv; SELECT ("oma") + A (0 $$ALLCASES)(1 N + $$ALLCASES); SELECT ("musta") + ASgNom (1 NSgNom); # "minä" Ela SELECT ("musta") + ASgNom (1 COMMA OR CC)(2 ASgNom); SELECT ("musta") + ASgNom (-1 COMMA OR CC)(-2 ASgNom); SELECT ("musta") + ASgNom (*0 ("väri")); SELECT ("musta") + ASgNom (-1 OLLA + Sg123); SELECT Num + Num-words; SELECT AcroW + Acro ; SELECT ABC + Acro (NEGATE 1 Prop) ; #SELECT ("s") + Acro OR ("k") + Acro (1 ("."))(2 Num) ; . as sentence boundary #SELECT ("s") + Acro OR ("k") + Acro (1 Num) ; . as sentence boundary REMOVE ("kahden"); # Adv, Pcle ?? REMOVE Sem_Human + Pl; # Particle verbs # mostly particle follows the verb, but have to check further if the previous-word condition is also needed ADD VPcle Ottaa-pcle + Adv - AdvPcle (*-1 ("ottaa") BARRIER S-BOUNDARY) ; # mukaan, vastaan ADD VPcle Jättaa-pcle + Adv - AdvPcle (*-1 ("jättää") BARRIER S-BOUNDARY) ; # väliin ADD VPcle Nostaa-pcle + Adv - AdvPcle (*-1 ("nostaa") BARRIER S-BOUNDARY) ; # sisälle ADD VPcle Tulla-pcle + Adv - AdvPcle (*-1 ("tulla") BARRIER S-BOUNDARY) ; # vastaan SELECT AdvPcle; # if particle precedes the verb (mukaan on otettu) , then have to be cautious: ADD VPcle Ottaa-pcle + Adv - AdvPcle (*1 ("ottaa") BARRIER S-BOUNDARY) ; # mukaan, vastaan ADD VPcle Jättaa-pcle + Adv - AdvPcle (*1 ("jättää") BARRIER S-BOUNDARY) ; # väliin ADD VPcle Nostaa-pcle + Adv - AdvPcle (*1 ("nostaa") BARRIER S-BOUNDARY) ; # sisälle ADD VPcle Tulla-pcle + Adv - AdvPcle (*1 ("tulla") BARRIER S-BOUNDARY) ; # vastaan SELECT AdvPcle (NEGATE 0 Po); SELECT AdvPcle (0 Po - GenLeft)(NEGATE -1 Par); SELECT AdvPcle (0 Po - ParLeft)(NEGATE -1 Gen); # CC CS Pcle REMOVE JaPcleCC; # SELECT as pattern recognition SELECT ("vaan") + Pcle (1 Punct); SELECT ("vaan") + Pcle (-1 Adv OR Pcle)(1 FINV); SELECT ("vaikkapa") + Pcle; SELECT ("vaikka") + CS (-1 V)(1 V); SELECT ("vaikka") + Pcle (-1 ("tai") OR ("jos")); SELECT ("vaikka") + Pcle (-1 V)(1 Prs-w OR Prt-w); SELECT ("vaikka") + Pcle (1 MIKA OR ("nyt") OR Foc_kin)(NEGATE -1 OMS OR Punct OR CS); IFF ("vaikka") + CS (-1 OMS OR Punct OR CS); REMOVE ("sun") + CC OR ("jos") + CC OR ("myös") + CC OR ("mitä") + CS OR ("vaan") + CS; SELECT ("koska") + Adv (1 ("tulla")); # millal/kunas SELECT ("koska") + Adv (*1 ("?")); # millal/kunas SELECT ("että") + CC (-1 $$ALLCASES LINK *-1 ("sekä"))(*1 $$ALLCASES BARRIER NP-BOUNDARY); # nii .. kui .. SELECT ("joko") + CC (*2 ("tai") BARRIER V OR CS OR Punct - COMMA); # kas 1, 2 või 3 SELECT ("tai") + CC (*-1 ("joko") BARRIER V OR CS OR Punct - COMMA); # kas 1, 2 või 3 SELECT ("sekä") + CC (*1 $$ALLCASES BARRIER NP-BOUNDARY LINK 1 ("että") LINK *1 $$ALLCASES BARRIER NP-BOUNDARY); # nii 1, 2 kui 3 SELECT ("että") + CC (-1 $$ALLCASES LINK *-1 ("sekä") + CC BARRIER NP-BOUNDARY)(*1 $$ALLCASES BARRIER NP-BOUNDARY); SELECT ("että") + CC (-1 N OR Adv LINK -1 Punct LINK -1 $$ALLCASES LINK *-1 ("sekä") + CC BARRIER NP-BOUNDARY)(*1 $$ALLCASES BARRIER NP-BOUNDARY); SELECT ("niin") + CC (*1 $$ALLCASES BARRIER NP-BOUNDARY LINK 1 ("kuin") LINK *1 $$ALLCASES BARRIER NP-BOUNDARY); # nii 1, 2 kui 3 SELECT ("kuin") + CC (-1 $$ALLCASES LINK *-1 ("niin") + CC BARRIER NP-BOUNDARY)(*1 $$ALLCASES BARRIER NP-BOUNDARY); SELECT ("niin") + CC (-1 COMMA)(*-2 ("jos") BARRIER S-BOUNDARY); # kui , siis SELECT ("niin") + Adv; SELECT ("kuin") + CC (1 ("myös")) ; SELECT ("kuin") + CC OR ("kuin") + CS ; # (-1 V OR A OR Adv)(1 POS); #SELECT ("kuin") + CC (-1 ("<muuta>") OR CMP-ENNEN); # comparative - CC? SELECT ("kuin") + CS (1 FINV); # sen jälkeen kuin # SELECT ("kuin") + CS ; # in UDT CC is only in "niin .. kuin .." (and "maassa kuin maassa"), but there is no CS given IFF ("kuin") + CC (NEGATE -2 ("sellainen") OR ("sama") OR ("jokin") OR ("muu") + Pron OR Comp)(NEGATE -1 Comp)(-1 $$POS + $$ALLCASES)(*1 $$POS + $$ALLCASES BARRIER S-BOUNDARY OR CCC); REMOVE Pcle IF (0 CC - Pcle) ; # ja, jos, tai, tahi, taikka, vaan, kuin SELECT CS (*-1 FINV BARRIER S-BOUNDARY)(*1 FINV BARRIER S-BOUNDARY); # kuin kunnes SELECT ("mutta") + CC OR CS (-1 OMS OR ("(")); SELECT CS (-1 COMMA_SCOL OR >>>); # koska(kuna) kun jos SELECT CS (-1 CC OR CS)(-2 COMMA); # SELECT CC (NEGATE 0 Pron)(*-1 InfA BARRIER S-BOUNDARY)(*1 InfA BARRIER S-BOUNDARY); SELECT CC (*-1 Imprt + Sg1 BARRIER S-BOUNDARY)(*1 Imprt + Sg1 BARRIER S-BOUNDARY); SELECT CC (*-1 Imprt + Sg2 BARRIER S-BOUNDARY)(*1 Imprt + Sg2 BARRIER S-BOUNDARY); SELECT CC (*-1 Imprt + Sg3 BARRIER S-BOUNDARY)(*1 Imprt + Sg3 BARRIER S-BOUNDARY); SELECT CC (*-1 Imprt + Pl1 BARRIER S-BOUNDARY)(*1 Imprt + Pl1 BARRIER S-BOUNDARY); SELECT CC (*-1 Imprt + Pl2 BARRIER S-BOUNDARY)(*1 Imprt + Pl2 BARRIER S-BOUNDARY); SELECT CC (*-1 Imprt + Pl3 BARRIER S-BOUNDARY)(*1 Imprt + Pl3 BARRIER S-BOUNDARY); SELECT CC (*-1 Act + Ind + Prs + Sg1 BARRIER S-BOUNDARY)(*1 Act + Ind + Prs + Sg1 BARRIER S-BOUNDARY); SELECT CC (*-1 Act + Ind + Prs + Sg2 BARRIER S-BOUNDARY)(*1 Act + Ind + Prs + Sg2 BARRIER S-BOUNDARY); SELECT CC (*-1 Act + Ind + Prs + Sg3 BARRIER S-BOUNDARY)(*1 Act + Ind + Prs + Sg3 BARRIER S-BOUNDARY); SELECT CC (*-1 Act + Ind + Prs + Pl1 BARRIER S-BOUNDARY)(*1 Act + Ind + Prs + Pl1 BARRIER S-BOUNDARY); SELECT CC (*-1 Act + Ind + Prs + Pl2 BARRIER S-BOUNDARY)(*1 Act + Ind + Prs + Pl2 BARRIER S-BOUNDARY); SELECT CC (*-1 Act + Ind + Prs + Pl3 BARRIER S-BOUNDARY)(*1 Act + Ind + Prs + Pl3 BARRIER S-BOUNDARY); SELECT CC (*-1 Act + Ind + Prt + Sg1 BARRIER S-BOUNDARY)(*1 Act + Ind + Prt + Sg1 BARRIER S-BOUNDARY); SELECT CC (*-1 Act + Ind + Prt + Sg2 BARRIER S-BOUNDARY)(*1 Act + Ind + Prt + Sg2 BARRIER S-BOUNDARY); SELECT CC (*-1 Act + Ind + Prt + Sg3 BARRIER S-BOUNDARY)(*1 Act + Ind + Prt + Sg3 BARRIER S-BOUNDARY); SELECT CC (*-1 Act + Ind + Prt + Pl1 BARRIER S-BOUNDARY)(*1 Act + Ind + Prt + Pl1 BARRIER S-BOUNDARY); SELECT CC (*-1 Act + Ind + Prt + Pl2 BARRIER S-BOUNDARY)(*1 Act + Ind + Prt + Pl2 BARRIER S-BOUNDARY); SELECT CC (*-1 Act + Ind + Prt + Pl3 BARRIER S-BOUNDARY)(*1 Act + Ind + Prt + Pl3 BARRIER S-BOUNDARY); SELECT CC (*-1 Pass + Ind + Prs BARRIER S-BOUNDARY)(*1 Pass + Ind + Prs BARRIER S-BOUNDARY); SELECT CC (*-1 Pass + Ind + Prt BARRIER S-BOUNDARY)(*1 Pass + Ind + Prt BARRIER S-BOUNDARY); SELECT CC (-1 $$ALLCASES)(*1 $$ALLCASES BARRIER NP-BOUNDARY); SELECT CC (-1 COMMA OR Dash)(-2 $$ALLCASES)(*1 $$ALLCASES BARRIER NP-BOUNDARY); SELECT Act + Ind + Prs + Sg1 (-1 CCC LINK *-1 Act + Ind + Prs + Sg1 BARRIER S-BOUNDARY); SELECT Act + Ind + Prs + Sg2 (-1 CCC LINK *-1 Act + Ind + Prs + Sg2 BARRIER S-BOUNDARY); SELECT Act + Ind + Prs + Sg3 (-1 CCC LINK *-1 Act + Ind + Prs + Sg3 BARRIER S-BOUNDARY); SELECT Act + Ind + Prs + Pl1 (-1 CCC LINK *-1 Act + Ind + Prs + Pl1 BARRIER S-BOUNDARY); SELECT Act + Ind + Prs + Pl2 (-1 CCC LINK *-1 Act + Ind + Prs + Pl2 BARRIER S-BOUNDARY); SELECT Act + Ind + Prs + Pl3 (-1 CCC LINK *-1 Act + Ind + Prs + Pl3 BARRIER S-BOUNDARY); SELECT Act + Ind + Prt + Sg1 (-1 CCC LINK *-1 Act + Ind + Prt + Sg1 BARRIER S-BOUNDARY); SELECT Act + Ind + Prt + Sg2 (-1 CCC LINK *-1 Act + Ind + Prt + Sg2 BARRIER S-BOUNDARY); SELECT Act + Ind + Prt + Sg3 (-1 CCC LINK *-1 Act + Ind + Prt + Sg3 BARRIER S-BOUNDARY); SELECT Act + Ind + Prt + Pl1 (-1 CCC LINK *-1 Act + Ind + Prt + Pl1 BARRIER S-BOUNDARY); SELECT Act + Ind + Prt + Pl2 (-1 CCC LINK *-1 Act + Ind + Prt + Pl2 BARRIER S-BOUNDARY); SELECT Act + Ind + Prt + Pl3 (-1 CCC LINK *-1 Act + Ind + Prt + Pl3 BARRIER S-BOUNDARY); SELECT Act + Ind + Prs + Sg1 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Prs + Sg1); SELECT Act + Ind + Prs + Sg2 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Prs + Sg2); SELECT Act + Ind + Prs + Sg3 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Prs + Sg3); SELECT Act + Ind + Prs + Pl1 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Prs + Pl1); SELECT Act + Ind + Prs + Pl2 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Prs + Pl2); SELECT Act + Ind + Prs + Pl3 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Prs + Pl3); SELECT Act + Ind + Prt + Sg1 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Prt + Sg1); SELECT Act + Ind + Prt + Sg2 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Prt + Sg2); SELECT Act + Ind + Prt + Sg3 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Prt + Sg3); SELECT Act + Ind + Prt + Pl1 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Prt + Pl1); SELECT Act + Ind + Prt + Pl2 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Prt + Pl2); SELECT Act + Ind + Prt + Pl3 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Prt + Pl3); SELECT Act + Ind + Sg1 (-1 CCC LINK *-1 Act + Ind + Sg1 BARRIER S-BOUNDARY); SELECT Act + Ind + Sg2 (-1 CCC LINK *-1 Act + Ind + Sg2 BARRIER S-BOUNDARY); SELECT Act + Ind + Sg1 (-2 CCC LINK *-1 Act + Ind + Sg1 BARRIER S-BOUNDARY); SELECT Act + Ind + Sg2 (-2 CCC LINK *-1 Act + Ind + Sg2 BARRIER S-BOUNDARY); SELECT Act + Ind + Sg1 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Sg1); SELECT Act + Ind + Sg2 (*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Ind + Sg2); SELECT Act + Ind + Sg1 (*1 CCC BARRIER S-BOUNDARY LINK 2 Act + Ind + Sg1); SELECT Act + Ind + Sg2 (*1 CCC BARRIER S-BOUNDARY LINK 2 Act + Ind + Sg2); SELECT Act + Imprt + Sg1 (-1 CCC LINK *-1 Act + Imprt + Sg1 BARRIER S-BOUNDARY LINK NOT 0 Ind); SELECT Act + Imprt + Sg2 (-1 CCC LINK *-1 Act + Imprt + Sg2 BARRIER S-BOUNDARY LINK NOT 0 Ind); SELECT Act + Imprt + Sg1 (-2 CCC LINK *-1 Act + Imprt + Sg1 BARRIER S-BOUNDARY LINK NOT 0 Ind); SELECT Act + Imprt + Sg2 (-2 CCC LINK *-1 Act + Imprt + Sg2 BARRIER S-BOUNDARY LINK NOT 0 Ind); SELECT Act + Imprt + Sg1 (NEGATE -1C NPSg3Nom OR Pers2)(*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Imprt + Sg1 LINK NOT 0 Ind); SELECT Act + Imprt + Sg2 (NEGATE -1C NPSg3Nom OR Pers1)(*1 CCC BARRIER S-BOUNDARY LINK 1 Act + Imprt + Sg2 LINK NOT 0 Ind); SELECT Act + Imprt + Sg1 (NEGATE -1C NPSg3Nom OR Pers2)(*1 CCC BARRIER S-BOUNDARY LINK 2 Act + Imprt + Sg1 LINK NOT 0 Ind); SELECT Act + Imprt + Sg2 (NEGATE -1C NPSg3Nom OR Pers1)(*1 CCC BARRIER S-BOUNDARY LINK 2 Act + Imprt + Sg2 LINK NOT 0 Ind); SELECT Pass + Ind + Prs (-1 CCC LINK *-1 Pass + Ind + Prs BARRIER S-BOUNDARY); SELECT Pass + Ind + Prs (-2 CCC LINK *-1 Pass + Ind + Prs BARRIER S-BOUNDARY); SELECT Pass + Ind + Prs (NEGATE -1C NPSgNom)(*1 CCC BARRIER S-BOUNDARY LINK 1 Pass + Ind + Prs); SELECT Pass + Ind + Prs (NEGATE -1C NPSgNom)(*1 CCC BARRIER S-BOUNDARY LINK 2 Pass + Ind + Prs); SELECT InfA (-1 CCC LINK *-1C InfA BARRIER S-BOUNDARY); SELECT InfA (*1 CCC BARRIER S-BOUNDARY OR InfA LINK 1C InfA LINK NOT *1 Ind + Sg3 BARRIER S-BOUNDARY); SELECT InfMa (-1 CCC LINK *-1C InfMa BARRIER S-BOUNDARY); SELECT InfMa (*1 CCC BARRIER S-BOUNDARY LINK 1C InfMa); SELECT Act + Ind + Sg3 (-1 CS)(NEGATE *1 FINV BARRIER S-BOUNDARY); REMOVE PrfPrc + Pl (0 PrfPrc + Sg) (-1C OLLA + Act + SGa)(NEGATE 1 N + Pl OR A + NomPl); REMOVE PrfPrc + Pl (0 OLLA + PrfPrc + Sg) (-1C OLLA + Act + SGa); # olisi (Sg3) ollut (Pl or Sg) tuhoisat (Subj Pl!) # Pcle A, Pcle, Adv SELECT ("aiemmin") + Adv OR ("enemmän") + Adv ; IFF ("aika") + Pcle (1 A OR Adv OR HYVIN) ; SELECT ("aika") + NSgNom (NEGATE 1 PALJON)(*0 Act + Sg3 BARRIER S-BOUNDARY)(NEGATE *1 NSgNom BARRIER S-BOUNDARY)(NEGATE *-1 NSgNom BARRIER S-BOUNDARY) ; LIST Viime = "viime" "ensi" "eri" "toissa"; SELECT Pcle + A (0 Viime)(1 N); SELECT ("suorastaan") + Pcle (1 A OR Adv OR V) ; # OR ("kyllä") + Pcle ? SELECT ("vain") + Pcle OR ("jo") + Pcle OR ("noin") + Pcle OR ("oikeastaan") + Pcle; SELECT ("sittenkin") ; REMOVE ("sitten") + Adv (-1 Num OR TIME-WORD); SELECT ("oikein") + Adv (1 A OR V OR Adv OR Punct); SELECT ("hyvin") + Adv (-1 InfA); SELECT ("tosi") + Adv (1 A OR Adv); SELECT ("kohta") + Adv (1C FINV + Sg3)(2C NSgNom); # kohta tulee talvi LIST Loppu = "loppu"; SELECT A OR NGen (1 Loppu); SELECT Loppu + NSgIll (-1 ASgIll); SELECT Loppu + NSgIne (-1 ASgIne OR NGen); SELECT Loppu + NSgAbl (-1 ASgAbl OR NGen); SELECT Loppu + NSgTra (-1 ASgTra OR NGen); SELECT ("koskaan") + Adv OR ("muuten") + Adv OR ("vähän") + Adv OR ("vähemmän") + Adv OR ("paljon") + Adv OR ("nykyisin") + Adv OR ("kyllä") + Adv OR ("suoraan") + Adv OR ("juuri") + Adv OR ("aamuisin") + Adv OR ("ikävissään") + Adv OR ("aikoinaan") + Adv OR ("toisinaan") + Adv OR ("iltaisin") + Adv OR ("kotona") + Adv OR ("melkein") + Adv OR ("lopulta") + Adv OR ("lopussa") + Adv OR ("loppuun") + Adv OR ("rikki") + Adv OR ("onneksi") + Adv ; REMOVE Adv OR A (0 Loppu); # ?? SELECT ("kerta") + N (-1 Num OR ("moni") OR Pcle + A); SELECT ("kerta") + N (1 CC)(2 Num); SELECT ("kerta") + N (0 Sg + $$ALLCASES)(-1 A + Sg + $$ALLCASES); SELECT ("kerta") + N (0 Pl + $$ALLCASES)(-1 A + Pl + $$ALLCASES); REMOVE ("kerta") + N (0 Adv); SELECT ("niin") + Adv (1 A OR Adv); SELECT ("niin") + Adv (-1 >>> OR Punct); SELECT ("puoleksi") + Adv (NEGATE 1 Sg + Tra); SELECT ("liikaa") + Adv (1 NPlPar); SELECT ("liikaa") + Adv (1 APlPar)(2 NPlPar); SELECT Adv + ADSET (1 APrc); # hyvin jm # Pron REMOVE ("sinut") + Adv (*0 V - OLLA BARRIER Punct OR CC); REMOVE ("sinut") + Adv (NEGATE *0 OLLA OR Pers + Pl OR Com OR Cmt OR ("kanssa")); SELECT ("yhtä") + Adv (1 PALJON-MONI OR Adv OR A); SELECT ("yhtään") + Adv (*-1 Neg BARRIER Punct OR CC); SELECT ("yhtään") + Adv (NEGATE 1 Sg + Par); SELECT ("yhdessä") + Adv (NEGATE 1 Sg + Ine); SELECT ("yhteen") + Adv OR ("yhteensä") + Adv (NEGATE 1 Sg + Ill); SELECT ("yksin") + Adv; SELECT ("yksi") + Num OR ("ensimmäinen") + Num; # do not distinguish Pron #SELECT ("toinen") + Pron (*1 COMMA OR CC LINK 1 ("toinen")); #SELECT ("toinen") + Pron (*-1C ("toinen") + Pron); SELECT ("toinen") + Num ; # do not distinguish Pron, special treatment before transl SELECT ("toinen") + PxPl3 ; # can be PxSg? #SELECT ("ensimmäinen") + Num (0C Sg + $$ALLCASES)(1C N + Sg + $$ALLCASES); #SELECT ("ensimmäinen") + Num (0C Sg + $$ALLCASES)(1 A + Sg + $$ALLCASES or N + Gen)(1C N + Sg + $$ALLCASES); SELECT ("jossain") + Adv OR ("jostain") + Adv OR ("missä") + Adv OR ("miksi") + Adv OR ("siellä") + Adv ; #? SELECT ("se") + Sg + Ade (-1 OMS); # sillä SELECT ("se") + Sg + Ade (1 NSgAde); # sillä SELECT ("sillä") + CS (1 COMMA)(2 ("jos")); # siis, kui IFF ("sillä") + CS (-1 COMMA); # sest SELECT ("se") + Pron + Ela (-1 FINV OR CS OR COLON OR SCOLON OR >>>); # siitä Adv SELECT ("se") + Pron + Ela (1 COMMA)(2 ETTA); # siitä Adv SELECT ("se") + Pron + Ill (1 V); # siihen Adv SELECT ("se") + Pron + Ill (-1C V); # siihen Adv IFF ("monta") (NEGATE 1 NomHEAD OR A OR Adv); # aika monta, (a lot), otherwise moni - or what the difference? SELECT ("minä") + Foc_kin ; SELECT ("mikään") + Ill (-1 OLLA); # midagi vs mihinkään Adv SELECT ("mihinkään") + Adv OR ("mistään") + Adv OR ("johonkin") + Adv OR ("ainakin") + Adv OR ("kuinka") + Adv; SELECT ("mitä") + Adv (1 ("<sitä>") OR ("<sen>")); # preconj SELECT ("mitä") + Adv (*2 COMMA BARRIER S-BOUNDARY OR ("mitä") LINK 1 ("<sitä>") OR ("<sen>")); # preconj IFF ("<sitä>") + Adv OR ("<sen>") + Pcle (-1 OMS OR COMMA)(-1 COMMA LINK *-1 ("mitä") + Adv BARRIER S-BOUNDARY); # cc IFF ("mitä") + Adv (1 A + Comp); # est mida SELECT ("mikään") OR ("kukaan") (*-1 Neg); SELECT ("mikään") (NEGATE 0 MIKA OR Adv); SELECT Adv (0 MIKA + INT-LOC)(NEGATE 1 INT-LOC); # missä mistä mihin SELECT MIKA + Interr (*1 ("?")); SELECT MIKA + Interr (1C V)(NEGATE -2 NomHEAD - ("<siitä>"))(-1C OMS OR Punct OR CC OR V); SELECT MIKA + Interr (*1C V OR ("<tahansa>") OR ("<vain>"))(-1C V OR OMS OR CS); SELECT MIKA + Interr (1C Punct OR ("<sitten>")); SELECT MIKA + Interr (-1 COMMA)(*-2 TIETAA BARRIER S-BOUNDARY); SELECT MIKA + Rel (-1 COMMA)(-2 NomHEAD); SELECT MIKA + Rel (-1 Neg OR NomHEAD); SELECT MIKA + Rel (1 ("vuoksi")); SELECT Pron + Ine + ("se") OR Pron + Ine + ("tämä") (1 Ine); # siinä SELECT Pron + Ine + ("se") OR Pron + Ine + ("tämä") (1 A OR N + Gen)(2 Ine); # siinä SELECT ("se") + Pron + Ine OR ("tämä") + Pron + Ine OR ("se") + Pron + Ela OR ("tämä") + Pron + Ela (0 Foc_kin) ; SELECT ("siinä") + Adv OR ("tässä") + Adv (*1 OLLA BARRIER S-BOUNDARY LINK *1 ("<asemassa>") BARRIER S-BOUNDARY) ; SELECT ("siinä") + Adv OR ("tässä") + Adv (*0 Tässä-verb BARRIER S-BOUNDARY) ; SELECT ("siitä") + Adv OR ("tästä") + Adv (*0 Tästä-verb BARRIER S-BOUNDARY) ; SELECT ("se") + Pron + Ine OR ("tämä") + Pron + Ine OR ("se") + Pron + Ela OR ("tämä") + Pron + Ela ; SELECT ("jokin") (-1 ("jos"i) OR ("vallan"i)); # jostakin johonkin (joka/jokin) SELECT ("jokin") (1 Punct OR ("muu") OR ("verran") OR ("tapa") OR ("syy") OR ("sortti") OR AD-PALJON OR HYVIN OR ("vallan")); # jossakin jostakin johonkin (joka/jokin) SELECT ("se") + Pron + Ill OR ("tämä") + Pron + Ill OR ("tuo") + Pron + Ill OR ("joka") + Pron + Ill (1 Sg + Ill OR ("mennessä")); # siihen Adv SELECT ("tähän") + Adv OR ("tuohon") + Adv (NEGATE 1 Sg + Ill); # ("siihen") + Adv very rare SELECT ("se") + Pron + Ine OR ("tämä") + Pron + Ine OR ("tuo") + Pron + Ine (1 Sg + Ine); # tässä Adv, siinä Adv SELECT ("siinä") + Adv OR ("tässä") + Adv OR ("tuossa") + Adv (NEGATE 1 Sg + Ine); SELECT MIKA + Pron + Ela OR ("se") + Pron + Ela OR ("tämä") + Pron + Ela OR ("joka") + Pron + Ela (1 Sg + Ela); # missä tästä Adv SELECT ("mistä") + Adv OR ("siitä") + Adv OR ("tästä") + Adv OR ("josta") + Adv (NEGATE 1 Sg + Ela); SELECT ("se") + Pron + Ade OR ("tuo") + Pron + Ade (1 Sg + Ade); # siellä tuolla Adv +? SELECT ("sillä") + Adv OR ("tuolla") + Adv (NEGATE 1 Sg + Ade); SELECT ("se") + Pron + Abl (1 Sg + Abl); # sieltä Adv SELECT ("sieltä") + Adv (NEGATE 1 Sg + Abl); SELECT ("joka") + Pron + Abe (1 Sg + Abe); # jotta CS SELECT ("jotta") + CS (NEGATE 1 Sg + Abe); # et REMOVE ("muu") + A OR ("usea") + A (0 Pron); SELECT ("muu") + Pron (NEGATE 0 V); # muistaa SELECT ("muu") + Sg + Pron (0 Imprt)(1 Punct OR CC)(*-1 ("ei") OR ("entä") BARRIER Punct); # muuttaa (ei muuta Sg Par); muistaa (ei muista Pl Ela) SELECT ("jotta") + CS (-1 COMMA)(*1 Cond); SELECT ("<jotakin>"i) + Indef ; # jokin - midagi SELECT ("joka") + Indef (1 TIME-WORD + Nom); # iga aasta SELECT ("joka") + Rel (1 FINV); # kes (+ üldised Rel reeglid) SELECT ("koko") + Pron (1C N)(1 Sg); SELECT ("koko") + Pron (1 TIME-WORD + Gen); # terve aja SELECT ("koko") + N (-1 MIKA); # mis suurus +? SELECT ("aika") + N (-1 UNDECL_ADJ); REMOVE N (0 Pron - ("sää")); # Sunhan SELECT Pers + Gen OR N + Gen (1 NES + Sg3)(*1 InfA BARRIER S-BOUNDARY OR Punct); SELECT Pers + Acc (*0 ("hakea") BARRIER Punct); SELECT Pers (-1 Punct OR CC)(NEGATE *1 FINV BARRIER Punct); SELECT ("minä") + Pers (0 Foc_kin OR Foc_kaan) ; SELECT ("minä") + Pers (*0 Act + Sg1); REMOVE ("minä") + Pers (*0C FINV - Sg1 BARRIER Punct); SELECT ("sinä") + Pers (0 Foc_kin OR Foc_kaan) ; SELECT ("sinä") + Pers (*0 Act + Sg2); REMOVE ("sinä") + Pers (*0C FINV - Sg2 BARRIER Punct); REMOVE Pron + Rel (-1 OMS)(0 Interr); SELECT Pron + Rel (-1 CC)(-2C Rel)(-3 COMMA); SELECT Pron + Interr (-1 CC)(-2 Interr)(-3 COMMA OR >>>); SELECT Pron + Interr (-1 COMMA OR >>>)(*1 ("?") BARRIER Punct); SELECT Pron + Interr (-1 COMMA)(*-2 ("kysyä") BARRIER Punct); SELECT Pron + Interr (-1 >>>); # add conditions REMOVE Pron + Rel (NEGATE -1 COMMA OR NomHEAD); # , may be missing REMOVE Pron + Rel (-1 COMMA)(NEGATE -2 NPron OR Po); SELECT Pron + Rel (-1 COMMA)(-2 NPron); # add conditions SELECT Pron + Rel (-1 COMMA)(-2 Po)(-3 NPron); # add conditions SELECT Pron + Rel (-1 Punct OR CC)(*-2 Punct LINK 1 Pron + Rel); SELECT Pron + Interr (NEGATE 0 V)(-1 Punct OR CC); # add conditions SELECT ("johon") + Adv ; REMOVE V (0 Pron)(*-1C FINV BARRIER Punct OR CC); REMOVE V (0 Pron)(*1C FINV BARRIER Punct OR CC); SELECT ("sitä") + Pcle (-1 FINV)(1 InfA); # ju SELECT Pron + Dem (-1 FINV); # add conditions SELECT Pron + Dem (-1 Adv OR Pcle)(-2 FINV); # add conditions SELECT Pron + Dem (-1 Adv OR Pcle)(-2 FINV); # add conditions REMOVE Pron + Dem IF (0 Pers)(1 FINV OR PrfPrc); # add conditions SELECT ("<tuo>"i) + Pron + Nom (1C Nom)(NEGATE *-1 Imprt + Sg2 OR Act + Ind + Prs + Sg3); REMOVE Imprt (*1 ("?") BARRIER QUO OR (")")); # very hackish (tuo) SELECT VSg1 OR InfA (0 VSg1)(*0C PxSg1 BARRIER S-BOUNDARY)(NEGATE *-1 VSg1 BARRIER S-BOUNDARY)(NEGATE *1 VSg1 BARRIER S-BOUNDARY); SELECT VPl1 OR InfA (0 VPl1)(*0C PxPl1 BARRIER S-BOUNDARY)(NEGATE *-1 VPl1 BARRIER S-BOUNDARY)(NEGATE *1 VPl1 BARRIER S-BOUNDARY); SELECT VSg2 OR InfA (0 VSg2)(*0C PxSg2 BARRIER S-BOUNDARY)(NEGATE *-1 VSg2 BARRIER S-BOUNDARY)(NEGATE *1 VSg2 BARRIER S-BOUNDARY); SELECT VPl2 OR InfA (0 VPl2)(*0C PxPl2 BARRIER S-BOUNDARY)(NEGATE *-1 VPl2 BARRIER S-BOUNDARY)(NEGATE *1 VPl2 BARRIER S-BOUNDARY); REMOVE InfA + PxPl3 OR InfE + PxPl3 (0 InfA + PxSg3 OR InfE + PxSg3)(*-1C Ind + Act + Sg3 OR Neg + Act + Sg3 BARRIER S-BOUNDARY OR Punct OR Pers1 OR Pers2 OR Pron + Pl3); REMOVE InfA + PxSg3 OR InfE + PxSg3 (0 InfA + PxPl3 OR InfE + PxPl3)(*-1C Ind + Act + Pl3 OR Neg + Act + Pl3 BARRIER S-BOUNDARY OR Punct OR Pers1 OR Pers2 OR Pron + Sg3); # Po Pr # Po/Pr SUBSTITUTE Adp (*) Po - Adp ; SUBSTITUTE Adv Po GenLeft + Foc_kin (-1 Gen); SUBSTITUTE Adv Po ParLeft + Foc_kin (-1 Par); SELECT Po + NomLeft (-1 TIME-WORD + Nom) ; "<luokseen>" SELECT Adv (-1 Acc OR Par)(NEGATE -1 Gen) ; # 3 rules from orig "<asti>" SELECT Po (-1 Ill_Tra_All) ; "<saakka>" SELECT Po (-1 Ill) ; "<mennessä>" SELECT Po (-1 Ill) ; SELECT Po + ElaLeft (NEGATE 1 Ela)(-1 Ela) ; SUBSTITUTE Adv Pr TARGET ElaRight + Adv (NEGATE -1 Ela)(1 Ela) ; SELECT Ela (-1 ElaRight + Pr); REMOVE Po OR Pr (NEGATE 0 GenLeft OR ParLeft OR ParRight OR GenRight); # should find exact context for all SUBSTITUTE Adv Pr TARGET ("paitsi") + Adv (NEGATE -1 Pron + Par)(*1 N BARRIER Punct OR Conj); # (1 N + Nom OR Kieli + Tra) ; SELECT N + Nom (-1 ("paitsi")); SELECT N + Sg + POSS_SUFF (-1 ("paitsi")); SUBSTITUTE Adv Pr TARGET ("yli") + Adv (1C Num)(1 Nom OR Par OR Card) ; SUBSTITUTE Adv Pr TARGET ("yli") + Adv (*-1C ("kello") OR ("aika") OR Card)(1 Num + Nom OR Num + Par OR Card) ; SUBSTITUTE Adv Pr TARGET ("yli") + Adv (-1 Num OR ("sekunti") OR ("minuutti") OR ("vartti"))(1 Num + Nom OR Num + Par OR Card) ; SELECT Num + Nom OR Num + Par OR Card (-1 ("yli") + Pr); SUBSTITUTE Adv Pr TARGET Adv + ParRight (NEGATE -1 Gen_Par)(1 Pron OR A OR Prop)(2C Par OR Ela) ; # ennen SELECT Par (-1 Pron OR A OR Prop)(-2 Pr); SUBSTITUTE Adv Pr TARGET Adv + GenRight + GenLeft (NEGATE -1 Gen)(1 Pron)(2C Gen) ; SUBSTITUTE Adv Pr TARGET Adv + ParRight + ParLeft - GenLeft (1C Par) ; SUBSTITUTE Adv Pr TARGET Adv + ParRight - GenLeft - ParLeft (1C Par) ; SUBSTITUTE Adv Pr TARGET Adv + ParRight - ParLeft (0 GenLeft)(NEGATE -1 Gen) (1 Par) ; SUBSTITUTE Adv Pr TARGET Adv + GenRight - ParLeft (0 GenLeft)(NEGATE -1 Gen) (1 Gen) ; SUBSTITUTE Adv Pr TARGET Adv + ParRight (0 ParLeft)(0 GenLeft)(NEGATE -1 Gen_Par) (1 Par) ; SUBSTITUTE Adv Pr TARGET Adv + GenRight (0 ParLeft)(0 GenLeft)(NEGATE -1 Gen_Par) (1 Gen) ; SUBSTITUTE Adv Pr TARGET Adv + ParRight - ParLeft (0 GenLeft)(-1 Gen)(-2 GenRight)(1C Par) ; SUBSTITUTE Adv Pr TARGET Adv + GenRight - ParLeft (0 GenLeft)(-1 Gen)(-2 GenRight)(1C Gen) ; SUBSTITUTE Adv Pr TARGET Adv + ParRight (0 ParLeft)(0 GenLeft)(-1 Gen_Par)(-2 GenRight OR ParRight)(1C Par) ; SUBSTITUTE Adv Pr TARGET Adv + GenRight (0 ParLeft)(0 GenLeft)(-1 Gen_Par)(-2 GenRight OR ParRight)(1C Gen) ; SELECT Pr; # there are no preposition readings given # rewrite SUBSTITUTEs to SELECTs then Pr comes from mrf SELECT Po + GenLeft (-1 Digit); # vuoden 1830 tienoilla # restrictions? SELECT Po + ParLeft - GenRight - ParRight (-1C Nom_Gen_Par)(-1 Gen_Par) ; SELECT Po + GenLeft - GenRight - ParRight (-1C Nom_Gen_Par)(-1 Gen) ; SELECT Po + ParLeft - ParRight (0 GenRight)(NEGATE 1 Gen) (-1C Nom_Gen_Par)(-1 Gen_Par) ; SELECT Po + GenLeft - ParRight (0 GenRight)(NEGATE 1 Gen) (-1C Nom_Gen_Par)(-1 Gen) ; SELECT Po + ParLeft - GenRight (0 ParRight)(NEGATE 1 Par) (-1C Nom_Gen_Par)(-1 Gen_Par) ; SELECT Po + GenLeft - GenRight (0 ParRight)(NEGATE 1 Par) (-1C Nom_Gen_Par)(-1 Gen) ; SELECT Po + ParLeft (0 ParRight)(0 GenRight)(NEGATE 1 Gen OR Par) (-1C Nom_Gen_Par)(-1 Gen_Par) ; SELECT Po + GenLeft (0 ParRight)(0 GenRight)(NEGATE 1 Gen OR Par) (-1C Nom_Gen_Par)(-1 Gen) ; SELECT Po + ParLeft - ParRight (0 GenRight)(1 Gen)(2 GenLeft)(-1C Nom_Gen_Par)(-1 Gen_Par) ; SELECT Po + GenLeft - ParRight (0 GenRight)(1 Gen)(2 GenLeft)(-1C Nom_Gen_Par)(-1 Gen) ; SELECT Po + ParLeft - GenRight (0 ParRight)(1 Par)(2 ParLeft)(-1C Nom_Gen_Par)(-1 Gen_Par) ; SELECT Po + GenLeft - GenRight (0 ParRight)(1 Par)(2 ParLeft)(-1C Nom_Gen_Par)(-1 Gen) ; SELECT Po + ParLeft (0 ParRight)(0 GenRight)(1 Gen OR Par)(2 GenLeft OR ParLeft)(-1C Nom_Gen_Par)(-1 Gen_Par) ; SELECT Po + GenLeft (0 ParRight)(0 GenRight)(1 Gen OR Par)(2 GenLeft OR ParLeft)(-1C Nom_Gen_Par)(-1 Gen) ; SELECT Po (-1 CC)(-2C Po) ; SELECT Pr (1 CC)(2C Pr) ; SELECT CC (-1C Po); REMOVE Po (-1 Punct OR >>>); SELECT Gen (1C Po + GenLeft)(NEGATE 1 ParRight OR GenRight) ; SELECT Gen (1C Po + GenLeft)(NEGATE 2 Gen_Par) ; SELECT Gen (-1C Pr + GenRight) ; SELECT Par (1C Po + ParLeft) ; SELECT Par (-1C Pr + ParRight) ; # Po/Pr SELECT ("lisä") + Tra (NEGATE 0 Po); SELECT ("lisä") + Tra (NEGATE -1 Gen); SELECT ("parhaillaan") + Adv OR ("parhaimmillaan") + Adv ; SELECT ("hyvin") + Adv; SELECT ("hyvä") + A; SELECT ASgNom (0C Sg + Nom) (1C N)(1 NSgNom) ; # vaalea paita SELECT N (0C NomSg) (-1C ASgNom) ; SELECT N (0C NomPl) (-1C APlNom) ; SELECT N (0C ParSg) (-1C ASgPar) ; SELECT N (0C ParPl) (-1C APlPar) ; SELECT N (0C GenSg) (-1C ASgGen) ; SELECT N (0C GenPl) (-1C APlGen) ; SELECT A + NomSg (NEGATE 0 PPPCPs)(1C ASgNom - ("oma")) ; SELECT ASgNom (1C ASgNom - ("oma") - PrfPrc) ; SELECT APlNom (1C APlNom) (NEGATE 0 Ind) ; SELECT ASgPar (1C ASgPar) ; SELECT APlPar (1C APlPar) ; SELECT ASgGen (1C ASgGen) ; SELECT APlGen (1C APlGen) ; SELECT ASgNom (-1C ASgNom - ("oma") - PrfPrc) ; SELECT APlNom (-1C APlNom)(NEGATE 0 FINV) ; SELECT APlNom (-1C APlNom)(1 NPlNom) ; SELECT ASgPar (-1C ASgPar) ; SELECT APlPar (-1C APlPar) ; SELECT ASgGen (-1C ASgGen) ; SELECT APlGen (-1C APlGen) ; SELECT ASgNom (1C NSgNom) ; SELECT APlNom (1C NPlNom) ; SELECT ASgPar (1C NSgPar) ; SELECT APlPar (1C NPlPar) ; SELECT ASgGen (1C NSgGen)(NEGATE 2 N) ; SELECT APlGen (1C NPlGen)(NEGATE 2 N) ; SELECT ASgNom (-1 CCC)(-2C ASgNom) ; SELECT APlNom (-1 CCC)(-2C APlNom) ; SELECT ASgGen (-1 CCC)(-2C ASgGen) ; SELECT APlGen (-1 CCC)(-2C APlGen) ; SELECT ASgPar (-1 CCC)(-2C ASgPar) ; SELECT APlPar (-1 CCC)(-2C APlPar) ; SELECT ASgIne (-1 CCC)(-2C ASgIne) ; SELECT ASgEla (-1 CCC)(-2C ASgEla) ; SELECT ASgIll (-1 CCC)(-2C ASgIll) ; SELECT ASgAde (-1 CCC)(-2C ASgAde) ; SELECT ASgAbl (-1 CCC)(-2C ASgAbl) ; SELECT ASgAll (-1 CCC)(-2C ASgAll) ; SELECT ASgEss (-1 CCC)(-2C ASgEss) ; SELECT ASgTra (-1 CCC)(-2C ASgTra) ; SELECT APlIne (-1 CCC)(-2C APlIne) ; SELECT APlEla (-1 CCC)(-2C APlEla) ; SELECT APlIll (-1 CCC)(-2C APlIll) ; SELECT APlAde (-1 CCC)(-2C APlAde) ; SELECT APlAbl (-1 CCC)(-2C APlAbl) ; SELECT APlAll (-1 CCC)(-2C APlAll) ; SELECT APlEss (-1 CCC)(-2C APlEss) ; SELECT APlTra (-1 CCC)(-2C APlTra) ; SELECT ASgNom (1 CCC)(2C ASgNom) ; SELECT APlNom (1 CCC)(2C APlNom) ; SELECT ASgGen (1 CCC)(2C ASgGen) ; SELECT APlGen (1 CCC)(2C APlGen) ; SELECT ASgPar (1 CCC)(2C ASgPar) ; SELECT APlPar (1 CCC)(2C APlPar) ; SELECT ASgIne (1 CCC)(2C ASgIne) ; SELECT ASgEla (1 CCC)(2C ASgEla) ; SELECT ASgIll (1 CCC)(2C ASgIll) ; SELECT ASgAde (1 CCC)(2C ASgAde) ; SELECT ASgAbl (1 CCC)(2C ASgAbl) ; SELECT ASgAll (1 CCC)(2C ASgAll) ; SELECT ASgEss (1 CCC)(2C ASgEss) ; SELECT ASgTra (1 CCC)(2C ASgTra) ; SELECT APlIne (1 CCC)(2C APlIne) ; SELECT APlEla (1 CCC)(2C APlEla) ; SELECT APlIll (1 CCC)(2C APlIll) ; SELECT APlAde (1 CCC)(2C APlAde) ; SELECT APlAbl (1 CCC)(2C APlAbl) ; SELECT APlAll (1 CCC)(2C APlAll) ; SELECT APlEss (1 CCC)(2C APlEss) ; SELECT APlTra (1 CCC)(2C APlTra) ; SELECT NSgNom (-1 CCC)(-2C NSgNom LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NPlNom (-1 CCC)(-2C NPlNom LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NSgGen (-1 CCC)(-2C NSgGen LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NPlGen (-1 CCC)(-2C NPlGen LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NSgPar (-1 CCC)(-2C NSgPar LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NPlPar (-1 CCC)(-2C NPlPar LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NSgIne (-1 CCC)(-2C NSgIne LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NSgEla (-1 CCC)(-2C NSgEla LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NSgIll (-1 CCC)(-2C NSgIll LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NSgAde (-1 CCC)(-2C NSgAde LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NSgAbl (-1 CCC)(-2C NSgAbl LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NSgAll (-1 CCC)(-2C NSgAll LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NSgEss (-1 CCC)(-2C NSgEss LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NSgTra (-1 CCC)(-2C NSgTra LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NPlIne (-1 CCC)(-2C NPlIne LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NPlEla (-1 CCC)(-2C NPlEla LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NPlIll (-1 CCC)(-2C NPlIll LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NPlAde (-1 CCC)(-2C NPlAde LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NPlAbl (-1 CCC)(-2C NPlAbl LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NPlAll (-1 CCC)(-2C NPlAll LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NPlEss (-1 CCC)(-2C NPlEss LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NPlTra (-1 CCC)(-2C NPlTra LINK NOT 0 SOMEPX)(NOT 0 SOMEPX) ; SELECT NSgNom (1 CCC)(2C NSgNom) ; SELECT NPlNom (1 CCC)(2C NPlNom) ; SELECT NSgGen (1 CCC)(2C NSgGen)(NEGATE 3 N) ; SELECT NPlGen (1 CCC)(2C NPlGen)(NEGATE 3 N) ; SELECT NSgPar (1 CCC)(2C NSgPar) ; SELECT NPlPar (1 CCC)(2C NPlPar) ; SELECT NSgIne (1 CCC)(2C NSgIne) ; SELECT NSgEla (1 CCC)(2C NSgEla) ; SELECT NSgIll (1 CCC)(2C NSgIll) ; SELECT NSgAde (1 CCC)(2C NSgAde) ; SELECT NSgAbl (1 CCC)(2C NSgAbl) ; SELECT NSgAll (1 CCC)(2C NSgAll) ; SELECT NSgEss (1 CCC)(2C NSgEss) ; SELECT NSgTra (1 CCC)(2C NSgTra) ; SELECT NPlIne (1 CCC)(2C NPlIne) ; SELECT NPlEla (1 CCC)(2C NPlEla) ; SELECT NPlIll (1 CCC)(2C NPlIll) ; SELECT NPlAde (1 CCC)(2C NPlAde) ; SELECT NPlAbl (1 CCC)(2C NPlAbl) ; SELECT NPlAll (1 CCC)(2C NPlAll) ; SELECT NPlEss (1 CCC)(2C NPlEss) ; SELECT NPlTra (1 CCC)(2C NPlTra) ; SELECT NSgNom (-1C ASgNom LINK 0C A)(NEGATE 1 N) ; SELECT NSgNom (-1C ASgNom LINK 0C A)(NEGATE 0 Gen) ; SELECT NSgNom (-1C ASgNom)(NEGATE 1 N)(NEGATE *-2 OLLA BARRIER S-BOUNDARY OR PrfPrc) ; SELECT NSgNom (-1C ASgNom)(NEGATE 0 Gen)(NEGATE *-2 OLLA BARRIER S-BOUNDARY OR PrfPrc) ; SELECT NPlNom (-1C APlNom)(NEGATE 1 N) ; SELECT NPlNom (-1C APlNom)(NEGATE 0 Gen) ; SELECT NSgGen (-1C ASgGen) ; SELECT NPlGen (-1C APlGen) ; SELECT NSgPar (-1C ASgPar)(NEGATE 1 N) ; SELECT NSgPar (-1C ASgPar)(NEGATE 0 Gen) ; SELECT NPlPar (-1C APlPar)(NEGATE 1 N) ; SELECT NPlPar (-1C APlPar)(NEGATE 0 Gen) ; SELECT NSgIne (-1 ASgIne) (-1C Ine) ; SELECT NSgEla (-1 ASgEla) (-1C Ela) ; SELECT NSgIll (-1 ASgIll) (-1C Ill) ; SELECT NSgAde (-1 ASgAde) (-1C Ade) ; SELECT NSgAbl (-1 ASgAbl) (-1C Abl) ; SELECT NSgAll (-1 ASgAll) (-1C All) ; SELECT NSgEss (-1 ASgEss) (-1C Ess) ; SELECT NSgTra (-1 ASgTra) (-1C Tra) ; SELECT NPlIne (-1 APlIne) (-1C Ine) ; SELECT NPlEla (-1 APlEla) (-1C Ela) ; SELECT NPlIll (-1 APlIll) (-1C Ill) ; SELECT NPlAde (-1 APlAde) (-1C Ade) ; SELECT NPlAbl (-1 APlAbl) (-1C Abl) ; SELECT NPlAll (-1 APlAll) (-1C All) ; SELECT NPlEss (-1 APlEss) (-1C Ess) ; SELECT NPlTra (-1 APlTra) (-1C Tra) ; SELECT NSgGen (1C AgPrc) ; LIST Silma = "silmä" "korva" "käsi" "jalka" "hammas" "hius"; SELECT ("jalan") + Adv (*-1 ("käydä") OR ("mennä") BARRIER FINV); REMOVE Sg + POSS_SUFF (0 Silma + Pl); #? REMOVE NomSg (0 PxSg3)(NEGATE 0 Prop)(*-1 NPSgNom BARRIER S-BOUNDARY OR OLLA); REMOVE NomSg (0 PxSg3)(NEGATE 1 Prop + NomSg OR Act + Ind + Sg3)(*1 NPSgNom BARRIER S-BOUNDARY OR OLLA); #REMOVE Act + PrsPrc (0 A + $$ALLCASES)(0 V + $$ALLCASES); # prefer A for transl, if it is in dict, otherwise will be PrfPrc and PrsPrc REMOVE N (0 Act + PrsPrc + $$ALLCASES)(1 $$ALLCASES); REMOVE N (0 Act + PrfPrc); REMOVE A (0 Act + PPPCPs); # most probably A is not in dict, so here prefer Act Prc SELECT Act + Ind + Prs + Sg1 (-1 COMMA OR CC)(*-2 Act + Ind + Prs + Sg1 BARRIER Punct OR CC); SELECT NSgNom OR ASgNom OR Num + NomSg (NEGATE 0 Adv OR Gen) (1 FINV + Sg3)(NEGATE *-1 FINV + Sg3 BARRIER CCC OR S-BOUNDARY LINK -1 NSgNom) ; SELECT NSgNom OR ASgNom OR Num + NomSg (NEGATE 0 Adv OR POSS_SUFF) (1 FINV + Sg3)(NEGATE *-1 FINV + Sg3 BARRIER CCC OR S-BOUNDARY LINK -1 NSgNom) ; SELECT NSgNom OR ASgNom OR Num + NomSg (NEGATE 0 Adv) (1 FINV + Sg3)(NEGATE *-1 FINV + Sg3 BARRIER CCC OR S-BOUNDARY LINK -1 NSgNom) (NEGATE *1 NPSg3Nom BARRIER CCC OR S-BOUNDARY) ; #GRC SELECT NPlNom (1 FINV + Pl3)(NEGATE *-1 CC OR Num BARRIER Punct LINK *-1 NSgNom) ; SELECT NPlNom (NEGATE 0 Par)(1 FINV + Pl3)(NEGATE *-1 CC BARRIER Punct LINK *-1 NSgNom) ; SELECT ("paperi") + Pl + Nom (NEGATE -1 Num OR ("moni") OR PALJON OR PARI_PUOLI)(*0 Ill BARRIER S-BOUNDARY) ; # hän vei paperinsa tiedekuntaan SELECT HYVA_HUONO + ASgNom (*-1 OLLA + Sg3 BARRIER CCC OR S-BOUNDARY OR NPSgNom)(NEGATE 1 N) ; # predicative SELECT ASgNom (OC A OR N)(*-1 OLLA + Sg3 BARRIER CCC OR S-BOUNDARY OR NPSgNom)(NEGATE 1 N) ; # predicative #? SELECT ASgNom (OC A OR N)(*-1 OLLA + Sg3 BARRIER CCC OR S-BOUNDARY OR NPSgNom)(1 N + $$ALLCASES)(NEGATE 0 $$ALLCASES) ; # predicative REMOVE NomHEAD + NomSg + POSS_SUFF (0 Gen) (-1 Act + Ind + Sg3 - OLLA OR Act + Ind + Pl3 - OLLA)(-2 UP + Unknown)(NEGATE -3 OMS) ; SELECT NomHEAD + NomSg (NEGATE 0 Adv) (*-1 FINV + Sg3 BARRIER CCC OR S-BOUNDARY OR NPSgNom LINK NOT *-1 NPSgNom OR Acro + NomSg) ; # Tässä on sinun huoneesi ? SELECT NSgNom (-1 >>>)(1 Punct) ; SELECT IHM + NSgNom (1 Prop)(2 FINV + Sg3) ; SELECT IHM + NSgNom (1 Prop)(2 Prop)(3 FINV + Sg3) ; SELECT IHM + NPlNom (1 Prop)(2 FINV + Pl3)(NEGATE *-1 CC OR Num BARRIER Punct LINK *-1 NSgNom) ; SELECT IHM + NSgNom (1 Prop)(2 Prop)(3 FINV + Pl3)(*-1 CC BARRIER Punct LINK *-1 NSgNom) ; SELECT IHM + NPlNom (1 Prop)(2 CC)(3 Prop)(4 FINV + Pl3)(NEGATE *-1 CC OR Num BARRIER Punct LINK *-1 NSgNom) ; REMOVE FINV + Sg3 (*-1C FINV + Sg3 BARRIER CCC OR S-BOUNDARY) ; SELECT FINV + Sg3 - UP (-1C NSgNom) ; SELECT FINV + Pl3 - UP (-1C NPlNom) ; SELECT FINV + Sg3 - UP (-2C NUMS)(-1 NSgPar OR N + Ela) ; SELECT FINV + Pl3 - UP (-2C Num)(-1 NSgPar OR N + Ela) ; SELECT FINV + Sg3 - UP (-1 OMS)(1C NSgNom) ; SELECT FINV + Pl3 - UP (-1 OMS)(1C NPlNom) ; SELECT FINV + Sg3 - UP (-1 Adv)(-2 OMS)(1C NSgNom) ; SELECT FINV + Pl3 - UP (-1 Adv)(-2 OMS)(1C NPlNom) ; SELECT FINV + Pl3 - UP (-1C N + Nom)(*-1 CC BARRIER Punct LINK *-1 NSgNom) ; SELECT FINV + Pl3 - UP (-1C N + Par)(*-1 Num BARRIER Punct) ; REMOVE Adv + AdvAdds (0 Adv - AdvAdds) ; REMOVE N (0 A + $$ALLCASES) (1 N + $$ALLCASES) ; # A or N REMOVE N (0 A + Nom) (-1 OLLA) ; # A or N REMOVE A (0 NSgNom) (1 Act + Sg3) ; REMOVE A (0 NPlNom) (1 Act + Pl3) ; SELECT Foc_ko (-1 >>>)(*1 ("?")); SELECT Ela (1 OLLA OR InfA)(2 Hauskaa) ; SELECT Par (-1 Hauskaa) ; # hauskaa matkaa! SELECT HYVA_HUONO + A (-1 OLLA OR InfA) ; SELECT HYVA_HUONO + A (1 OLLA OR InfA) ; SELECT Gen (1 Täytyy)(2 OLLA) ; SELECT Par OR Nom (0 Prop)(NEGATE 0 Ela OR Adv)(-1 Par-OBJ) ; SELECT Par (NEGATE 0 Ela OR Adv OR Prop)(-1 Par-OBJ) ; SELECT Gen (NEGATE 0 Ela OR Adv OR Prop OR POSS_SUFF)(-1 Par-OBJ) ; SELECT Gen (NEGATE 0 Ela OR Adv OR Prop OR NomPl)(-1 Par-OBJ) ; SELECT Par (NEGATE 0 Adv OR Prop)(-1 Par-OBJ - ("pitää")) ; SELECT Pron + Par (NEGATE 0 Ela)(-1 Par-OBJ) ; SELECT Pron + Par (-1 Par-OBJ - ("pitää")) ; SELECT ("menossa") + Adv (*-1 OLLA BARRIER S-BOUNDARY) ; REMOVE V (0 Pron + Ela) (-1D Num) ; # -- TP -- SELECT Conj IF (-1 ("samoin") + Pcle) ; # samoin kuin. # hackish for now ## Trond # Doesn't work for 'siellä on myös pihkaa ja kiveä'. Perhaps best to leave this out until there are ambiguities? # REMOVE Pcle IF (NEGATE 1 Adv) ; # Remove particles if they have some other reading, e.g., adverb REMOVE Pcle IF (0 CC OR CS OR Adv OR Pron) (NEGATE 1 CC) ; # This will not remove Pcle if it is the last reading available. If particles still show up where they are expected to be adverbs, they are missing in the morphology. # Jumalasi on tullut. REMOVE Prop IF (0 CNOUN) (0 POSS_SUFF); REMOVE Interj ; # FMT: The above rules do not work for "Niin he jättivät kohta verkot ja seurasivat häntä" # these two rules are ad hoc rules, awaiting tag harmonisation omorfi-cg SELECT VFIN (0 VFIN) (0 NGen) (NEGATE *-1 VFIN BARRIER CLB?) (NEGATE 1* VFIN BARRIER CLB?); # FMT: "Asun valkeassa talossa." REMOVE N + Nom IF (-1 CLB?) (0 VFIN) (1C Nom)(NEGATE 1* VFIN BARRIER CLB?); # FMT: "Tuli ilta, ja tuli aamu, ensimmäinen päivä" REMOVE Pron + ("yks") IF (0 Num); # FMT: "Kokoontukoot vedet, jotka ovat taivaan alla, yhteen paikkaan, niin että kuiva tulee näkyviin" # This is problematic: hänen on pakko ostaa, selects prop. # SELECT Prop IF (NEGATE -1 BOS OR Punct); SELECT InfA IF (-1 (@NES)) (-2 (@+FAUXV)) ; # rule added 20.01.2015 - FMT+KM SELECT InfA IF (-1 A + Par LINK -1 OLLA) ; # Koirasta on hauskaa leikkiä näiden kahden lapsen kanssa. #SECTION "<puoli>" SELECT Num (1 N) (1 Par) ; # used to be "!!" before 7.12.2000 #"=s0<PUOLI>" # "PUOLI" Num Sg Nom (@HEAD @Nom>) ; # "PUOLI" N Sg Nom (@HEAD) ; # PUOLI VUOTTA_KILOA SELECT A + Ins (1 N + Ins) ; # CASE AGREEMENT IN NP IFF Pron + Ins (1C Ins) ; # CASE AGREEMENT IN NP # ------------------------------------------------------------ # ====================================================================== # WORD-FORM SPECIFIC: "<Jaakko>" REMOVE Qst IF (0 ("Jaak")); "<Maria>" REMOVE (Pl Par) IF (0 ("Mar")); "<Maria>" REMOVE (Pl Par) IF (0 ("Mari")); "<ajan>" SELECT N (-1 Gen) ; "<ajan>" SELECT N (-1 KOKO) ; "<ajoissa>" SELECT Adv (NEGATE -1 Gen) ; "<alustaa>" SELECT InfA (-1 V) (1 N) ; "<asti>" SELECT Po (-1 Ill_Tra_All) ; "<enemmänkin>" SELECT Adv (NEGATE 1C Gen) ; "<erään>" SELECT Qu (1 Gen) ; "<halusi>" SELECT V ; "<huolimatta>" SELECT Po (NEGATE 1 Ela) (-1 Ela) ; "<huolimatta>" SELECT Pr (NEGATE -1 Ela) (1 Ela) ; "<huolimatta>" SELECT Pr (NEGATE -1 Ela) (2 Ela) ; "<häntä>" SELECT Pron (-1 NEGV) ; "<ilmi>" IFF Adv (1 ELAVA-SELVA) ; SELECT JUURI + Adv (NEGATE 1 VFIN - ConNeg) ; "<juurikaan>" SELECT Adv ; "<jäljelle>" SELECT Adv ; "<kautta>" SELECT Po (-1 Gen_Par) ; "<kerrassaan>" SELECT Adv ; # NEVER N "<kieli>" SELECT N (*1 CLB? LINK NOT *-1 Ela) ; # "KIELII JOSTAKIN" # RISKY "<korvaa>" SELECT V (-1 N) (-1 Nom) ; "<kyllin>" SELECT Adv ; "<lainkaan>" SELECT Adv ; # RISKY "<liiaksi>" SELECT Adv ; "<liikaa>" IFF Adv (NEGATE 1 Par) ; SELECT ("lisäksi") + N (NEGATE -1 Gen) ; # NAISTEN LISäKSI # TP: changed to N as for MT (both sme, est) it is analysed as N "<lupasi>" SELECT V ; # RISKY "<lähetii>" SELECT V (-1C Nom) (-1 Sg) ; "<läpeensä>" SELECT Adv ; "<merkitystä>" SELECT NPar (NEGATE 1 Ela) ; SELECT ("molemmat") + Pron ; "<mikä>" SELECT Qu (1C N) (1 Nom) (1 Sg) (NEGATE -1 BOS) ; # RISKY SHOULD ALSO BE (NEGATE -2 "KYSYMYS" ETC.# ", MIKä VOI..." "<määrin>" SELECT NPlIns ; #("<niin>" SELECT (AD-A) (1 A_AD-A) (NEGATE *2 KUIN) ; SELECT ("niin") + Adv (1 N) (*2 KUIN LINK NOT *-1 CLB?) ; SELECT ("niin") + Adv (-1 ComMA) ; SELECT ("niin") + Adv (1 TAllAIneN) (NEGATE 1 Qu) ; REMOVE ("niin") + Adv (0 CC)(*1 ("kuin") + CC BARRIER CS); "<nähden>" IFF Po (-1 Ill) ; "<oikein>" IFF A + Sup (1 N) (1 Nom) (1 Sg) ; "<ollut>" SELECT COP ; "<ollenkaan>" SELECT Adv ; "<oman>" SELECT A ; "<omaan>" SELECT A ; # RISKY "<noissa>" SELECT Pron ; "<näyttävä>" SELECT Act ; "<pari>" SELECT Num (1 Num) ; "<peräisin>" SELECT Adv (*-1 OLLA) ; "<puolen>" SELECT Num (1 Num) ; # PUOLEN MILJOONAN MK:N "<puolen>" SELECT N (1 N) (NEGATE 1 Gen) ; # PORVARIllISEN PUOLEN UUSJAKO "<puolestaan>" SELECT Adv (NEGATE -1 Gen) (NEGATE -1 Ela) ; "<päivittäin>" REMOVE Adv (0 ("(.*)ittain"r)) ; # DN-ITTAIN "<pääsi>" SELECT V ; # RISKY "<sataa>" SELECT Num (-1 Num) ; "<seurasi>" SELECT V ; # RISKY "<suominen>" SELECT Prop (NEGATE 0 CAP_NOCAP) ; "<se>" SELECT Pron ; "<se>" SELECT Pron ; "<sekin>" SELECT Pron ; "<sekin>" SELECT Pron ; # RISKY, CF. "SEKKI" "<sillä>" SELECT CS ; # XXXX OUT # A BIT RISKY "<sillä>" SELECT Pron ; # XXXX OUT "<suoraan>" SELECT Adv (NEGATE 1 Ill) ; # RISKY "<tarpeeksi>" REMOVE N (NEGATE -1 Tra) ; "<todella>" SELECT Adv (NEGATE 1 Ade) ; "<toisekseen>" SELECT Adv (-2 CLB?) ; "<totta>" REMOVE Adv ; SELECT A + ("tunnettu"i) ; "<tuntumassa>" SELECT N ; "<tuo>" SELECT Pron (-1 KAIKKI) (NEGATE -2 Pron) ; "<täyteen>" SELECT Adv (NEGATE 1 Ill) ; "<vaan>" SELECT CS (1 NomHEAD) ; "<vastaan>" SELECT Adv (-1 OTTAA) ; "<verraten>" IFF InfE (-1 Ill) ; #====================================================================== # Adjectives # ---------- #(@w SELECT ASgNom (1C N) (1C Sg) (1 Nom) ; # added 20.01.2015 - FMT+KM SELECT A IF (0C A OR N) (-1 AD-PALJON) ; # Mutta eilen oli erittäin kylmää! # added 20.01.2015 - FMT+KM SELECT A + Gen IF (0C A OR N) (1 COMMA LINK 1C A + Gen) ; # Jaakko juoksee nopeasti ison, vanhan puun luokse ... SELECT ("aika") + A (1C N) (1 Nom_Gen_Par) ; SELECT ("arvoinen") + A (-1 Gen) ; IFF ("enempi") + ASgGen (1 KUIN) ; # (1C Gen) (1 Sg) (1 N) XXXX # 2015 Tiina: in UD train corpus enemmän is enempy A only before 'kuin' (2 times), other 81 ADV: changed (1 DUMMY) to (1 KUIN) ; SELECT ("ensi") + A ; SELECT ("erityinen") + A ; SELECT ("jälkeinen") + A (1 N) ; SELECT ("kallis") + A ; REMOVE ("kiire") + A (NEGATE 0 Nom) ; SELECT ("koko") (1 A_N_Q_Pron_PCP_Num) ; IFF ("liika") + A (NEGATE 0 Par_Gen) (NEGATE 0 Pl) (1C N) ; SELECT ("nuori") + A + Pl ; REMOVE ("nykyinen") + A + Sup ; REMOVE ("täysi") + ASgNom + Sup ; SELECT ("perinteinen") + A + Par (1 Par) ; SELECT ("pieni") + APlPar ; SELECT ("puoli") + Ins (-1 Ins) ; REMOVE ("tarkka") + ASgAll + PxSg3 ; # TARKAllEEN SELECT ("tärkeä") + A ; REMOVE ("uusi") + ASgEla + PxSg3 ; # UUDESTAAN #(@w SELECT (A Sg Nom "uusi") (1C N) (1C Sg) (1 Nom) ; #(@w SELECT (A Pl Par "uusi") (1 N) (1 Par) (1 Pl) ; SELECT APlPar (1C Par) (1 Pl) (NEGATE 0 POSS_SUFF) (NEGATE 0 HARVA) ; # OMIA TALOJA# ACTUAllY SubSUMED BY APlPar -RULES BELOW REMOVE ("vaalea") + APlIne (NEGATE 1 Ine) ; REMOVE ("vaalea") + APlEla (NEGATE 1 Ela) ; REMOVE ("vaalea") + APlIll (NEGATE 1 Ill) ; REMOVE ("vaalea") + APlAde (NEGATE 1 Ade) ; SELECT ("kulta") + ASgNom (1 Nom) ; SELECT ("kulta") + ASgNom (2 Nom) ; SELECT ("kulta") + ASgNom (*-1 Nom LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; SELECT ("vapaa") + ASgNom (1 Nom) ; SELECT ("vapaa") + ASgNom (2 Nom) ; SELECT ("vapaa") + ASgNom (*-1 Nom LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; SELECT ("vapaa") + ASgGen (1 Gen) ; SELECT ("vapaa") + ASgGen (-1 Gen) ; SELECT ("vieras") ; # + A ; REMOVE ("voinen") + A ; REMOVE ("vähä") + A + Gen (1 N) (NEGATE 1 Gen) ; # vähän vettä (Par) ? SELECT ("vähä") + A + Gen ;# (1 Gen) (1 N) ; # VäHäN AJAN KULUTTUA SELECT A (-1C Adv OR Pcle) (NEGATE 0 V OR N OR LIIAN OR PALJON OR Adv OR HARVA) ; SELECT ASgNom (NEGATE 0 Adv) (1C Nom) (1 A_N) (1 Sg) (NEGATE 0 HARVA) (NEGATE 0 TOSI) (NEGATE 0 PCP) ; # XXXX # EI "nykyisin", NOT "tosi" SELECT ASgGen (1C Gen) (1 A_N) (1 Sg) (NEGATE 0 ENEM-VAHEM) (NEGATE 0 PCP) (NEGATE 0 HARVA) (NEGATE 0 HYVANSA) (NEGATE 0 PALJON) ; SELECT ASgPar (1C Par) (1 A_N) (1 Sg) (NEGATE 0 PCP) (NEGATE 0 HARVA) ; SELECT ASgIne (1C Ine) (1 Sg) (NEGATE 0 PCP) (NEGATE 0 HARVA) ; SELECT ASgEla (1C Ela) (1 Sg) (NEGATE 0 PCP) (NEGATE 0 HARVA) ; SELECT ASgIll (1C Ill) (1 Sg) (NEGATE 0 PCP) (NEGATE 0 HARVA) ; SELECT ASgAde (1C Ade) (1 Sg) (NEGATE 0 Adv) (NEGATE 0 PCP) (NEGATE 0 HARVA) ; # VIREIllä SELECT ASgAbl (1C Abl) (1 Sg) (NEGATE 0 PCP) (NEGATE 0 HARVA) ; SELECT ASgAll (1C All) (1 Sg) (NEGATE 0 PCP) (NEGATE 0 HARVA) ; SELECT ASgEss (1C Ess) (1 Sg) (NEGATE 0 PCP) (NEGATE 0 HARVA) ; SELECT ASgTra (1C Tra) (1 Sg) (NEGATE 0 PCP) (NEGATE 0 HARVA) ; SELECT APlNom (1C Nom) (1 A_N) (1 Pl) (NEGATE 0 PCP) (NEGATE 0 Ins) (NEGATE 0 HARVA) ; # TUKEVA, NYKYISIN USEIN,NYKYISIN TULI SELECT APlGen (1C Gen) (1 A_N) (1 Pl) (NEGATE 0 HARVA) ; SELECT APlPar (1C Par) (1 A_N) (1 Pl) (NEGATE 0 HARVA) ; SELECT APlIne (1C Ine) (1 Pl) (NEGATE 0 HARVA) ; SELECT APlEla (1C Ela) (1 Pl) (NEGATE 0 HARVA) ; SELECT APlIll (1C Ill) (1 Pl) (NEGATE 0 HARVA) ; SELECT APlAde (1C Ade) (1 Pl) (NEGATE 0 VIREIllA) (NEGATE 0 HARVA) ; SELECT APlAbl (1C Abl) (1 Pl) (NEGATE 0 HARVA) ; SELECT APlAll (1C All) (1 Pl) (NEGATE 0 HARVA) ; SELECT APlEss (1C Ess) (1 Pl) (NEGATE 0 HARVA) ; SELECT APlTra (1C Tra) (1 Pl) (NEGATE 0 HARVA) ; # *** AD-A SELECT ("aika") + Adv (1C A_Adv_PCP_Det_Q) ; REMOVE ("enemmän") + Adv (1 TAI) (2 ENEM-VAHEM) ; # XXXX SELECT ("erittäin") + Adv ; SELECT ("hieman") + Adv (1C A-A_N-Q) (NEGATE 1 Par) (NEGATE 2 Comp) ; # EOS SELECT ("hiukan") + Adv (1C A-A_N-Q) (NEGATE 1 Par) (NEGATE 2 Comp) ; # EOS SELECT ("hyvin") + Adv OR ("ani") + Pcle (1 AD-HYVIN) ; SELECT ("hyvin") + Adv OR ("ani") + Pcle (-1 AD-HYVIN) ; SELECT ("liian") + Adv (NEGATE 1 Gen) ; SELECT ("ihan") + Adv (1 NIIN) ; SELECT ("melkein") + Adv (1 Adv) ; # MELKEIN MISSä VAIN, MELKEIN AINA SELECT ("miltei") + Adv (1 AD-MILTEI) ; IFF ("mitä") + Adv IF (1 CMP_SUP) ; # Entä mitä Jaakko tekee puun lähellä? SELECT ("näin") + Adv (NEGATE *-1 MINÄ OR V + Sg1 BARRIER CLB) (*0 V BARRIER CLB) ; SELECT ("niin") + Adv (1C A) (2 KUIN) (NEGATE 3 A) ; # NIIN RAJU KUIN MINä SELECT ("niin") + Adv (1C Adv) (2 KUIN) (NEGATE 3 A) ; # NIIN RAJUSTI KUIN MEIllä, was (1C MAN) ; SELECT ("noin") + Adv (1 Gen) ; SELECT ("noin") + Adv + Dem (1 Num) ; SELECT ("noin") + Adv (1 TIME-WORD) ; SELECT Adv (0 PALJON) (1 Comp) ; # PALJON JA VäHäN, xxxxx, next one not needed any more 3.12.2000,!!changed SELECT ("vähän") + Adv (1C CMP-ENNEN) ; # 4.2.2001 !!->! cf.below SELECT A (0 PALJON) (0 Nom) (0 Sg) (1 NSgNom) ; # PALJO VALITTAMINEN SELECT A (0 PALJON) (0 Par) (1 NSgPar) ; SELECT A (0 PALJON) (0 LOC-CASE) (1 N + Sg + LOC-CASE) ; REMOVE A (0 PALJON) ; # "on asetettu paljon haltijaksi" SELECT ("täysin") + Adv (1 AD+PrfPrc) ; SELECT ("vallan") + Adv (1 A) (NEGATE *1 VAllAN-WDS) (NEGATE *-1 VAllAN-WDS) ; SELECT ("vallan") + Adv ; # (1 PCP) ; REMOVE ("vallan") + Adv (NEGATE 1 A) (NEGATE 1 PCP) ; SELECT ("varsin") + Adv ; IFF ("yhä") + Adv (1C Comp) ; SELECT ("yli") + Adv (1C Num-PUOLET-KOLMANNES) (NEGATE 2 Gen) ; # not2genadded 9.10.2000 yli38asteen SELECT ("yli") + Adv (NEGATE 1 Gen) (NEGATE 2 Gen) (NEGATE 3 Gen) (1 A) ; # XXX # YLI TUHATVUOTIneN VAIHE SELECT ("yli") + Pr ; # (NEGATE 1 Gen) (2 Gen) YLI KOKO MAAN, , NOLLATTU SELECT Adv (NEGATE 0 NIIN-YHA OR ENEM-VAHEM OR VAllAN OR Interr OR YLI_AllE) (NEGATE -1 ComMA) (1C A) (NEGATE 1 Par) (NEGATE 2 Comp) ; #lastcondadd9.10.2000 # CF. HIUKANAdv ENTISTÄ PITEMPI XXXX SELECT Adv (NEGATE 0 V)(0 AD-PALJON) (1 PALJON-MONI) ; # VARSIN PALJON, VARSIN USEAT SELECT Adv (NEGATE 0 NIIN-YHA OR ENEM-VAHEM OR VAllAN OR Interr OR PALJON) (1C A_AD-A_Q) (NEGATE 1 Par) (NEGATE 2 Comp) ; SELECT Adv (NEGATE 0 NIIN-YHA OR ENEM-VAHEM OR VAllAN OR Interr OR PALJON) (1C A_AD-A_Q) (1 Par) (NEGATE 2 Comp); # XXXX REMOVE Adv (NEGATE 0 NIIN-YHA) (1C A_AD-A_Q) (1 Par) (2 Comp) ; # HIEMANAdv ENTISTÄ SUPPEAMPI SELECT Adv (NEGATE 0 NIIN-YHA OR VAllAN OR Interr OR YLI_AllE) (1C Num-PUOLET-KOLMANNES) ; #lastcondadded9.10.2000 SELECT ("vähemmän") + Adv (NEGATE -1 ComMA OR Conj) (1 A-A_N-PCP) (NEGATE 1 Gen_Par) (NEGATE 2 Comp) (NEGATE -2 ENEM-VAHEM) ; SELECT ("vähemmän") + Adv (1 A-A_N-PCP) (NEGATE 1 Gen_Par) (NEGATE 2 Comp) (NEGATE -1 Conj) (NEGATE -2 ENEM-VAHEM) ; SELECT ("vähemmän") + Adv (1 A-A_N-PCP) (1 Par) (NEGATE 2 Comp) (NEGATE -1 Conj) (NEGATE -2 ENEM-VAHEM) (NEGATE 1 Gen) ; SELECT ("vähemmän") + Adv (-1 Conj) (-2 ENEM-VAHEM) ; # XXXX REMOVE Der_inen + Par ; # IF (0 (A Pos Sg Par)) (0 N + Ela) (NEGATE 1 Par) ; # Blame Trond if this doesn't work. We hope for counter examples. # Adverbs # ------- REMOVE (Adv Superl) IF (0 Adv) ; # lähinnä SELECT Adv (-1C Adv OR Pcle) (NEGATE 0 Adp) (NEGATE 1 A) ; # NIINAdv HYVIN(Adv_AD-A) ; REMOVE Adv (0 AIVAN-IHAN) (NEGATE 1 V OR Conj OR Adv) ; SELECT Adv (0 ADSET) (1 AD+PrfPrc + PrfPrc) ; # HYVIN VAIVAUTUNUT SELECT Adv (0 ADSET) (1 AD+PrsPrc + PrsPrc) ; # KOVIN ALISTETTU SELECT Adv (0 NIIN-NOIN-NAIN) (1 HYVIN) ; SELECT Adv (0 NIIN-NOIN-NAIN) (1C Adv) ; # was (1 MAN) ; SELECT Adv (0 NIIN-NOIN-NAIN) (NEGATE -1 ComMA) (1 A) (NEGATE *2 KUIN) ; # NIIN VIISAS SELECT Adv (0 NIIN-NOIN-NAIN) (1 Conj) (2 NIIN-NOIN-NAIN) (3 PALJON-MONI) ; REMOVE Dem IF (0 Adv)(NEGATE 1 N OR A OR Num); # added 20.01.2015 - FMT+KM SELECT Adv IF (0 HYVIN-1) (0 Adv OR A) (NEGATE -1* OLLA BARRIER CLB) (NEGATE 1* Nom) ; # Nyt hän voi kuulla sen hyvin. # added 20.01.2015 - FMT+KM SELECT ("koskaan") + Adv ; # Ihmiset eivät koskaan saa vastausta, kun he puhuvat koirille! # last condition added 19.01.2015 -FMT+KM REMOVE Adv + Dem IF (0 NIIN-NOIN-NAIN) (NEGATE 1 A OR Adv OR Qu OR Num-PUOLET-KOLMANNES) (NEGATE 1C VFIN) ; # Näin äänestät. # Miksi hän tekee niin? # commented out Mon Jan 19 15:18:37 CET 2015 (FMT + estonians) ; #REMOVE Adv (NEGATE 1 A_AD-A_Q OR Num-PUOLET-KOLMANNES OR Adv OR PCP OR CMP-ENNEN) (NEGATE 0 AIVAN-IHAN) (NEGATE 2 JALKEEN) ; # 4.1.2001 last2added # Case # ---- # ** CASE SELECT Ill (1 MENNA) (1 Ine) ; # TUOHON MENNEssä SELECT CS IF (0 CLB) (-1 CLB) (0 Pron + Dem); # Ja mies antoi vaimolleen nimen Eeva, sillä hänestä tuli kaiken elävän äiti. SELECT Adv IF (0 SIEL) ; # Want adverbs for these, otherwise the analyses from omorfi are that sieltä, etc., derive from "se": "se" Pron Dem Sg Abl. These aren't necessarily demonstrative pronouns. # REMOVE Pron + Dem IF (0 Adv) (NEGATE 1 WORD LINK 2 Gen) ; SELECT Pron + Dem IF (0 Adv) (NEGATE 1 WORD LINK 2 Gen) ; # Hän rakensi siihen alttarin. # Better way to do this? Have to check for case mismatches, and this will get to be crazy. E.g., 1 = Ill, 2 = Gen; 1 = Gen, 2 = Ines # Maybe i should actually select the pronouns instead of the adverbs... This is more inline with fin-sme, anyway. SELECT ("tuo") + Pron + Dem IF (0 $$ALLCASES) (1 $$ALLCASES) ; REMOVE ("sama") + Pron + Pl + Ins IF (0 $$ALLCASES) (NEGATE 1 $$ALLCASES) (0 Adv) (NEGATE 1 Conj); # Hän oli siellä yksin. # Select adv, instead of num # Numbers # ------- REMOVE ("toinen") + Ord + Pl (NEGATE 1 Pl) ; SELECT ("toinen") + Num + Ord (1 N) ; # TOISIllE, TOISIAAN ETC. REMOVE ("yksi") + Num + Pl + Ins IF (0 $$ALLCASES) (NEGATE 1 $$ALLCASES) (0 Adv) (NEGATE 1 Conj); # Hän oli siellä yksin. # Select adv, instead of num # Nouns # ----- SELECT ("aika") + N (1C VFIN-C) ; SELECT ("aika") + N (1 CLB?) ; REMOVE ("aitoja") + N ; SELECT N + Ela (1C ElaLeft) ; SELECT ("alku") + N + Ela (-2 Num) (-1 Gen) ; SELECT ("alku") + N + Ela (-2 Gen) (-1 Num) ; SELECT ("alku") + N + Ela (-1 LUKU) ; SELECT ("alku") + N + Ela (-1 TIME-WORD) ; SELECT ("alku") + N + Ela (1 ASTI) ; REMOVE ("anto") + N ; # EI ANNOIN REMOVE ("avu") + N (0 Sg) ; REMOVE ("elämä") + N + Pl (0 Nom_Par) ; SELECT ("hakkuu") + N ; SELECT ("hevonen") + N ; SELECT ("istutus") + N ; SELECT ("joukko") + N ; # JOUKON, RISKY SELECT ("kapina") + N ; # NOT KAPI SELECT ("keksintö") + N + Pl ; # EI KEKSINTä SELECT ("kieli") + N ; # (0 V) (*1 CLB? LINK *-1 VFIN) ; REMOVE ("kirjoja") + N ; REMOVE ("kota") + N ; SELECT ("kuljetus") + N ; REMOVE ("kuolema") + N + Pl (0 Nom_Par) ; REMOVE ("kuu") + N + POSS_SUFF ; # KUU+SI REMOVE ("kuu") + NPlIns (-1 A) (NEGATE -1 Ins) ; REMOVE ("kuuliainen") + N ; REMOVE ("kärsä") + N ; REMOVE ("ikä") + N + Pl ; REMOVE ("kirjo") + N + Pl ; # XX REMOVE ("korkki") + N + Pl ; # XX REMOVE ("lahjoja") + N ; REMOVE ("laki") + N + Pl ; # LAKI - LAEN - LAK+I+A, LA+I+N REMOVE ("lehdes") + N ; REMOVE ("lei") + N ; # LEI+Pä REMOVE ("liika") + N ; SELECT ("maa") + NSgPar (-1 PUOLI-KOKO-OSA) ; # ERI PUOLIllA MAATA SELECT ("maa") + NSgPar (1 VFIN-PCP) ; # MAATA OMISTAVA LUOKKA SELECT ("muutos") + NSgPar ; REMOVE ("noki") + N + Pl ; REMOVE ("olka") + NSgPar ; SELECT ("osa") + NSgTra (-1 Tra) ; SELECT ("osa") + NSgTra (*-1 SIIRTYA-TULLA-JOUTUA) ; REMOVE ("pelätti") + N + Sg + Ill ; # XX SELECT ("perinne") + N (NEGATE 1 Par) (NEGATE 1 N) ; # PERINTEISTä N+Par SELECT ("piste") + N ; SELECT ("lausunto") + N + Pl ; REMOVE ("pitäjä") + N ; # RISKY SELECT ("puoli") + N (0 PUOLA) ; SELECT ("puu") + NPlGen ; SELECT ("saksa") + N (NEGATE 0 CAP_NOCAP) ; REMOVE ("sanoja") + N ; SELECT ("sanoma") + N (NEGATE 0 Par) ; # EI OLE SANomISTA REMOVE ("senkki") + NSgGen ; SELECT ("siemen") + N ; SELECT ("sija") + NSgIll (-1 Gen) ; SELECT ("syy") + NPlEla ; SELECT ("taimi") + N ; SELECT ("tarve") + NSgGen (-1 Gen) ; # MUTTEREIDEN TARVE, XX REMOVE ("tarve") + N + Tra (NEGATE -1 Tra) ; SELECT ("tehtävä") + N (NEGATE 0 Nom) ; SELECT ("tehtävä") + NNom (1C VFIN) ; REMOVE ("tee") + N + Pl ; # TEIDEN SELECT ("tilanne") + N ; # A BIT RISKY SELECT ("toimi") + NPlPar (-1 Gen) ; # TUTKIJAN TOIMIA SELECT ("toiminta" N Sg Gen POSS_SUFF ) (*-1 VFIN LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; SELECT ("tukki") + N + Pl ; REMOVE ("turpa") + N ; REMOVE ("tutkinta") + N + Pl ; REMOVE ("tyyli") + N ; REMOVE ("täky") + N ; SELECT ("valinta") + N ; SELECT ("vanhempi") + N (NEGATE 1 N) (NEGATE 2 N) ; REMOVE ("varoja") + N ; REMOVE ("vasta") + N ; SELECT ("vieras") + N (1C VFIN) ; SELECT ("virka") + N + Pl ; REMOVE ("voi") + N + PxSg2 ; # VOISI SELECT ("voima") + N + Ill (-1 ASTUA) ; SELECT ("voima") + N + Ill (-1 TULLA) ; SELECT ("voima") + N + Ill (1 PCP) ; #(@w SELECT (N Ill "vuosi") (1 Num) ; #(@w SELECT (N Ill "vuosi") (*-1 NEGV) ; #(@w SELECT (N Ill "vuosi") (*1 NEGV) ; SELECT ("vuosi") + NSgNom ; # NB. VUODE - VUOTEEN NOW WRONG # SELECT Pl + Gen (1 Gen) (1 Pl) ; # # OMIEN TALOJEN # Commented out-- breaking things, and I think this is covered elsewhere. REMOVE ("hiukka") + NSgGen ; SELECT Pl + Gen (-1C Gen) (-1C Pl) ; # PITKIEN JUURIEN SELECT NSgPar + POSS_SUFF (0 Ill) (*-1 NEGV LINK NOT *1 CLB?) (NEGATE -1 Ill) (NEGATE -1 CLB?) (*-1 CLB? LINK NOT *1 Ill-VERB) ; # EI MENETTäNYT ASEMAANSA SELECT NSgPar + POSS_SUFF (0 Ill) (-1C Par) (NEGATE -1 N) (*-1 CLB? LINK NOT *1 Ill-VERB) ; SELECT NSgPar + POSS_SUFF (0 Ill) (*-1 Par-OBJ LINK NOT 0 KOOTA LINK NOT *1 CLB?) (NEGATE -1 Ill) (NEGATE 0 KESKUSTA) (*-1 CLB? LINK NOT *1 Ill-VERB) ; SELECT NSgPar + POSS_SUFF (0 Ill) (1C Comp) (NEGATE -1 Ill) (NEGATE -2 Ill) ; REMOVE NSgPar + POSS_SUFF (0 Ill) (1C Ill) (-1 A_Q_Pron) ; SELECT Par (-1C Num) (-1 Nom) ; # KUUSI LASTA SELECT NSgNom (-1C Nom) (-1 A_Q_Pron) (-1 Sg) (NEGATE 0 POSS_SUFF) (NEGATE 0 TULI) (NEGATE 1 Nom) (NEGATE -1 Pers) (NEGATE 0 JUURI OR KOKO) (NEGATE 0 ("kasvattaa")) (NEGATE 0 ("laskea")) ; # replaced POSS_SUFF with POSS_SUFF - 20.01.2015 -FMT+KM SELECT NSgGen IF (-1C Gen) (-1 A_Q_Pron) (-1 Sg) (NEGATE 0 POSS_SUFF) (NEGATE 1 Gen) (NEGATE 0 SUHTEEN) ; # SELECT NSgPar (-1C Par) (-1 A_Q_Pron) (-1 Sg) (NEGATE 1 Par) (NEGATE 0 KAUTTA) (*-1 CLB? LINK *1C VFIN) ; SELECT NSgIne (-1C Ine) (-1 A_Q_Pron) (-1 Sg) (NEGATE 1 Ine) ; SELECT NSgEla (-1C Ela) (-1 A_Q_Pron) (-1 Sg) (NEGATE 1 Ela) (NEGATE 0 MIELI) ; SELECT NSgIll (-1C Ill) (-1 A_Q_Pron) (-1 Sg) (NEGATE 1 Ill) ; SELECT NSgAde (-1C Ade) (-1 A_Q_Pron) (-1 Sg) (NEGATE 1 Ade) (NEGATE 0 LAIllA) ; SELECT NSgAbl (-1C Abl) (-1 A_Q_Pron) (-1 Sg) (NEGATE 1 Abl) ; SELECT NSgAll (-1C All) (-1 A_Q_Pron) (-1 Sg) (NEGATE 1 All) ; SELECT NSgEss (-1C Ess) (-1 A_Q_Pron) (-1 Sg) (NEGATE 1 Ess) ; SELECT NSgTra (-1C Tra) (-1 A_Q_Pron) (-1 Sg) (NEGATE 1 Tra) ; SELECT NPlNom (-1C Nom) (-1 A_Q_Pron) (-1 Pl) (NEGATE 0 POSS_SUFF) (NEGATE 1 Nom) ; SELECT NPlGen (-1C Gen) (-1 A_Q_Pron) (-1 Pl) (NEGATE 1 Gen) ; SELECT NPlPar (-1C Par) (-1 A_Q_Pron) (-1 Pl) (NEGATE 1 Par) ; SELECT NPlIne (-1C Ine) (-1 A_Q_Pron) (-1 Pl) (NEGATE 1 Ine) ; SELECT NPlEla (-1C Ela) (-1 A_Q_Pron) (-1 Pl) (NEGATE 1 Ela) ; SELECT NPlIll (-1C Ill) (-1 A_Q_Pron) (-1 Pl) (NEGATE 1 Ill) ; SELECT NPlAde (-1C Ade) (-1 A_Q_Pron) (-1 Pl) (NEGATE 1 Ade) ; SELECT NPlAbl (-1C Abl) (-1 A_Q_Pron) (-1 Pl) (NEGATE 1 Abl) ; SELECT NPlAll (-1C All) (-1 A_Q_Pron) (-1 Pl) (NEGATE 1 All) ; SELECT NPlEss (-1C Ess) (-1 A_Q_Pron) (-1 Pl) (NEGATE 1 Ess) ; SELECT NPlTra (-1C Tra) (-1 A_Q_Pron) (-1 Pl) (NEGATE 1 Tra) ; SELECT NPlIns (-1C Ins) (-1 A_Q_Pron) (-1 Pl) (NEGATE 1 Ins) ; # MONIN PAIKOIN REMOVE NPlIns (0 Gen) (0 Sg) (NEGATE 0 AVOSYLIN) ; # RUUMIIN #(@w SELECT NPlPar (-1C Par) (-1C Pl) ; # # PITKIä JUURIA # Numbers # ------- REMOVE PxSg2 (0 Num - PxSg2) ; SELECT ("kuusi") + Num + NomSg (1C Par) ; SELECT ("kuusi") + Num + NomSg (2C Par) ; SELECT Num + Gen (1 Gen-WORD) (0 Nom) (0 SEITSEMAN) ; # (1 Gen) deleted 7.12.2000 # SEITSEMÄN MARKAN HINTA REMOVE Num + Gen (0 SEITSEMAN) (NEGATE 1 N) ; #deleted 7.12.2000,poor (0 Nom) (NEGATE 1 Gen) ; # XXXX SELECT (Num Nom) (1C Par) ; # SEITSEMÄN MIESTÄ TULI SELECT ("pari") + Num + Ess (1 Ess) ; SELECT ("pari") + Num + Ine (1 Ine) ; SELECT ("pari") + Num + Ela (1 Ela) ; SELECT ("pari") + Num + Ill (1 Ill) ; SELECT ("pari") + Num + Ade (1 Ade) ; SELECT ("pari") + Num + Abl (1 Abl) ; SELECT ("pari") + Num + All (1 All) ; SELECT ("pari") + Num + Tra (1 Tra) ; SELECT ("sata") + Num + Pl ; SELECT Num + NomSg (*-1 Par LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; # Abbreviations # --------––--- IFF ("mm") + Abbr + Nom (-1 Num) ; REMOVE ("me") + Abbr + Nom (*1 Pl1 LINK NOT *-1 CLB?) (NEGATE 1 CLB?) ; REMOVE ("me") + Abbr + Nom (*-1 Pl1 LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; # Pronouns # -------- # added 20.01.2015 - FMT+KM REMOVE MOLEMPI IF (NEGATE 1 PAREMPI) ; # He molemmat ovat iloisia ja menevät ... REMOVE ("sää") + Pron IF (1C VFIN + Sg3) ; SELECT MINÄ IF (*1 Sg1 BARRIER V) ; SELECT SINÄ IF (*1 Sg2 BARRIER V) ; SELECT HÄN IF (*1 Sg3 BARRIER V) ; SELECT ME IF (*1 Pl1 BARRIER V) ; SELECT TE IF (*1 Pl2 BARRIER V) ; SELECT HE IF (*1 Pl3 BARRIER V) ; #SELECT Pron + MINÄ (*1 Sg1 LINK NOT *-1 CLB?) (NEGATE 1 CLB?) ; #SELECT Pron + SINÄ (*1 Sg2 LINK NOT *-1 CLB?) (NEGATE 1 CLB?) ; #SELECT Pron + MINÄ (*-1 Sg1 LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; #SELECT Pron + SINÄ (*-1 Sg2 LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; # added 20.01.2015 - FMT+KM SELECT SINÄ IF (-1C Sg2 + KO) ; # Näitkö sinä hänet ? #SELECT PLPRON + ("te") (NEGATE -1 Gen) ; # RISKY, CF. SUOMEN TEIllä SELECT ("hän") + Pron + Sg + Par (*-1 NEGV LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; SELECT ("hän") + Pron + Sg + Par (*1 NEGV LINK NOT *-1 CLB?) (NEGATE 1 CLB?) ; SELECT Pron + Interr (-1 BOS) (*1 ?!) ; SELECT Pron + Interr (-1 Punct) (*1 ?!) ; SELECT Pron + Interr (-2 BOS) (*1 ?!) ; SELECT Pron + Interr (-1 KYSY) ; SELECT Pron + Interr (-2 KYSY) ; SELECT Pron + Interr (*1C TIETAA LINK NOT *-1 CLB?) (NEGATE 1 CLB?) ; SELECT Pron + Interr (*1 ?! LINK NOT *-1 CLB?) (NEGATE 1 CLB?) ; REMOVE Pron + Interr (0 MIKA-KUKA) ; # XXXX SELECT Pron + Qu (0 MIKA-KUKA) (1 TAHANSA_VAIN) ; SELECT Pron + Qu (0 MIKA-KUKA) (2 TAHANSA-2) ; SELECT Pron + Qu (0 MIKA-KUKA) (-1 VAIKKA_KUIN_JOS) ; REMOVE Pron + Qu (0 MIKA-KUKA) ; # XXXX # M. TAHANSA_HYVäNSä_VAIN#ETTEI,SIINä# SELECT ("joka") + Pron + Qu (-1 BOS) ; SELECT ("joka") + Pron + Qu (1 KERTA) ; # KERTA,TAPAUS,SUHDE,AINOA,IKIneN,... SELECT ("joka") + Pron + Qu (1 TIME-WORD) ; SELECT ("joka") + Pron + Qu (1 Ord) ; # JOKA TOIneN REMOVE ("joka") + Pron + Qu ; SELECT ("jokin") + Pron + Qu ; # JOLLA+KIN SELECT ("kukin") + Pron + Qu ; SELECT ("kumpikin") + Pron + Qu ; # EI *KUMMATKIN (< KUMMA) ; SELECT ("jokin") + Pron + Qu + Pl ; SELECT Rel (0 MIKA-KUKA) (-1 ComMA_N_Pron_Q_V_SUP_BOS) (NEGATE *1 QMARK) (NEGATE 1 TAHANSA_VAIN) (NEGATE 2 TAHANSA_VAIN) (NEGATE -1 VAIKKA_KUIN_JOS) (NEGATE 0 Ess) (NEGATE 0 Tra) (NEGATE 1 CMP_SUP) ; SELECT Rel (0 MIKA-KUKA) (-2 N_Pron_Q_V_SUP) (-1 ComMA) (NEGATE *1 QMARK) (NEGATE 1 TAHANSA_VAIN) (NEGATE 2 TAHANSA_VAIN) (NEGATE -1 VAIKKA_KUIN_JOS) (NEGATE 0 Ess) ; SELECT ("joka") + Pron + Rel (-1 ComMA_N_Pron_Q) (NEGATE 1 TAHANSA_VAIN) ; SELECT ("joka") + Pron + Rel (-2 N_Pron_Q) (-1 ComMA) (NEGATE 1 TAHANSA_VAIN) ; SELECT Rel (0 Nom) (-1C Nom) (-1 N_Pron_Q) (NEGATE 1 TAHANSA_VAIN) (NEGATE 0 Ess) ; # SE JOKA# MIES JOKA SELECT Rel (0 Nom) (NEGATE 0 Ess) (1C VFIN) (NEGATE 1 TAHANSA_VAIN) (NEGATE 2 TAHANSA_VAIN) (NEGATE 1 KERTA) ; SELECT Rel (0 Nom) (NEGATE 0 Ess) (NEGATE 1 Nom) (2C VFIN) (NEGATE 1 TAHANSA_VAIN) (NEGATE 2 TAHANSA_VAIN) (NEGATE 1 KERTA) ; SELECT Rel (0 Nom) (-1C VFIN) (1C VFIN) (NEGATE 1 TAHANSA_VAIN) (NEGATE 2 TAHANSA_VAIN) (NEGATE 0 Ess) (NEGATE 1 KERTA) ; SELECT Rel (*-1 JOKA LINK 0 Nom) (-1 Conj) (NEGATE 1 TAHANSA_VAIN) (NEGATE 2 TAHANSA_VAIN) (NEGATE 0 Ess) (NEGATE 1 KERTA) (NEGATE 1 HYVA) ; # JOKA ... JA JOKARel SELECT ("joka") + Pron + Rel + Pl ; # JOISSA, JOIllA JNE. SELECT ("joka") + Pron + Rel + Sg + Ade ; # JOLLA SELECT ("joka") + Pron + Rel + NomSg (1 Adv OR Pl) ; SELECT Pron + NomSg (NEGATE 0 ITSE) (1 Nom + A_N + Sg) (NEGATE 1 HARVA-SET) (NEGATE 1 NSgNom) ; # yksi kirja needs num still available SELECT Pron + GenSg (NEGATE 0 ITSE) (1 Gen + A_N + Sg) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Sg + Par (NEGATE 0 ITSE) (1 Par + A_N + Sg) (NEGATE 0 Neg) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Sg + Ine (1 Ine + Sg) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Sg + Ela (1 Ela + Sg) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Sg + Ill (1 Ill + Sg) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Sg + Ade (1 Ade + Sg) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Sg + Abl (1 Abl + Sg) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Sg + All (1 All + Sg) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Sg + Ess (1 Ess + Sg) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Sg + Tra (1 Tra + Sg) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Pl + Nom (1 Nom + A_N + Pl) (NEGATE 1 HARVA-SET) ; SELECT Pron + Pl + Gen (1 Gen + A_N + Pl) (NEGATE 1 HARVA-SET) ; SELECT Pron + Pl + Par (1 Par + A_N + Pl) (NEGATE 0 KAIKKIAAN) (NEGATE 0 PersPl123) (NEGATE 1 HARVA-SET) ; SELECT Pron + Pl + Ine (1 Ine + Pl) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Pl + Ela (1 Ela + Pl) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Pl + Ill (1 Ill + Pl) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Pl + Ade (1 Ade + Pl) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Pl + Abl (1 Abl + Pl) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Pl + All (1 All + Pl) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Pl + Ess (1 Ess + Pl) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT Pron + Pl + Tra (1 Tra + Pl) (NEGATE 1 HARVA-SET) (NEGATE 0 Num) ; SELECT ("se") + Pron + Sg + Ela ; # SIITä SELECT Adv (0 YKSI) (1 Par) (NEGATE 0 Par) ; SELECT Adv (0 YKSI) (1 Gen) (2 Par) ; SELECT Num (0 YKSI) (1 N) (NEGATE 0 WORD LINK 1 Gen LINK 2 Par) ; SELECT ("tämä") + Pron + Dem (1 N) (1 Ill) ; REMOVE ("toi") + Pron + Dem (1 Pron) ; "<jotta>" REMOVE Rel IF (0 CS) (0 CLB?) (NEGATE -1 WORD) ; # ..., jotta näkyy bläh bläh. # ^ täällä tarvitaan CS, eikä Pron Rel. # Proper nouns # ------------ # Commented out Mon Jan 19 15:24:03 CET 2015 (FMT + Estonians) ; #SELECT:r1885 Prop IF (NEGATE *-1 BOS OR (":") OR (PUNCT LEFT) OR (Num Nom) BARRIER WORD); # *** Prop # in CG1 were 2 analysis (Prop and LG-language): # ("suomi" PROP N NOM SG up ) ; # ("suomi" N <Lg> NOM SG up )) ; #REMOVE (<LG>) (0 Prop) (NEGATE *-1 PUHUA) (NEGATE *1 KIELI) (NEGATE *1 PUHUA) (NEGATE *-1 KIELI) (NEGATE 0 CAP_NOCAP) (NEGATE 0 Tra) ; #REMOVE (<LG>) (0 Prop) (0 INT-LOC) (NEGATE *-1 KIELI) (NEGATE *1 KIELI) (NEGATE 0 Tra) (NEGATE 0 CAP_NOCAP) ; #REMOVE Prop (0 <LG>) (*1 KIELI) (NEGATE -1 BOS) ; #REMOVE Prop (0 <LG>) (*-1 KIELI) (NEGATE -1 BOS) ; #REMOVE Prop (0 <LG>) (*-1 PUHUA LINK NOT *1 CLB?) (0 Par) (NEGATE -1 BOS) ; #REMOVE Prop (0 <LG>) (-2C <LG>) (-1 Conj) (NEGATE -1 BOS) ; # SUOMEA JA RUOTSIA # LG-NAMES CANNOT BE CAPITALIZED S-INTERNAllY SELECT ("Alankomaat") + Prop (0 Pl) ; SELECT ("Yhdysvallat") + Prop (0 Pl) ; SELECT ("Kokoomus") + Prop (NEGATE 0 CAP_NOCAP) ; REMOVE ("Aino") + Prop + Sg + Par ; IFF ("Johan") + Prop (1 Prop) (NEGATE 0 CAP_NOCAP) ; # JOHAN BERGenSTRåHLE SELECT ("Lappi") + Prop (NEGATE 0 CAP_NOCAP) ; SELECT ("Norja") + Prop (NEGATE 0 CAP_NOCAP) ; SELECT ("Pariisi") + Prop (NEGATE 0 CAP_NOCAP) ; SELECT ("Pori") + Prop (NEGATE 0 CAP_NOCAP) ; REMOVE ("Per") + Prop (NEGATE 0 CAP_NOCAP) ; REMOVE ("Olle") + Prop (NEGATE 0 CAP_NOCAP) ; REMOVE ("Pia") + Prop (NEGATE 0 CAP_NOCAP) ; SELECT ("Urho") + Prop (NEGATE 0 CAP_NOCAP) ; REMOVE Prop + Pl (NEGATE 0 CAP_NOCAP) ; REMOVE Prop (0 ORG) ; SELECT Prop (0 CAP_NOCAP) (NEGATE -1 OMS) ; # changed Prop + Sg to Prop + NomSg and added (NEGATE -1 BOS) - 20.01.2015 - FMT+KM SELECT Prop + NomSg IF (1C Prop) (NEGATE 0 CAP_NOCAP) (NEGATE -1 BOS) ; # Missä Jaakko on ? SELECT Prop + GenSg (NEGATE -1 OMS)(1C N) (NEGATE *1 KIELI) (NEGATE *-1 KIELI) (NEGATE 1 TIME-WORD OR Prop OR Prop) ; # TP: added: (NEGATE -1 OMS) # "martin_martti saarikangas" # *** POSS.SUFF *** (POSS_SUFF POSS_SUFF) ; SELECT NSgNom + POSS_SUFF (-1C Nom + A_Q_Pron) (-1 Sg) (NEGATE -1 Rel) (NEGATE 0 V OR HYVANSA OR TILANNE) (NEGATE 1 GenLeft) (NEGATE -1 ITSE) ; # HäNEN AINOA AUTONSA SELECT NPlNom + POSS_SUFF (-1C Nom + A_Q_Pron) (-1 Pl) (NEGATE -1 Rel) (NEGATE 0 V OR HYVANSA OR TILANNE) (NEGATE 1 GenLeft) ; # HäNEN AINOAT AUTONSA SELECT NPSg3Nom + POSS_SUFF (NEGATE 0 V OR HYVANSA OR TILANNE) (NEGATE 1 GenLeft)(NEGATE -1 GenRight) (1C VFIN + Act + Sg3)(NEGATE *-1 NPSg3Nom OR Letter + NomSg BARRIER S-BOUNDARY)(NEGATE *1 NPSg3Nom OR Letter + NomSg BARRIER S-BOUNDARY); SELECT NPSg3Nom + POSS_SUFF (NEGATE 0 V OR HYVANSA OR TILANNE) (NEGATE 1 GenLeft OR Punct)(NEGATE -1 GenRight) (*2C VFIN + Act + Sg3 BARRIER S-BOUNDARY OR Punct LINK NOT -1C NPSg3Nom OR Unknown + UP)(NEGATE *-1 NPSg3Nom OR Letter + NomSg BARRIER S-BOUNDARY)(NEGATE *1 NPSg3Nom OR Letter + NomSg BARRIER S-BOUNDARY); SELECT NPSg3Nom + POSS_SUFF (NEGATE 0 V OR HYVANSA OR TILANNE) (NEGATE 1 GenLeft)(NEGATE -1 GenRight) (*-1C VFIN + Act + Sg3 BARRIER S-BOUNDARY LINK NOT -1C NPSg3Nom OR Unknown + UP)(NEGATE *-1 NPSg3Nom OR Letter + NomSg BARRIER S-BOUNDARY)(NEGATE *1 NPSg3Nom OR Letter + NomSg BARRIER S-BOUNDARY); # TP: before selecting gen check for nom SELECT NSgGen + POSS_SUFF (-1C Gen + A_Q_Pron) (-1 Sg) (NEGATE 0 V OR HYVANSA OR TILANNE) (NEGATE -1 Pers) ; # HäNEN AINOAN AUTONSA SELECT NSgNom + POSS_SUFF (1C VFIN) (1 Act + V-Sg) (NEGATE 0 V OR HYVANSA OR TILANNE) (NEGATE 1 GenLeft)(NEGATE *1 NPSg3Nom BARRIER S-BOUNDARY) ; # HäNEN AUTONSA ON_TULEE# OBS "vuo+si on" SELECT NSgNom + POSS_SUFF (2C VFIN) (2 Act + V-Sg) (NEGATE 0 V OR HYVANSA) (NEGATE 1 V OR N OR CLB? OR GenLeft OR PCP OR TILANNE) ; # HäNEN AUTONSA EHKä ON_TULEE SELECT NPlNom + POSS_SUFF (1C VFIN) (1 Act + V-Pl) (NEGATE 0 V OR HYVANSA OR TILANNE) (NEGATE 1 GenLeft) ; # HäNEN AUTONSA OVAT_TULEVAT SELECT NPlNom + POSS_SUFF (2C VFIN) (2 Act + V-Pl) (NEGATE 0 V OR HYVANSA) (NEGATE 1 V OR N OR CLB? OR GenLeft OR PCP OR TILANNE) ; # HäNEN AUTONSA EHKä OVAT_TULEVAT SELECT NSgGen + POSS_SUFF (2C VFIN) (2 Act) (1C N - Prop) (NEGATE 0 V OR HYVANSA OR TILANNE) ; # XXXX ??????????? # HäNEN ISäNSä AUTO(T) HAJOSI(VAT) ; # TP: appos: -Prop added # changed CLB? to CLB - 20.01.2015 - FMT+KM SELECT NSgGen + POSS_SUFF (3C VFIN) (3 Act) (1C N) (NEGATE 2 N OR V OR CLB) (NEGATE 0 V OR HYVANSA OR TILANNE) ; # Todista henkilöllisyytesi vaalivirkailijalle eli näytä ... # HäNEN ISäNSä AUTO(T) EHKä HAJOSI(VAT) ; REMOVE NSgGen + POSS_SUFF (1C VFIN + Pass) (NEGATE 0 V) ; # HäNEN AUTONSA(Sg_Pl) OSTETTIIN REMOVE NSgGen + POSS_SUFF (2C VFIN + Pass) (NEGATE 0 V) (NEGATE 1 V OR N OR CLB?) ; # HäNEN AUTONSA(Sg_Pl) EHKä OSTETTIIN SELECT NSgGen + POSS_SUFF (1 Po) (NEGATE 0 V) (NEGATE 0 HYVANSA) ; SELECT NSgGen + POSS_SUFF (1C N + Sg) (NEGATE 0 V OR HYVANSA OR TILANNE) (1C DV) (NEGATE 1 Ess) ; # TUOTANTONSA KOHOTTAMISEKSI # PAINOI LEIMANSA TOIMINTAAN (Pl FöR STARK ??? ZZZ) ; SELECT NSgGen + POSS_SUFF (1C N + Sg) (NEGATE 0 V OR HYVANSA OR TILANNE) (1C Par) ; # NOSTI LEHTENSä LEVIKKIä REMOVE NPlNom + POSS_SUFF (NEGATE 0 V) (NEGATE -2 Ade) (NEGATE -3 Ade) (-1 COP + V-Sg) (1 N) ; # ON MAAMME TUOTANNOSSA_ MIEHEMME HAVANNASSA REMOVE NPlNom + POSS_SUFF (NEGATE 0 V OR TILANNE) (NEGATE -3 Ade) (NEGATE -4 Ade) (-2 COP + V-Sg) (NEGATE -1 CLB?) (NEGATE -1 N OR V OR PCP) (1 N) ; # ON EHKä MAAMME TUOTANNOSSA REMOVE NSgGen + POSS_SUFF (NEGATE 0 V) (-2 Ade) (-1 COP + V-Sg + Act) (NEGATE 1 N OR A_Q_Pron) ; # NIIllä ON SYYNSä. REMOVE NSgGen + POSS_SUFF (NEGATE 0 V) (-3 Ade) (-2 COP + V-Sg + Act) (NEGATE -1 CLB?) (NEGATE 1 N OR A_Q_Pron) ; # NIIllä EHKä ON SYYNSä. REMOVE NSgNom + POSS_SUFF (-1C VFIN) (-1 Act + V-Pl) (NEGATE 0 V) (NEGATE -2 NES) ; # OTTIVAT AUTONSA (RENKAAT_MUKAAN) ; REMOVE NSgNom + POSS_SUFF (-2C VFIN) (-2 Act + V-Pl) (NEGATE 0 V) (NEGATE -1 CLB?) (NEGATE -3 NES) ; # OTTIVAT EHKä AUTONSA (RENKAAT_MUKAAN) ; SELECT NSgNom + POSS_SUFF (-2C Nom) (-2 Sg) (-1 COP + Act + V-Sg) (NEGATE 0 V OR HYVANSA OR TILANNE) (NEGATE 1 N OR A_Q_Pron OR GenLeft OR PCP) ; # HäN ON MIEHENNE SELECT NSgNom + POSS_SUFF (-3C Nom) (-3 Sg) (-2 COP + Act + V-Sg) (NEGATE -1 N OR CLB? OR PPPCPs) (NEGATE 0 V OR HYVANSA OR TILANNE) (NEGATE 1 N OR A_Q_Pron OR GenLeft OR PCP) ; # HäN ON EHKä_PITKä MIEHENNE SELECT NPlNom + POSS_SUFF (-2C Nom) (-2 Pl) (-1 COP + Act + V-Pl) (NEGATE 0 V OR HYVANSA OR TILANNE) (NEGATE 1 N OR A_Q_Pron OR GenLeft OR PCP) ; # HE OVAT MIEHENNE SELECT NPlNom + POSS_SUFF (-3C Nom) (-3 Pl) (-2 COP + Act + V-Pl) (NEGATE -1 N OR CLB?) (NEGATE 0 V OR HYVANSA OR TILANNE) (NEGATE 1 N OR A_Q_Pron OR GenLeft OR PCP) ; # HE OVAT EHKä_PITKäT MIEHENNE SELECT NGen (NEGATE 0 V) (1 MUKAIneN) ; # Sg POSS_SUFF omitted 24.1.2001 SELECT NPlNom + POSS_SUFF (-1 KAIKKI + Nom) (NEGATE 1 GenLeft) ; SELECT ("alku") + NSgGen + POSS_SUFF (NEGATE 0 V) (*-1 SAADA) ; SELECT Pl + Gen (0 OMIEN) ; SELECT Pl + Gen (1C N) (1 Nom) (NEGATE 0 ("itse")) ; SELECT Pl + Gen (1C Gen) (1 Pl) (NEGATE 0 ("itse")) ; SELECT Pl + Gen (-1C Gen) (-1 Pl) ; SELECT Pl + Gen (1C TEMP) ; SELECT AgPrc + NomSg + POSS_SUFF (1C Nom) (1 Sg) (NEGATE 0 N) ; # HäNEN HYVäKSYMäNSä ESITYS SELECT AgPrc + Pl + Nom + POSS_SUFF (1C Nom) (1 Pl) (NEGATE 0 N) ; SELECT AgPrc + GenSg + POSS_SUFF (1C Gen) (1 Sg) (NEGATE 0 N) ; SELECT ("itse") + Pron + GenSg + POSS_SUFF (-1 Gen) ; SELECT ("itse") + Pron + GenSg + POSS_SUFF (-1C V) (*-2 Nom LINK 0 Sg LINK NOT *1 CLB?) ; # XXXX SELECT ("itse") + Pron + Pl + Nom + POSS_SUFF (-1C V) (*-2 Nom LINK 0 Pl LINK NOT *1 CLB?) ; # XXXX REMOVE ("itse") + Pron + NomSg + POSS_SUFF ; REMOVE NomSg + POSS_SUFF (NEGATE 0 V) (NEGATE -1 COP OR NES) (NEGATE 1 N OR A_Q_Pron) (-2C Nom) (-1C VFIN) (-1 Act) ; # KOMITEAT JäTTI(VäT) MIETINTöNSä REMOVE NomSg + POSS_SUFF (NEGATE 1 N) (-1C TEMP) ; # changed VFIN to VFIN - Imprt ... 20.01.2015 - FMT+KM REMOVE NomSg + POSS_SUFF (-1C VFIN - Imprt) (-1 Act) (NEGATE -1 OLLA) (NEGATE -1 NES) ; # 1) Todista henkilöllisyytesi vaalivirkailijalle eli näytä passi ... REMOVE NomSg + POSS_SUFF (-2C VFIN) (-2 Act) (NEGATE -2 OLLA) (NEGATE -1 CLB?) (NEGATE -2 NES) ; REMOVE GenSg + POSS_SUFF (-1C VFIN) (-1 Act + OLLA + Sg3) (*-2 Ade LINK NOT *1 CLB?) ; # XXXX REMOVE GenSg + POSS_SUFF (-2C VFIN) (-2 Act + Sg3 + OLLA) (NEGATE -1 CLB?) (*-3 Ade LINK NOT *1 CLB?) ; REMOVE Nom + POSS_SUFF (*-1C Neg LINK *-1 Nom LINK 0 NomHEAD LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; # XXXX SELECT ("maa") + GenSg + PxPl1 (1 N) ; SELECT ("maa") + GenSg + PxPl1 (2 N) (NEGATE 1 V) ; SELECT ("maa") + GenSg + PxPl1 (3 N) (NEGATE 1 V) (NEGATE 2 V) ; SELECT ("maa") + GenSg + PxPl1 (4 N) (NEGATE 1 V) (NEGATE 2 V) (NEGATE 3 V) ; REMOVE PxSg2 (0 V) (0 Prt) (NEGATE -1 SINÄ) ; # TOTESI,KOHOSI SELECT NSgNom + POSS_SUFF (1C NEGV) (1 Sg123) (NEGATE 2 TARVITA) ; # XXX SELECT NPlNom + POSS_SUFF (1C NEGV) (1 Pl123) (NEGATE 2 TARVITA) ; # added (NEGATE 0 DER) . Mon Jan 19 15:33:50 CET 2015 (FMT + KM) OR SELECT V IF (0 N) (NEGATE 0 WORD)(NEGATE *-1 V BARRIER CLB) (NEGATE *1 V BARRIER CLB) (NEGATE 0 DER) ; #------------------------------------------------------------ # KOORDINAATIO: N Conj N # THIS IS A TYPICAL EXAMPlE: MAKING THIS GENERALISATION FOR All CASES # WOULD NOT MAKE SENSE# ONLY Par IS HOMONYMOUS. THIS IS A DISAMBIGUATION # GRAMMAR! SELECT Par (1 Conj) (2 Par) (3 V) ; # PAIKKAA JA KOKOA VOIDAAN SELECT Par (-2 Par) (-1 Conj) (1 V) ; # PAIKKAA JA KOKOA VOIDAAN #------------------------------------------------------------ # *** PP & PSP #GenLEFT,GenRIGHT,ParLEFT,ParRIGHT IN ISOLATION SELECT Po + GenLeft (-1 Gen) (NEGATE 0 GenRight) (NEGATE 0 ParRight) (NEGATE 0 ParLeft) (NEGATE -1 AD_PCP) (NEGATE 0 POSS_SUFF) (NEGATE -1 KERRAN) (NEGATE 0 JOHDOSTA) ; SELECT Po + GenLeft (-2 Gen) (-1 Punct) (NEGATE 0 GenRight) (NEGATE 0 ParRight) (NEGATE 0 ParLeft) (NEGATE -1 AD_PCP) (NEGATE 0 POSS_SUFF) (NEGATE -1 KERRAN) (NEGATE 0 JOHDOSTA) ; SELECT Po + ParLeft (-1 Par) (NEGATE 0 GenRight) (NEGATE 0 ParRight) (NEGATE 0 GenLeft) (NEGATE 0 POSS_SUFF) ; SELECT Po + ParLeft (-2 Par) (-1 Punct) (NEGATE 0 GenRight) (NEGATE 0 ParRight) (NEGATE 0 GenLeft) (NEGATE 0 POSS_SUFF) ; SELECT Pr + GenRight (1 Gen) (NEGATE 0 GenLeft) (NEGATE 0 ParRight) (NEGATE 0 ParLeft) (NEGATE 0 YLI_AllE) (NEGATE 0 POSS_SUFF) (NEGATE 0 JALKEEN) ; SELECT Pr + ParRight (1 Par) (NEGATE 0 GenRight) (NEGATE 0 GenLeft) (NEGATE 0 ParLeft) (NEGATE 0 POSS_SUFF) (NEGATE 0 V) ; # CF. "ei edellä" SELECT Pr + ParRight (1 Gen_Punct) (2 Par) (NEGATE 0 GenRight) (NEGATE 0 GenLeft) (NEGATE 0 ParLeft) (NEGATE 0 POSS_SUFF) ; SELECT ("ilman") + Pr (1 ETTA) ; SELECT ("ilman") + Pr (1 Punct) (2 ETTA) ; SELECT ("ilman") + Pr (2 Par) ; SELECT ("ilman") + Pr (1 Par) ; SELECT ("paitsi") + Pr (1 ETTA) ; SELECT ("paitsi") + Pr (1 Punct) (2 ETTA) ; # SELECT Adp + ("mukaan") (-1 Gen) ; # mahdollisesti ongelmallista: "tuolla menee isä, astuin sen jälkeen." "tutustuin jänikseen ja sen jälkeen." # runoudessa: "muistan päivän sen, jälkeen eilisen". ; "sen mukaan" # SELECT Adp (0 Po) (1 Gen) ; SELECT Po IF (NEGATE 0 Pr) (-1 Gen) ; SELECT Pr IF (NEGATE 0 Pr) (1 Gen) ; SELECT ("sitten") + Po (-2 Num) (-1 TIME-WORD) (-1 Par) ; # also cf. below under heuristic REMOVE Po IF (NEGATE -1 Gen_Par) ; # ennen ja jälkeen päivän # CG may see these as postpositions due to the preceding partitive and gen. # Luin sen ennen uutisia. # ^Pr # Minä aion lukea kirjaa ennen näitä erikoisen tyhmiä uutisia. # ^Pr # Changed order so Prepositions are selected first; maybe that will prevent selecting objects? # Prepositions and Postpositions # ------------------------------ # TODO: need to be more detailed, because not all prepositions have the same case assignment. There are some ambiguous situations, such as "Hän sanoi sen ennen" in which the current analysis selects postpositions and does not assign @OBJ, despite that no postpositions exist... As such, tying specific adpositions to cases may actually help. # *** # Following can all be Po and Pr according to morph: alkaen, alla, alle, alta, asti, ennen, huolimatta, katsomatta, keskellä, keskelle, keskeltä, kohti, koskien, liki, lähelle, läheltä, lähellä, lähtien, myötä, paitsi, pitkin, pitäen, päin, vastoin, vastapäätä, välillä, välissä, välistä, yli # is Ilman the only Pr that cannot also be a Po? Many more Po that are also Pr. # Specific Po Pr rules "<ennen>" SELECT Po IF (-1 Par) ; # Have to exclude this for now. "<ennen>" REMOVE Po IF (-1 Gen) ; SELECT Pr IF (0 PAR_ONLY) (1 Par) ; # commented out - 19.01.2015 - FMT+TT+KM #SELECT Po IF (0 EXTENDED_CASE) (-1 PoCase) ; SELECT Po IF (0 Po) (0 V + Ins) (-1 PoCase) ; # Hintoihin katsoen, hintoihin nähden # General Po Pr rules SELECT Po IF (0 Po) (-1 PoCaseNonLoc) ; SELECT Pr IF (0 Pr) (1 PoCaseNonLoc) ; REMOVE Adpp (0 Po - Adpp) ; REMOVE Adpp (0 Pr - Adpp) ; REMOVE Pcle (0 Adv - Pcle) ; # Commented out 20.01.2015 - FMT+KM #REMOVE Adv IF (0 Po) ; #REMOVE Adv IF (0 Pr) ; # Kun Mari on lopettanut laskemisen, hän katsoo ympärilleen. # shoudln't there be a rule for this already? ... added 20.01.2015 - FMT+KM REMOVE Po IF (-1C VFIN) ; # Kun Mari on lopettanut laskemisen, hän katsoo ympärilleen. # Puolella _ Puoli SELECT ("puoli") + N IF (NEGATE 0 WORD LINK -1 NGen) ; # Prefer to remove rather than select, so rules have to be 'inverse': REMOVE Pl3 IF Sg3, etc. # If these rules are too destructive (originally intended for Adp and Po possessive marking), use the commented-out ones. # REMOVE Pl3 IF (0 Sg3) (*-1C THIRD_PersON_SG BARRIER THIRD_PersON_SG) ; # REMOVE Sg3 IF (0 Pl3) (*-1C THIRD_PersON_PL BARRIER THIRD_PersON_PL) ; REMOVE PxPl3 IF (0 PxSg3)(-1C Act + Ind + Sg3) ; # TP REMOVE PxSg3 IF (0 PxPl3)(-1C Act + Ind + Pl3) ; # TP REMOVE PxPl3 IF (0 PxSg3)(-1 Pers + Sg3 OR Rel + Sg OR Interr + Sg OR Qu + Sg) ; # TP: rewritten REMOVE PxSg3 IF (0 PxPl3)(-1 Pers + Pl3 OR Rel + Pl OR Interr + Pl OR Qu + Pl) ; # TP: rewritten REMOVE PxPl3 IF (0 PxSg3)(*-1 Pers + Sg3 OR Rel + Sg OR Interr + Sg OR Qu + Sg BARRIER Pers + Pl3 OR S-BOUNDARY - KUIN OR NPlNom LINK NEGATE 1 PxSg3) ; # TP: rewritten REMOVE PxSg3 IF (0 PxPl3)(*-1 Pers + Pl3 OR Rel + Pl OR Interr + Pl OR Qu + Pl BARRIER Pers + Sg3 OR S-BOUNDARY - KUIN OR NSgNom LINK NEGATE 1 PxPl3) ; # TP: rewritten REMOVE PxPl3 - ITSE IF (0 PxSg3)(*1 Pers + Sg3 BARRIER Pers + Pl3 OR S-BOUNDARY - KUIN) ; # TP REMOVE PxSg3 - ITSE IF (0 PxPl3)(*1 Pers + Pl3 BARRIER Pers + Sg3 OR S-BOUNDARY - KUIN) ; # TP REMOVE PxSg3 IF (0 PxPl3)(*-1 NPlGen OR NPlNom BARRIER Pers + Sg3 OR NSgGen OR NSgNom LINK -1 CC LINK -1 NPlGen OR NPlNom) ; # TP REMOVE PxPl3 IF (0 PxSg3)(*-1 NSgGen OR NSgNom BARRIER Pers + Pl3 OR NPlGen OR NPlNom) ; # TP REMOVE PxSg3 IF (0 PxPl3)(*-1 NPlGen OR NPlNom BARRIER Pers + Sg3 OR NSgGen OR NSgNom) ; # TP REMOVE PxSg3 IF (0 PxPl3)(*1 NPlGen OR NPlNom BARRIER Pers + Sg3 OR NSgGen OR NSgNom LINK 1 CC LINK 1 NPlGen OR NPlNom) ; # TP REMOVE PxPl3 IF (0 PxSg3)(*1 NSgGen OR NSgNom BARRIER Pers + Pl3 OR NPlGen OR NPlNom) ; # TP REMOVE PxSg3 IF (0 PxPl3)(*1 NPlGen OR NPlNom BARRIER Pers + Sg3 OR NSgGen OR NSgNom) ; # TP # Px Verbs ?? REMOVE PxPl3 IF (*-1 Sg + @SUBJ> LINK NOT -1 CCC) ; REMOVE PxPl3 IF (*-1 Sg + @SUBJ> LINK -1 CCC LINK NOT -2 NSgNom) ; REMOVE PxPl3 IF (*-1 Act + Sg3) ; REMOVE PxSg3 IF (*-1 Pl + @SUBJ> OR Act + Pl3) ; # REMOVE (THIRD_PersON_PL) IF (0 POSS_SUFF) (-1 Pron + Sg) ; # REMOVE (THIRD_PersON_SG) IF (0 POSS_SUFF) (-1 Pron + Pl) ; # # REMOVE (N THIRD_PersON_PL) IF (0 POSS_SUFF) (*-1 Sg + @SUBJ>) ; # REMOVE (N THIRD_PersON_SG) IF (0 POSS_SUFF) (*-1 Pl + @SUBJ>) ; # Hän näki poikansa. # -- works # Hän näki heidän poikansa. # -- seems not to work # Ja Jumala(j) loi ihmisen omaksi kuvaksensa(j). # *Ja Jumala(j) loi ihmisen(i) omaksi kuvaksensa(i). # -- Means that we do need to look over the barrier, or that this barrier can't include the obj? # So basically, this needs to go to the subject if there's no intervening pronoun, otherwise it goes to the pronoun if it immediately precedes... yes? # Jukka kertoi heille heidän ongelmistaan # *minä kerroin heille ongelmistaan # REMOVE (Po Pl3) IF (*-1 THIRD_PersON_SG BARRIER THIRD_PersON_SG) ; # REMOVE (Adv Pl3) IF (*-1 THIRD_PersON_SG BARRIER THIRD_PersON_SG) ; # REMOVE (Po Sg3) IF (*-1 THIRD_PersON_PL BARRIER THIRD_PersON_PL) ; # REMOVE (Adv Sg3) IF (*-1 THIRD_PersON_PL BARRIER THIRD_PersON_PL) ; SELECT NGen OR NPlNom IF (0 NNom)(*-1 Nom BARRIER CLB) (*-1 V BARRIER CLB LINK NOT 0 REALCOPULAS); # SELECT Pr IF (1 Par) ; # SELECT Po IF (0 Adp) (-1 Gen) ; SELECT Adv IF (1 ("ja")) (2 Adv) (3 Gen) ; SELECT Adv IF (-1 ("ja")) (-2 Adv) (1 Gen) ; # hmm.. SELECT N + ("jälki") IF (-1 V + Act) ; SELECT N + ("jälki") IF (-1 Adv) (-2 V + Act) ; SELECT Adv (1 ETTA) ; SELECT Adv (1 Punct) (2 ETTA) ; # Assuming that all prepositions are now tagged as such in omorfi -- Ryan # SELECT Adp ((1 Par) or (-1 (Par or Gen)) or (2 Par)) ; # --ryan # # SELECT Pr ((1 Par) OR (-1 (Par OR Gen)) OR (2 Par)) ;# --trond # # TT: This rule was formally flawed, but it is unclear to me what it is # supposed to do. I thus comment it out. # I would have said something along the lines of # SELECT Pr if (0 Partitive-prepositions)(*1 Par BARRIER NPNH) ; # but such a rule might already exist. # risky; lumi pyryttää nurkissa -> removing "lative" # REMOVE InfV IF (@SUBJ) ; # requires BOS checking, which doesn't appear to work; or assigning CLB to BOS. # REMOVE InfV IF (0 InfV) (*-1 @SUBJ>) (*-1 BOS) ; # SELECT Adp (2 Par) ; # SELECT Adp (-1 Gen) ; #"jälkeen", "kautta" GenLEFT,GenRIGHT,ParLEFT SELECT ("jälkeen") + Po (-1 Gen) (NEGATE 0 POSS_SUFF) (NEGATE -1 KERRAN) ; SELECT Po + GenLeft (-1 Par_Gen) (0 GenRight) (0 ParLeft) (NEGATE 0 ParRight) (NEGATE 1 Gen) (NEGATE -1 AD_PCP) (NEGATE 0 POSS_SUFF) (NEGATE -1 KERRAN) (NEGATE 0 JOHDOSTA) ; SELECT Po + GenLeft (-2 Gen) (-1 Num) (0 GenRight) (0 ParLeft) (NEGATE 0 ParRight) (NEGATE -1 AD_PCP) (NEGATE 0 POSS_SUFF) (NEGATE -1 KERRAN) (NEGATE 0 JOHDOSTA) ; SELECT Pr + GenRight (NEGATE -1 Par_Gen) (0 GenLeft) (0 ParLeft) (NEGATE 0 ParRight) (1 Gen) (NEGATE 0 POSS_SUFF) (NEGATE 0 JALKEEN) ; # NOW ERROR FOR "vuonna 400 jälkeen kr syntymän" #ENNEN,PäIN,PITKIN,PAITSI,KOHTI (ParLEFT,ParRIGHT) ; SELECT ("päin") + Po (-1 Ill_All) ; # MEREEN-MERelLE PäIN SELECT Po + ParLeft (-1C Par) (0 ParRight) (NEGATE 0 GenLeft) (NEGATE 0 GenRight) (NEGATE 1 Par) (NEGATE 2 Par) ; SELECT ("ennen") + Pr (1 LUKU) ; SELECT ("ennen") + Pr (1 Par) ; SELECT Pr + ParRight (1 Par) (0 ParLeft) (NEGATE 0 GenLeft) (NEGATE 0 GenRight) (NEGATE -1 Par) (NEGATE -2 Par) (NEGATE 0 POSS_SUFF) ; #LäHELLä,JäLJEssä,EDELLä (ParRIGHT,ParLEFT,GenLEFT) ; SELECT Po + GenLeft (-1 Par_Gen) (0 ParRight) (0 ParLeft) (NEGATE 0 GenRight) (NEGATE 1 Par) (NEGATE -1 AD_PCP) (NEGATE 0 POSS_SUFF) (NEGATE -1 KERRAN) (NEGATE 0 JOHDOSTA) ; SELECT Po + GenLeft (-2 Gen) (-1 Num) (0 ParRight) (0 ParLeft) (NEGATE 0 GenRight) (NEGATE 1 Par) (NEGATE -1 AD_PCP) (NEGATE 0 POSS_SUFF) ; SELECT Pr + ParRight (NEGATE -1 Par_Gen) (0 GenLeft) (0 ParLeft) (NEGATE 0 GenRight) (1 Par) (NEGATE 0 POSS_SUFF) (NEGATE 0 JOHDOSTA) ; # LIKELLä,KESKELLä (ParRIGHT,GenLEFT) ; SELECT Po + GenLeft (-1 Gen) (0 ParRight) (NEGATE 0 ParLeft) (NEGATE 0 GenRight) (NEGATE 1 Par) (NEGATE -1 AD_PCP) (NEGATE 0 POSS_SUFF) (NEGATE -1 KERRAN) (NEGATE 0 JOHDOSTA) (NEGATE 2 Par) ; SELECT Po + GenLeft (-2 Gen) (-1 Punct) (0 ParRight) (NEGATE 0 ParLeft) (NEGATE 0 GenRight) (NEGATE 1 Par) (NEGATE -1 AD_PCP) (NEGATE 0 POSS_SUFF) (NEGATE -1 KERRAN) (NEGATE 0 JOHDOSTA) (NEGATE 2 Par) ; SELECT Po + GenLeft (-2 Gen) (-1 Num) (0 ParRight) (NEGATE 0 ParLeft) (NEGATE 0 GenRight) (NEGATE 1 Par) (NEGATE -1 AD_PCP) (NEGATE 0 POSS_SUFF) (NEGATE -1 KERRAN) (NEGATE 0 JOHDOSTA) (NEGATE 2 Par) ; SELECT Pr + ParRight (NEGATE -1 Gen) (0 GenLeft) (NEGATE 0 ParLeft) (NEGATE 0 GenRight) (1 Par) (NEGATE 0 POSS_SUFF) ; # KESKEN (ParRIGHT,GenRIGHT,GenLEFT) ; SELECT Po + GenLeft (-1 Gen) (0 ParRight) (NEGATE 0 ParLeft) (0 GenRight) (NEGATE 1 Par_Gen) (NEGATE -1 AD_PCP) (NEGATE 0 POSS_SUFF) (NEGATE -1 KERRAN) (NEGATE 0 JOHDOSTA) (NEGATE 2 Par_Gen) ; SELECT Po + GenLeft (-2 Gen) (-1 Punct) (0 ParRight) (NEGATE 0 ParLeft) (0 GenRight) (NEGATE 1 Par_Gen) (NEGATE -1 AD_PCP) (NEGATE 0 POSS_SUFF) (NEGATE -1 KERRAN) (NEGATE 0 JOHDOSTA) (NEGATE 2 Par_Gen) ; SELECT Pr + ParRight (NEGATE -1 Gen) (0 GenLeft) (NEGATE 0 ParLeft) (0 GenRight) (1 Par_Gen) (NEGATE 0 POSS_SUFF) ; # AllA (GenRIGHT,GenLEFT) ; SELECT Po + GenLeft (-1 Gen) (NEGATE 0 ParRight) (NEGATE 0 ParLeft) (0 GenRight) (NEGATE 1 Gen) (NEGATE -1 AD_PCP) (NEGATE 0 POSS_SUFF) (NEGATE -1 KERRAN) (NEGATE 0 JOHDOSTA) ; SELECT Po + GenLeft (-2 Gen) (-1 Punct) (NEGATE 0 ParRight) (NEGATE 0 ParLeft) (0 GenRight) (NEGATE 1 Gen) (NEGATE -1 AD_PCP) (NEGATE 0 POSS_SUFF) (NEGATE -1 KERRAN) (NEGATE 0 JOHDOSTA) ; SELECT Pr + GenRight (NEGATE -1 Gen) (0 GenLeft) (NEGATE 0 ParLeft) (NEGATE 0 ParRight) (1 Gen) (NEGATE 0 POSS_SUFF) (NEGATE 0 JALKEEN) ; #DELETING SUPERFLUOUS READINGS FOR All ComBINATIONS REMOVE Po + GenLeft (NEGATE -1 Gen) (NEGATE 0 ParLeft) ; REMOVE Po + ParLeft (NEGATE -1 Par) (NEGATE 0 GenLeft) ; REMOVE Po + GenLeft (NEGATE -1 Par_Gen) (0 ParLeft) ; REMOVE Pr + ParRight (NEGATE 0 GenRight) (NEGATE 0 ParLeft) (NEGATE 1 Par) (NEGATE 2 Par) (NEGATE 1 KELLO) ; REMOVE Pr + GenRight (NEGATE 0 ParRight) (NEGATE 1 Gen) (NEGATE 1 Num) (NEGATE 2 Gen) ; #2lastcondadd9.10.2000"yli" REMOVE Pr + ParRight (0 GenRight) (NEGATE 1 Par_Gen) (NEGATE 2 Par_Gen) ; SELECT ("lähtien") + Po (-1 Ela_Abl) ; SELECT ("lähtien") + Po (-2 Ela) (-1 Num) ; # VUODESTA 1946 LäHTIEN #(@w IFF (PSP "sitten") (-1 TIME-WORD) ; #old one, changed 26.11.2000 to next one SELECT Gen (1C Po) (1C GenLeft) (NEGATE -1 AD_PCP) ; SELECT Par (1C Po) (1C ParLeft) ; SELECT Gen (-1C Pr) (-1C GenRight) ; SELECT Par (-1C Pr) (-1C ParRight) ; #*** INTERJ *** REMOVE Interj (NEGATE -1 CLB?) (NEGATE 0 VOI) ; # INTERJECTION MAY ONLY START A SENTENCE: Conj + Interj ## **** VERBAL ENDINGS **** SELECT Act + Sg3 (NEGATE *-1 NEGV BARRIER CLB) (-1C Nom) (-1 N_Pron_Q) (NEGATE -1 DV-US) (NEGATE -1 DA-US) (NEGATE 0 TUO) (NEGATE -1 Num) (NEGATE 1C VFIN) (NEGATE 2C VFIN) (NEGATE *-1 VFIN BARRIER CLB) (NEGATE 0 PIENIA_ELAA) (NEGATE -1 NOUN+InfA) (NEGATE 0 Cond) (NEGATE 0 Prt) ; ## *** IMPERATIVES *** SELECT Imprt (-1 BOS) (NEGATE *1C VFIN OR InfA) (NEGATE 0 VOI) (NEGATE 0 KO) ; # NB "kysy voiko..." #SELECT Imprt ; # (-2 CLB?) (-1 Conj) (*1 CLB? LINK NOT *-1 VFIN) ; TP don't understand REMOVE Imprt (*1C VFIN LINK NOT *-1 CLB?) (NEGATE 1 CLB?) ; REMOVE Imprt (*-1C VFIN LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; "<myös>"i REMOVE Imprt ; #REMOVE Imprt (0 ("myös")); #REMOVE Imprt (0 ("myös")); ## The following two rules match the Impr analysis of "tule", tt, hjk REMOVE:NegImprt Ind (*-1 Neg + Act + Imprt)(0 Imprt) ; REMOVE:NegInd Imprt (*-1 Neg + Act LINK NOT 0 Imprt)(0 Ind) ; ## InfINITIVES SELECT InfA (-2C InfA) (-1 Conj) (1 CLB?) (NEGATE 0 UUSIA) ; # "...voidaan käsitellä ja ylläpitää," # THIS HANDLES COORDINATION. SELECT InfA (-2 COP) (-1 HYVA_HUONO) ; # ON VAIKEA OLLA SELECT InfA (-3 COP) (-2 Adv) (-1 A) (NEGATE 0 UUSIA) ; # ONKO SITTEN MOTIVOITUA YRITTää... SELECT InfA (-2 COP) (-1 NSgPar) (NEGATE 0 UUSIA) ; # ON SYYTä PALAUTTAA MIELEEN SELECT InfA (-3 COP) (-2 Adv) (-1 NSgNom OR NSgPar) (NEGATE 0 UUSIA) ; # HAMPURIN KATASTROFIN JäLKEEN AINOANA PääMääRäNä OLEVAN *ESTää*...) ; SELECT InfA (-1C InfA-VERB) (NEGATE 0 N OR UUSIA) ; # added 20.01.2015 - FMT+KM SELECT InfA IF (-1C InfA-VERB) (NEGATE 1* InfA BARRIER CLB) ; # He eivät voineet leikkiä silloin. SELECT InfA (-2C InfA-VERB) (NEGATE -1 Par) (NEGATE 0 N OR UUSIA) ; SELECT InfA (-3C InfA-VERB) (NEGATE -1 Par) (NEGATE 0 N OR UUSIA) ; SELECT InfA (-1C NOUN+InfA) (*-1C VFIN LINK NOT *1 CLB?) (NEGATE 0 N) ; REMOVE InfA (-1C InfA) ; # SAATTOI ALKAA OTTAA KANTAAN REMOVE InfE (NEGATE -2 Gen) (-1 Gen-PREP) ; # "uudistushankkeiden äänestäminen yli vaalien SELECT InfE (0 Pot) ; # HIUKAN LIIOITELLEN (EI Pot) ; SELECT InfMa (-1 V) (0 Ade) (NEGATE 0 N) (NEGATE 1 Ade) ; SELECT InfMa (-2 V) (0 Ade) (NEGATE 0 N) (NEGATE 1 Ade) ; SELECT InfMa (-3 V) (0 Ade) (NEGATE 0 N) (NEGATE 1 Ade) ; SELECT InfMa (-1 V) (0 Ine) (NEGATE 0 N) (NEGATE 1 Ine) ; SELECT InfMa (-2 V) (0 Ine) (NEGATE 0 N) (NEGATE 1 Ine) ; SELECT InfMa (-3 V) (0 Ine) (NEGATE 0 N) (NEGATE 1 Ine) ; SELECT InfMa + Ela OR NSgEla (*-1 InfMa-Ela LINK NOT *1 CLB?) (NEGATE 0 ELAMA_KUOLEMA) (NEGATE -1 CLB?) ; # TP: +N SELECT InfMa + Ill OR NSgIll (*-1 InfMa-Ill LINK NOT *1 CLB?) (NEGATE 0 ELAMA_KUOLEMA) (NEGATE -1 CLB?) ; # TP: +N mennä satamaan SELECT InfMa + Abe (NEGATE 0 Po) (NEGATE 0 Adv) ; REMOVE InfMa + Act + Ins (NEGATE *-1 Nec-V) ; # *** AgPrc SELECT AgPrc + Sg + Ine (1C Ine) (1 Sg) ; SELECT AgPrc + Pl + Ine (1C Ine) (1 Pl) ; SELECT AgPrc + Sg + Ela (1C Ela) (1 Sg) (NEGATE *-1 InfMa-Ela) ; SELECT AgPrc + Pl + Ela (1C Ela) (1 Pl) (NEGATE *-1 InfMa-Ela) ; SELECT AgPrc + Sg + Ill (1C Ill) (1 Sg) (NEGATE *-1 InfMa-Ill) ; SELECT AgPrc + Pl + Ill (1C Ill) (1 Pl) (NEGATE *-1 InfMa-Ill) ; SELECT AgPrc + Sg + Ade (1C Ade) (1 Sg) ; SELECT AgPrc + Pl + Ade (1C Ade) (1 Pl) ; # ERROR: "ilman siirtymistä yksikielisistä kaksikielisiin ..." # Derivational tags # ----------------- SELECT Der_minen (-1 Adv) ; # Select adverbial non-derived adverbial if such exists # ***** REMOVE Der_sti IF (0C Adv) ; # Remove derivational verb when nominal exists #REMOVE V + DER (0 N) ; # TP: may be different! At this stage case is not selected finally. # Remove derived adjectives if non-derived exists REMOVE Der_inen IF (0C A) ; # Participles # ----------- REMOVE A IF (0 PrsPrc) ; # Participle agreement? REMOVE AgPrc + Ine IF (NEGATE 1C Ine) ; REMOVE AgPrc + Ela IF (NEGATE 1C Ela) ; REMOVE AgPrc + Ill IF (NEGATE 1C Ill) ; REMOVE AgPrc + Ade IF (NEGATE 1C Ade) ; REMOVE AgPrc + Nom IF (NEGATE 1C Nom) (NEGATE *-1 OLLA) ; REMOVE AgPrc + Gen IF (NEGATE 1C Gen) (NEGATE *-1 OLLA) ; REMOVE AgPrc + Par IF (NEGATE 1C Par) (NEGATE *-1 OLLA) ; SELECT AgPrc + Nom OR NGen IF (1C Nom) (-1C Gen) (-1 N) ; SELECT AgPrc + Gen OR NGen IF (1C Gen) (-1C Gen) (-1 N) (NEGATE 0 SANOA) ; SELECT AgPrc + Par OR NGen IF (1C Par) (-1C Gen) (-1 N) ; # Negative Forms # -------------- SELECT ConNeg (-1 NEGV) (NEGATE 0 NEG-AMBIGUOUS) (NEGATE 1 Neg) (NEGATE 1 Prs) (0 Prs_Prt) ; SELECT ConNeg (*-1 NEGV BARRIER V) (NEGATE 0 NEG-AMBIGUOUS) (NEGATE 1 Neg) (NEGATE 1 Prs) (0 Prs_Prt) ; # Enkä minä koskaan enää tuhoa kaikkea, mikä elää, niinkuin nyt olen tehnyt. #REMOVE:NoConNeg ConNeg IF (NEGATE -1* Neg); # FMT REMOVE:NoConNeg ConNeg IF (NEGATE *1 Neg) (NEGATE *-1 Neg); SELECT Pron + Pers (-1 NEGV) (*1 ConNeg BARRIER ConNeg) (NEGATE 0 WORD LINK 1 N + Ess); # Enkä minä koskaan enää tuhoa kaikkea, mikä elää, niinkuin nyt olen tehnyt. # EI HALUTA_=!# EIKä HEITä LöYDY # BUT: EI NIITä VOI MUUTTAA! # EIKä MUUTA PYYDetä KUIN # THIS AD HOC WAY IS THE EASIEST. REMOVE Pass + Neg (*-1 NEGV LINK *1C PrsPrc LINK NOT *1 CLB?) ; # EI VOI JÄÄDÄ # (NEGATE *R Neg) (NEGATE 0 NEG-AMBIGUOUS) (0 Prs_Prt) ; # (NEGATE 0 A_N) (NEGATE *1 Neg) (NEGATE 1 Nom) (*-1 NEGV LINK NOT *1 CLB?) ; # VAARAllIneN, NEG_N_A-HOMOGRAFIAA ESIINTYY. # VRT: EI SUOMALAISTA VOI AINA KAIKESTA SYYTTää. # Allow selecting of Neg when Conj CS exists. Does not change above example. -- Ryan REMOVE Neg (NEGATE *-1 NEGV) (NEGATE *1 NEGV) (NEGATE 0 CS) (NEGATE 1 ConNeg) (NEGATE -1 ConNeg) ; # IF NO NEGV, THEN NO Neg IN THE SAME CLAUSE. REMOVE Neg (NEGATE *-1 NEGV) (*1 NEGV LINK *1C Neg) ; # IF NEGV ONLY ON THE RIGHT, AND IT IS ENGAGED, OUT WITH NEG. REMOVE Neg (*-1 NEGV LINK 1C Neg) (NEGATE -1 CLB?) ; # Select Neg if there's a conj reading too. SELECT Neg IF (0 CS) (*1 ConNeg BARRIER ConNeg) ; # Negative coordination: ei huolia kiinnittää, in situations where kiinnittää is ambiguous SELECT InfA IF (0 Ind + Prs) (-1 V + Neg) ; SELECT ("alkaa") + Pass (0 ALETA) ; # XXXX SHOULD BE UNDER Pass REMOVE ("juuria") + V ; REMOVE ("eritä") + V ; SELECT ("kannattaa") + V + Prs ; # (NEGATE *-1 TäYTYä...) ; SELECT ("karsia") + V ; SELECT ("kestää") + V + Prt (0 N) ; # XXXX NOT "kestiN" REMOVE ("niittää") + V (0 Pron) ; # NIITä "ne" Pron Dem Pl Par REMOVE ("nytkiä") + V ; # OK NYT+KIN REMOVE ("nähdä") + VSg1 (-1C VFIN) (NEGATE -1 CLB?) ; # CHANGED 5.9.95 REMOVE ("nähdä") + VSg1 (1C VFIN) (NEGATE 1 CLB?) ; SELECT ("olla") + V + Prt + Sg1 ; # OLIN REMOVE ("olla") + V + PrsPrc + Pass + Pl + Nom (NEGATE 1 Nom) (NEGATE 1 Pl) ; # XXXX REMOVE ("tulla") + V + PrsPrc + Pass + Pl + Nom (NEGATE 1 Nom) (NEGATE 1 Pl) ; REMOVE ("pidetä") + Pass ; SELECT ("päästä") + V + Prs + Pass ; # XXXX CHECK IN LARGE CORPUS! SELECT ("riittää") + Prs + VSg3 ; # XXXX -"- SELECT ("pitää") + Prs + VSg3 (-1C Gen) ; SELECT ("saattaa") + Prs + VSg3 ; # XXXX -"- REMOVE ("siitä") + V ; REMOVE ("suomia") + V ; REMOVE ("suoria") + V ; SELECT ("taata") + V + InfA ; # XXXX REMOVE ("tervehtää") + V ; SELECT ("toimia") + V + Prt + Sg3 (-1C N_Pron) (NEGATE *-2 VFIN) (NEGATE 1 VFIN) (NEGATE 2 VFIN) (NEGATE 3 VFIN) ; SELECT ("tulla") + V + Prt + Sg3 (-1C Nom) (-1 Sg) ; SELECT ("tulla") + V + Prt + Sg3 (-2C Nom) (-2 Sg) ; SELECT ("tulla") + V + Prt + Sg3 (1 Ill_Tra) ; SELECT ("tulla") + V + Prt + Sg3 (1 InfA) ; SELECT ("tulla") + V + Prt + Sg3 (1 Adv) ; SELECT ("tulla") + V + Prt + Sg3 (1 A) (2 N) ; SELECT ("tulla") + V + Prt + Sg3 (*-1 VFIN LINK *1 Conj) ; SELECT ("tulla") + V + Prs + Pl1 ; # TULEMME, RISKY! SELECT ("tulla") + V + Prt + Sg3 (-1 Ela_Tra_Ill_All) ; SELECT ("vaikuttaa") + V + Prs + Pl3 (*-1 CLB? LINK NOT *1 VFIN) (NEGATE 1 Nom OR Pl) ; SELECT ("vaikuttaa") + V + Prs + Sg3 (*-1 CLB? LINK NOT *1 VFIN) (NEGATE 1 Nom OR Sg) ; REMOVE ("voida") + V + Act + Prt - Sg123 (0 Sg123) ; # XXXX #REMOVE ("voida") + Act + Prt + VPl3 (0 Pl123) ; # TP: ?? SELECT Act + Prs + VSg3 (*-1 CLB? LINK NOT 0 VFIN LINK NOT *1 VFIN) (-1C Nom) (-1 Sg + N_Pron_Q) (NEGATE -1 NOUN+InfA) (NEGATE 0 Prt) (*1 CLB? LINK NOT *-1 VFIN) (NEGATE -2 InfA) (NEGATE -3 InfA) ; # (NEGATE -1 VFIN) (NEGATE -2 VFIN) (NEGATE -3 VFIN) (NEGATE -4 VFIN) ; # (NEGATE 1 VFIN) (NEGATE 2 VFIN) (NEGATE 3 VFIN) (NEGATE 4 VFIN) ; # JOKA LUO VARMUUDEN REMOVE ("vastoa") + V ; SELECT ("verrata") + V + InfE (-1 Ill) ; # SIIHEN VERRATEN #REMOVE (V S) ; # INNOSTU+S Der/us ?? # Person agreement # ---------------- SELECT Sg1 (-1C MINÄ) (-1 Nom) ; SELECT Sg1 (-2C MINÄ) (-1 Nom) ; SELECT Sg2 (-1C SINÄ) (-1 Nom) ; SELECT Sg2 (-2C SINÄ) (-1 Nom) ; SELECT Pl1 (-1C ME) (-1 Nom) ; SELECT Pl1 (-2C ME) (-1 Nom) ; SELECT Pl2 (-1C TE) (-1 Nom) ; SELECT Pl2 (-2C TE) (-1 Nom) ; REMOVE Sg1 (*-1C VFIN LINK NOT *1 CLB?) (NEGATE -1 CLB?) (NEGATE 0 Pcle) ; REMOVE Sg2 (*-1C VFIN LINK NOT *1 CLB?) (NEGATE -1 CLB?) (NEGATE 0 Pcle) ; REMOVE Pl1 (*-1C VFIN LINK NOT *1 CLB?) (NEGATE -1 CLB?) (NEGATE 0 Pcle) ; REMOVE Pl2 (*-1C VFIN LINK NOT *1 CLB?) (NEGATE -1 CLB?) (NEGATE 0 Pcle) ; REMOVE Sg1 (*1C VFIN LINK NOT *-1 CLB?) (NEGATE 1 CLB?) (NEGATE 0 Pcle) ; REMOVE Sg2 (*1C VFIN LINK NOT *-1 CLB?) (NEGATE 1 CLB?) (NEGATE 0 Pcle) ; REMOVE Pl1 (*1C VFIN LINK NOT *-1 CLB?) (NEGATE 1 CLB?) (NEGATE 0 Pcle) ; REMOVE Pl2 (*1C VFIN LINK NOT *-1 CLB?) (NEGATE 1 CLB?) (NEGATE 0 Pcle) ; REMOVE V + Sg3 (-1 NEGV) ; # A FINITE VERB Sg3 CANNOT FOLLOW NEGV AT POSITION 1. # goes wrong with "Ettekö te pitää" REMOVE V + Sg3 (-2 NEGV) (NEGATE -1 V OR CLB?) ; REMOVE V + Sg3 (-3 NEGV) (NEGATE -1 V OR CLB?) (NEGATE -2 V OR CLB?) ; REMOVE V + Sg3 (-4 NEGV) (NEGATE -1 V OR CLB?) (NEGATE -2 V OR CLB?) (NEGATE -3 V) (NEGATE -3 CLB?) ; # XXXX REMOVE V + Sg3 (-5 NEGV) (NEGATE -1 V OR CLB?) (NEGATE -2 V OR CLB?) (NEGATE -3 V) (NEGATE -3 CLB?) (NEGATE -4 V OR CLB?) ; # XXXX REMOVE (Neg V) (*-1 CLB? LINK NOT 0 NEGV LINK NOT *1 NEGV) (0 V + Sg3) ; # XXXX REMOVE N (0 VOI) (1 InfA) ; # "kayttojarjestelman voi asentaa..." GESTALT: VOI + Inf REMOVE V (0 InfA23) (NEGATE -1 NOUN+InfA) (-3 CLB?) (-2 Gen) (-1 Nom) ; REMOVE PrfPrc (NEGATE -1 NOUN+InfA) (-3 CLB?) (-2 Gen) (-1 Nom) ; REMOVE PrsPrc (NEGATE -1 NOUN+InfA) (-3 CLB?) (-2 Gen) (-1 Nom) ; # "asennusohjelman ajo kestaa ..." . HEURISTIIKKA (KL). # TIDIGARE HETTE DENNA (@w REMOVE InfV ... REMOVE Prs (*-1C MAINV LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; REMOVE Prt (*-1C MAINV LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; REMOVE Imprt (*-1C MAINV LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; # UP FOR MORPHOLOGY! LEFT SIDE. # commented out Mon Jan 19 16:01:05 CET 2015 -FMT+KM #REMOVE Prs (*1C MAINV LINK NOT *-1 CLB?) (NEGATE 1 CLB? OR VFIN) ; # Kunnallisvaaleissa voivat äänestää ja asettua ehdolle ... REMOVE Prt (*1C MAINV LINK NOT *-1 CLB?) (NEGATE 1 CLB? OR VFIN) ; REMOVE Imprt (*1C MAINV LINK NOT *-1 CLB?) (NEGATE 1 CLB? OR VFIN) ; # UP FOR MORPHOLOGY! RIGHT SIDE. # Barrier for Nom added and Conj for Nom also 19.01.2015 - FMT+KM SELECT VSg3 (NEGATE *-1 VFIN) (NEGATE *1C VFIN) (*-1C NomSg BARRIER CLB) ; # 4) Vie lippu ... # Sg3 verb made Conj 19.01.2015 - FMT+KM SELECT N + Sg IF (0 V) (1C* VSg3 BARRIER CLB) (NEGATE 0 WORD LINK *-1 NNom BARRIER CLB) ; # 1) Todista henkilöllisyytesi vaalivirkailijalle eli näytä passi ... # added '(NEGATE -1* VFIN BARRIER CLB) (NEGATE 1* VFIN BARRIER CLB) ;' - 20.01.2015 - FMT+KM SELECT VSg3 IF (0 N) (*-1 THIRD_PersON_SG_Noun BARRIER CLB) (NEGATE -1* VFIN BARRIER CLB) (NEGATE 1* VFIN BARRIER CLB) ; # added '(NEGATE -1C* VFIN BARRIER CLB) (NEGATE 1C* VFIN BARRIER CLB) ;' - 20.01.2015 - FMT+KM SELECT VPl3 IF (0 N) (*-1 THIRD_PersON_PL_Noun BARRIER CLB) (NEGATE -1* VFIN BARRIER CLB) (NEGATE 1* VFIN BARRIER CLB) ; # Tuli raivosi alueella, jossa... # Problem: Mikko laski luotansa kyyhkysen nähdäksensä. # 'C' removed from VFIN - 20.01.2015 - FMT+KM SELECT VPl3 (NEGATE *-1 VFIN) (NEGATE *1 VFIN) (*-1 Nom LINK 0 Pl) ; # *** PCP IFF PrfPrc + Ins (1 N + Ins) ; IFF PrsPrc + Ins (1 N + Ins) ; SELECT ("tehdä") + PrfPrc + Pass + NomSg (-1 VFIN) (*-2 Gen LINK NOT *1 CLB?) ; SELECT ("tehdä") + PrfPrc + Pass + NomSg (-2 VFIN) (*-3 Gen LINK NOT *1 CLB?) ; REMOVE PrsPrc + Pass + POSS_SUFF ; # LäHETYKSENSä "lähetä" Par-OBJ PrsPrc Pass Pos Sg Tra P-3 POSS_SUFF REMOVE PrfPrc + Pl + Nom (-1C Nom) (NEGATE -1 A) (NEGATE 1 Nom) (NEGATE 1 Pl) ; # "ohjeet näkyvät_=0 ...", "x-sg-nom ja y-sg-nom tulevat" # AFTER N_Q_Pron Pl Nom, PrfPrc = MAINVERB (MORE CHECKS) ; REMOVE PrsPrc + Pass + Pl + Nom (NEGATE 1 Nom) (NEGATE 1 Pl) (NEGATE 1 Num) (NEGATE -1 BOS) ; REMOVE ("olla") + PrsPrc + Pass ; REMOVE ("tulla") + PrsPrc + Pass ; # OLLUT,TULLUT,MääRITELLYT REMOVE PrsPrc + Nom + Pass + Pl (-1 COP) ; #SELECT (PrsPrc Act A Pos Sg Gen) (0 THREE) ; # ?? SELECT REF (-1 Ref-VERB + REF-CORR) (NEGATE 1 A OR Conj OR Gen) (NEGATE 0 YLLATTAA) ; SELECT REF (-2 Ref-VERB + REF-CORR) (NEGATE -1 Par OR CLB?) (NEGATE 1 A OR Conj OR Gen) (NEGATE 0 YLLATTAA) ; # ED. "ammattiin valmistavan kaksivuotisen koulun merkitystä" SELECT REF (-3 Ref-VERB + REF-CORR) (NEGATE -1 Par) (NEGATE -2 CLB?) (NEGATE 1 A OR Conj OR Gen) (NEGATE 0 YLLATTAA) (NEGATE -1 CLB?) ; SELECT REF (-4 Ref-VERB + REF-CORR) (NEGATE -1 Par OR CLB?) (NEGATE 1 A OR Conj OR Gen) (NEGATE 0 YLLATTAA) (NEGATE -2 CLB?) (NEGATE -3 CLB?) ; SELECT REF (-5 Ref-VERB + REF-CORR) (NEGATE -1 Par) (NEGATE -4 CLB?) (NEGATE 1 A OR Conj OR Gen) (NEGATE 0 YLLATTAA) (NEGATE -3 CLB?) (NEGATE -2 CLB?) (NEGATE -1 CLB?) ; SELECT REF (-6 Ref-VERB + REF-CORR) (NEGATE -1 Par) (NEGATE -5 CLB?) (NEGATE 1 A OR Conj OR Gen) (NEGATE 0 YLLATTAA) (NEGATE -4 CLB?) (NEGATE -3 CLB?) (NEGATE -2 CLB?) (NEGATE -1 CLB?) ; REMOVE REF (*-1C CLB?-C LINK NOT *1 Ref-VERB) ; SELECT REF (*-1C REF LINK *1 Conj) (NEGATE 1 A OR Conj OR Gen) ; # Act ADDED AUG. 8, 95# I.E. Pass NOW NOT HANDLED, MUCH WORK NEEDED ON All InsT # (NEGATE 1 A,Gen) ALSO ADDED, CF. RIITTÄVÄN NOPEA, HUIMAAVAN NOPEA SELECT TEMP-Par + POSS_SUFF ; # OSTETTUAAN AUTON SELECT TEMP-Par (-1 Gen) (NEGATE 1 Par) (NEGATE -1 V) ; # OLEVAN PERUSTELTUA REMOVE TEMP-Par (1 Par) (NEGATE -1 Gen) ; REMOVE TEMP-Par (1 Gen) (2 Par) (NEGATE -1 Gen) ; REMOVE TEMP-Par (NEGATE -1 Gen) (1 Comp) ; REMOVE TEMP-Par (-2C Par) (-1 Conj) ; REMOVE TEMP-Par (*-1 OLLA LINK 0 VFIN LINK NOT *1 VFIN) (NEGATE -1 CLB?) ; # *** CC *** SELECT:RadicalEli ("eli") + CC (*0 VFIN BARRIER CC); SELECT ("eli") + CC (-1 ComMA) ; SELECT ("eli") + CC (-1 Nom) (1 Nom) ; SELECT ("eli") + CC (-1 Par) (1 Par) ; SELECT ("eli") + CC (-1 Gen) (1 Gen) ; SELECT ("eli") + CC (-1 Ine) (1 Ine) ; SELECT ("eli") + CC (-1 Ela) (1 Ela) ; SELECT ("eli") + CC (-1 Ill) (1 Ill) ; SELECT ("eli") + CC (-1 Ade) (1 Ade) ; SELECT ("eli") + CC (-1 Abl) (1 Abl) ; SELECT ("eli") + CC (-1 All) (1 All) ; SELECT ("joko") + CC (*1 TAI) ; SELECT ("vaan") + CC (-1 ComMA) ; SELECT ("vaan") + CC (1C VFIN-C-MYOS) ; SELECT Conj IF (-1 BOS OR Punct) ; # TP # added 20.01.2015 - FMT+KM REMOVE CC IF (0 MYOS) (NEGATE -1* VAAN) ; # Onko myös Marilla koira ? REMOVE (NOCAP) ; # DELETES SPURIOUS PropER N READINGS LIKE (ARVO Prop) ; REMOVE (CAP) ; # DELETES SPURIOUS ComMON N READINGS LIKE (ARVO Prop) ; #(@w SELECT (CS "sillä") (-1 ComMA) (NEGATE 1 Ade) ; SELECT ("sillä") + CS (1C Nom) (2C VFIN) ; SELECT ("sillä") + CS (NEGATE 1 CLB?) (2C Nom) (3C VFIN) ; SELECT ("sillä") + CS (1 JOS_KUN_KOSKA_VAIKKA) ; SELECT ("sillä") + CS (2 JOS_KUN_KOSKA_VAIKKA) ; SELECT ("se") + Pron + Sg + Ade (-1 C_Adv) ; SELECT ("se") + Pron + Sg + Ade (NEGATE -1 CLB?) (-2 C_Adv) ; #(@w SELECT (Pron Sg Ade "se") (1C OLLA) (1 VFIN) ; # TULEE VIRHEITä LIIKAA SELECT ("se") + Pron + Sg + Ade (1 CLB?) (NEGATE 1 JOS_KUN_KOSKA_VAIKKA) ; REMOVE ("häkä") + N + Pl ; SELECT NSgGen + POSS_SUFF (-1C PCP) (-1 Gen) (-1 Sg) ; # XXXX #REMOVE InfMa (0 ELAMA_KUOLEMA) ; # XXXX wrong: en pysty elämään SELECT ("vanhempi") + N + Pl + POSS_SUFF ; # XXXX REMOVE ("vanhempi") + N + Tra ; # XXXX SELECT ("voima") + N (*-1 OLLA LINK NOT *1 CLB?) (NEGATE -1 CLB?) ; # XXXX #REMOVE (DV-TTA) (0 Pass) (0 PrfPrc) (NEGATE 0 N) (NEGATE 0 A) ; # XXX AMMUTTAVA - don't have DV-TTA #SELECT (<COERCE!>) ; # #843 SELECT ("vuode") + NSgPar ; # VUODetTA SELECT ("vuode") + NSgGen (1 Po) (NEGATE 1 ASTI) ; # VUOTEEN VIEREssä SELECT ("vuosi") + NSgIll (*1 NEGV) ; SELECT ("vuosi") + NSgIll (*-1 NEGV) ; SELECT ("voi") + Interj (1 HITTO) ; # #848 REMOVE ("voi") + NPlNom ; SELECT InfA (-1C NOUN+InfA) (*1C VFIN LINK NOT *-1 CLB?) ; REMOVE InfA (*-1 CLB? LINK NOT *1 VFIN) (NEGATE *-1 InfA) (*1 CLB? LINK NOT *-1 VFIN) (0 VFIN) (NEGATE *-1 KO) (NEGATE *-1 NOUN+InfA) (NEGATE *-1 InfA-VERB) ; # "yritys täyttää ehdot" (ELIMINOI COORD-MAHD) ; SELECT InfA (*-1 VOI LINK NOT *1 CLB?) (*-1 VOI LINK NOT *1 InfA) ; SELECT ("pitää") + V + Prs + Sg3 (1C InfA) ; SELECT ("pitää") + V + Prs + Sg3 (NEGATE 1 CLB?) (NEGATE 1 VFIN) (2C InfA) ; SELECT V + Prs + Pl3 (-2C N) (-2 Nom) (-2 Pl) (*-1 CLB? LINK NOT *1 VFIN) (*1 CLB? LINK NOT *-1 VFIN) ; # ARVIOT HUOMISESTA MUUTTUVAT SELECT V + Prs + Pass + Neg (*-1C NEGV LINK NOT *1 VFIN) (NEGATE 0 N) (NEGATE 0 Pron) (0 Act) (NEGATE *1 Neg) (NEGATE *-1 Neg) (NEGATE *-1 NIIN) (NEGATE 0 SAAPUA) ; # removed (0 DV-TTA) ; SELECT V + Prs + Act + Neg (*-1C NEGV LINK NOT *1 VFIN) (NEGATE 0 N) (NEGATE 0 Pron) (NEGATE *1 Neg) (NEGATE *-1 Neg) (NEGATE 0 Pass) (NEGATE *-1 NIIN) (*-1C NEGV LINK NOT *1 CLB?) (*-1C NEGV LINK NOT 0 Imprt) ; REMOVE ("parka") + A + Ela ; SELECT ("voida") + V + Prs + KO ; IFF ("puoli") + Num + Pl + Nom (NEGATE -1 Pl) (NEGATE *-1 ASIA) ; REMOVE N + Pl (0 VUO_VOI) ; # NB "voista" ETC # (@w REMOVE REF (*-1 Ref-VERB LINK NOT 0 VFIN LINK NOT *1 Ref-VERB) ; # 11 ERRORS OUT OF 14 IN PK.ANL!! SELECT PrsPrc + Pass + Gen (1C Gen) ; # SELECT (PrfPrc Act Gen "riittää") (1C A_PCP) ; # RIITTÄVÄN KAllIS SELECT Act + PrsPrc + Gen + ("riittää") (1C A_PCP) ; # #(@w SELECT PCP (0 Gen) (0 REF) (1C Conj) (*2 PCP LINK 0 Gen LINK NOT *-1 Ref-VERB) ; # NB: ???XXX SELECT A (0 REF) (1C Conj) (*2 A + Gen BARRIER V OR CLB?)(NEGATE *1 Ref-VERB)(NEGATE *-1 Ref-VERB) ; SELECT ("vanhempi") + NGen (1 N + NOT-Gen-CASE) ; SELECT ("vanhempi") + NGen (1 NSgGen) ; REMOVE ("vanhempi") + N (NEGATE 0 Gen) (1 N + NOT-Gen-CASE) ; SELECT ("puolesta") + Adv (0 POSS_SUFF) (NEGATE -1 Gen) ; # PUOLESTAAN REMOVE ("usea") + A + Sup ; REMOVE A + Ill (0 Adv) (NEGATE 1 Ill) ; # TURHAAN, PITKääN SELECT NSgPar (-1C Par) (-1 A_Q_Pron + Sg) (NEGATE 1 Par) (NEGATE 0 KAUTTA) (*1 CLB? LINK *-1C VFIN) ; REMOVE ("näkyä") + V + Prs + Pass + Neg ; # NäYTä SELECT Imprt + Neg (*-1 Imprt LINK 0 NEGV LINK NOT *1 CLB?) ; # äLä TULE SELECT ("harva") + Qu + Pron (NEGATE *-1 HARVA-SET) (NEGATE *1 HARVA-SET) (NEGATE 0 Ins OR Ine) ; REMOVE ("voi") + Interj (NEGATE *1 HITTO) ; REMOVE ("voida") + V + Imprt (NEGATE *1 HYVIN-1) ; REMOVE ("voi") + N (*-1 CLB? LINK *1C N LINK 0 Nom LINK 0 Sg) ; REMOVE ("jää") + N (*-1 CLB? LINK *1C N LINK 0 Nom LINK 0 Sg) ; REMOVE ("hallita") + PrsPrc + Ela (NEGATE 1 Ela) ; SELECT Refl + POSS_SUFF ; SELECT Adv (0 InfMa) (0 Abe) ; # VäLTTäMäTTä SELECT ("yli") + Adv (1C Num) (NEGATE 2 Gen) ; # not2gen added 9.10.2000, thisrule red cf above SELECT PrsPrc + Pass + Pl + Nom (1C Num) (1 Nom) ; # ARVIOIDUT 400 KERTAA REMOVE PrsPrc + Pass + Pl + Nom (1C Nom) (1 Sg) ; # ESITYSTä VALMISTELLUT RYHMä SELECT ("jälkeen") + Po (-2C Gen) (-1 Num) ; # VUODEN 1980 JÄLKEEN SELECT A + Ins (1 Conj) (2 Ins + A_N) ; REMOVE A + Ins (NEGATE 1 Ins) (NEGATE 2 Ins) ; SELECT ("valta") + NSgGen (*-1 CLB? LINK *1 VAllAN-WDS) ; SELECT ("valta") + NSgGen (*1 CLB? LINK *-1 VAllAN-WDS) ; SELECT Interr + Adv (1C A) ; SELECT ("tarpeeksi") + Adv (NEGATE 1 A) ; SELECT ("niin") + Adv (1 A) (2 N) (*3 KUIN LINK NOT *-1 CLB?) ; SELECT ("niin") + Adv (1 A) (2 KUIN) (*3 CLB? LINK NOT *-1 A) ; SELECT ("niin") + Adv (1 A) (2 A) (3 KUIN) (*4 CLB? LINK NOT *-1 A) ; REMOVE Imprt (-1C INTERR-KO) ; SELECT ("harva") + A (1 HARVA-SET) ; SELECT ("harva") + A (-1 HARVA-SET) ; #FROM HERE ON, ADDED 26.8. SELECT ("mielestä") + Po (0 POSS_SUFF) (-1C Gen) (-1 Pers) ; # # 898 #(@w SELECT (Adv "mielestä") (0 POSS_SUFF) (NEGATE -1 Gen) ; SELECT ("mukaan") + Po (0 POSS_SUFF) (-1C Gen) (-1 Pers) ; # HäNEN MUKAANSA SELECT Po + GenLeft + POSS_SUFF (0 ParLeft + ParRight) (-1C Gen) (NEGATE -1 Par) (NEGATE 1 Par) ; # KAllE OLI HäNEN EDELLääN REMOVE Pr + POSS_SUFF ; # * EDELLääN MEITä REMOVE Po + POSS_SUFF (NEGATE -1 Pers) ; # + GenLeft) ; SELECT ("parhaillaan") + Adv ; REMOVE ("töikseen") + Adv ; SELECT ("jälkeen") + Adv + POSS_SUFF ; REMOVE Prop + POSS_SUFF ; # ANNILTAAN REMOVE PrfPrc (0 POSS_SUFF) ; # ANNILTAAN REMOVE PrsPrc (0 POSS_SUFF) ; # ANNILTAAN SELECT NPar + POSS_SUFF (-1 Par-OBJ) (NEGATE -1 Ela-Advl) ; SELECT NPar + POSS_SUFF (-2 Par-OBJ) (-1 A + Par) (NEGATE -2 Ela-Advl) ; REMOVE NomSg + POSS_SUFF (0 POSS-NomSg) (-1 POSS-DEL-V) ; REMOVE NomSg + POSS_SUFF (0 POSS-NomSg) (-2 POSS-DEL-V) ; REMOVE Pl + Nom + POSS_SUFF (0 POSS-NomPl) (-1 POSS-DEL-V) ; REMOVE Pl + Nom + POSS_SUFF (0 POSS-NomPl) (-2 POSS-DEL-V) ; REMOVE NomSg + POSS_SUFF (-1 PrsPrc_InfMa_InfE_REF_TEMP) (NEGATE -1 Pass) ; REMOVE NomSg + POSS_SUFF (-2 PrsPrc_InfMa_InfE_REF_TEMP) (NEGATE -2 Pass) ; REMOVE NomSg + POSS_SUFF (1 PrsPrc + Act) (NEGATE *-1 VFIN) ; # AIKANSA ELäNYT REMOVE NomSg + POSS_SUFF (2 PrsPrc + Act) (NEGATE 1 VFIN OR CLB?) (NEGATE *-1 VFIN) ; # CF. "kotinsa hienosti hoitaneet naiset..." REMOVE NomSg + POSS_SUFF (1 PrsPrc + Act) (-1 ComMA) ; SELECT GenSg + POSS_SUFF (1 REF) ; # SANOI PUOLUEENSA OLEVAN (1 REF_TEMP) ; SELECT GenSg + POSS_SUFF (-1C A_Num_Pron_Q) (-1 Gen + Sg) (NEGATE -1 Pers) ; # TOISEN MAHDOLLISUUTENSA REMOVE NomSg + POSS_SUFF (-3C VFIN) (NEGATE -2 VFIN OR InfA OR CLB?) (NEGATE -1 ASgNom OR VFIN OR InfA OR CLB?) (*-3 Nom) ; # TEKEE -STI ITSE ARVIONSA SELECT GenSg + POSS_SUFF (-2C Gen) (-2 Sg + POSS_SUFF) (-1C Conj) ; SELECT GenSg + POSS_SUFF (1C Conj) (2C Gen) (2 Sg + POSS_SUFF) ; SELECT Pl + Nom + POSS_SUFF (-2C Nom) (-2 Pl + POSS_SUFF) (-1C Conj) ; SELECT Pl + Nom + POSS_SUFF (1C Conj) (2C Nom) (2 Pl + POSS_SUFF) ; SELECT NomSg + POSS_SUFF (-2C Nom) (-2 Sg + POSS_SUFF) (-1C Conj) ; SELECT NomSg + POSS_SUFF (1C Conj) (2C Nom) (2 Sg + POSS_SUFF) ; REMOVE NNom + POSS_SUFF (1C Nom_Par) (1 N) (NEGATE 1 Prop) ; # ????? POTENTIAllY TANKEROUS # LAKINIPPUNSA OSIA# VIRKANSA MAHDOLLISUUKSIA SELECT NSgNom + POSS_SUFF (*-1 Sg123 LINK 0 Act LINK 0 OLLA LINK NOT *1 PCP OR CLB?) (*-1 OLLA LINK *-1 Nom LINK 0 Sg) (NEGATE *-1 InfA) (NEGATE *1 Nom) (NEGATE 0 V OR TILANNE) ; # SE ON EHKä AINA KOHTALONKYSYMYKSEMME SELECT NSgNom + POSS_SUFF (NEGATE *-1 Nom) (*1 Sg123 LINK 0 Act LINK NOT *-1 Nom OR CLB?) (NEGATE 0 V OR TILANNE) (NEGATE 1 N OR PCP) (-1 Pron + Gen) ; # HäNEN EHDOTUKSENSA 4:N MUODON SUPISTAMISESTA 6:EEN ON ... SELECT NPlNom + POSS_SUFF (*-1 Pl123 LINK 0 Act LINK 0 OLLA LINK NOT *1 PCP OR CLB?) (*-1 OLLA LINK *-1 Nom LINK 0 Pl) (NEGATE *-1 InfA) (NEGATE *1 Nom) (NEGATE 0 V) ; SELECT NPlNom + POSS_SUFF (NEGATE *-1 Nom) (*1 Pl123 LINK 0 Act LINK NOT *-1 Nom OR CLB?) (NEGATE 0 V) (NEGATE 1 N OR PCP) (-1 Pron + Gen) ; # HäNEN EHDOTUKSENSA 4:N MUODON SUPISTAMISESTA 6:EEN OVAT ... SELECT NSgNom + POSS_SUFF (-2 NEGV + Sg123) (1 Neg) ; # EIKä HäNEN KANSANSUOSIONSA OLE REMOVE NSgGen + POSS_SUFF (-1 Gen) (-2 InfA) (-3 VFIN + OLLA) ; # TARKOITUS OLI SAADA HäNEN AUTONSA KUNTOON REMOVE NSgGen + POSS_SUFF (-1 Gen) (-2 InfA) (-4 VFIN + OLLA) (NEGATE -3 VFIN) ; SELECT NPlNom + POSS_SUFF (-2 NEGV + Pl123) (1 Neg) ; REMOVE Imprt + Sg2 (*-1 CS LINK NOT *1 CLB?) ; REMOVE Imprt + Sg2 (-1C Nom) (NEGATE -1 Num) ; # NOTE: Hack for bible lines with numberse at the beginning. # '12 Katso itse, isäni.' # was different from... # 'Katso itse, isäni.' REMOVE Imprt + Sg2 (-2C Nom) (NEGATE -1 CLB?) ; SELECT Po + GenLeft (-1 N + Gen) (NEGATE -1 KERRAN) (NEGATE 1 Gen_Par) (NEGATE 0 N) ; #(@w SELECT Po (-1 Gen) ; # "erota kokoomuksen johdosta"# (CF. "pelottavan lähellä") ; SELECT InfA (-4C InfA-VERB) (NEGATE 0 N OR UUSIA) (NEGATE -1 Par OR VFIN OR CLB?) (NEGATE -2 VFIN OR CLB?) (NEGATE -3 VFIN OR CLB?) ; SELECT InfA (-5C InfA-VERB) (NEGATE 0 N OR UUSIA) (NEGATE -1 Par OR VFIN OR CLB?) (NEGATE -2 VFIN OR CLB?) (NEGATE -3 VFIN OR CLB?) (NEGATE -4 VFIN OR CLB?) ; REMOVE InfA (-1 BOS) ; # KESTää AIKANSA TOIPUA. SELECT V + Act + Sg3 (-1C Conj) (-4C VFIN) (-4 Sg3 + Act) (NEGATE -3 V OR NES OR CLB?) (NEGATE -2 V OR NES OR CLB?) (*1 CLB? LINK NOT *-1 VFIN) (NEGATE -4 NES OR OLLA) ; # X LOPETTAA ASEIllA UHKAILUN JA ALOITTAA SELECT InfA (-1C Conj) (-4C InfA) (NEGATE -3 V OR CLB?) (NEGATE -2 V OR CLB?) ; SELECT InfA (-1C Conj) (-5C InfA) (NEGATE -3 V OR CLB?) (NEGATE -2 V OR CLB?) (NEGATE -4 V OR CLB?) ; SELECT (REF) (-2C Ref-VERB) (-1C Gen) (-1 POSS_SUFF) ; #SANONUT POIKANSA OLEVAN SELECT (REF) (-1C Ref-VERB) (1 Gen + POSS_SUFF) ; #PELäTääN SAANEEN SURMANSA # added 20.01.2015 - FMT+KM REMOVE CC IF (1 EOS OR QMARK) ; # Miksi hän tekee niin? # OMA # --- SELECT ("oma") + A + Par (NEGATE -1 Nom) ; SELECT ("oma") + Sg (-1 Pron + Sg) ; SELECT ("oma") + Pl (-1 Pron + Pl) ; SELECT ("oma") + Gen (NEGATE 1 WORD) (*-1 REALCOPULAS) (0C Nom) ; # ITSE # ---- # TP: for very practical MT reasons. Comment out if want Pron distinctions. SELECT ("<itse>"i) + Adv ; # want these to be really local for now. SELECT ("itse") + Sg (-1 N_P_SG) ; SELECT ("itse") + Pl (-1 N_P_PL) ; # Hän itse tulee jäljessämme. SELECT ("itse") + Nom (-1 N_P_NOM) ; # Mutta hän itse tiesi siitä. SELECT ("itse") + Gen (-1 N_P_GEN) ; SELECT ("itse") + Gen (-1 N_P_GEN) ; SELECT ("itse") + Sg (1 N_P_SG) ; SELECT ("itse") + Pl (1 N_P_PL) ; SELECT ("itse") + Nom (1 N_P_NOM) ; # Mutta itse hän astui siihen... SELECT ("itse") + Nom (-1 Imprt) ; SELECT ("itse") + NomSg (-1 Imprt + Sg2) ; SELECT ("itse") + Pl + Nom (-1 Imprt + Pl2) ; SELECT ("itse") + Sg (-1 VSg1) ; SELECT ("itse") + Sg (-1 VSg2) ; SELECT ("itse") + Sg (-1 VSg3) ; SELECT ("itse") + Pl (-1 VPl1) ; SELECT ("itse") + Pl (-1 VPl2) ; SELECT ("itse") + Pl (-1 VPl3) ; SELECT ("itse") + Sg (1 VSg1) ; SELECT ("itse") + Sg (1 VSg2) ; SELECT ("itse") + Sg (1 VSg3) ; SELECT ("itse") + Pl (1 VPl1) ; SELECT ("itse") + Pl (1 VPl2) ; SELECT ("itse") + Pl (1 VPl3) ; SELECT ("itse") + Gen (1 Po) (NEGATE 1 ALL_PersON) ; # if the sg_plness matches up between the preceding verb and itse, then likely it is nom. SELECT ("itse") + Nom (-1 VSg1) (0C Sg) ; SELECT ("itse") + Nom (-1 VSg2) (0C Sg) ; SELECT ("itse") + Nom (-1 VSg3) (0C Sg) ; SELECT ("itse") + Nom (-1 VPl1) (0C Pl) ; SELECT ("itse") + Nom (-1 VPl2) (0C Pl) ; SELECT ("itse") + Nom (-1 VPl3) (0C Pl) ; SELECT ("itse") + Nom (1 VSg1) (0C Sg) ; SELECT ("itse") + Nom (1 VSg2) (0C Sg) ; SELECT ("itse") + Nom (1 VSg3) (0C Sg) ; SELECT ("itse") + Nom (1 VPl1) (0C Pl) ; SELECT ("itse") + Nom (1 VPl2) (0C Pl) ; SELECT ("itse") + Nom (1 VPl3) (0C Pl) ; SELECT ("itse") + Nom (*-1 Pron + Nom BARRIER CLB) ; SELECT ("itse") + Pl (-1 ALL_PLPRON) ; # Now we spread out a bit if we haven't been successful. SELECT ("itse") + NomSg IF (-1 ConNeg) (-2 VSg1 + Neg) ; SELECT ("itse") + NomSg IF (-1 ConNeg) (-2 VSg2 + Neg) ; SELECT ("itse") + NomSg IF (-1 ConNeg) (-2 VSg3 + Neg) ; SELECT ("itse") + Pl + Nom IF (-1 ConNeg) (-2 VPl1 + Neg) ; SELECT ("itse") + Pl + Nom IF (-1 ConNeg) (-2 VPl2 + Neg) ; SELECT ("itse") + Pl + Nom IF (-1 ConNeg) (-2 VPl3 + Neg) ; SELECT ("puoli") + Num + GenSg (1 Gen) ; # PUOLEN METRIN MITTAIneN SELECT ConNeg (*-1C NEGV LINK NOT *1 VFIN_PrsPrc_Inf) (NEGATE 0 N OR Pron OR Pass) (NEGATE *1 Neg) (NEGATE *-1 Neg OR NIIN) (*-1C NEGV - Imprt LINK NOT *1 CLB?) ; REMOVE Imprt + Sg2 (-1 N_V_A_Pron_Q) ; SELECT ("kaksi") + Num + GenSg (1 Gen) ; SELECT ("kaksi") + Num + GenSg (2 Gen) ; REMOVE ("halva") + N ; REMOVE ("esimerkki") + N + Sg + Tra (NEGATE *-1 OTTAA_KELVATA) (NEGATE -1 Tra) (NEGATE *1 OTTAA_KELVATA) ; # adv "esimerkiksi" REMOVE ("kulku") + N + Pl ; REMOVE ("maksa") + N + Pl ; REMOVE ("vakio") + A ; REMOVE ("loppua") + V + Prs + Act + Sg2 ; REMOVE ("puhella") + V + Prs + Act + Sg1 (NEGATE *-1 MINÄ) (NEGATE *1 ITSE) ; SELECT ("soittaa") + V (1 Num_C_HETI_CLB) ; SELECT ("soittaa") + V (2 Num_C_HETI_CLB) ; SELECT ("soittaa") + V (-1 Num_C_HETI_CLB) ; SELECT ("psykologia") + N (NEGATE -1 Par OR Neg) (NEGATE -2 Neg) ; SELECT ("sosiaali_psykologia") + N (NEGATE -1 Par OR Neg) (NEGATE -2 Neg) ; SELECT ("filosofia") + N (NEGATE -1 Par OR Neg) (NEGATE -2 Neg) ; SELECT ("sosiologia") + N (NEGATE -1 Par OR Neg) (NEGATE -2 Neg) ; SELECT ("psykiatria") + N (NEGATE -1 Par OR Neg) (NEGATE -2 Neg) ; REMOVE ("ohja") + N ; REMOVE ("tutka") + N + Pl (NEGATE -1 Par) ; REMOVE ("verta") + NSgPar (NEGATE -1 Gen) ; REMOVE ("kokki") + N + Pl ; REMOVE ("palkinta") + N + Pl ; REMOVE ("laitto") + N ; SELECT ("tehtävä") + NSgNom (NEGATE -1 OLLA) (NEGATE -2 OLLA) (NEGATE -3 OLLA) (NEGATE -4 OLLA) ; # "tämä on tehtävä" on amb! REMOVE ("saada") + ImprtActSg2 ; # saa REMOVE ("haitata") + ImprtActSg2 ; REMOVE ("pilata") + ImprtActSg2 ; REMOVE ("uhata") + ImprtActSg2 ; REMOVE ("linjata") + ImprtActSg2 ; REMOVE ("kaapata") + ImprtActSg2 ; REMOVE ("mieliä") + ImprtActSg2 ; REMOVE ("kaavata") + ImprtActSg2 ; REMOVE ("huolia") + ImprtActSg2 ; REMOVE ("epäröidä") + ImprtActSg2 ; REMOVE ("entistää") + ImprtActSg2 ; REMOVE ("mallin") + Adv ; #(@w REMOVE (A "normaalinen") ; #(@w REMOVE (A "lehtinen") ; REMOVE A (0 EHTA) ; REMOVE ("kiire") + A (NEGATE 1 N) ; REMOVE ("koti-ikävä") + A ; REMOVE ("arpoa") + V ; REMOVE ("laitostaa") + V ; REMOVE PrfPrc + Act + Pl + Nom + PxPl3 ; # olevansa REMOVE N + Pl (0 MAANANTAI) ; REMOVE N (0 PANNA) ; REMOVE ("sakka") + N ; REMOVE ("koni") + N ; REMOVE ("ehtoo") + N ; SELECT V (0 MAKSAA) (*-1 InfA-VERB LINK NOT *1 CLB?) ; SELECT ("sopiva") + A ; SELECT ("katto") + N ; # stryk "katoilla" DV-ILE REMOVE ("olympialainen") + A ; #added Dec 29, 1996, from xac SELECT ("uusinta") + N (NEGATE 1 Par) (NEGATE 2 Par) ; SELECT ("lohko") + N ; SELECT ("hän") + Pron + Sg + Par + Pers IF (*-1 NEGV LINK NOT *1 CLB?) ; SELECT ("hän") + Pron + Sg + Par + Pers IF (*1 NEGV) ; SELECT V IF (0 N) (0 V) (*1 NSgNom BARRIER CLB) (NEGATE -1 CLB); # Ja tuli ehtoo, ja tuli aamu. # ... Ja tuli tuli? #REMOVE (<MORPH-HEUR!>) (0 <CORRECT!>) ; #REMOVE (<Del!>) ; # aisti_toiminta Pl #(@w REMOVE Prop (NEGATE 0 UP) ; # handled by fn remove-cap etc. in cgp #next ones added April 17, 2000 ----> SELECT ("vuosi") + N (-1 Num-Q-Ill) ; SELECT ("vuosi") + N (1 Num) ; SELECT ("vuosi") + N (-1 VIIME) ; SELECT ("nousta") + Prs + Pl3 (-1 Nom + Pl) (NEGATE *1 VFIN) ; SELECT ("nousta") + Prs + Pl3 (-2 Nom + Pl) (NEGATE *1 VFIN) ; SELECT ("nousta") + Prs + Pl3 (NEGATE *1 Nom) ; SELECT ("nousta") + Prs + Pl3 (0 KO) ; SELECT ("nousta") + REF (*-1 Ref-VERB) ; REMOVE ("kilo") + Prop (NEGATE 0 Ine OR Ill OR Ela) ; REMOVE ("vieri") + NSgEla ; #REMOVE (PropP) (1C N) ; REMOVE V + Prs (1C VFIN) (NEGATE *-1 VFIN) ; #**CLB-C) ; REMOVE ("normaalinen") + A ; SELECT Prop (0 UP) (NEGATE -1 OMS OR QUO) ; REMOVE A (0 DER) ; REMOVE N (0 DER) ; #REMOVE A_N (0 DER) ; REMOVE A + Sup + Nom (0 TALVIneN) ; # kesäisin REMOVE ("suora") + N (1 N) ; # suoratA sijoitukset REMOVE ("hyvin") + Adv (1 Adv) ; # hyvinkinAdv nopeasti, was (1 MAN) ; SELECT Ord + Ela (1 Ela) ; # kahdeksannestaOrd ruudusta REMOVE Ord + POSS_SUFF ; # nousi kolmannekseenN REMOVE A (0 LOC-CASE) (NEGATE 1 N) ; # nousi taivaisiin REMOVE ("yhdessä") + Adv (1C Ine) ; # yhdessäNum yössä SELECT Num (0 PARI_PUOLI) (0 Gen) (1 Gen) (1 Gen-WORD) ; # parin vuoden urakka SELECT Pr + GenRight (0 YLI_AllE) (1 Num) (2 Gen) ; # yli 38 asteen SELECT Pr + GenRight (0 YLI_AllE) (1C Gen) (NEGATE 1 TIME-WORD OR NOUN-OF-MEASURE) (NEGATE -1 Gen) ; SELECT Adv (0 YLI_AllE) (1 TIME-WORD OR NOUN-OF-MEASURE) ; REMOVE Adv (0 YLI_AllE) (NEGATE 1 A_N_Q_Pron_PCP_Num) ; # Conjunctions # ------------ # kuin "<kuin>"i REMOVE ("kui") IF (*-1 ("niin") + CC BARRIER CS); "<kuin>"i REMOVE ("kui") IF (*-1 Neg BARRIER CS); # tai # If such a rule can be found: # SELECT ("tai") + N IF ... ; # The noun "tai" is the logical operator tai REMOVE ("tai") + NSgNom ; SELECT CC IF (-1 BOS) (0C CC OR Prop) ; # Mutta eilen oli erittäin kylmää! # Subjunctions # ------------ SELECT CS IF (0 ETTA); # All other occurrences of "että" are CSs. # Verbs # ------------ # added 19.01.2015 - FMT+KM #GRC REMOVE REALVFIN IF (-1C* REALVFIN BARRIER (*) - Adv) ; # Kuntien tehtävänä on järjestää asukkaille monia palveluja. # Mutta eilen oli erittäin kylmää! # added 19.01.2015 - FMT+KM REMOVE REALVFIN IF (1C* REALVFIN BARRIER CLB LINK NOT 1* REALVFIN) (NEGATE -1* REALVFIN); # Seuraavat kunnallisvaalit ovat sunnuntaina 28.10.2012. # Jaakko ja Mari pitävät kovasti leikkimisestä, he leikkivät aina yhdessä puutarhassa ison talon edessä. # added 20.01.2015 - FMT+KM # see rule around line :2043 #REMOVE AgPrc IF (0 InfMa OR AgPrc) (0C Ine) (NEGATE 1* N + Ine BARRIER CLB) (NEGATE -1* N + Ine BARRIER CLB) ; # Heidän äitinsä on sisällä talossa kissan kanssa, hän katsoo ikkunasta ulos ja näkee Jaakon ja Marin leikkimässä. # added 20.01.2015 - FMT+KM SELECT REALVFIN + Pl3 IF (-1C HE + Nom) ; # Ihmiset eivät koskaan saa vastausta, kun he puhuvat koirille! # added 20.01.2015 - FMT+KM SELECT REALVFIN + Sg3 IF (1C CC LINK 1C REALVFIN + Sg3) ; # Mari nauraa ja sanoo : ... # added 20.01.2015 - FMT+KM SELECT REALVFIN + Pl3 IF (-1C CC LINK -1C* REALVFIN + Pl3 BARRIER CLB) ; # He molemmat ovat iloisia ja menevät taloon ... # Interrogatives # ------------ # rule added - 20.01.2015 - FMT+KM SELECT Interr IF (-1 BOS) (1* QMARK) ; SELECT Interr IF (-1 BOS OR CLB) (1* QMARK BARRIER CLB) ; SELECT Interr IF (-1 Pcle OR Adv LINK -1 BOS) (1* QMARK) ; # Missä Jaakko on ? # rule added - 20.01.2015 - FMT+KM REMOVE Pron + Interr + Ine IF (NEGATE 1* N + Ine) ; REMOVE Pron + Interr + Tra IF (NEGATE 1* N + Tra) ; # Missä Jaakko on ? # Entä mitä Jaakko tekee puun lähellä? # rule added - 20.01.2015 - FMT+KM REMOVE Qst IF (-1C* Interr BARRIER CLB) ; # Missä Jaakko on ? # rule added - 20.01.2015 - FMT+KM REMOVE Rel IF (1 QMARK) ; # Tiedätkö miksi ? SECTION # HEURISTIC-DISAMBIGUATION-CONSTRAINTS "<kautta>" SELECT Pr (1 Gen) ; SELECT InfMa + Ade (0 Ade) ; #(@w REMOVE (A Pos Sg Par) (0 N) ; REMOVE A + All (0 A) ; SELECT ("itse") + Pron ; # **tankerous SELECT ("näin") + Adv (NEGATE -1 Pron + Pers) (*1 V BARRIER CLB) ; SELECT ("näin") + Adv (NEGATE -1 Pron + Pers) (*-1 V BARRIER CLB) ; SELECT ("osaksi") + Adv (NEGATE 1 Par) (NEGATE -1 OTTAA-2) (NEGATE -2 OTTAA-2) ; # bad REMOVE ("huomaan") + Adv ; REMOVE V + Act + Prt (0 Prs) ; # voimme, voitte# pyrimme# **tankerous REMOVE ("häntä") + NNom ; REMOVE ("taus") + NPar ; REMOVE ("tee") + NNom ; REMOVE ("voi") + N ; REMOVE ("valmis") + A + Pl ; REMOVE ("edusta") + NPar (NEGATE -1 Gen) ; REMOVE ("ammua") + V + Pass ; # ammuttiin REMOVE ("aika") + A (NEGATE 1 N) (NEGATE 2 N) ; SELECT ("sitten") + Po (-1 TIME-WORD + Par + Pl) ; #**CLB-C) ; #vuosia sitten, cf. above sitten-rule SELECT ( "sitten") + Po (-1 TIME-WORD + Nom + Sg) ; #**CLB-C) ; #vuosi sitten REMOVE ("sitten") + Po (NEGATE -1 TIME-WORD) (NEGATE -2 TIME-WORD) ; #**CLB-C) ; SELECT ("sitten") + Pr (NEGATE -1 TIME-WORD) (NEGATE -2 TIME-WORD) (1 TIME-WORD + Gen) ; #**CLB-C) ; SELECT ("sitten") + Pr (NEGATE -1 TIME-WORD) (NEGATE -2 TIME-WORD) (1 Gen) (2 TIME-WORD + Gen) ; #**CLB-C) ; REMOVE ("sitten") + Pr (NEGATE 1 Gen) (NEGATE 2 Gen) ; #**CLB-C) ; SELECT ("kerran") + Adv (NEGATE -1 Gen) ; REMOVE ("kerran") + Adv (-1 Gen) ; SELECT ("kovin") + Adv (1C A_Adv) ; REMOVE ("päivätä") + V (NEGATE -1 NEGV) ; # xxxxx too general REMOVE ("kirjata") + V (NEGATE -1 NEGV) ; # xxxxx too general REMOVE ("vanhempi") + NSgNom ; IFF ("vielä") + Adv (1 Comp) ; SELECT Adv (0 PALJON) (NEGATE 1 CMP-ENNEN) (NEGATE 2 JALKEEN) ; #cf.above paljon-rules SELECT ConNeg (-1C NEGV) ; # emme tunne REMOVE Imprt + Sg2 (NEGATE -1 BOS OR Conj)(NEGATE -2 BOS OR Conj) (-1 WORD) ; SELECT Imprt + Sg2 (NEGATE -1 WORD) (*1 NNom BARRIER N) ; # Heitä mulle tuo kirja! SELECT Imprt + Sg2 (0 ConNeg) (NEGATE 0* Neg BARRIER V); #SELECT Imprt + Sg2 (0 ConNeg) (NEGATE 0 WORD LINK *-1 Neg BARRIER V) (NEGATE 0 WORD LINK *1 Neg BARRIER V) ; # Laula minulle! SELECT ("ennen") + Pr (1 KELLO) (2 Par) ; SELECT ("ennen") + Pr (1 KELLO) (2 Num) ; # (2 Num OR <Digit>) ; SELECT ("tulos") + N (*-1 PAATTYA) ; # päättyi tulokseen SELECT ("osinko") + N ; #osinko_osa REMOVE ("osanen") + N (NEGATE 1 Par) ; #osa_osanen (osasta) ; SELECT ("vähän") + Adv (1 Gen) (2 JALKEEN) ; # 4.2.2001 !!->! cf.below REMOVE ("vähän") + Adv (NEGATE 1C CMP-ENNEN) (NEGATE 2 JALKEEN) ; # 4.2.2001 !!->! cf.below # Syntactic Tags # -------------- # Assigning object case difficult across clause boundaries: # Minä en halua, että hän on minua älykkäämpi. Ostan riisiä. # Cannot have @OBJ on minua here. SECTION # Need better clause boundaries # LIST MO-MANge = "goas" "gokko" "gos" "gosa" "govt" "makkár" "man" "manne" "mo" "mot" "mov" "movt" ("nugo" @CVP) (V Qst); # SET MO = MO-MANge - ("man" Foc_ge) ; # Complementizers # --------------- # Simple for now. MAP (@CVP) TARGET ("kun") ; MAP (@CNP) TARGET ("ja") + CC ; # NP-internal things @>N, @N< # ------------------ MAP (@>N) TARGET Pron + Indef + ("kaikki") IF (2 N) (2 $$ALLCASES) (1 Pron + Pers + Gen) ; # Kaikki sinun ystävät ovat täällä. # Täällä on kaikki sinun ystävät. MAP (@>N) TARGET Pron + Indef + ("kaikki") IF (3 N) (3 $$ALLCASES) (2 $$ALLCASES) (2 A) (1 Pron + Pers + Gen) ; # Kaikki sinun vanhat ystävät ovat täällä. # This also checks that cases agree... Can add this to other N attrs MAP (@>N) TARGET Pron + Dem IF (1 N) (1 $$ALLCASES) (0 $$ALLCASES) ; # Hän rakentaa siihen alttarin. # Hän heitti sen siihen taloon. MAP (@>N) TARGET Pron + Gen IF (1 N) ; MAP (@>N) TARGET Pron + Gen IF (2 N) (2 $$ALLCASES) (1 $$ALLCASES); MAP (@>N) TARGET NAttrs IF (*1 N BARRIER NP-BOUNDARY) (NEGATE 0 V + PrfPrc LINK -1 ("olla")) (0 $$ALLCASES LINK *1 $$ALLCASES BARRIER CLB) ; # (*1 N BARRIER CLB) ; # TODO: Need to include conjunctions # Saapuneet ja käsitellyt asiat vuonna 2009. # Iso punainen talo on siellä # Se sama ongelma häiritsi häntä. # Se sama iso punainen talo ... # Fail: Minä@>N tulen kello kolme # Do not mark on Hän ei ole lähettänyt kirjettä. MAP (@>N) TARGET PCPs IF (*1 N BARRIER NP-BOUNDARY) ; MAP (@>N) TARGET NNom IF (1 N) ; # Fail: Ja Herra Talonmies tulee myös. MAP (@>N) TARGET Acro IF (0 Acro LINK *1 Prop BARRIER Prop); # Fail: Ja Mr. J. Tiainen tulee ... MAP (@N<) TARGET Num IF (-1 N) ; MAP (@N<) TARGET ("itse") IF (-1 Pron) (0 $$ALLCASES) (-1 $$ALLCASES) ; MAP (@>N) TARGET N + Gen IF (-1C CS)(1 N); # Mapping subjects and objects # ---------------------------- #Subj to the right of verb, in e-sentences MAP (@<SUBJ) TARGET Par (*-1 COPULAS BARRIER S-BOUNDARY2) (NEGATE 0 WORD LINK *-1 Pr BARRIER Pr) (NEGATE 0 WORD LINK 1 Par) ; # Minulla on rahaa. Kadulla on rahaa. # Subj to the left of verb MAP (@SUBJ>) Target Sg + Nom IF (*1 V + Act + Sg3 ) ; MAP (@SUBJ>) Target Pl + Nom IF (*1 V + Act + Pl3 ) ; # Jukan isä ja äiti menivät kotiin koska heidän oli pakko ostaa auto. # Removed @NEC-SUBJ; two tags = bad MAP (@SUBJ>) TARGET Gen IF (*1 (@NES) BARRIER CLB) ; MAP (@<OBJ) TARGET NNom IF (*-1 Gen) (*-1 NES) ; # Me ostettiin kirja. MAP (@SUBJ>) TARGET ME (0 Pron LINK *1 Pe4 BARRIER CLB) ; MAP (@<OBJ) TARGET NNom IF (*-1 Pass) (*-1 Nom) ; # Needs barriers MAP (@N>) TARGET NSgNom IF (1 Prop) ; # LIST Cases = Ill Ine ; # MAP (@N>) Pron + Dem IF (1 N) (1 $$Cases) (0 $$Cases) ; # MAP (@N>) TARGET Pron + Dem IF (1 N) ; MAP (@N>) TARGET Pron + Dem IF (1 A) (2 N); # Jukka osti kirjan. MAP (@SUBJ>) TARGET Nom (*1 Act BARRIER CLB) ; # MAP (@SUBJ>) TARGET Ade IF (*1 AUXs BARRIER CLB) ; # Kaikki sinun ystävillä@SUBJ-> on kissoja. MAP (@SUBJ>) TARGET N_Pron_Nom IF (NEGATE *-1 VFIN BARRIER CLB) (*1 VFIN BARRIER S-BOUNDARY2 OR @SUBJ>) (NEGATE 0 ("kaikki") LINK *1 NNom BARRIER V) (NEGATE 0 ("kaikki") LINK *1 NNom BARRIER V) ; # Kaikki sinun ystävät@SUBJ> ovat täällä. # Kaikki@SUBJ> on täällä. MAP (@SUBJ>) TARGET N_Pron_Nom IF (*-1 CC BARRIER NPNH LINK -1 Nom) ; MAP (@SUBJ>) TARGET (Rel Nom) IF (*1 VFIN BARRIER S-BOUNDARY2) ; # Subject partitive mapping MAP (@SUBJ>) TARGET NPar IF (NEGATE *-1 Nom BARRIER CLB) (NEGATE *1 Nom BARRIER CLB) (*1 REALCOPULAS BARRIER CLB); # Mutta tällaisia tietosanakirjoja ei suomeksi ole. # Asukkaita Tromssassa on 60 000. MAP (@SUBJ>) TARGET NPar IF (NEGATE *-1 Nom BARRIER CLB) (NEGATE *1 Nom BARRIER CLB) (*-1 REALCOPULAS BARRIER CLB) ; MAP (@SUBJ>) TARGET NPlPar IF (NEGATE -1 WORD) (*1 REALCOPULAS BARRIER V) (*1 Num) ; # MAP (@SUBJ>) TARGET NPar IF (NEGATE *-1 Nom BARRIER CLB) (NEGATE *1 Nom BARRIER CLB) (*-1 REALCOPULAS BARRIER CLB) (NEGATE -1 WORD) (1 REALCOPULAS) (*1 (Num Nom)) ; # Necessitive subjects # -------------------- MAP (@SUBJ>) TARGET NECESSITIVE_SUBJS IF (1 V + Act + Sg3) (1 REAL_AUX) (2 V + Pass + PrsPrc); # Minun on mentävä. MAP (@SUBJ>) TARGET NECESSITIVE_SUBJS IF (1 V + Act + Sg3) (2 NES) ; # Minun on pakko mennä. MAP (@SUBJ>) TARGET NECESSITIVE_SUBJS IF (1 NES) (2 InfA) ; # Minun pitää mennä. # MAP (@SUBJ>) TARGET (Pron Gen) IF (1 V + Act + Sg3) (1 REAL_AUX) (2 InfA) ; # Siellä sataa lunta. MAP (@<SUBJ) TARGET Par (*-1 V-NOT-COPULAS BARRIER S-BOUNDARY2) (NEGATE 0 WORD LINK *-1 Pr BARRIER Pr) (NEGATE 0 WORD LINK 1 Par) (*-1 PART-SUBJ) ; # Ihmisiä tungeksi torilla. MAP (@<OBJ) TARGET Gen IF (*-1 Act BARRIER CLB) (NEGATE 0 WORD LINK 1 Gen) (NEGATE 0 WORD LINK *1 @<OBJ BARRIER CLB) (NEGATE 0 WORD LINK *1 Par BARRIER CLB) (NEGATE 0 WORD LINK *-1 REALCOPULAS BARRIER CLB) (NEGATE 0 WORD LINK 1 Po) (NEGATE 0 WORD LINK *-1 Neg BARRIER V); # Hän käski minun tehdä sen. MAP (@<OBJ) TARGET Gen IF (-1 Act) (NEGATE 0 WORD LINK *1 Po BARRIER Po) (NEGATE 0 WORD LINK *-1 Neg BARRIER V) ; # Luin sen ennen uutisia. # Istuin pöydän alla. -- Do not mark @OBJ in this instance. # No Gen if negative precedes. # Ettei minun äidin ystävä ole tullut. # Lounas syötiin MAP (@OBJ>) TARGET Nom (*1 Pass) (NEGATE 0 NES) ; # Needs barriers # Removed NES. MAP (@<SPRED) TARGET ("pakko") IF (-1 REAL_AUX) ; # pakko - @SPRED # Syötiin lounas MAP (@<OBJ) TARGET Nom IF (*-1 Pass) ; MAP (@<OBJ) TARGET Par IF (*-1 Neg) ; #) (NEGATE 0 WORD LINK *-1 Punct *-2 Neg) ; # Needs barriers # Hän katsoi sitä ja otti sen pois. # MAP (@<OBJ) TARGET Par IF (NEGATE 0 WORD LINK *-1 Pr BARRIER Pr) (NEGATE 0 WORD LINK 1 Par) (*-1 V-NOT-COPULAS BARRIER S-BOUNDARY2) ; MAP (@<OBJ) TARGET OBJ-CASEs IF (NEGATE 0 WORD LINK *-1 Pr BARRIER Pr) (NEGATE 0 WORD LINK 1 Par) (*-1 V-NOT-COPULAS BARRIER S-BOUNDARY2) (NEGATE 0 Pron + Nom); # Need to not map obj in this case, rather subject or @<SPRED. MAP (@<OBJ) TARGET Par IF (*-1 V-NOT-COPULAS BARRIER S-BOUNDARY2) (NEGATE 0 WORD LINK *-1 Pr BARRIER Pr) (NEGATE 0 WORD LINK 1 Par) (NEGATE 0 WORD LINK *-1 PART-SUBJ) ; # Minä aion lukea kirjaa ennen näitä erikoisen tyhmiä uutisia. # ??? Löytyi aika paljon materiaaleja ihan kaduilta. # OBJ marking # Hän huomasi minut. MAP (@<OBJ) TARGET Acc IF (*-1 V BARRIER S-BOUNDARY2) ; # Minut huomattiin. MAP (@OBJ>) TARGET Acc IF (*1 V BARRIER S-BOUNDARY2) ; # Possible object issues fixed by: #1. checking if there is anything that the Gen modifies to the right #2. possibly time expressions that are in Genitive that presupposes that they are TIME-words you can make a set TIME = year, month, august, tuesday etc. #I don't know in which other ways Gen is used in fin # IV and TV tags? # Numeral and numeral complement mappings # --------------------------------------- # Simple for now... MAP (@Num<) TARGET N IF (-1 NUMS) ; MAP (@Num<) TARGET N IF (-1 NUMS) ; # ensimmäinen LIST Ensimmainen = "ensimmäinen" ; REMOVE (N $$ALLCASES) IF (0 Ensimmainen + Num)(1 N + $$ALLCASES); #REMOVE N IF (0 Ensimmainen + Nom)(1 NNom); REMOVE ("ensimmäinen") + N IF (0 Num + $$ALLCASES)(1 $$ALLCASES); REMOVE N IF (0 Ensimmainen + $$ALLCASES)(1 A + $$ALLCASES); # Verb mappings # ------------- # Mostly same as sme rule, but removed (0 ("orrut")); is it worth including copulas here? Finnish doesn't quite have quite the same here MAP (@+FMAINV) TARGET VFIN IF (NEGATE *0 VERB BARRIER S-BOUNDARY2 OR CC) ; #!! * **+FMAINV** to the remaining finite verbs which are not AUX MAP:+FMAINV (@+FMAINV) TARGET VFIN-NOT-AUX (NOT 0 V + OBJ OR V + SUBJ OR V + @ADVL OR (V @>N) OR (V @N<))(NEGATE *0 VFIN-NOT-AUX OR @+FMAINV BARRIER S-BOUNDARY OR COMMA OR LEFT OR RIGHT) (NEGATE *-1 (V @>N) BARRIER NOT-A OR LEFT) (NEGATE *-1 V - @>N BARRIER S-BOUNDARY OR COMMA OR LEFT) (NEGATE *1 VFIN OR PrfPrc - @>N BARRIER S-BOUNDARY OR COMMA OR RIGHT)(NEGATE 0 InfA LINK -1 CC LINK *-1 InfA BARRIER REAL-V LINK -1 AUX) ; #$ Boađe boahtte vahku. #$ Son lea oappáin náitalan. MAP (@+FAUXV) TARGET InfA-VERB IF (*1 InfA BARRIER V) ; MAP (@+FAUXV) TARGET InfMa-VERB IF (*1 InfMa BARRIER V) ; # Äidin vanha ystävä voisi kyllä yrittää. # Äidin vanha ystävä voisi yrittää. # Äidin vanha ystävä voisi kyllä tulla käymään ensi vuonna. # @+FAUXV @-FMAINV @-FMAINV MAP (@+FAUXV) TARGET V IF (0 ("olla") + Ind) (*1 PrfPrc BARRIER V) ; MAP (@+FAUXV) TARGET V IF (0 COP) (1 PrfPrc) ; # Minä olen tullut. MAP (@+FMAINV) TARGET VFIN IF (0 AUX-OR-MAIN) (NEGATE *1 InfV BARRIER S-BOUNDARY2) ; MAP (@+FMAINV) TARGET PCP IF (*-1 REAL_AUX BARRIER CLB) ; MAP (@-FMAINV) TARGET InfV IF (0 InfV) ; MAP (@-FMAINV) TARGET VFIN IF (0 InfV) (NEGATE *1 PrfPrc OR InfMa BARRIER SV-BOUNDARY) ; MAP (@-FAUXV) TARGET ConNeg (-1 Neg) ; MAP (@-FAUXV) TARGET ConNeg (-1 Neg LINK -1 Nom) ; # (*1 NNom BARRIER NPNH LINK *-1 Neg LINK -1 Nom) ; MAP (@+FAUXV) TARGET REAL_AUX IF (NEGATE 0 ConNeg) ; MAP (@+FAUXV) TARGET REAL_AUX ; # Minä en ole (koskaan) soittanut Jukalle. MAP (@-FAUXV) TARGET PrfPrc IF (*-1 REALCOPULAS BARRIER CLB) ; MAP (@-FAUXV) TARGET InfV IF (*-1 REALCOPULAS BARRIER CLB) ; # minun pitää ostaa kirja MAP (@NES) TARGET NES IF (*-1 Gen BARRIER CLB) ; # Predicates # ---------- MAP (@<SPRED) TARGET A IF (*-1 REALCOPULAS BARRIER CLB) ; MAP (@SPRED) TARGET ("pakko") IF (*-1 REALCOPULAS BARRIER CLB) ; # pakko - @SPRED MAP (@<SPRED) TARGET NNom IF (*-1 REALCOPULAS BARRIER CLB) ; # TODO: Spred on wrong thing, obj assigment in weird places: # Onko mikään kansa kuullut Jumalan äänen puhuvan tulen keskeltä. # Adverbials # ---------- # @ADVL - to do SET Adp+Poss = Po + ALL_PersON OR Pr + ALL_PersON OR Adv + ALL_PersON; MAP (@ADVL) TARGET Adv ; MAP (@ADVL) TARGET Adp+Poss ; MAP (@ADVL) TARGET (Po) ; MAP (@PCLE) TARGET Pcle ; MAP (@Num<) TARGET NSgPar (-1 Num) ; # kaksi kirjaa MAP (@Num<) TARGET NSgNom (-1 Num) ; # yksi kirja SELECT Num (1 (@Num<)) ; # make sure number is selected # Habitive mappings # ----------------- # I do not yet have the sanity to implement an animacy hierarchy ;) ; # hän ei saa tietää, että minulla on kaksi kissaa. MAP (@HAB) TARGET Ade IF (0 Pron + Pers) (1 REALCOPULAS) ; # Prepositions and Postpositions # ------------------------------ # So far I'm only tagging the heads of NPs, apparently. E.g., lähellä tätä vanhaa metsää(@P). # Moved up, but here for reference # LIST PoCase = Ela Abl Par Gen ; SET PRON_PO_CASE = NPron + PoCase ; SET PRON_PR_CASE = NPron + PrCase ; # Postposition Complements # ------------------------ MAP (@>P) TARGET PRON_PO_CASE IF (1 Po) ; # Preposition Complements # ----------------------- MAP (@<P) TARGET PRON_PR_CASE IF (*-1 Pr BARRIER Pr) ; MAP (@<P) TARGET PRON_PR_CASE IF (*-1 Pr BARRIER Pr) ; # Ennen näitä erikoisen tyhmiä uutisia. # ^----------------------------^ # Lähellä tätä vanhaa metsää nukkuu suuri hämähäkki. # Tämän vanhan metsän lähellä nukkuu suuri hämähäkki. # Suuri hämähäkki nukkuu tämän vanhan metsän lähellä. # Etc. # Existential Sentences # --------------------- # *** # REMOVE InfA IF (*-1 (@SUBJ>)) ; # Ihmisiä tungeksi kadulla. # This is not solved yet. MAP (@<ADVL @LOC) TARGET LOC-CASE (-1 VSg3 + Act + Ind + Prt) ; MAP (@SUBJ>) TARGET Par (1 VSg3) (*1 @<ADVL) ; # Currently this is tied to a subject and adverbial # Ideally it should be more about nonagreeing subjects # Also @EXIST(ENTIAL) is arguably more semantic than anything. # MAP (@EXIST) TARGET VSg3 (*1 @<ADVL) (*-1 @SUBJ>) ; # It seems like it would be a good idea to mark whether the subject # is not agreeing with the verb for person or number to better target existentials # MAP (@NONAGR) TARGET VSg3 (*-1 N + Pl + @SUBJ>) ; # SYNTACTIC-CONSTRAINTS SECTION #HEURISTIC-SYNTACTIC-CONSTRAINTS #not available at present!!! # (IF INVOKE-H-RULES? (INVOKE-HEUR-SYNT-RULES)) eliminated July 9, 2000 #MORPHOLOGICAL-HEURISTICS #numerals like ("<16\:ta>") ; # "<16\:ta>"%n%t(<Digit> Num Sg Par) ; # 2 0 0 0 5 1 #are dealt with in ftwpost.bta, 23.1.2001, and in cgp, cf "dummy" for base #$# Lines commented out with #$# due to regex compilation problems. Have a look. #$# MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET (Abbr Sg Gen) (1 ("<(.*):in>"r)) (2 ("<(.*):in>"r)) ; #$# MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET (Abbr Sg Gen) (1 ("<(.*)'in>"r)) (2 ("<(.*)'in>"r)) ; #$# MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET (Abbr Sg Par) (1 ("<(.*):tta>"r)) (2 ("<(.*):tta>"r)) ; #$# MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET (Abbr Sg Par) (1 ("<(.*):ta>"r)) (2 ("<(.*):ta>"r)) ; #$# MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET (Abbr Sg Par) (1 ("<(.*):ttä>"r)) (2 ("<(.*):ttä>"r)) ; #$# MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET (Abbr Sg Par) (1 ("<(.*):tä>"r)) (2 ("<(.*):tä>"r)) ; #$# MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET (Abbr Sg Par) (1 ("<(.*):aa>"r)) (2 ("<(.*):aa>"r)) ; #$# MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET (Abbr Sg Par) (1 ("<(.*):a>"r)) (2 ("<(.*):a>"r)) ; #$# MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET (Abbr Sg Par) (1 ("<(.*):ää>"r)) (2 ("<(.*):ää>"r)) ; #$# MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET (Abbr Sg Par) (1 ("<(.*):ä>"r)) (2 ("<(.*):ä>"r)) ; #$# MAP (@ADVL) TARGET (Abbr Sg Ine) (1 ("<(.*):ssa>"r)) (2 ("<(.*):ssa>"r)) ; #$# MAP (@ADVL) TARGET (Abbr Sg Ine) (1 ("<(.*):ssä>"r)) (2 ("<(.*):ssä>"r)) ; #$# MAP (@ADVL) TARGET (Abbr Sg Ela) (1 ("<(.*):sta>"r)) (2 ("<(.*):sta>"r)) ; #$# MAP (@ADVL) TARGET (Abbr Sg Ela) (1 ("<(.*):stä>"r)) (2 ("<(.*):stä>"r)) ; #$# MAP (@ADVL) TARGET (Abbr Sg Ill) (1 ("<(.*):aan>"r)) (2 ("<(.*):aan>"r)) ; #$# MAP (@ADVL) TARGET (Abbr Sg Ill) (1 ("<(.*):ään>"r)) (2 ("<(.*):ään>"r)) ; #$# MAP (@ADVL) TARGET (Abbr Sg Ade) (1 ("<(.*):lla>"r)) (2 ("<(.*):lla>"r)) ; #$# MAP (@ADVL) TARGET (Abbr Sg Ade) (1 ("<(.*):llä>"r)) (2 ("<(.*):llä>"r)) ; #$# MAP (@ADVL) TARGET (Abbr Sg Abl) (1 ("<(.*):lta>"r)) (2 ("<(.*):lta>"r)) ; #$# MAP (@ADVL) TARGET (Abbr Sg Abl) (1 ("<(.*):ltä>"r)) (2 ("<(.*):ltä>"r)) ; #$# MAP (@ADVL) TARGET (Abbr Sg All) (1 ("<(.*):lle>"r)) (2 ("<(.*):lle>"r)) ; #$# ##MAP ((DASH) (@1 (^ ("->"r)) ($ ("->"r)) (@2 NIL) ; # XXXX #$# ##MAP ((Abbr Sg Nom (@SUBJ @OBJ @PC)) (@1 (NEGATE * ("i>"r)) (NEGATE * ("e>"r)) (NEGATE * ("ä>"r)) (NEGATE * ("y>"r)) (NEGATE * ("ö>"r)) (NEGATE * ("u>"r)) (NEGATE * ("o>"r)) (NEGATE * ("a>"r)) (NEGATE * ("I>"r)) (NEGATE * ("E>"r)) (NEGATE * ("[>"r)) (NEGATE * ("Y>"r)) (NEGATE * ("_>"r)) (NEGATE * ("U>"r)) (NEGATE * ("O>"r)) (NEGATE * ("A>"r)) (NEGATE * (":>"r)) (@2 NIL) ; #$# MAP (@SUBJ @OBJ @PC) TARGET (Abbr Sg Nom) (@1 (* (":kin>"r)) (2 ("<(.*)x:kin>"r)) ; #$# MAP (@ADVL) TARGET NSgIne (1 ("<(.*)uksessa>"r)) (2 ("<(.*)uksessa" ("us>"r)) ; #$# MAP (@ADVL) TARGET NSgIne (1 ("<(.*)yksessä>"r)) (2 ("<(.*)yksessä" ("ys>"r)) ; #$# MAP (@ADVL) TARGET NSgIne (1 ("<(.*)ssa>"r)) (2 ("<(.*)ssa>"r)) ; #$# MAP (@ADVL) TARGET NSgIne (1 ("<(.*)ssä>"r)) (2 ("<(.*)ssä>"r)) ; #$# MAP (@ADVL) TARGET NSgEla (1 ("<(.*)sta>"r)) (2 ("<(.*)sta>"r)) ; #$# MAP (@ADVL) TARGET NSgEla (1 ("<(.*)stä>"r)) (2 ("<(.*)stä>"r)) ; #$# MAP (@ADVL) TARGET NSgIne (1 ("<(.*)uksella>"r)) (2 ("<(.*)uksella" ("us>"r)) ; #$# MAP (@ADVL) TARGET NSgIne (1 ("<(.*)yksellä>"r)) (2 ("<(.*)yksellä" ("ys>"r)) ; #$# MAP (@ADVL) TARGET NSgAde (1 ("<(.*)lla>"r)) (2 ("<(.*)lla>"r)) ; #$# MAP (@ADVL) TARGET NSgAde (1 ("<(.*)llä>"r)) (2 ("<(.*)llä>"r)) ; #$# MAP (@ADVL) TARGET NSgIne (1 ("<(.*)ukselta>"r)) (2 ("<(.*)ukselta" ("us>"r)) ; #$# MAP (@ADVL) TARGET NSgIne (1 ("<(.*)ykseltä>"r)) (2 ("<(.*)ykseltä" ("ys>"r)) ; #$# MAP (@ADVL) TARGET NSgAbl (1 ("<(.*)lta>"r)) (2 ("<(.*)lta>"r)) ; #$# MAP (@ADVL) TARGET NSgAbl (1 ("<(.*)ltä>"r)) (2 ("<(.*)ltä>"r)) ; #$# MAP (@ADVL) TARGET NSgIne (1 ("<(.*)ukselle>"r)) (2 ("<(.*)ukselle" ("us>"r)) ; #$# MAP (@ADVL) TARGET NSgAll (1 ("<(.*)lle>"r)) (2 ("<(.*)lle>"r)) ; ### MAP (@SUBJ @OBJ @PC) TARGET NSgNom (1 ("<(.*)man>"r)) (@2 NIL) ; ### MAP (@SUBJ @OBJ @PC) TARGET NSgNom (1 ("<(.*)nen>"r)) (@2 NIL) ; ### MAP (@SUBJ @OBJ @PC) TARGET NSgNom (1 ("<(.*)sson>"r)) (@2 NIL) ; ### MAP (@SUBJ @OBJ @PC) TARGET NSgNom (1 ("<(.*)stein>"r)) (@2 NIL) ; MAP (@ADVL) TARGET APlIll (1 ("<(.*)isiin>"r)) (2 ("<(.*)isiin"r) + ("<(.*)inen>"r)) ; MAP (@ADVL) TARGET NPlIll (1 ("<(.*)uksiin>"r)) (2 ("<(.*)uksiin"r) + ("<(.*)us>"r)) ; MAP (@ADVL) TARGET NPlIll (1 ("<(.*)yksiin>"r)) (2 ("<(.*)yksiin"r) + ("<(.*)ys>"r)) ; MAP (@ADVL) TARGET NPlIll (1 ("<(.*)eihin>"r)) (2 ("<(.*)eihin"r) + ("<(.*)i>"r)) ; MAP (@ADVL) TARGET NPlIll (1 ("<(.*)aihin>"r)) (2 ("<(.*)aihin"r) + ("<(.*)as>"r)) ; MAP (@ADVL) TARGET NPlIll (1 ("<(.*)äihin>"r)) (2 ("<(.*)äihin"r) + ("<(.*)äs>"r)) ; MAP (@ADVL) TARGET NPlIll (1 ("<(.*)oihin>"r)) (2 ("<(.*)oihin>"r)) ; MAP (@ADVL) TARGET NPlIll (1 ("<(.*)uihin>"r)) (2 ("<(.*)uihin>"r)) ; MAP (@ADVL) TARGET NPlIll (1 ("<(.*)yihin>"r)) (2 ("<(.*)yihin>"r)) ; MAP (@ADVL) TARGET NSgIll (1 ("<(.*)ukseen>"r)) (2 ("<(.*)ukseen"r) + ("<(.*)us>"r)) ; MAP (@ADVL) TARGET NSgIll (1 ("<(.*)ykseen>"r)) (2 ("<(.*)ykseen"r) + ("<(.*)ys>"r)) ; MAP (@ADVL) TARGET NSgIll (1 ("<(.*)ihin>"r)) (2 ("<(.*)hin>"r)) ; MAP (@ADVL) TARGET NSgIll (1 ("<(.*)ismiin>"r)) (2 ("<(.*)in>"r)) ; MAP (@ADVL) TARGET NSgIll (1 ("<(.*)ointiin>"r)) (2 ("<(.*)in>"r)) ; MAP (@ADVL) TARGET NSgIll (1 ("<(.*)iittiin>"r)) (2 ("<(.*)in>"r)) ; MAP (@ADVL) TARGET NSgIll (1 ("<(.*)eettiin>"r)) (2 ("<(.*)in>"r)) ; MAP (@ADVL) TARGET NSgIll (1 ("<(.*)aattiin>"r)) (2 ("<(.*)in>"r)) ; MAP (@ADVL) TARGET NSgIll (1 ("<(.*)äättiin>"r)) (2 ("<(.*)in>"r)) ; MAP (@ADVL) TARGET NSgIll (1 ("<(.*)uuttiin>"r)) (2 ("<(.*)in>"r)) ; MAP (@ADVL) TARGET NSgIll (1 ("<(.*)oottiin>"r)) (2 ("<(.*)in>"r)) ; MAP (@ADVL) TARGET NSgIll (1 ("<(.*)iinkin>"r)) (2 ("<(.*)inkin>"r)) ; MAP (@ADVL) TARGET NSgIll (1 ("<(.*)iin>"r)) (2 ("<(.*)iin>"r)) ; MAP (@ADVL) TARGET NSgEss (1 ("<(.*)uksena>"r)) (2 ("<(.*)uksena"r) + ("<(.*)us>"r)) ; MAP (@ADVL) TARGET NSgEss (1 ("<(.*)yksenä>"r)) (2 ("<(.*)yksenä"r) + ("<(.*)ys>"r)) ; MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET NSgPar (1 ("<(.*)usta>"r)) (2 ("<(.*)usta"r) + ("<(.*)us>"r)) ; MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET NSgPar (1 ("<(.*)ystä>"r)) (2 ("<(.*)ystä"r) + ("<(.*)ys>"r)) ; MAP (@SUBJ @OBJ @PC) TARGET NPlNom (1 ("<(.*)kset>"r)) (2 ("<(.*)kset"r) + ("<(.*)s>"r)) ; # GenITIVES MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)ksen>"r)) (2 ("<(.*)ksen"r) + ("<(.*)s>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)sen>"r)) (2 ("<(.*)sen"r) + ("<(.*)nen>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)sonin>"r)) (2 ("<(.*)sonin"r) + ("<(.*)son>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)anin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)enin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)inin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)nkin>"r)) (2 ("<(.*)nkin>"r)) ; # SUDBURYNKIN MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)onin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)oinnin>"r)) (2 ("<(.*)oinnin"r) + ("<(.*)ointi>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)öinnin>"r)) (2 ("<(.*)öinnin"r) + ("<(.*)öinti>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)unin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)ynin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)otin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)elin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)antin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)dtin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)ftin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)esin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)asin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)chtin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)bin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)cin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)din>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)fin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)gin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)min>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)manin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)mannin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)rin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)ttin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)ngin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)vin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)win>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)zin>"r)) (2 ("<(.*)in>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)aatin>"r)) (2 ("<(.*)aatin"r) + ("<(.*)aatti>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)eetin>"r)) (2 ("<(.*)eetin"r) + ("<(.*)eetti>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)iitin>"r)) (2 ("<(.*)iitin"r) + ("<(.*)iitti>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)ootin>"r)) (2 ("<(.*)ootin"r) + ("<(.*)ootti>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)uutin>"r)) (2 ("<(.*)uutin"r) + ("<(.*)uutti>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)yytin>"r)) (2 ("<(.*)yytin"r) + ("<(.*)yytti>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)uuden>"r)) (2 ("<(.*)uuden"r) + ("<(.*)uus>"r)) ; MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)yyden>"r)) (2 ("<(.*)yyden"r) + ("<(.*)yys>"r)) ; # Isn't this too general? # MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)in>"r)) (2 ("<(.*)in>"r)) ; # MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)en>"r)) (2 ("<(.*)n>"r)) ; # MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)än>"r)) (2 ("<(.*)n>"r)) ; # MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)yn>"r)) (2 ("<(.*)n>"r)) ; # MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)ön>"r)) (2 ("<(.*)n>"r)) ; # MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)un>"r)) (2 ("<(.*)n>"r)) ; # MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)on>"r)) (2 ("<(.*)n>"r)) ; # MAP (@SUBJ @NEC-S @NF-S @OBJ @PC @<P @P> @N>) TARGET NSgGen (1 ("<(.*)an>"r)) (2 ("<(.*)n>"r)) ; MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET NSgPar (1 ("<(.*)aa>"r)) (2 ("<(.*)a>"r)) ; MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET NSgPar (1 ("<(.*)ea>"r)) (2 ("<(.*)a>"r)) ; MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET NSgPar (1 ("<(.*)oa>"r)) (2 ("<(.*)a>"r)) ; MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET NSgPar (1 ("<(.*)ua>"r)) (2 ("<(.*)a>"r)) ; MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET NSgPar (1 ("<(.*)ia>"r)) (2 ("<(.*)a>"r)) ; MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET NSgPar (1 ("<(.*)ää>"r)) (2 ("<(.*)ä>"r)) ; MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET NSgPar (1 ("<(.*)eä>"r)) (2 ("<(.*)ä>"r)) ; MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET NSgPar (1 ("<(.*)yä>"r)) (2 ("<(.*)ä>"r)) ; MAP (@SUBJ @OBJ @PC @<P @P> @<PN @N>) TARGET NSgPar (1 ("<(.*)iä>"r)) (2 ("<(.*)ä>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg Ade) (1 ("<(.*):nnella>"r)) (2 ("<(.*):nnella>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg Abl) (1 ("<(.*):nnelta>"r)) (2 ("<(.*):nnelta>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg All) (1 ("<(.*):nnelle>"r)) (2 ("<(.*):nnelle>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg Ine) (1 ("<(.*):nnessa>"r)) (2 ("<(.*):nnessa>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg Ela) (1 ("<(.*):nnesta>"r)) (2 ("<(.*):nnesta>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg Ill) (1 ("<(.*):nteen>"r)) (2 ("<(.*):nteen>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg Ess) (1 ("<(.*):ntena>"r)) (2 ("<(.*):ntena>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg Tra) (1 ("<(.*):nneksi>"r)) (2 ("<(.*):nneksi>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg Tra) (1 ("<(.*)nneksi>"r)) (2 ("<(.*)nneksi>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg Ade) (1 ("<(.*):nnellä>"r)) (2 ("<(.*):nnellä>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg Abl) (1 ("<(.*):nneltä>"r)) (2 ("<(.*):nneltä>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg Ine) (1 ("<(.*):nnessä>"r)) (2 ("<(.*):nnessä>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg Ela) (1 ("<(.*):nnestä>"r)) (2 ("<(.*):nnestä>"r)) ; MAP (@ADVL @N>) TARGET (ORD Num Sg Ess) (1 ("<(.*):ntenä>"r)) (2 ("<(.*):ntenä>"r)) ; # Post-tagging disambiguation SECTION # Commented out, may be useful at a later stage, but at the moment may hide ambiguities - 20.01.2015 -FMT+KM #SELECT @<SPRED ; #!! * **X** maps X everywhere MAP (@X) TARGET WORD ; #SUBSTITUTE (@X) (*) TARGET WORD ; #!! * **REMOVE X** removes X whenever there is any other tag. # Commented out, may be useful at a later stage, but at the moment may hide ambiguities - 19.01.2015 -FMT+KM #REMOVE (@X) ; #GENERIC Sg Nom FOR All OTHER InsTANCES #h# =h ((N Sg Nom (@SUBJ @OBJ @PC @N>)) (@1 NIL) (@2 NI # some first additions from Story (TP++) REMOVE A (0 PrfPrc)(1 Gen_Par)(*-1 OLLA BARRIER S-BOUNDARY) ; REMOVE Ind + Sg3 (0 InfA) (-1 ("miksi"))(NEGATE *-2 NPSg3Nom)(NEGATE *1 NPSg3Nom BARRIER S-BOUNDARY) ; SELECT Ela-Advl + Ind (*1 Ela BARRIER S-BOUNDARY) ; # ("pitää") SELECT ("sääli") + N (-1 >>>) ; SELECT ("<lisää>") + Adv (*-1 V BARRIER S-BOUNDARY) ; SELECT ("<lisää>i") + Adv (*1 V BARRIER S-BOUNDARY) ; REMOVE A + Der_sti (0 Adv) ; SELECT PrfPrc + Sg (*-1 OLLA + Sg3 BARRIER PrfPrc OR S-BOUNDARY) ; SELECT PrfPrc + Pl (*-1 OLLA + Pl3 BARRIER PrfPrc OR S-BOUNDARY) ; SELECT PrfPrc + Sg (-1 CCC LINK *-1 PrfPrc + Sg BARRIER S-BOUNDARY LINK *-1 OLLA + Sg3 BARRIER S-BOUNDARY) ; SELECT PrfPrc + Pl (-1 CCC LINK *-1 PrfPrc + Sg BARRIER S-BOUNDARY LINK *-1 OLLA + Pl3 BARRIER S-BOUNDARY) ; REMOVE V + Ind (0 Imprt + Sg2)(-1 COLON)(NEGATE *1 V BARRIER S-BOUNDARY) ; SELECT V + Ind (NEGATE *1 V BARRIER S-BOUNDARY)(NEGATE *-1 V BARRIER S-BOUNDARY)(NEGATE -1 OMS) ; SELECT V + Ind (NEGATE *1 V BARRIER S-BOUNDARY)(NEGATE *-1 V BARRIER S-BOUNDARY)(NEGATE 1 ("kuin") LINK 1 V) ; REMOVE Pot (0 Ind) (NEGATE *1 V BARRIER S-BOUNDARY + CC)(NEGATE *-1 V BARRIER S-BOUNDARY + CC) ; REMOVE InfA (0 Act + Sg3) (NEGATE *1 V BARRIER S-BOUNDARY)(NEGATE *-1 V BARRIER S-BOUNDARY) ; SELECT Ind + Pl3 (*0 NPPl3Nom BARRIER S-BOUNDARY)(NEGATE *1 V BARRIER S-BOUNDARY)(NEGATE *-1 V BARRIER S-BOUNDARY) ; SELECT Ind + Sg3 (*0 NPSg3Nom BARRIER S-BOUNDARY)(NEGATE *1 V BARRIER S-BOUNDARY)(NEGATE *-1 V BARRIER S-BOUNDARY) ; SELECT Ill (0C Ill OR Par)(*0 Ill-Advl BARRIER S-BOUNDARY OR CCC) ; SELECT Ela (0C Ela OR Par)(*0 Ela-Advl BARRIER S-BOUNDARY OR CCC) ; SELECT LOC-CASE (0C LOC-CASE OR Par)(*0 LOC-V BARRIER S-BOUNDARY OR CCC) ; SELECT Par (0C LOC-CASE OR Par)(*0 Par-OBJ BARRIER S-BOUNDARY OR CCC) ; SELECT NNom (NEGATE 0 V)(NEGATE *1 Nom BARRIER S-BOUNDARY OR V OR CCC OR NNom)(*-1 ("kuten") BARRIER S-BOUNDARY OR V OR CCC OR NNom) ; SELECT Gen_Par (0 (@<OBJ))(NEGATE 0 V) ; SELECT NNom (NEGATE 0 V)(-1 >>>)(NEGATE *1 NNom) ; SELECT NNom + @SUBJ (NEGATE 0 V)(NEGATE *-1 @SUBJ BARRIER S-BOUNDARY)(NEGATE *1 @SUBJ OR NPSg3Nom BARRIER S-BOUNDARY) ; SELECT NPar + @SUBJ (NEGATE 0 V)(NEGATE *-1 @SUBJ BARRIER S-BOUNDARY)(NEGATE *1 @SUBJ OR NPSg3Nom BARRIER S-BOUNDARY) ; SELECT NNom (0C N)(*0 VSg3 OR VPl3 BARRIER S-BOUNDARY OR QUO)(NEGATE *-1 NNom OR NPar BARRIER S-BOUNDARY)(NEGATE *1 NNom OR NPar BARRIER S-BOUNDARY) ; SELECT NPar (0C N)(*0 VSg3 OR VPl3 BARRIER S-BOUNDARY OR QUO)(NEGATE *-1 NNom OR NPar BARRIER S-BOUNDARY)(NEGATE *1 NNom OR NPar BARRIER S-BOUNDARY) ; SELECT NSgNom (*0 VSg3 + Act + Ind BARRIER S-BOUNDARY OR Punct)(NEGATE *-1 NSgNom BARRIER S-BOUNDARY)(NEGATE *1 NSgNom BARRIER S-BOUNDARY) ; SELECT NPlNom (*0 VPl3 + Act + Ind BARRIER S-BOUNDARY OR Punct)(NEGATE *-1 NSgNom OR NPlNom BARRIER S-BOUNDARY)(NEGATE *1 NSgNom OR NPlNom BARRIER S-BOUNDARY) ; REMOVE NPlNom (0 NSgNom)(-1C Sg + Gen)(1C Sg + Nom) ; REMOVE Pron + Rel (NEGATE -1 COMMA) ; SELECT PxSg3 (1 HÄN OR ("jokainen")) ; SELECT PxSg3 (-1 HÄN OR ("jokainen")) ; SELECT PxPl3 (1 HE) ; SELECT PxPl3 (-1 HE) ; SELECT PxSg3 + $$ALLCASES (0C $$ALLCASES)(*1 HÄN OR ("jokainen") BARRIER S-BOUNDARY) ; SELECT PxSg3 + $$ALLCASES (0C $$ALLCASES)(*-1 HÄN OR ("jokainen") BARRIER S-BOUNDARY) ; SELECT PxPl3 + $$ALLCASES (0C $$ALLCASES)(*1 HE BARRIER S-BOUNDARY) ; SELECT PxPl3 + $$ALLCASES (0C $$ALLCASES)(*-1 HE BARRIER S-BOUNDARY) ; #SELECT PxSg3 + $$ALLCASES (0C $$ALLCASES)(*0 N + Sg)(NEGATE *-1 N + Pl OR Num + Pl)(NEGATE *1 N + Pl OR Num + Pl) ; REMOVE PxPl3 + $$ALLCASES (0 PxSg3 + $$ALLCASES)(*0 N + Sg)(NEGATE *-1 THIRD_PersON_PL OR Num + Pl)(NEGATE *1 THIRD_PersON_PL OR Num + Pl) ; REMOVE PxPl2 + $$ALLCASES (0 PxSg2 + $$ALLCASES)(*0 N + Sg)(NEGATE *-1 SECOND_PersON_PL OR Num + Pl)(NEGATE *1 SECOND_PersON_PL OR Num + Pl) ; REMOVE PxPl1 + $$ALLCASES (0 PxSg1 + $$ALLCASES)(*0 N + Sg)(NEGATE *-1 FIRST_PersON_PL OR Num + Pl)(NEGATE *1 FIRST_PersON_PL OR Num + Pl) ; SELECT ("anteeksi") (-1 COMMA OR >>>) (1 COMMA OR ("!")) ; SELECT Prop (1 COLON) ; # + sanoo-like verbs SELECT ("Matti") + Prop (*1 ("mies") BARRIER Prop) ; SELECT ("Matti") + Prop (>*1 HÄN BARRIER Prop) ; SELECT ("Matti") + Prop (>*1 HE) ; SELECT ("Matti") + Prop (>*1C ("Matti") + Prop) ; # generalize to any prop! SELECT ("Matti") + Prop (<*-1C ("Matti") + Prop) ; SELECT ("kello") + CNOUN ; SELECT Num (*-1 ("kello")) ; SELECT ("sinä") ; # XXX remove mystical rule #REMOVE Prop + Sem (0 Prop - Sem) ; #REMOVE Prop (0 N - Prop + $$ALLCASES)(0 Prop + $$ALLCASES) ; REMOVE Pl + POSS_SUFF (0 Sg)(*0 Pron + Pers + SGa BARRIER S-BOUNDARY); AFTER-SECTIONS #UNMAP UNSAFE SYNT ; # at this stage don't need for transl -- no, we change or mind SUBSTITUTE UP (*) UP ; #SUBSTITUTE CLB (*) CLB ; # We do not want to remove CLB #SUBSTITUTE (+ei V Neg Act Sg3) (+ei V Neg Act Sg3 @+FAUXV) ; SUBSTITUTE (Cmpnd @+FAUXV) (Cmpnd) (CS Cmpnd @+FAUXV) ; # ??? # END LIST FOREIGN-STARTERS = "this" "that" "the" "den" "det" "de" "norsk" "norske" ; LIST FOREIGN = <foreign> <guess-foreign> ; LIST OOV = \? ; ADD:known-foreign (<foreign>) TARGET OOV (0 FOREIGN-STARTERS) ; ADD:known-foreign-cont (<guess-foreign>) TARGET OOV (-1C FOREIGN) ; ADD:foreign-oov-left (<guess-foreign>) TARGET OOV (-1 OOV) (-2 OOV) ; ADD:foreign-oov-middle (<guess-foreign>) TARGET OOV (-1 OOV) (1 OOV) ; ADD:foreign-in-quotes (<guess-foreign>) TARGET OOV (-1 QMARK) ; ADD:foreign-in-brackets (<guess-foreign>) TARGET OOV (-1 LEFT) ; REMOVE FOREIGN ; # just in case # careful remove: maybe still will be needed in next stages SUBSTITUTE POSS_SUFF (*) POSS_SUFF (-1 Pers + Gen OR ("oma")) ; SUBSTITUTE Qnt (*) Adv ; SUBSTITUTE Interr (*) Adv ; SUBSTITUTE Dem (*) Adv ; SUBSTITUTE Rel (*) Adv ; SUBSTITUTE Ins (*) Adv ; SUBSTITUTE Ade (*) Adv ; SUBSTITUTE Px3 (*) Adv ; SUBSTITUTE Tempr (*) Adv ; SUBSTITUTE Der_sti (*) Adv ; SUBSTITUTE Foc_han (*) Adv ; SUBSTITUTE Foc_kin (*) Adv ; SUBSTITUTE Foc_kaan (*) Adv ; # END # For ordinary analysis: END of file here # For porting to MT: Comment out the previous line # For MT only (fin->est) # Käänsin englannista viroksi ja päinvastoin (ks->adit) ADDCOHORT ("<kieli>" "kieli" n sg ela) AFTER Kieli + Ela (NEGATE 1 ("kieli")) (NEGATE 2 Kieli + Ela OR ("kieli")) (*0 KieliVk BARRIER CLB OR Punct OR VERB) ; ADDCOHORT ("<kieli>" "kieli" n sg ill) AFTER Kieli + Tra (NEGATE 1 ("kieli")) (NEGATE 2 Kieli + Tra OR ("kieli")) (*0 KieliVk BARRIER CLB OR Punct OR VERB) ; ADDCOHORT ("<kieli>" "kieli" n sg par) AFTER Kieli (NEGATE 1 ("kieli")) (NEGATE 2 Kieli OR ("kieli")) (NEGATE 3 Kieli OR ("kieli"))(*0 KieliV BARRIER CLB OR Punct OR VERB) ; # + Par? ADDCOHORT ("<kieli>" "kieli" n sg ela) AFTER Kieli (NEGATE 1 ("kieli")) (NEGATE 2 Kieli OR ("kieli")) (NEGATE 3 Kieli OR ("kieli"))(*0 KieliVy BARRIER CLB OR Punct OR VERB) ; # + Par? ADDCOHORT ("<kieli>" "kieli" n sg par) AFTER Kieli + Par (NEGATE 1 ("kieli")) (NEGATE 2 Kieli OR ("kieli")) (NEGATE 3 Kieli OR ("kieli"))(*-1 ("kieli") BARRIER VERB LINK *-1 KieliV BARRIER CLB OR Punct) ; ADDCOHORT ("<kieli>" "kieli" n sg gen) AFTER Kieli (NEGATE 1 ("kieli")) (NEGATE 2 Kieli OR ("kieli")) (NEGATE 3 Kieli OR ("kieli"))(*1 KieliN BARRIER CLB OR Punct OR VERB) ; # + Gen? SUBSTITUTE Par Gen Kieli + Par (*1 ("kieli" n) BARRIER CLB OR VERB) ; SUBSTITUTE Tra Gen Kieli + Par (*1 ("kieli" n) BARRIER CLB OR VERB) ; SUBSTITUTE ("toinen") ("yksi") ("toinen") (*1 COMMA OR CC LINK 1 ("toinen")); #SUBSTITUTE ("toinen") + PxPl1 ; # toisiimme, toistensa teineteise SUBSTITUTE Adv ParInterr ("mitä") ; # est mida, seda SUBSTITUTE Adv ParDem ("<sitä>") + Adv (*-1 ("mitä") + Adv BARRIER S-BOUNDARY); # cc SUBSTITUTE Adv ParDem ("<sen>") + Pcle (*-1 ("mitä") + Adv BARRIER S-BOUNDARY); # cc SUBSTITUTE (Adp Po) (Po) (Adp Po) ; SUBSTITUTE ("väliltä" Po) ("välinen" N Sg Abl) ("väliltä" Po) ; # est vaheline, mis käändub SUBSTITUTE ("välistä" Po) ("välinen" N Sg Par) ("välistä" Po) ; # tõlke kääne võib olla erinev SUBSTITUTE A Pron ("millainen") ; # Rel Interr # Disse kommenteres inn når analysen skal brukes i functions.cg3 SUBSTITUTE (A) (A <fin>) WORD ; #RemoveFromApertium SUBSTITUTE (N) (N <fin>) WORD ; #RemoveFromApertium SUBSTITUTE (Adv) (Adv <fin>) WORD ; #RemoveFromApertium SUBSTITUTE (V) (V <fin>) WORD ; #RemoveFromApertium SUBSTITUTE (Num) (Num <fin>) WORD ; #RemoveFromApertium SUBSTITUTE (Interj) (Interj <fin>) WORD ; #RemoveFromApertium SUBSTITUTE (Po) (Po <fin>) WORD ; #RemoveFromApertium SUBSTITUTE (Pr) (Pr <fin>) WORD ; #RemoveFromApertium SUBSTITUTE (Pron) (Pron <fin>) WORD ; #RemoveFromApertium SUBSTITUTE (CC) (CC <fin>) WORD ; #RemoveFromApertium SUBSTITUTE (CS) (CS <fin>) WORD ; #RemoveFromApertium SUBSTITUTE (Pcle) (Pcle <fin>) WORD ; #RemoveFromApertium