mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
(Ara) Add subordinate clauses
This commit is contained in:
@@ -11,7 +11,7 @@ concrete CatAra of Cat = CommonX - [Utt] ** open ResAra, Prelude, ParamX in {
|
||||
-- Tensed/Untensed
|
||||
|
||||
SSlash,
|
||||
S = {s : Str} ;
|
||||
S = {s : Order => Str} ; -- subordinate clause has nominal word order and subject in acc
|
||||
QS = {s : QForm => Str} ;
|
||||
RS = {s : Agr => Case => Str} ; -- case because the relative pronoun inflects in case
|
||||
|
||||
|
||||
@@ -3,20 +3,22 @@ concrete ConjunctionAra of Conjunction =
|
||||
|
||||
lincat
|
||||
|
||||
[S],
|
||||
[S] = {s1,s2 : Order => Str} ;
|
||||
[Adv] = {s1,s2 : Str} ;
|
||||
[NP] = {s1,s2 : Case => Str ; a : Agr ; empty : Str} ;
|
||||
[AP] = {s1,s2 : Species => Gender => Number => State => Case => Str} ;
|
||||
|
||||
lin
|
||||
|
||||
BaseS,
|
||||
|
||||
BaseAdv = twoSS ;
|
||||
ConsS,
|
||||
ConsAdv = consrSS comma ;
|
||||
ConjS,
|
||||
ConjAdv = conjunctSS ;
|
||||
|
||||
BaseS = twoTable Order ;
|
||||
ConsS = consrTable Order comma ;
|
||||
ConjS = conjunctTable Order ;
|
||||
|
||||
BaseNP x y = twoTable Case x y ** {
|
||||
a = conjAgr x.a y.a ;
|
||||
empty = []
|
||||
@@ -31,9 +33,9 @@ lin
|
||||
empty = []
|
||||
} ;
|
||||
|
||||
BaseAP x y = twoTable5 Species Gender Number State Case x y ;
|
||||
ConsAP xs x = consrTable5 Species Gender Number State Case comma xs x ;
|
||||
ConjAP conj ss = conjunctTable5 Species Gender Number State Case conj ss ;
|
||||
BaseAP = twoTable5 Species Gender Number State Case ;
|
||||
ConsAP = consrTable5 Species Gender Number State Case comma ;
|
||||
ConjAP = conjunctTable5 Species Gender Number State Case ;
|
||||
|
||||
|
||||
oper
|
||||
|
||||
@@ -19,7 +19,7 @@ concrete PhraseAra of Phrase = CatAra ** open
|
||||
UttCN cn = {s = ResAra.uttCN cn } ; --IL
|
||||
UttNP np = {s = \\_ => np.s ! Nom} ;
|
||||
UttVP vp = {s = uttVP vp} ; --IL
|
||||
UttS,
|
||||
UttS s = {s = \\_ => s.s ! Verbal} ;
|
||||
UttAdv,
|
||||
UttIAdv = \s -> {s = \\_ => s.s} ; ---- OK? AR
|
||||
--
|
||||
|
||||
@@ -27,7 +27,8 @@ resource ResAra = PatternsAra ** open Prelude, Predef, OrthoAra, ParamX in {
|
||||
Mood = Ind | Cnj | Jus ;
|
||||
Voice = Act | Pas ;
|
||||
Order = Verbal | Nominal
|
||||
| VOS ; -- Relative clauses with resumptive pronouns
|
||||
| VOS -- Relative clauses with resumptive pronouns
|
||||
| Subord ; -- Nominal word order but subject in accusative
|
||||
|
||||
oper
|
||||
|
||||
@@ -1293,7 +1294,7 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
||||
|
||||
proDrop : NP -> NP = \np ->
|
||||
case np.a.isPron of {
|
||||
True => np ** {s = \\_ => []};
|
||||
True => np ** {s = table {Nom => [] ; x => np.s ! x}};
|
||||
_ => np
|
||||
} ;
|
||||
|
||||
@@ -1474,10 +1475,11 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
||||
<True, Pres, Pos> => vp.pred.s ! gn ! Nom; --xabar marfooc
|
||||
_ => 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
|
||||
_ => vp.sc.s ++ np.s ! vp.sc.c
|
||||
sc : Preposition = case o of {Subord => {s=[]; c=Acc} ; Dir => vp.sc} ;
|
||||
subj = np.empty ++ sc.s
|
||||
++ case vp.isPred of {
|
||||
False => (proDrop np).s ! sc.c ; -- prodrop if it's not predicative
|
||||
True => np.s ! sc.c
|
||||
} ;
|
||||
|
||||
} in
|
||||
@@ -1486,9 +1488,8 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
||||
True => vp.obj.s ++ subj ; -- obj. clitic attaches directly to the verb
|
||||
False => subj ++ 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 ++ subj
|
||||
|
||||
VOS => vStr t p ++ vp.obj.s ++ vp.s2 ++ pred t p ++ subj ;
|
||||
Nominal|Subord => subj ++ vStr t p ++ vp.obj.s ++ vp.s2 ++ pred t p
|
||||
}
|
||||
} ;
|
||||
|
||||
|
||||
@@ -66,11 +66,11 @@ concrete SentenceAra of Sentence = CatAra ** open
|
||||
--
|
||||
|
||||
UseCl t p cl =
|
||||
{s = t.s ++ p.s ++
|
||||
{s = \\o => t.s ++ p.s ++
|
||||
case <t.t,t.a> of { --- IL guessed tenses
|
||||
<Pres,Simul> => cl.s ! Pres ! p.p ! Nominal ;
|
||||
<Pres,Anter> => cl.s ! Past ! p.p ! Nominal ;
|
||||
<x ,_ > => cl.s ! x ! p.p ! Nominal
|
||||
<Pres,Simul> => cl.s ! Pres ! p.p ! o ;
|
||||
<Pres,Anter> => cl.s ! Past ! p.p ! o ;
|
||||
<x ,_ > => cl.s ! x ! p.p ! o
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ concrete StructuralAra of Structural = CatAra **
|
||||
s = \\g,s,c => "كَمْ عَدَد" + caseTbl ! c ;
|
||||
n = Pl ; d = Def
|
||||
} ; -- IL
|
||||
|
||||
|
||||
-- if_Subj = ss "ِف" ;
|
||||
in8front_Prep = mkPrep "مُقَابِلَ" ;
|
||||
i_Pron = ResAra.i_Pron ;
|
||||
@@ -78,6 +78,7 @@ concrete StructuralAra of Structural = CatAra **
|
||||
something_NP = regNP "شَيْء" Sg ;
|
||||
-- somewhere_Adv = ss "سْموهري" ;
|
||||
that_Quant = mkQuant3 "ذَلِكَ" "تِلكَ" "أُلٱِكَ" Def;
|
||||
that_Subj = ss "أنَّ" ;
|
||||
----b that_NP = indeclNP "ذَلِكَ" Sg ;
|
||||
there_Adv = ss "هُناك" ;
|
||||
-- there7to_Adv = ss "تهري" ;
|
||||
|
||||
@@ -25,7 +25,7 @@ lin
|
||||
empty = []
|
||||
} ;
|
||||
|
||||
SymbS sy = sy ;
|
||||
SymbS sy = {s = \\_ => sy.s} ;
|
||||
|
||||
|
||||
SymbOrd n = {s = \\_,_,_ => n.s ; n = One ; isNum = False } ;
|
||||
|
||||
@@ -28,7 +28,8 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra, ParamX in {
|
||||
|
||||
-- : VS -> S -> VP ; -- say that she runs
|
||||
ComplVS vs s = predV vs ** { -- IL
|
||||
obj = emptyObj ** s } ;
|
||||
obj = emptyObj ** {s = s.s ! Subord}
|
||||
} ;
|
||||
|
||||
-- : VQ -> QS -> VP ; -- wonder who runs
|
||||
ComplVQ vq qs = predV vq ** { -- IL
|
||||
|
||||
Reference in New Issue
Block a user