mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
Finnish passive Impf and Condit fixed (both in rgl and stemmed)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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 = [] ;
|
||||
|
||||
@@ -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") ;
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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}} ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user