Merge pull request #261 from inariksit/estonian

Estonian + Somali
This commit is contained in:
Inari Listenmaa
2019-07-19 09:41:05 +02:00
committed by GitHub
4 changed files with 68 additions and 66 deletions

View File

@@ -9,16 +9,14 @@ concrete ConjunctionEst of Conjunction =
ConjAdv = conjunctDistrSS ; ConjAdv = conjunctDistrSS ;
ConjCN = conjunctDistrTable NForm ;
ConjNP conj ss = conjunctDistrTable NPForm conj ss ** { ConjNP conj ss = conjunctDistrTable NPForm conj ss ** {
a = conjAgr (Ag conj.n P3) ss.a ; -- P3 is the maximum a = conjAgr (Ag conj.n P3) ss.a ; -- P3 is the maximum
isPron = False isPron = False
} ; } ;
-- ConjAP conj ss = conjunctDistrTable2 Bool NForm conj ss ** { ConjAP conj ss = conjunctDistrTableAdj conj ss ;
ConjAP conj ss = conjunctDistrTableAdj conj ss ** {
infl = ss.s2.infl ; ---- was: True, which is of wrong type. AR 1/2/2014
lock_AP = <>
} ;
ConjRS conj ss = conjunctDistrTable Agr conj ss ** { ConjRS conj ss = conjunctDistrTable Agr conj ss ** {
c = ss.c c = ss.c
@@ -30,18 +28,19 @@ concrete ConjunctionEst of Conjunction =
ConsS = consrSS comma ; ConsS = consrSS comma ;
BaseAdv = twoSS ; BaseAdv = twoSS ;
ConsAdv = consrSS comma ; ConsAdv = consrSS comma ;
BaseCN = twoTable NForm ;
ConsCN = consrTable NForm comma ;
BaseNP x y = twoTable NPForm x y ** {a = conjAgr x.a y.a} ; BaseNP x y = twoTable NPForm x y ** {a = conjAgr x.a y.a} ;
ConsNP xs x = consrTable NPForm comma xs x ** {a = conjAgr xs.a x.a} ; ConsNP xs x = consrTable NPForm comma xs x ** {a = conjAgr xs.a x.a} ;
BaseAP x y = twoTableAdj x y ; BaseAP x y = twoTableAdj x y ;
ConsAP xs x = consrTableAdj comma x xs ; ConsAP xs x = consrTableAdj comma x xs ;
-- BaseAP x y = twoTable2 Bool NForm x y ;
-- ConsAP xs x = consrTable2 Bool NForm comma xs x ;
BaseRS x y = twoTable Agr x y ** {c = y.c} ; BaseRS x y = twoTable Agr x y ** {c = y.c} ;
ConsRS xs x = consrTable Agr comma xs x ** {c = xs.c} ; ConsRS xs x = consrTable Agr comma xs x ** {c = xs.c} ;
lincat lincat
[S] = {s1,s2 : Str} ; [S] = {s1,s2 : Str} ;
[Adv] = {s1,s2 : Str} ; [Adv] = {s1,s2 : Str} ;
[CN] = {s1,s2 : NForm => Str} ;
[NP] = {s1,s2 : NPForm => Str ; a : Agr} ; [NP] = {s1,s2 : NPForm => Str ; a : Agr} ;
[AP] = {s1,s2 : {s : Bool => NForm => Str ; infl : Infl }} ; [AP] = {s1,s2 : {s : Bool => NForm => Str ; infl : Infl }} ;
[RS] = {s1,s2 : Agr => Str ; c : NPForm} ; [RS] = {s1,s2 : Agr => Str ; c : NPForm} ;
@@ -51,8 +50,7 @@ concrete ConjunctionEst of Conjunction =
twoTableAdj : (_,_ : AP) -> [AP] = \x,y -> twoTableAdj : (_,_ : AP) -> [AP] = \x,y ->
lin ListAP { lin ListAP {
s1 = x ; s1 = x ;
s2 = y ; s2 = y
lock_ListAP = <>
} ; } ;
consrTableAdj : Str -> [AP] -> {s : Bool => NForm => Str ; infl : Infl} -> [AP] = \c,xs,x -> consrTableAdj : Str -> [AP] -> {s : Bool => NForm => Str ; infl : Infl} -> [AP] = \c,xs,x ->
@@ -74,8 +72,7 @@ concrete ConjunctionEst of Conjunction =
} ; } ;
False => ap1.s ! isMod ! nf ++ c ++ ap2.s ! isMod ! nf --kassid on valmid ja suured False => ap1.s ! isMod ! nf ++ c ++ ap2.s ! isMod ! nf --kassid on valmid ja suured
} ; } ;
infl = Regular ; infl = Regular } ;
lock_AP = <> } ;
s2 = x ; s2 = x ;
lock_ListAP = <> lock_ListAP = <>
} ; } ;
@@ -102,8 +99,7 @@ concrete ConjunctionEst of Conjunction =
} ; } ;
False => or.s1 ++ ap1.s ! isMod ! nf ++ or.s2 ++ ap2.s ! isMod ! nf False => or.s1 ++ ap1.s ! isMod ! nf ++ or.s2 ++ ap2.s ! isMod ! nf
} ; } ;
infl = Regular ; infl = Regular
lock_AP = <>
} ; } ;
} }

View File

