Finnish passive Impf and Condit fixed (both in rgl and stemmed)

This commit is contained in:
aarne
2013-03-30 20:44:28 +00:00
parent 73e0a8e5c6
commit 07d12bdffc
9 changed files with 76 additions and 32 deletions

View File

@@ -38,7 +38,10 @@ concrete IdiomFin of Idiom = CatFin **
ImpersCl vp = mkClause noSubj (agrP3 Sg) vp ;
GenericCl vp = mkClause noSubj (agrP3 Sg) {
s = \\_ => vp.s ! VIPass ;
s = \\vif,ant,pol,agr => case vif of {
VIFin t => vp.s ! VIPass t ! ant ! pol ! agr ;
_ => vp.s ! vif ! ant ! pol ! agr
} ;
s2 = vp.s2 ;
adv = vp.adv ;
ext = vp.ext ;
@@ -64,7 +67,7 @@ concrete IdiomFin of Idiom = CatFin **
-- The imperative is not available in a $VP$.
ImpPl1 vp =
let vps = vp.s ! VIPass ! Simul ! Pos ! Ag Pl P1
let vps = vp.s ! VIPass Pres ! Simul ! Pos ! Ag Pl P1
in
{s = vps.fin ++ vps.inf ++
vp.s2 ! True ! Pos ! Ag Pl P1 ++ vp.ext

View File

@@ -706,6 +706,7 @@ resource MorphoFin = ResFin ** open Prelude in {
tulisi = vh ! 8 ;
tullut = vh ! 9 ;
tultu = vh ! 10 ;
tult = init tultu ;
tullun = vh ! 11 ;
tule_ = init tulen ;
tuli_ = init tulin ;
@@ -745,8 +746,12 @@ resource MorphoFin = ResFin ** open Prelude in {
ImperP3 Pl => tulkoo + "t" ;
ImperP1Pl => tulkaa + "mme" ;
ImpNegPl => tulko ;
Pass True => tullaan ;
Pass False => Predef.tk 2 tullaan ;
PassPresn True => tullaan ;
PassPresn False => Predef.tk 2 tullaan ;
PassImpf True => tult + "iin" ; --# notpresent
PassImpf False => tultu ; --# notpresent
PassCondit True => tult + a + "isiin" ; --# notpresent
PassCondit False => tult + a + "isi" ; --# notpresent
PastPartAct (AN n) => tulleen ! n ;
PastPartAct AAdv => tullee + "sti" ;
PastPartPass (AN n) => tullun ! n ;

View File

@@ -98,7 +98,10 @@ concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, Prelude in {
DetQuant quant num = {
s1 = \\c => quant.s1 ! num.n ! c ++ num.s ! Sg ! c ;
sp = \\c => quant.sp ! num.n ! c ++ num.s ! Sg ! c ;
sp = \\c => case num.isNum of {
True => quant.s1 ! num.n ! c ++ num.s ! Sg ! c ; -- 0 kolme with Indef
False => quant.sp ! num.n ! c ++ num.s ! Sg ! c -- yksi 0
} ;
s2 = quant.s2 ;
n = num.n ;
isNum = num.isNum ; -- case num.n of {Sg => False ; _ => True} ;

View File

@@ -101,13 +101,19 @@ param
| Presn Number Person
| Impf Number Person --# notpresent
| Condit Number Person --# notpresent
---- | Potent Number Person
| Imper Number
| ImperP3 Number
| ImperP1Pl
| ImpNegPl
| Pass Bool
| PassPresn Bool
| PassImpf Bool --# notpresent
| PassCondit Bool --# notpresent
---- | PassPotent Bool
| PastPartAct AForm
| PastPartPass AForm
---- | PresPartAct AForm
---- | PresPartPass AForm
;
InfForm =
@@ -183,7 +189,7 @@ param
VIForm =
VIFin Tense
| VIInf InfForm
| VIPass
| VIPass Tense
| VIImper
;
@@ -205,8 +211,8 @@ oper
agr = verbAgr agr0 ;
verbs = verb.s ;
part : Str = case vi of {
VIPass => verbs ! PastPartPass (AN (NCase agr.n Nom)) ;
_ => verbs ! PastPartAct (AN (NCase agr.n Nom))
VIPass _ => verbs ! PastPartPass (AN (NCase agr.n Nom)) ;
_ => verbs ! PastPartAct (AN (NCase agr.n Nom))
} ;
eiv : Str = case agr of {
@@ -219,14 +225,17 @@ oper
} ;
einegole : Str * Str * Str = case <vi,agr.n> of {
<VIFin Pres,_> => <eiv, verbs ! Imper Sg, "ole"> ;
<VIFin Fut,_> => <eiv, verbs ! Imper Sg, "ole"> ; --# notpresent
<VIFin Pres, _> => <eiv, verbs ! Imper Sg, "ole"> ;
<VIFin Fut, _> => <eiv, verbs ! Imper Sg, "ole"> ; --# notpresent
<VIFin Cond, _> => <eiv, verbs ! Condit Sg P3, "olisi"> ; --# notpresent
<VIFin Past, Sg> => <eiv, part, "ollut"> ; --# notpresent
<VIFin Past, Pl> => <eiv, part, "olleet"> ; --# notpresent
<VIImper, Sg> => <"älä", verbs ! Imper Sg, "ole"> ;
<VIImper, Pl> => <"älkää", verbs ! ImpNegPl, "olko"> ;
<VIPass, _> => <"ei", verbs ! Pass False, "ole"> ;
<VIPass Pres, _> => <"ei", verbs ! PassPresn False, "ole"> ;
<VIPass Fut, _> => <"ei", verbs ! PassPresn False, "ole"> ; --# notpresent
<VIPass Cond, _> => <"ei", verbs ! PassCondit False, "olisi"> ; --# notpresent
<VIPass Past, _> => <"ei", verbs ! PassImpf False, "ollut"> ; --# notpresent
<VIInf i, _> => <"ei", verbs ! Inf i, "olla"> ----
} ;
@@ -234,7 +243,12 @@ oper
neg : Str = einegole.p2 ;
ole : Str = einegole.p3 ;
olla : VForm => Str = verbOlla.s ;
olla : VForm => Str = table {
PassPresn True => verbOlla.s ! Presn Sg P3 ;
PassImpf True => verbOlla.s ! Impf Sg P3 ; --# notpresent
PassCondit True => verbOlla.s ! Condit Sg P3 ; --# notpresent
vf => verbOlla.s ! vf
} ;
vf : Str -> Str -> {fin, inf : Str} = \x,y ->
{fin = x ; inf = y} ;
@@ -252,7 +266,10 @@ oper
VIFin Fut => mkvf (Presn agr.n agr.p) ; --# notpresent
VIFin Pres => mkvf (Presn agr.n agr.p) ;
VIImper => mkvf (Imper agr.n) ;
VIPass => mkvf (Pass passPol) ;
VIPass Past => mkvf (PassImpf passPol) ; --# notpresent
VIPass Cond => mkvf (PassCondit passPol) ; --# notpresent
VIPass Fut => mkvf (PassPresn passPol) ; --# notpresent
VIPass Pres => mkvf (PassPresn passPol) ;
VIInf i => mkvf (Inf i)
} ;
@@ -477,6 +494,7 @@ oper
tullut = vh.tullut ;
tultu = vh.tultu ;
tultu = vh.tultu ;
tult = init tultu ;
tullun = vh.tullun ;
tuje = init tulen ;
tuji = init tulin ;
@@ -516,8 +534,12 @@ oper
ImperP3 Pl => tulko + o + "t" ;
ImperP1Pl => tulkaa + "mme" ;
ImpNegPl => tulko ;
Pass True => tullaan ;
Pass False => Predef.tk 2 tullaan ;
PassPresn True => tullaan ;
PassPresn False => Predef.tk 2 tullaan ;
PassImpf True => tult + "iin" ; --# notpresent
PassImpf False => tultu ; --# notpresent
PassCondit True => tult + a + "isiin" ; --# notpresent
PassCondit False => tult + a + "isi" ; --# notpresent
PastPartAct n => tulleen ! n ;
PastPartPass n => tullun ! n ;
Inf Inf3Iness => tulema + "ss" + a ;

View File

@@ -86,7 +86,10 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
ReflVP v = insertObjPre False (\\fin,b,agr => appCompl fin b v.c2 (reflPron agr)) v ;
PassV2 v = let vp = predV v in {
s = \\_ => vp.s ! VIPass ;
s = \\vif,ant,pol,agr => case vif of {
VIFin t => vp.s ! VIPass t ! ant ! pol ! agr ;
_ => vp.s ! vif ! ant ! pol ! agr
} ;
s2 = \\_,_,_ => [] ;
adv = \\_ => [] ;
ext = [] ;

View File

@@ -40104,7 +40104,7 @@ proteolytic_A = mkWA (compoundA "pro" (k38 "teolyyttinen")) ;
proteome_N = mkWN "proteomi" ;
proteomics_N = mkWN (compoundN "proteo" (k9A "miikka")) ;
proterozoic_A = mkWA (compoundA "pro" (k38 "terotsooinen")) ;
protest_N = mkWN (k39 "vastustus") ;
protest_N = mkN "protesti" ; --MANC
protest_V = mkWV (k53A "esittää") "vastalause" ;
protest_V2 = mkWV2 (k53A "esittää") "vastalause" ;
protestant_A = mkWA (k38 "protestanttinen") ;
@@ -41730,7 +41730,7 @@ recombinant_N = mkWN (compoundN "rekombi" (k5A "naatti")) ;
recombination_N = mkWN "rekombinaatio" ;
recommend_V2 = mkWV2 (k52 "puhua") "puolestaan" ;
recommend_VS = mkWVS (k52 "puhua") "puolestaan" ;
recommendation_N = mkWN (k33 "avain") ;
recommendation_N = mkN "suositus" ; --MANC
recommit_V2 = mkWV2 (k53A "palauttaa") "valiokuntaan" ;
recompense_N = mkWN (k3 "palkkio") ;
recompense_V2 = mkWV2 (k62 "kompensoida") ;
@@ -55530,7 +55530,7 @@ valent_A = mkWA "valenssi-" ;
valentine_N = mkWN (compoundN "ystävänpäivä" (k5A "kortti")) ;
valerian_N = mkWN (k26 "virmajuuri") ;
valet_N = mkWN (k12 "palvelija") ;
valet_V2 = mkWV2 (k67 "palvella") ;
valet_V2 = mkWV2 (k67 "palvella") partitive ; --MANC
valetudinarian_A = mkWA (k38 "sairaalloinen") ;
valetudinarian_N = mkWN (k2 "henkilö") "sairaalloinen" ;
--PLURNOUN --POSTPONE valgus_N = mkWN (compoundN "uloskäänty" (k99 "nyt")) ;
@@ -55548,14 +55548,14 @@ valsartan_N = mkWN "Diovan" ;
valuable_A = mkWA (k41A "arvokas") ;
valuable_N = mkWN (compoundN "arvo" (k48 "esine")) ;
valuation_N = mkWN (k39 "luokitus") ;
value_N = mkWN (k6 "valööri") ;
value_N = mkN "arvo" ; --MANC
value_V = mkWV (k62 "arvioida") ;
value_V2 = mkWV2 (k62 "arvioida") ;
value_V2 = mkV2 "arvostaa" ; --MANC
valueless_A = mkWA (k34A "arvoton") ;
valuelessness_N = mkWN (k40 "arvottomuus") ;
valuer_N = mkWN (k12 "arvioitsija") ;
--PLURNOUN values_N = mkWN "arvot" ;
valve_N = mkWN (k41A "puolikas") "kuoren" ;
valve_N = mkN "venttiili" ; --MANC
valved_A = mkWA (k38 "läpällinen") ;
valvotomy_N = mkWN (compoundN "laajennus" (k39 "leikkaus")) "läppäaukon" ;
valvular_A = mkWA (k38 "läpällinen") ;

View File

@@ -59,8 +59,8 @@ lin
oper
passVPSlash : VPSlash -> ResFin.VP = \vp -> lin VP {
s = \\vif,ant,pol,agr => case vif of {
VIInf _ => vp.s ! vif ! ant ! pol ! agr ;
_ => vp.s ! VIPass ! ant ! pol ! agr
VIFin t => vp.s ! VIPass t ! ant ! pol ! agr ;
_ => vp.s ! vif ! ant ! pol ! agr
} ;
s2 = vp.s2 ;
adv = vp.adv ;

View File

@@ -150,7 +150,7 @@ oper
7 => (vf ! 7) ; -- tuli
8 => (vf ! 8) ; -- tulisi
9 => Predef.tk 2 (vf ! 9) ; -- tull(ut)
10 => (vf ! 10) ; -- tultu
10 => Predef.tk 1 (vf ! 10) ; -- tult(u)
11 => weakGrade (vf ! 10) ; -- tullu(n)
12 => Predef.tk 1 (vf ! 11) -- tulle(e)
} ;
@@ -172,7 +172,7 @@ oper
tuli = vh ! 7 ;
tulisi = vh ! 8 ;
tull_ = vh ! 9 ; -- tull(ut)
tultu = vh ! 10 ;
tult_ = vh ! 10 ;
tullu__ = vh ! 11 ; -- tullu(n)
tulle_ = vh ! 12 ; -- tulle(e)
@@ -187,6 +187,7 @@ oper
tullu_ = plus tull_ u ;
tullut = plus tullu_ "t" ;
tullun = plus tullu_ "n" ;
tultu = plus tult_ u ;
tullutN : Noun = snoun2noun b {
s = table SNForm [
@@ -250,8 +251,12 @@ oper
ImperP3 Pl => plus tulkoo "t" ;
ImperP1Pl => plus tulk_ (a + a + "mme") ;
ImpNegPl => tulko ;
Pass True => plus tulla_ (a + "n") ;
Pass False => tulla_ ;
PassPresn True => plus tulla_ (a + "n") ;
PassPresn False => tulla_ ;
PassImpf True => plus tult_ ("iin") ; --# notpresent
PassImpf False => tultu ; --# notpresent
PassCondit True => plus tult_ (a + "isiin") ; --# notpresent
PassCondit False => plus tult_ (a + "isi") ; --# notpresent
PastPartAct (AN n) => tullutN.s ! n ;
PastPartAct AAdv => plus tullee "sti" ;
PastPartPass (AN n) => tultuN.s ! n ;

View File

@@ -87,14 +87,17 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin, StemFin in {
ReflVP v = insertObjPre False (\\fin,b,agr => appCompl fin b v.c2 (reflPron agr)) v ;
PassV2 v = let vp = predSV v in {
s = \\_ => vp.s ! VIPass ;
s = \\vif,ant,pol,agr => case vif of {
VIFin t => vp.s ! VIPass t ! ant ! pol ! agr ;
_ => vp.s ! vif ! ant ! pol ! agr
} ;
s2 = \\_,_,_ => [] ;
adv = \\_ => [] ;
ext = [] ;
qp = vp.qp ;
isNeg = False ;
sc = v.c2.c -- minut valitaan ; minua rakastetaan ; minulle kuiskataan
} ; ---- talon valitaan: should be marked like inf.
sc = v.c2.c ; -- minut valitaan ; minua rakastetaan ; minulle kuiskataan
} ; ---- talon valitaan: should be marked like inf.
----b UseVS, UseVQ = \v -> v ** {c2 = {s = [] ; c = NPAcc ; isPre = True}} ;