add two new parameters in Estonian verb: passive conditional and imperfect. Change bunch of other files to reflect the change.

This commit is contained in:
inari
2014-10-17 14:50:53 +00:00
parent e3c7b1e9fa
commit 54ad302e90
5 changed files with 47 additions and 53 deletions

View File

@@ -58,7 +58,7 @@ concrete ExtraEst of ExtraEstAbs = CatEst **
t.s ++ p.s ++
vps.fin ++ vps.inf ++
vp.s2 ! True ! p.p ! a ++
vp.adv ! p.p ++
vp.adv ++
vp.ext ;
sc = vp.sc ;
} ;
@@ -248,14 +248,6 @@ concrete ExtraEst of ExtraEstAbs = CatEst **
ClPlusWithObj c = c ;
ClPlusWithAdv c = c ;
noPart = {s = []} ;
{-han_Part = mkPart "han" "hän" ;
pa_Part = mkPart "pa" "pä" ;
pas_Part = mkPart "pas" "päs" ;
ko_Part = mkPart "ko" "kö" ;
kos_Part = mkPart "kos" "kös" ;
kohan_Part = mkPart "kohan" "köhän" ;
pahan_Part = mkPart "pahan" "pähän" ;
-}
gi_Part = ss "gi" | ss "ki" ;
}

View File

@@ -63,7 +63,5 @@ abstract ExtraEstAbs = Extra [
ClPlusWithObj : ClPlusObj -> ClPlus ; -- to make non-fronted obj focusable
ClPlusWithAdv : ClPlusAdv -> ClPlus ; -- to make non-fronted adv focusable
noPart, han_Part, pa_Part, pas_Part, ko_Part, kos_Part,
kohan_Part, pahan_Part : Part ;
gi_Part : Part ;
}

View File