@@ -168,7 +168,9 @@ param
param param
Preposition = U | Ku | Ka | La | NoPrep ; Preposition = U | Ku | Ka | La | NoPrep ;
PrepositionPlus = P Preposition | Passive ; -- Hack: RGL only supports V2s as passive, so I can reuse V2's preposition slot for passives as well, and save >200 parameters. (Don't ask.) PrepositionPlus = P Preposition
| Passive ; -- Hack: RGL only supports V2s as passive, so I can reuse V2's preposition slot for passives as well, and save >200 parameters. (Don't ask.)
PrepCombination = Ugu | Uga | Ula | Kaga | Kula | Kala PrepCombination = Ugu | Uga | Ula | Kaga | Kula | Kala
| Single PrepositionPlus ; | Single PrepositionPlus ;
@@ -194,7 +196,7 @@ oper
z => z } ; z => z } ;
pp2prep : PrepositionPlus -> Preposition = \pp -> pp2prep : PrepositionPlus -> Preposition = \pp ->
case pp of {P p => p ; Passive => NoPrep} ; case pp of {P p => p ; _ => NoPrep} ;
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
-- Verbs -- Verbs

View File

@@ -639,6 +639,7 @@ oper
obj2 : {s : Str ; a : AgreementPlus} ; obj2 : {s : Str ; a : AgreementPlus} ;
secObj : Str ; -- if two overt pronoun objects secObj : Str ; -- if two overt pronoun objects
vComp : Str ; -- VV complement vComp : Str ; -- VV complement
refl : Str ; -- reflexive is put here, if the verb has an obj2.
miscAdv : Str ; -- dump for any other kind of adverb, that isn't miscAdv : Str ; -- dump for any other kind of adverb, that isn't
} ; -- in a closed class of particles or made with PrepNP. } ; -- in a closed class of particles or made with PrepNP.
@@ -647,7 +648,7 @@ oper
useV : Verb -> VerbPhrase = \v -> v ** { useV : Verb -> VerbPhrase = \v -> v ** {
comp = \\_ => <[],[]> ; comp = \\_ => <[],[]> ;
pred = NoPred ; pred = NoPred ;
vComp,berri,miscAdv = [] ; vComp,berri,miscAdv,refl = [] ;
c2 = P NoPrep ; c2 = P NoPrep ;
c3 = NoPrep ; c3 = NoPrep ;
obj2 = {s = [] ; a = Unassigned} ; obj2 = {s = [] ; a = Unassigned} ;
@@ -667,13 +668,19 @@ oper
comp = \\agr => let cmp = vps.comp ! agr in comp = \\agr => let cmp = vps.comp ! agr in
{p1 = np.s ++ cmp.p1 ; -- if object is a noun, it will come before verb in the sentence. {p1 = np.s ++ cmp.p1 ; -- if object is a noun, it will come before verb in the sentence.
-- if object is a pronoun, np.s is empty. -- if object is a pronoun, np.s is empty.
p2 = cmp.p2 ++ compl np.a vps} -- object combines with the preposition of the verb. p2 = cmp.p2 ++ vps.refl ++ compl np.a vps} -- object combines with the preposition of the verb.
} ; } ;
compl : AgreementPlus -> VerbPhrase -> Str = \a,vp -> compl : AgreementPlus -> VerbPhrase -> Str = \a,vp ->
let agr = case a of {IsPron x => x ; _ => Pl3} ; let agr = case a of {IsPron x => x ; _ => Pl3} ;
in prepCombTable ! agr ! combine vp.c2 vp.c3 ; in prepCombTable ! agr ! combine vp.c2 vp.c3 ;
insertRefl : VPSlash -> VPSlash = \vps ->
case <vps.c2,vps.c3> of {
<P NoPrep,NoPrep> => vps ** {refl = "is"} ; -- not bound
_ => vps ** {refl = "is" ++ BIND}
} ;
insertComp : VPSlash -> NounPhrase -> VerbPhrase = \vp,np -> insertComp : VPSlash -> NounPhrase -> VerbPhrase = \vp,np ->
let noun : Str = case <np.isPron,np.a> of { let noun : Str = case <np.isPron,np.a> of {
<False,_> => np.s ! Abs ; <False,_> => np.s ! Abs ;

View File

@@ -11,6 +11,9 @@ lin
-- : V2 -> VP ; -- be loved -- : V2 -> VP ; -- be loved
PassV2 = ResSom.passV2 ; PassV2 = ResSom.passV2 ;
-- : VPSlash -> VP ;
ReflVP = ResSom.insertRefl ;
-- : VV -> VP -> VP ; -- : VV -> VP -> VP ;
ComplVV vv vp = useV vv ** { -- check Sayeed p. 169 ComplVV vv vp = useV vv ** { -- check Sayeed p. 169
vComp = infVP vp vComp = infVP vp
@@ -67,14 +70,8 @@ lin
post = vps.post ; post = vps.post ;
iobj = np ** { s = np.s ! Dat } } ; iobj = np ** { s = np.s ! Dat } } ;
--2 Other ways of forming verb phrases
-- Verb phrases can also be constructed reflexively and from
-- copula-preceded complements.
-- : VPSlash -> VP ;
ReflVP vps = ;
-} -}
-- : Comp -> VP ; -- : Comp -> VP ;
UseComp comp = UseCopula ** comp ; UseComp comp = UseCopula ** comp ;