(Som) Fix bugs with negation in RelVP

This commit is contained in:
Inari Listenmaa
2019-08-14 15:52:35 +02:00
parent cd53c5304e
commit 650b24c830
3 changed files with 22 additions and 21 deletions

View File

@@ -271,9 +271,13 @@ param
| VPres Aspect VAgr Polarity | VPres Aspect VAgr Polarity
| VNegPast Aspect | VNegPast Aspect
| VPast Aspect VAgr | VPast Aspect VAgr
| VImp Number Polarity
-- | VRelShort -- "som är/har/…" TODO is this used in other verbs? -- | VRelShort -- "som är/har/…" TODO is this used in other verbs?
| VRel Gender -- Reduced present general in relative clauses | VRel Gender ; {- Sayeed p. 95-96 + ch 8
| VImp Number Polarity ; 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 = VAgr =
Sg1_Sg3Masc Sg1_Sg3Masc

View File

@@ -6,25 +6,18 @@ lin
-- : Cl -> RCl ; -- such that John loves her -- : Cl -> RCl ; -- such that John loves her
-- RelCl cl = {s = cl.s ! Subord} ; -- 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 ; -- : 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 => RelVP rp vp = {s = \\g,c,t,a,p =>
let cls = predVPSlash impersNP vp ; 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 <g,c,t,a,p> of { in rp.s ++ case <g,c,t,a,p> of {
<Fem,Abs,Pres,Simul,Pos> => linVP (VRel Fem) vp ; <g,Abs,Pres,Simul,Pos> => linVP (VRel g) vp ;
<Masc,Abs,Pres,Simul,Pos> => linVP (VRel Masc) vp ;
_ => rcl.s ! t ! a ! p } _ => rcl.s ! t ! a ! p }
} ; } ;

View File

@@ -770,10 +770,14 @@ oper
mergeQCl : (Tense => Anteriority => Polarity => BaseCl) -> QClause = mergeSTM True ; mergeQCl : (Tense => Anteriority => Polarity => BaseCl) -> QClause = mergeSTM True ;
mergeRCl : (Tense => Anteriority => Polarity => BaseCl) -> QClause = mergeSTM False ; mergeRCl : (Tense => Anteriority => Polarity => BaseCl) -> QClause = mergeSTM False ;
mergeSTM : Bool -> (Tense => Anteriority => Polarity => BaseCl) -> QClause = \includeSTM,b -> mergeSTM : Bool -> (Tense => Anteriority => Polarity => BaseCl) -> QClause = \includeSTM,bcl ->
{s = \\t,a,p => (b ! t ! a ! p).beforeSTM {s = \\t,a,p => (bcl ! t ! a ! p).beforeSTM
++ if_then_Str includeSTM (b ! t ! a ! p).stm [] ++ case <includeSTM,p> of {
++ (b ! t ! a ! p).afterSTM <False,Pos> => [] ;
<False,Neg> => "aan" ;
<True> => (bcl ! t ! a ! p).stm
}
++ (bcl ! t ! a ! p).afterSTM
} ; } ;
predVPSlash : NounPhrase -> VPSlash -> ClSlash = \np,vps -> predVPSlash : NounPhrase -> VPSlash -> ClSlash = \np,vps ->