mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
(Som) Fix bugs with negation in RelVP
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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 }
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -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 ->
|
||||||
|
|||||||
Reference in New Issue
Block a user