diff --git a/src/somali/ParamSom.gf b/src/somali/ParamSom.gf index ab99bcdce..786bd8d69 100644 --- a/src/somali/ParamSom.gf +++ b/src/somali/ParamSom.gf @@ -271,9 +271,13 @@ param | VPres Aspect VAgr Polarity | VNegPast Aspect | VPast Aspect VAgr + | VImp Number Polarity -- | VRelShort -- "som är/har/…" TODO is this used in other verbs? - | VRel Gender -- Reduced present general in relative clauses - | VImp Number Polarity ; + | VRel Gender ; {- Sayeed p. 95-96 + ch 8 + Reduced present general in relative clauses; as absolutive + 1/2SG/3SG M/2PL/3PL sugá (VRel Masc) + 3 SG F sugtá (VRel Fem) + 1PL sugná -- not yet in the grammar -} VAgr = Sg1_Sg3Masc diff --git a/src/somali/RelativeSom.gf b/src/somali/RelativeSom.gf index 625b7bec1..7b648ce8b 100644 --- a/src/somali/RelativeSom.gf +++ b/src/somali/RelativeSom.gf @@ -6,25 +6,18 @@ lin -- : Cl -> RCl ; -- such that John loves her -- RelCl cl = {s = cl.s ! Subord} ; -{- - -- Sayeed p. 95-96 + ch 8 -Reduced present general in relative clauses; as absolutive -1/2SG/3SG M/2PL/3PL sugá (VRel Masc) -3 SG F sugtá (VRel Fem) -1PL sugná -- not yet in the grammar - -(18) (a) nimánka buugágga keená men-the books-the bring -'the men who bring the books' -(b) buugágga nimanku keenàan -books-the men-the bring 'the books which the men bring' --} -- : RP -> VP -> RCl ; + {- NB. this works because vfSubord only puts different forms from vfStatement + in Pres,Simul,Pos. RelVP needs a third set of forms: "Reduced present + general" (Sayeed p. 95-96 + ch 8). + These forms are found in VRel in VP, and aren't chosen by predVP, so we put + them in manually in RelVP. + -} RelVP rp vp = {s = \\g,c,t,a,p => let cls = predVPSlash impersNP vp ; - rcl = mergeRCl (cls.s ! False) ; -- Other than present tense, just use normal verb forms + rcl = mergeRCl (cls.s ! True) ; in rp.s ++ case of { - => linVP (VRel Fem) vp ; - => linVP (VRel Masc) vp ; + => linVP (VRel g) vp ; _ => rcl.s ! t ! a ! p } } ; diff --git a/src/somali/ResSom.gf b/src/somali/ResSom.gf index 2680d4a8a..2f3198a5a 100644 --- a/src/somali/ResSom.gf +++ b/src/somali/ResSom.gf @@ -770,10 +770,14 @@ oper mergeQCl : (Tense => Anteriority => Polarity => BaseCl) -> QClause = mergeSTM True ; mergeRCl : (Tense => Anteriority => Polarity => BaseCl) -> QClause = mergeSTM False ; - mergeSTM : Bool -> (Tense => Anteriority => Polarity => BaseCl) -> QClause = \includeSTM,b -> - {s = \\t,a,p => (b ! t ! a ! p).beforeSTM - ++ if_then_Str includeSTM (b ! t ! a ! p).stm [] - ++ (b ! t ! a ! p).afterSTM + mergeSTM : Bool -> (Tense => Anteriority => Polarity => BaseCl) -> QClause = \includeSTM,bcl -> + {s = \\t,a,p => (bcl ! t ! a ! p).beforeSTM + ++ case of { + => [] ; + => "aan" ; + => (bcl ! t ! a ! p).stm + } + ++ (bcl ! t ! a ! p).afterSTM } ; predVPSlash : NounPhrase -> VPSlash -> ClSlash = \np,vps ->