@@ -40,7 +40,7 @@ concrete IdiomEst of Idiom = CatEst **
ImpersCl vp = mkClause noSubj (agrP3 Sg) vp ;
GenericCl vp = mkClause noSubj (agrP3 Sg) {
s = \\_ => vp.s ! VIPass ;
s = \\_ => vp.s ! VIPass Pres ;
s2 = vp.s2 ;
adv = vp.adv ;
p = vp.p ;
@@ -65,7 +65,7 @@ concrete IdiomEst of Idiom = CatEst **
-- 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.p ++ vp.ext

View File

@@ -85,10 +85,11 @@ param
| Presn Number Person
| Impf Number Person
| Condit Number Person
| ConditPass --loetagu
| Imper Number
| ImperP3
| ImperP1Pl
| ImpNegPl
| ImperPass
| PassPresn Bool
| PassImpf Bool
| Quotative Voice
@@ -173,15 +174,15 @@ param
VIForm =
VIFin Tense
| VIInf InfForm
| VIPass
| VIPass Tense
| VIImper
;
oper
VP = {
VP : Type = {
s : VIForm => Anteriority => Polarity => Agr => {fin, inf : Str} ;
s2 : Bool => Polarity => Agr => Str ; -- raamat/raamatu/raamatut
adv : Polarity => Str ; -- ainakin/ainakaan --TODO relevant for Est?
adv : Str ;
p : Str ; --uninflecting component in multi-word verbs
ext : Str ;
sc : NPForm ;
@@ -193,23 +194,21 @@ oper
agr = verbAgr agr0 ;
verbs = verb.s ;
part : Str = case vi of {
VIPass => verbs ! (PastPart Pass) ;
VIPass _ => verbs ! (PastPart Pass) ;
_ => verbs ! (PastPart Act)
} ;
eiv : Str = case agr of {
_ => "ei"
} ;
einegole : Str * Str * Str = case <vi,agr.n> of {
<VIFin Pres, _> => <eiv, verbs ! Imper Sg, "ole"> ;
<VIFin Fut, _> => <eiv, verbs ! Imper Sg, "ole"> ;
<VIFin Cond, _> => <eiv, verbs ! Condit Sg P3, "oleks"> ;
<VIFin Past, Sg> => <eiv, part, "olnud"> ;
<VIFin Past, Pl> => <eiv, part, "olnud"> ;
<VIFin Pres, _> => <"ei", verbs ! Imper Sg, "ole"> ;
<VIFin Fut, _> => <"ei", verbs ! Imper Sg, "ole"> ;
<VIFin Cond, _> => <"ei", verbs ! Condit Sg P3, "oleks"> ;
<VIFin Past, _> => <"ei", part, "olnud"> ;
<VIImper, Sg> => <"ära", verbs ! Imper Sg, "ole"> ;
<VIImper, Pl> => <"ärge", verbs ! ImpNegPl, "olge"> ;
<VIPass, _> => <"ei", verbs ! PassPresn False, "ole"> ;
<VIImper, Pl> => <"ärge", verbs ! Imper Pl, "olge"> ;
<VIPass Pres, _> => <"ei", verbs ! PassPresn False, "ole"> ;
<VIPass Fut, _> => <"ei", verbs ! PassPresn False, "ole"> ; --# notpresent
<VIPass Cond, _> => <"ei", verbs ! ConditPass, "oleks"> ; --# notpresent
<VIPass Past, _> => <"ei", verbs ! PassImpf False, "olnud"> ; --# notpresent
<VIInf i, _> => <"ei", verbs ! Inf i, "olla">
} ;
@@ -224,23 +223,27 @@ oper
mkvf : VForm -> {fin, inf : Str} = \p -> case <ant,b> of {
<Simul,Pos> => vf (verbs ! p) [] ;
<Anter,Pos> => vf (olema ! p) part ;
-- <Anter,Neg> => vf ei (ole ++ part) ;
-- <Simul,Neg> => vf ei neg
<Simul,Neg> => vf (ei ++ neg) [] ; --changed grouping from Fin
<Simul,Neg> => vf (ei ++ neg) [] ;
<Anter,Neg> => vf (ei ++ ole) part
}
} ;
passPol = case b of {Pos => True ; Neg => False} ;
in case vi of {
VIFin Past => mkvf (Impf agr.n agr.p) ;
VIFin Cond => mkvf (Condit agr.n agr.p) ;
VIFin Fut => mkvf (Presn agr.n agr.p) ;
VIFin Pres => mkvf (Presn agr.n agr.p) ;
VIImper => mkvf (Imper agr.n) ;
VIPass => mkvf (PassPresn True) ;
VIFin Past => mkvf (Impf agr.n agr.p) ; --# notpresent
VIFin Cond => mkvf (Condit agr.n agr.p) ; --# notpresent
VIFin Fut => mkvf (Presn agr.n agr.p) ; --# notpresent
VIFin Pres => mkvf (Presn agr.n agr.p) ;
VIImper => mkvf (Imper agr.n) ;
VIPass Pres => mkvf (PassPresn passPol) ;
VIPass Past => mkvf (PassImpf passPol) ; --# notpresent
VIPass Cond => mkvf (ConditPass) ; --# notpresent
VIPass Fut => mkvf (PassPresn passPol) ; --# notpresent
VIInf i => mkvf (Inf i)
} ;
s2 = \\_,_,_ => [] ;
adv = \\_ => [] ;
adv = [] ;
ext = [] ; --relative clause
p = verb.p ; --particle verbs
sc = verb.sc
@@ -264,12 +267,12 @@ oper
sc = vp.sc ;
} ;
insertAdv : (Polarity => Str) -> VP -> VP = \adv,vp -> {
insertAdv : Str -> VP -> VP = \adv,vp -> {
s = vp.s ;
s2 = vp.s2 ;
p = vp.p ;
ext = vp.ext ;
adv = \\b => vp.adv ! b ++ adv ! b ;
adv = vp.adv ++ adv ;
sc = vp.sc ;
} ;
@@ -334,7 +337,7 @@ oper
inf = verb.inf ;
compl = vp.s2 ! agrfin.p2 ! b ! agr ;
p = vp.p ;
adv = vp.adv ! b ;
adv = vp.adv ;
ext = vp.ext ;
}
} ;
@@ -390,7 +393,7 @@ oper
} ;
verb = vp.s ! VIInf vi ! Simul ! Pos ! agr ; -- no "ei"
compl = vp.s2 ! fin ! pol ! agr ; -- but compl. case propagated
adv = vp.adv ! pol
adv = vp.adv
in
-- inverted word order; e.g.
--sinust kunagi aru saada tahtnud rel. clause
@@ -506,11 +509,12 @@ oper
Condit Pl P1 => tule_ + "ksime" ; --# notpresent
Condit Pl P2 => tule_ + "ksite" ; --# notpresent
Condit Pl P3 => tule_ + "ksid" ; --# notpresent
Imper Sg => tule_ ; -- tule
Imper Pl => tulge ; -- tulge
ConditPass => tuld_ + "aks" ; --# notpresent
Imper Sg => tule_ ; -- tule / ära tule
Imper Pl => tulge ; -- tulge / ärge tulge
ImperP3 => tulgu ; -- tulgu (ta/nad)
ImperP1Pl => tulge + "m" ; -- tulgem
ImpNegPl => tulge ; -- ärge tulge
ImperPass => tuld_ + "agu" ; --tuldagu
PassPresn True => tullakse ;
PassPresn False => tuld_ + "a" ; --da or ta
PassImpf True => tuld_ + "i" ; --di or ti

View File

@@ -73,9 +73,9 @@ concrete VerbEst of Verb = CatEst ** open Prelude, ResEst in {
infVP v.sc b a vp v.vi)
(predV v) ** {c2 = vp.c2} ;
AdvVP vp adv = insertAdv (\\_ => adv.s) vp ;
AdvVP vp adv = insertAdv adv.s vp ;
AdVVP adv vp = insertAdv (\\_ => adv.s) vp ;
AdVVP adv vp = insertAdv adv.s vp ;
ReflVP v = insertObjPre (\\fin,b,agr => appCompl fin b v.c2 (reflPron agr)) v ;
@@ -87,9 +87,9 @@ concrete VerbEst of Verb = CatEst ** open Prelude, ResEst in {
_ => v.c2.c --rääkisin koerale -> koerale räägitakse
}
in {
s = \\_ => vp.s ! VIPass ;
s = \\_ => vp.s ! VIPass Pres ;
s2 = \\_,_,_ => [] ;
adv = \\_ => [] ;
adv = [] ;
p = vp.p ;
ext = vp.ext ;
sc = subjCase -- koer valitakse ; koerale räägitakse