mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
added some esoteric verb forms to Fin (not used in resource API but nice to show): potential, passive imperatives, infinitives 2,4,5. Remains to carry out in stemmed/StemFin.
This commit is contained in:
@@ -719,6 +719,7 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
vforms2V : VForms -> Verb ** {qp : Bool} = \vh ->
|
||||
let
|
||||
tulla = vh ! 0 ;
|
||||
tull = init tulla ;
|
||||
tulen = vh ! 1 ;
|
||||
tulee = vh ! 2 ;
|
||||
tulevat = vh ! 3 ;
|
||||
@@ -730,12 +731,13 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
tullut = vh ! 9 ;
|
||||
tultu = vh ! 10 ;
|
||||
tult = init tultu ;
|
||||
tullun = vh ! 11 ;
|
||||
lienee = vh ! 11 ;
|
||||
tule_ = init tulen ;
|
||||
tuli_ = init tulin ;
|
||||
a = last tulkaa ;
|
||||
tulko = Predef.tk 2 tulkaa + (ifTok Str a "a" "o" "ö") ;
|
||||
tulkoo = tulko + last tulko ;
|
||||
o = last tulko ;
|
||||
tulkoo = tulko + o ;
|
||||
tullee = Predef.tk 2 tullut + "ee" ;
|
||||
tulleen = (nForms2N (dOttanut tullut)).s ;
|
||||
tullu : Str = weakGrade tultu ;
|
||||
@@ -743,10 +745,30 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
tule__ = Predef.tk 3 tulevat ;
|
||||
tulema = tule__ + "m" + a ;
|
||||
tuleva = tule__ + "v" + a ;
|
||||
vat = "v" + a + "t"
|
||||
vat = "v" + a + "t" ;
|
||||
liene = init lienee ;
|
||||
tulta = tult + a ;
|
||||
tulevaP = (noun2adj (nhn (sKukko tuleva (tuleva + "n") (init tuleva + "ia")))).s ;
|
||||
tultavaP = (noun2adj (nhn (sKukko (tulta + "v" + a) (tulta + "v" + a + "n") (tulta + "vi" + a)))).s ;
|
||||
|
||||
in
|
||||
{s = table {
|
||||
Inf Inf1 => tulla ;
|
||||
Inf Inf1Long => tulla + "kse" ;
|
||||
Inf Inf2Iness => tull + "ess" + a ;
|
||||
Inf Inf2Instr => tull + "en" ;
|
||||
Inf Inf2InessPass => tult + a + "ess" + "a" ;
|
||||
Inf Inf2InstrPass => tult + a + "en" ;
|
||||
Inf Inf3Iness => tulema + "ss" + a ;
|
||||
Inf Inf3Elat => tulema + "st" + a ;
|
||||
Inf Inf3Illat => tulema + a + "n" ;
|
||||
Inf Inf3Adess => tulema + "ll" + a ;
|
||||
Inf Inf3Abess => tulema + "tt" + a ;
|
||||
Inf Inf4Nom => tule__ + "minen" ;
|
||||
Inf Inf4Part => tule__ + "mist" + a ;
|
||||
Inf Inf5 => tulema + "isill" + a ;
|
||||
Inf InfPresPart => tuleva + "n" ;
|
||||
Inf InfPresPartAgr => tuleva ;
|
||||
Presn Sg P1 => tule_ + "n" ;
|
||||
Presn Sg P2 => tule_ + "t" ;
|
||||
Presn Sg P3 => tulee ;
|
||||
@@ -765,6 +787,13 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
Condit Pl P1 => tulisi + "mme" ; --# notpresent
|
||||
Condit Pl P2 => tulisi + "tte" ; --# notpresent
|
||||
Condit Pl P3 => tulisi + vat ; --# notpresent
|
||||
Potent Sg P1 => liene + "n" ; --# notpresent
|
||||
Potent Sg P2 => liene + "t" ; --# notpresent
|
||||
Potent Sg P3 => lienee ; --# notpresent
|
||||
Potent Pl P1 => liene + "mme" ; --# notpresent
|
||||
Potent Pl P2 => liene + "tte" ; --# notpresent
|
||||
Potent Pl P3 => liene + vat ; --# notpresent
|
||||
PotentNeg => liene ; --# notpresent
|
||||
Imper Sg => tule_ ;
|
||||
Imper Pl => tulkaa ;
|
||||
ImperP3 Sg => tulkoo + "n" ;
|
||||
@@ -777,17 +806,17 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
PassImpf False => tultu ; --# notpresent
|
||||
PassCondit True => tult + a + "isiin" ; --# notpresent
|
||||
PassCondit False => tult + a + "isi" ; --# notpresent
|
||||
PassPotent True => liene + "t" + a + a + "n" ; --# notpresent
|
||||
PassPotent False => liene + "t" + a ; --# notpresent
|
||||
PassImper True => tult + a + "k" + o + o + "n" ;
|
||||
PassImper False => tult + a + "k" + o ;
|
||||
|
||||
PresPartAct a => tulevaP ! a ;
|
||||
PresPartPass a => tultavaP ! a ;
|
||||
PastPartAct (AN n) => tulleen ! n ;
|
||||
PastPartAct AAdv => tullee + "sti" ;
|
||||
PastPartPass (AN n) => tullun ! n ;
|
||||
PastPartPass AAdv => tullu + "sti" ;
|
||||
Inf Inf3Iness => tulema + "ss" + a ;
|
||||
Inf Inf3Elat => tulema + "st" + a ;
|
||||
Inf Inf3Illat => tulema + a + "n" ;
|
||||
Inf Inf3Adess => tulema + "ll" + a ;
|
||||
Inf Inf3Abess => tulema + "tt" + a ;
|
||||
Inf InfPresPart => tuleva + "n" ;
|
||||
Inf InfPresPartAgr => tuleva
|
||||
PastPartPass AAdv => tullu + "sti"
|
||||
} ;
|
||||
sc = NPCase Nom ;
|
||||
qp = pbool2bool (Predef.eqStr (last tulko) "o") ;
|
||||
|
||||
@@ -103,7 +103,8 @@ param
|
||||
| Presn Number Person
|
||||
| Impf Number Person --# notpresent
|
||||
| Condit Number Person --# notpresent
|
||||
---- | Potent Number Person
|
||||
| Potent Number Person --# notpresent
|
||||
| PotentNeg --# notpresent
|
||||
| Imper Number
|
||||
| ImperP3 Number
|
||||
| ImperP1Pl
|
||||
@@ -111,21 +112,30 @@ param
|
||||
| PassPresn Bool
|
||||
| PassImpf Bool --# notpresent
|
||||
| PassCondit Bool --# notpresent
|
||||
---- | PassPotent Bool
|
||||
| PassPotent Bool --# notpresent
|
||||
| PassImper Bool
|
||||
| PastPartAct AForm
|
||||
| PastPartPass AForm
|
||||
---- | PresPartAct AForm
|
||||
---- | PresPartPass AForm
|
||||
| PresPartAct AForm
|
||||
| PresPartPass AForm
|
||||
;
|
||||
|
||||
InfForm =
|
||||
Inf1 -- puhua
|
||||
| Inf3Iness -- puhumassa
|
||||
| Inf3Elat -- puhumasta
|
||||
| Inf3Illat -- puhumaan
|
||||
| Inf3Adess -- puhumalla
|
||||
| Inf3Abess -- puhumatta
|
||||
| InfPresPart -- puhuvan
|
||||
Inf1 -- puhua
|
||||
| Inf1Long -- puhuakseni
|
||||
| Inf2Iness -- puhuessa
|
||||
| Inf2Instr -- puhuen
|
||||
| Inf2InessPass -- puhuettaessa
|
||||
| Inf2InstrPass -- puhuttaen
|
||||
| Inf3Iness -- puhumassa
|
||||
| Inf3Elat -- puhumasta
|
||||
| Inf3Illat -- puhumaan
|
||||
| Inf3Adess -- puhumalla
|
||||
| Inf3Abess -- puhumatta
|
||||
| Inf4Nom -- puhuminen
|
||||
| Inf4Part -- puhumista
|
||||
| Inf5 -- puhumaisillani
|
||||
| InfPresPart -- puhuvan
|
||||
| InfPresPartAgr -- puhuva(mme)
|
||||
;
|
||||
|
||||
@@ -459,21 +469,77 @@ oper
|
||||
-- auxiliary of predication can be defined.
|
||||
|
||||
verbOlla : Verb =
|
||||
let olla = mkVerb
|
||||
"olla" "on" "olen" "ovat" "olkaa" "ollaan"
|
||||
"oli" "olin" "olisi" "ollut" "oltu" "ollun" ;
|
||||
in {s = table {
|
||||
let
|
||||
ollut = (noun2adj (nhn (sRae "ollut" "olleena"))).s ;
|
||||
oltu = (noun2adj (nhn (sKukko "oltu" "ollun" "oltuja"))).s ;
|
||||
oleva = (noun2adj (nhn (sKukko "oleva" "olevan" "olevia"))).s ;
|
||||
oltava = (noun2adj (nhn (sKukko "oltava" "oltavan" "oltavia"))).s ;
|
||||
in
|
||||
{s = table {
|
||||
Inf Inf1 => "olla" ;
|
||||
Inf Inf1Long => "ollakse" ;
|
||||
Inf Inf2Iness => "ollessa" ;
|
||||
Inf Inf2Instr => "ollen" ;
|
||||
Inf Inf2InessPass => "oltaessa" ;
|
||||
Inf Inf2InstrPass => "oltaen" ;
|
||||
Inf Inf3Iness => "olemassa" ;
|
||||
Inf Inf3Elat => "olemasta" ;
|
||||
Inf Inf3Illat => "olemaan" ;
|
||||
Inf Inf3Adess => "olemalla" ;
|
||||
Inf Inf3Abess => "olematta" ;
|
||||
Inf Inf4Nom => "oleminen" ;
|
||||
Inf Inf4Part => "olemista" ;
|
||||
Inf Inf5 => "olemaisilla" ;
|
||||
Inf InfPresPart => "olevan" ;
|
||||
Inf InfPresPartAgr => "oleva" ;
|
||||
v => olla.s ! v
|
||||
Presn Sg P1 => "olen" ;
|
||||
Presn Sg P2 => "olet" ;
|
||||
Presn Sg P3 => "on" ;
|
||||
Presn Pl P1 => "olemme" ;
|
||||
Presn Pl P2 => "olette" ;
|
||||
Presn Pl P3 => "ovat" ;
|
||||
Impf Sg P1 => "olin" ; --# notpresent
|
||||
Impf Sg P2 => "olit" ; --# notpresent
|
||||
Impf Sg P3 => "oli" ; --# notpresent
|
||||
Impf Pl P1 => "olimme" ; --# notpresent
|
||||
Impf Pl P2 => "olitte" ; --# notpresent
|
||||
Impf Pl P3 => "olivat" ; --# notpresent
|
||||
Condit Sg P1 => "olisin" ; --# notpresent
|
||||
Condit Sg P2 => "olisit" ; --# notpresent
|
||||
Condit Sg P3 => "olisi" ; --# notpresent
|
||||
Condit Pl P1 => "olisimme" ; --# notpresent
|
||||
Condit Pl P2 => "olisitte" ; --# notpresent
|
||||
Condit Pl P3 => "olisivat" ; --# notpresent
|
||||
Potent Sg P1 => "lienen" ; --# notpresent
|
||||
Potent Sg P2 => "lienet" ; --# notpresent
|
||||
Potent Sg P3 => "lienee" ; --# notpresent
|
||||
Potent Pl P1 => "lienemme" ; --# notpresent
|
||||
Potent Pl P2 => "lienette" ; --# notpresent
|
||||
Potent Pl P3 => "lienevät" ; --# notpresent
|
||||
PotentNeg => "liene" ; --# notpresent
|
||||
Imper Sg => "ole" ;
|
||||
Imper Pl => "olkaa" ;
|
||||
ImperP3 Sg => "olkoon" ;
|
||||
ImperP3 Pl => "olkoot" ;
|
||||
ImperP1Pl => "olkaamme" ;
|
||||
ImpNegPl => "olko" ;
|
||||
PassPresn True => "ollaan" ;
|
||||
PassPresn False => "olla" ;
|
||||
PassImpf True => "oltiin" ; --# notpresent
|
||||
PassImpf False => "oltu" ; --# notpresent
|
||||
PassCondit True => "oltaisiin" ; --# notpresent
|
||||
PassCondit False => "oltaisi" ; --# notpresent
|
||||
PassPotent True => "lienetään" ; --# notpresent
|
||||
PassPotent False => "lienetä" ; --# notpresent
|
||||
PassImper True => "oltakoon" ;
|
||||
PassImper False => "oltako" ;
|
||||
PastPartAct n => ollut ! n ;
|
||||
PastPartPass n => oltu ! n ;
|
||||
PresPartAct n => oleva ! n ;
|
||||
PresPartPass n => oltava ! n
|
||||
}
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
--3 Verbs
|
||||
--
|
||||
@@ -485,107 +551,6 @@ oper
|
||||
--- stem has vowel harmony "ä" but the others "a", thus "seisoivat" but "seiskää".
|
||||
|
||||
|
||||
mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb =
|
||||
\tulla,tulee,tulen,tulevat,tulkaa,tullaan,tuli,tulin,tulisi,tullut,tultu,tullun ->
|
||||
v2v (mkVerbH
|
||||
tulla tulee tulen tulevat tulkaa tullaan tuli tulin tulisi tullut tultu tullun
|
||||
) ;
|
||||
|
||||
v2v : VerbH -> Verb = \vh ->
|
||||
let
|
||||
tulla = vh.tulla ;
|
||||
tulee = vh.tulee ;
|
||||
tulen = vh.tulen ;
|
||||
tulevat = vh.tulevat ;
|
||||
tulkaa = vh.tulkaa ;
|
||||
tullaan = vh.tullaan ;
|
||||
tuli = vh.tuli ;
|
||||
tulin = vh.tulin ;
|
||||
tulisi = vh.tulisi ;
|
||||
tullut = vh.tullut ;
|
||||
tultu = vh.tultu ;
|
||||
tultu = vh.tultu ;
|
||||
tult = init tultu ;
|
||||
tullun = vh.tullun ;
|
||||
tuje = init tulen ;
|
||||
tuji = init tulin ;
|
||||
a = Predef.dp 1 tulkaa ;
|
||||
tulko = Predef.tk 2 tulkaa + (ifTok Str a "a" "o" "ö") ;
|
||||
o = last tulko ;
|
||||
tulleena = Predef.tk 2 tullut + ("een" + a) ;
|
||||
tulleen = (noun2adj (nhn (sRae tullut tulleena))).s ;
|
||||
tullun = (noun2adj (nhn (sKukko tultu tullun (tultu + ("j"+a))))).s ;
|
||||
tule_ = Predef.tk 3 tulevat ;
|
||||
tulema = tule_ + "m" + a ;
|
||||
tuleva = tule_ + "v" + a ;
|
||||
---- tulema = tuje + "m" + a ;
|
||||
vat = "v" + a + "t"
|
||||
in
|
||||
{s = table {
|
||||
Inf Inf1 => tulla ;
|
||||
Presn Sg P1 => tuje + "n" ;
|
||||
Presn Sg P2 => tuje + "t" ;
|
||||
Presn Sg P3 => tulee ;
|
||||
Presn Pl P1 => tuje + "mme" ;
|
||||
Presn Pl P2 => tuje + "tte" ;
|
||||
Presn Pl P3 => tulevat ;
|
||||
Impf Sg P1 => tuji + "n" ; --# notpresent
|
||||
Impf Sg P2 => tuji + "t" ; --# notpresent
|
||||
Impf Sg P3 => tuli ; --# notpresent
|
||||
Impf Pl P1 => tuji + "mme" ; --# notpresent
|
||||
Impf Pl P2 => tuji + "tte" ; --# notpresent
|
||||
Impf Pl P3 => tuli + vat ; --# notpresent
|
||||
Condit Sg P1 => tulisi + "n" ; --# notpresent
|
||||
Condit Sg P2 => tulisi + "t" ; --# notpresent
|
||||
Condit Sg P3 => tulisi ; --# notpresent
|
||||
Condit Pl P1 => tulisi + "mme" ; --# notpresent
|
||||
Condit Pl P2 => tulisi + "tte" ; --# notpresent
|
||||
Condit Pl P3 => tulisi + vat ; --# notpresent
|
||||
Imper Sg => tuje ;
|
||||
Imper Pl => tulkaa ;
|
||||
ImperP3 Sg => tulko + o + "n" ;
|
||||
ImperP3 Pl => tulko + o + "t" ;
|
||||
ImperP1Pl => tulkaa + "mme" ;
|
||||
ImpNegPl => tulko ;
|
||||
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 ;
|
||||
Inf Inf3Elat => tulema + "st" + a ;
|
||||
Inf Inf3Illat => tulema + a + "n" ;
|
||||
Inf Inf3Adess => tulema + "ll" + a ;
|
||||
Inf Inf3Abess => tulema + "tt" + a ;
|
||||
Inf InfPresPart => tuleva + "n" ;
|
||||
Inf InfPresPartAgr => tuleva
|
||||
}
|
||||
} ;
|
||||
|
||||
VerbH : Type = {
|
||||
tulla,tulee,tulen,tulevat,tulkaa,tullaan,tuli,tulin,tulisi,tullut,tultu,tullun
|
||||
: Str
|
||||
} ;
|
||||
|
||||
mkVerbH : (_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> VerbH =
|
||||
\tulla,tulee,tulen,tulevat,tulkaa,tullaan,tuli,tulin,tulisi,tullut,tultu,tullun ->
|
||||
{tulla = tulla ;
|
||||
tulee = tulee ;
|
||||
tulen = tulen ;
|
||||
tulevat = tulevat ;
|
||||
tulkaa = tulkaa ;
|
||||
tullaan = tullaan ;
|
||||
tuli = tuli ;
|
||||
tulin = tulin ;
|
||||
tulisi = tulisi ;
|
||||
tullut = tullut ;
|
||||
tultu = tultu ;
|
||||
tullun = tullun
|
||||
} ;
|
||||
|
||||
noun2adj : CommonNoun -> Adj = noun2adjComp True ;
|
||||
|
||||
noun2adjComp : Bool -> CommonNoun -> Adj = \isPos,tuore ->
|
||||
|
||||
@@ -317,7 +317,8 @@ oper
|
||||
Inf Inf3Adess => plus tulema ("ll" + a) ;
|
||||
Inf Inf3Abess => plus tulema ("tt" + a) ;
|
||||
Inf InfPresPart => plus tuleva "n" ;
|
||||
Inf InfPresPartAgr => tuleva
|
||||
Inf InfPresPartAgr => tuleva ;
|
||||
_ => plus "TODO" tulla ----
|
||||
} ;
|
||||
sc = NPCase Nom ;
|
||||
lock_V = <>
|
||||
|
||||
Reference in New Issue
Block a user