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