(Ara) Add subordinate clauses

This commit is contained in:
Inari Listenmaa
2018-11-16 17:21:29 +01:00
parent c4f207a541
commit 5a6fe1e336
8 changed files with 30 additions and 25 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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
-- --

View File

@@ -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
} }
} ; } ;

View File

@@ -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
} }
}; };

View File

@@ -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 "تهري" ;

View File

@@ -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 } ;

View File

@@ -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