mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 17:38:54 -06:00
(Ara) Misc fixes to tenses, NPs, VPs
This commit is contained in:
@@ -13,7 +13,7 @@ concrete RelativeAra of Relative = CatAra **
|
|||||||
s = \\t,p,agr,c =>
|
s = \\t,p,agr,c =>
|
||||||
let
|
let
|
||||||
npS : Case => Str = \\_ => rp.s ! agr2ragr agr c ;
|
npS : Case => Str = \\_ => rp.s ! agr2ragr agr c ;
|
||||||
np = {s = npS ; a = agr} ;
|
np = emptyNP ** {s = npS ; a = agr} ;
|
||||||
cl = Se.PredVP np vp ;
|
cl = Se.PredVP np vp ;
|
||||||
in
|
in
|
||||||
cl.s ! t ! p ! Nominal
|
cl.s ! t ! p ! Nominal
|
||||||
|
|||||||
@@ -1301,7 +1301,6 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
predVP : NP -> VP -> Cl = \np,vp ->
|
predVP : NP -> VP -> Cl = \np,vp ->
|
||||||
{ s =\\t,p,o =>
|
{ s =\\t,p,o =>
|
||||||
let {
|
let {
|
||||||
@@ -1323,24 +1322,29 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
|||||||
<True, Pres, Neg> => "لَيسَ" ;--same here, just add negation particle
|
<True, Pres, Neg> => "لَيسَ" ;--same here, just add negation particle
|
||||||
<_, Past, Pos> => kataba ;
|
<_, Past, Pos> => kataba ;
|
||||||
<_, Past, Neg> => "لَمْ" ++ yaktub ;
|
<_, Past, Neg> => "لَمْ" ++ yaktub ;
|
||||||
<_, _Fut, Pos> => "سَ" ++ yaktubu ;
|
<_, Cond, _ > => yaktuba ;
|
||||||
<_, _Fut, Neg> => "لَنْ" ++ yaktuba
|
<_, Fut, Pos> => "سَ" ++ yaktubu ;
|
||||||
|
<_, Fut, Neg> => "لَنْ" ++ yaktuba
|
||||||
};
|
};
|
||||||
pred : ParamX.Tense -> Polarity -> Str =
|
pred : ParamX.Tense -> Polarity -> Str =
|
||||||
\tn,pl -> case <vp.isPred,tn,pl> of {
|
\tn,pl -> case <vp.isPred,tn,pl> of {
|
||||||
<True, Pres, Pos> => vp.pred.s ! gn ! Nom; --xabar marfooc
|
<True, Pres, Pos> => vp.pred.s ! gn ! Nom; --xabar marfooc
|
||||||
_ => vp.pred.s ! gn ! Acc --xabar kaana wa laysa manSoob
|
_ => vp.pred.s ! gn ! Acc --xabar kaana wa laysa manSoob
|
||||||
};
|
};
|
||||||
|
subj = np.empty
|
||||||
|
++ case <vp.isPred,np.a.isPron> of {
|
||||||
|
<False,True> => [] ; -- prodrop if it's not predicative
|
||||||
|
_ => np.s ! Nom
|
||||||
|
} ;
|
||||||
|
|
||||||
} in
|
} in
|
||||||
-- If you want prodrop, use proDrop : NP -> NP for your subject. /IL
|
|
||||||
case o of {
|
case o of {
|
||||||
Verbal => vStr t p ++ case vp.obj.a.isPron of {
|
Verbal => vStr t p ++ case vp.obj.a.isPron of {
|
||||||
True => vp.obj.s ++ np.s ! Nom ; -- obj. clitic attaches directly to the verb
|
True => vp.obj.s ++ subj ; -- obj. clitic attaches directly to the verb
|
||||||
False => np.s ! Nom ++ vp.obj.s }
|
False => subj ++ vp.obj.s }
|
||||||
++ vp.s2 ++ pred t p ;
|
++ vp.s2 ++ pred t p ;
|
||||||
Nominal => np.s ! Nom ++ vStr t p ++ vp.obj.s ++ vp.s2 ++ pred t p ;
|
Nominal => subj ++ vStr t p ++ vp.obj.s ++ vp.s2 ++ pred t p ;
|
||||||
VOS => vStr t p ++ vp.obj.s ++ vp.s2 ++ pred t p ++ np.s ! Nom
|
VOS => vStr t p ++ vp.obj.s ++ vp.s2 ++ pred t p ++ subj
|
||||||
|
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -68,18 +68,18 @@ concrete SentenceAra of Sentence = CatAra ** open
|
|||||||
UseCl t p cl =
|
UseCl t p cl =
|
||||||
{s = t.s ++ p.s ++
|
{s = t.s ++ p.s ++
|
||||||
case <t.t,t.a> of { --- IL guessed tenses
|
case <t.t,t.a> of { --- IL guessed tenses
|
||||||
<(Pres|Cond),Simul> => cl.s ! Pres ! p.p ! Nominal ;
|
<Pres,Simul> => cl.s ! Pres ! p.p ! Nominal ;
|
||||||
<Fut ,_ > => cl.s ! Fut ! p.p ! Nominal ;
|
<Pres,Anter> => cl.s ! Past ! p.p ! Nominal ;
|
||||||
<_ ,_ > => cl.s ! Past ! p.p ! Nominal
|
<x ,_ > => cl.s ! x ! p.p ! Nominal
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
UseQCl t p qcl =
|
UseQCl t p qcl =
|
||||||
{s = \\q => t.s ++ p.s ++
|
{s = \\q => t.s ++ p.s ++
|
||||||
case <t.t,t.a> of { --- IL guessed tenses
|
case <t.t,t.a> of { --- IL guessed tenses
|
||||||
<(Pres|Cond),Simul> => qcl.s ! Pres ! p.p ! q ;
|
<Pres,Simul> => qcl.s ! Pres ! p.p ! q ;
|
||||||
<Fut ,_ > => qcl.s ! Fut ! p.p ! q ;
|
<Pres,Anter> => qcl.s ! Past ! p.p ! q ;
|
||||||
<_ ,_ > => qcl.s ! Past ! p.p ! q
|
<x ,_ > => qcl.s ! x ! p.p ! q
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -17,10 +17,12 @@ lin
|
|||||||
let g = cn.g ; n = sizeToNumber det.n in {
|
let g = cn.g ; n = sizeToNumber det.n in {
|
||||||
s = \\c => det.s ! NoHum ! g ! c ++ cn.s ! Sg ! Def ! c ++ cn.adj ! n ! Def ! c ++ xs.s; ----IL word order?? Seems to be nontrivial according to ResAra comments.
|
s = \\c => det.s ! NoHum ! g ! c ++ cn.s ! Sg ! Def ! c ++ cn.adj ! n ! Def ! c ++ xs.s; ----IL word order?? Seems to be nontrivial according to ResAra comments.
|
||||||
a = dummyAgrP3 n ;
|
a = dummyAgrP3 n ;
|
||||||
|
empty = []
|
||||||
} ;
|
} ;
|
||||||
CNNumNP cn i = {
|
CNNumNP cn i = {
|
||||||
s = \\c => cn.s ! Sg ! Def ! c ++ uttNum i ! Masc ;
|
s = \\c => cn.s ! Sg ! Def ! c ++ uttNum i ! Masc ;
|
||||||
a = dummyAgrP3 Sg ;
|
a = dummyAgrP3 Sg ;
|
||||||
|
empty = []
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
SymbS sy = sy ;
|
SymbS sy = sy ;
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra in {
|
|||||||
vp ** {
|
vp ** {
|
||||||
s = \\pgn,vpf => vvVP.s ! pgn ! vpf
|
s = \\pgn,vpf => vvVP.s ! pgn ! vpf
|
||||||
++ vv.c2.s -- أَنْ
|
++ vv.c2.s -- أَنْ
|
||||||
++ vp.s ! pgn ! VPImpf Cnj
|
++ vp.s ! pgn ! VPImpf Cnj ;
|
||||||
|
isPred = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- ComplVS v s = insertObj (\\_ => conjThat ++ s.s) (predV v) ;
|
-- ComplVS v s = insertObj (\\_ => conjThat ++ s.s) (predV v) ;
|
||||||
|
|||||||
Reference in New Issue
Block a user