From db4f31047e772391de1cf327fd938bde17e77a85 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 18 Jul 2019 20:49:59 +0300 Subject: [PATCH] (Som) Add reflexives --- src/somali/ParamSom.gf | 6 ++++-- src/somali/ResSom.gf | 13 ++++++++++--- src/somali/VerbSom.gf | 11 ++++------- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/somali/ParamSom.gf b/src/somali/ParamSom.gf index 94ed42b7d..78269ad62 100644 --- a/src/somali/ParamSom.gf +++ b/src/somali/ParamSom.gf @@ -168,7 +168,9 @@ param param 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 | Single PrepositionPlus ; @@ -194,7 +196,7 @@ oper z => z } ; pp2prep : PrepositionPlus -> Preposition = \pp -> - case pp of {P p => p ; Passive => NoPrep} ; + case pp of {P p => p ; _ => NoPrep} ; -------------------------------------------------------------------------------- -- Verbs diff --git a/src/somali/ResSom.gf b/src/somali/ResSom.gf index b983f3119..7d677ccc2 100644 --- a/src/somali/ResSom.gf +++ b/src/somali/ResSom.gf @@ -639,6 +639,7 @@ oper obj2 : {s : Str ; a : AgreementPlus} ; secObj : Str ; -- if two overt pronoun objects 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 } ; -- in a closed class of particles or made with PrepNP. @@ -647,7 +648,7 @@ oper useV : Verb -> VerbPhrase = \v -> v ** { comp = \\_ => <[],[]> ; pred = NoPred ; - vComp,berri,miscAdv = [] ; + vComp,berri,miscAdv,refl = [] ; c2 = P NoPrep ; c3 = NoPrep ; obj2 = {s = [] ; a = Unassigned} ; @@ -667,13 +668,19 @@ oper 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. -- 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 -> let agr = case a of {IsPron x => x ; _ => Pl3} ; in prepCombTable ! agr ! combine vp.c2 vp.c3 ; + insertRefl : VPSlash -> VPSlash = \vps -> + case of { +

=> vps ** {refl = "is"} ; -- not bound + _ => vps ** {refl = "is" ++ BIND} + } ; + insertComp : VPSlash -> NounPhrase -> VerbPhrase = \vp,np -> let noun : Str = case of { => np.s ! Abs ; @@ -760,7 +767,7 @@ oper } where { vp = case vps.c2 of { Passive => complSlash (insertComp vps np) ; - _ => complSlash vps } ; + _ => complSlash vps } ; subj = case vps.c2 of {Passive => impersNP ; _ => np} ; } ; diff --git a/src/somali/VerbSom.gf b/src/somali/VerbSom.gf index 512459a20..1c20a6e48 100644 --- a/src/somali/VerbSom.gf +++ b/src/somali/VerbSom.gf @@ -11,6 +11,9 @@ lin -- : V2 -> VP ; -- be loved PassV2 = ResSom.passV2 ; + -- : VPSlash -> VP ; + ReflVP = ResSom.insertRefl ; + -- : VV -> VP -> VP ; ComplVV vv vp = useV vv ** { -- check Sayeed p. 169 vComp = infVP vp @@ -67,14 +70,8 @@ lin post = vps.post ; 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 ; UseComp comp = UseCopula ** comp ;