mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
(zul) misc changes
This commit is contained in:
@@ -9,18 +9,25 @@ concrete BackwardZul of Backward = CatZul ** open ResZul,Prelude,ParamX in {
|
|||||||
|
|
||||||
-- from Verb 19/4/2008
|
-- from Verb 19/4/2008
|
||||||
|
|
||||||
ComplV2 v2 np = {
|
ComplV2 v2 np = let
|
||||||
|
oc = objConc np.agr v2.r v2.syl ;
|
||||||
|
longform = case np.heavy of {
|
||||||
|
True => False ;
|
||||||
|
False => True
|
||||||
|
} ;
|
||||||
|
obj = np.s!NFull
|
||||||
|
in {
|
||||||
s = table {
|
s = table {
|
||||||
MainCl => \\a,p,t,l => let
|
MainCl => \\a,p,t,l => let
|
||||||
vform = (VFIndic MainCl p t) ;
|
vform = (VFIndic MainCl p t) ;
|
||||||
tp = tensePref vform v2.r v2.syl ; -- [] / zo- / zuku-
|
tp = tensePref vform v2.r v2.syl ; -- [] / zo- / zuku-
|
||||||
oc = objConc np.agr v2.r v2.syl ; -- [] / m -
|
-- oc = objConc np.agr v2.r v2.syl ; -- [] / m -
|
||||||
longform = case np.heavy of {
|
-- longform = case np.heavy of {
|
||||||
True => False ;
|
-- True => False ;
|
||||||
False => True
|
-- False => True
|
||||||
} ;
|
-- } ;
|
||||||
r = v2.s!(rform (VFIndic MainCl p t) longform) ; -- bona / boni
|
r = v2.s!(rform (VFIndic MainCl p t) longform) ; -- bona / boni
|
||||||
obj = np.s!NFull -- [] / inkomo
|
-- obj = np.s!NFull -- [] / inkomo
|
||||||
in case np.proDrop of {
|
in case np.proDrop of {
|
||||||
True => tp ++ oc ++ r ++ obj ;
|
True => tp ++ oc ++ r ++ obj ;
|
||||||
False => tp ++ r ++ obj
|
False => tp ++ r ++ obj
|
||||||
@@ -29,18 +36,40 @@ concrete BackwardZul of Backward = CatZul ** open ResZul,Prelude,ParamX in {
|
|||||||
vform = (VFIndic RelCl p t) ;
|
vform = (VFIndic RelCl p t) ;
|
||||||
rc = relConc vform a v2.r ; -- o- / onga-
|
rc = relConc vform a v2.r ; -- o- / onga-
|
||||||
tp = tensePref vform v2.r v2.syl ; -- [] / zo- / zuku-
|
tp = tensePref vform v2.r v2.syl ; -- [] / zo- / zuku-
|
||||||
oc = objConc np.agr v2.r v2.syl ; -- [] / m -
|
-- oc = objConc np.agr v2.r v2.syl ; -- [] / m -
|
||||||
longform = case np.heavy of {
|
-- longform = case np.heavy of {
|
||||||
True => False ;
|
-- True => False ;
|
||||||
False => True
|
-- False => True
|
||||||
} ;
|
-- } ;
|
||||||
r = v2.s!(rform vform longform) ; -- bona / boni
|
r = v2.s!(rform vform longform) ; -- bona / boni
|
||||||
obj = np.s!NFull -- [] / inkomo
|
-- obj = np.s!NFull -- [] / inkomo
|
||||||
in case np.proDrop of {
|
in case np.proDrop of {
|
||||||
True => rc ++ tp ++ oc ++ r ++ obj ;
|
True => rc ++ tp ++ oc ++ r ++ obj ;
|
||||||
False => rc ++ tp ++ r ++ obj
|
False => rc ++ tp ++ r ++ obj
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
imp_s = table {
|
||||||
|
Sg => table {
|
||||||
|
Pos => case np.proDrop of {
|
||||||
|
True => oc ++ v2.s!R_e ++ obj ;
|
||||||
|
False => v2.s!R_a ++ obj
|
||||||
|
} ;
|
||||||
|
Neg => case np.proDrop of {
|
||||||
|
True => "unga" ++BIND++ oc ++ v2.s!R_i ++ obj ;
|
||||||
|
False => "unga" ++BIND++ v2.s!R_i ++ obj
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
Pos => case np.proDrop of {
|
||||||
|
True => oc ++ v2.s!R_e ++BIND++"ni" ++ obj ;
|
||||||
|
False => v2.s!R_a ++BIND++"ni" ++ obj
|
||||||
|
} ;
|
||||||
|
Neg => case np.proDrop of {
|
||||||
|
True => "ninga" ++BIND++ oc ++ v2.s!R_i ++ obj ;
|
||||||
|
False => "ninga" ++BIND++ v2.s!R_i ++ obj
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} ;
|
||||||
iadv, advs, comp = [] ;
|
iadv, advs, comp = [] ;
|
||||||
ap_comp = \\_ => [] ;
|
ap_comp = \\_ => [] ;
|
||||||
hasComp = np.heavy ;
|
hasComp = np.heavy ;
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
concrete CatExtZul of CatExt = open ResZul,Prelude,ParamX in {
|
concrete CatExtZul of CatExt = open ResZul,Prelude,ParamX in {
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
Loc = { s : CType => Agr => Polarity => BasicTense => Str } ;
|
Loc = {
|
||||||
|
s : CType => Agr => Polarity => BasicTense => Str ;
|
||||||
|
imp_s : Number => Polarity => Str
|
||||||
|
} ;
|
||||||
LocN = { s : Str } ;
|
LocN = { s : Str } ;
|
||||||
|
LocAdv = { s : Str ; reqLocS : Bool } ;
|
||||||
QuantStem = { s : Agr => Str } ;
|
QuantStem = { s : Agr => Str } ;
|
||||||
RelStem = { s : Str } ;
|
RelStem = { s : Str } ;
|
||||||
VAux = { s : Str ; at : AuxType } ;
|
VAux = { s : Str ; at : AuxType } ;
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ concrete CatZul of Cat = CommonX - [Temp,Tense,Adv,IAdv] **
|
|||||||
-- s : ResZul.Tense => Anteriority => CPolarity => Order => Str ;
|
-- s : ResZul.Tense => Anteriority => CPolarity => Order => Str ;
|
||||||
-- c2 : Str
|
-- c2 : Str
|
||||||
-- } ;
|
-- } ;
|
||||||
Imp = { s : Polarity => Str } ;
|
Imp = { s : Number => Polarity => Str } ;
|
||||||
|
|
||||||
-- Question
|
-- Question
|
||||||
|
|
||||||
@@ -47,6 +47,7 @@ concrete CatZul of Cat = CommonX - [Temp,Tense,Adv,IAdv] **
|
|||||||
|
|
||||||
VP = {
|
VP = {
|
||||||
s : CType => Agr => Polarity => BasicTense => Bool => Str ; -- TODO: mood
|
s : CType => Agr => Polarity => BasicTense => Bool => Str ; -- TODO: mood
|
||||||
|
imp_s : Number => Polarity => Str ;
|
||||||
-- oc : Str ;
|
-- oc : Str ;
|
||||||
comp : Str ;
|
comp : Str ;
|
||||||
iadv : Str ;
|
iadv : Str ;
|
||||||
@@ -137,7 +138,7 @@ concrete CatZul of Cat = CommonX - [Temp,Tense,Adv,IAdv] **
|
|||||||
-- CAdv = {s : Polarity => Str; p : Str} ;
|
-- CAdv = {s : Polarity => Str; p : Str} ;
|
||||||
|
|
||||||
-- Open lexical classes, e.g. Lexicon
|
-- Open lexical classes, e.g. Lexicon
|
||||||
V,V2,VA,VS,V3 = {
|
V,V2,VA,VS,V3,VV = {
|
||||||
s : RForm => Str ;
|
s : RForm => Str ;
|
||||||
r : RInit ;
|
r : RInit ;
|
||||||
syl : Syl ;
|
syl : Syl ;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
concrete ExtraExtZul of ExtraExt =
|
concrete ExtraExtZul of ExtraExt =
|
||||||
CatZul [NP,VP,CN,V,Temp,S,Cl,Adv,Pron,QCl,QS,A,RS,IAdv,IComp,Pol,Det,Quant,N,PN,Conj],
|
CatZul [NP,VP,CN,V,Temp,S,Cl,Adv,Pron,QCl,QS,A,RS,IAdv,IComp,Pol,Det,Quant,N,PN,Conj,VV],
|
||||||
CatExtZul
|
CatExtZul
|
||||||
** open ResZul,Prelude,ParamX in {
|
** open ResZul,Prelude,ParamX in {
|
||||||
|
|
||||||
@@ -204,14 +204,14 @@ concrete ExtraExtZul of ExtraExt =
|
|||||||
reqLocS = False
|
reqLocS = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
LocNPAdv np = {
|
-- LocNPAdv np = {
|
||||||
s = np.s!NLoc ;
|
-- s = np.s!NLoc ;
|
||||||
-- asp = Null ;
|
-- -- asp = Null ;
|
||||||
reqLocS = case np.isPron of {
|
-- reqLocS = case np.isPron of {
|
||||||
False => True ;
|
-- False => True ;
|
||||||
True => False -- ki-
|
-- True => False -- ki-
|
||||||
} ;
|
-- } ;
|
||||||
} ;
|
-- } ;
|
||||||
|
|
||||||
LocAdvNPAdv adv np = {
|
LocAdvNPAdv adv np = {
|
||||||
s = adv.s ++ (np.s!NLoc) ;
|
s = adv.s ++ (np.s!NLoc) ;
|
||||||
@@ -227,23 +227,11 @@ concrete ExtraExtZul of ExtraExt =
|
|||||||
reqLocS = False
|
reqLocS = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- -- NOTE: this seems to be a specific construction. Not yet found in Poulos+Msimang
|
-- NOTE: this seems to be a specific construction. Not yet found in Poulos+Msimang
|
||||||
-- KwaAdvNPAdv adv np =
|
KwaAdvNPAdv adv np = {
|
||||||
-- let
|
s = adv.s ++ (poss_concord_agr!(Third C17 Sg)!np.i) ++BIND++ (np.s!NReduced) ;
|
||||||
-- c = case np.agr of {
|
reqLocS = False
|
||||||
-- (First _ | Second _) => C1_2 ; -- people class as default
|
} ;
|
||||||
-- Third c _ => c
|
|
||||||
-- } ;
|
|
||||||
-- n = case np.agr of {
|
|
||||||
-- (First Sg | Second Sg | Third _ Sg) => Sg ;
|
|
||||||
-- (First Pl | Second Pl | Third _ Pl) => Pl
|
|
||||||
-- }
|
|
||||||
-- in
|
|
||||||
-- {
|
|
||||||
-- s = adv.s ++ poss_concord!C15!Sg!(initNP np.isPron np.agr) ++BIND++ np.s!Reduced ++ np.mod ++ np.predet_pre ++ np.predet_post ;
|
|
||||||
-- -- asp = adv.asp ;
|
|
||||||
-- reqLocS = False
|
|
||||||
-- } ;
|
|
||||||
|
|
||||||
-- locative ku
|
-- locative ku
|
||||||
KuNPAdv np = {
|
KuNPAdv np = {
|
||||||
@@ -283,6 +271,34 @@ concrete ExtraExtZul of ExtraExt =
|
|||||||
reqLocS = False
|
reqLocS = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
NPAdv np = {
|
||||||
|
s = np.s!NFull ;
|
||||||
|
reqLocS = False
|
||||||
|
} ;
|
||||||
|
|
||||||
|
LocAdvAdv l = l ** { reqLocS = False } ;
|
||||||
|
|
||||||
|
LocAdvNP adv np = {
|
||||||
|
s = adv.s ++ (poss_concord_agr!(Third C17 Sg)!np.i) ++BIND++ (np.s!NReduced) ;
|
||||||
|
reqLocS = False
|
||||||
|
} ; -- ngaphezu kwamahora amabili adlule
|
||||||
|
|
||||||
|
LocNAdv locn = locn ** { reqLocS = False } ;
|
||||||
|
|
||||||
|
LocNNgaAdv locn = {
|
||||||
|
s = "nga" ++BIND++ locn.s ;
|
||||||
|
reqLocS = False
|
||||||
|
} ;
|
||||||
|
|
||||||
|
LocNPAdv np = {
|
||||||
|
s = np.s!NLoc ;
|
||||||
|
-- asp = Null ;
|
||||||
|
reqLocS = case np.isPron of {
|
||||||
|
False => True ;
|
||||||
|
True => False -- ki-
|
||||||
|
} ;
|
||||||
|
} ;
|
||||||
|
|
||||||
RelAdv adv = {
|
RelAdv adv = {
|
||||||
s = \\a => relConcLookup!a!RC ++BIND++ adv.s
|
s = \\a => relConcLookup!a!RC ++BIND++ adv.s
|
||||||
} ;
|
} ;
|
||||||
@@ -561,6 +577,10 @@ concrete ExtraExtZul of ExtraExt =
|
|||||||
phakade_LocN = { s = "phakade" ; empty = [] } ;
|
phakade_LocN = { s = "phakade" ; empty = [] } ;
|
||||||
phezulu_LocN = { s = "phezulu" ; empty = [] } ;
|
phezulu_LocN = { s = "phezulu" ; empty = [] } ;
|
||||||
|
|
||||||
|
ngemuva_LocAdv = { s = "ngemuva" ; reqLocS = False } ;
|
||||||
|
emuva_LocAdv = { s = "emuva" ; reqLocS = False } ;
|
||||||
|
ecaleni_LocAdv = { s = "ecaleni" ; reqLocS = False } ;
|
||||||
|
|
||||||
lapha_Loc = {
|
lapha_Loc = {
|
||||||
s = table {
|
s = table {
|
||||||
MainCl => \\a,p,t => let
|
MainCl => \\a,p,t => let
|
||||||
@@ -582,11 +602,31 @@ concrete ExtraExtZul of ExtraExt =
|
|||||||
VFIndic _ Neg PresTense => (kho_cop vform a) ++ cop_base;
|
VFIndic _ Neg PresTense => (kho_cop vform a) ++ cop_base;
|
||||||
VFIndic _ _ _ => rcp ++ pcp ++ cop_base
|
VFIndic _ _ _ => rcp ++ pcp ++ cop_base
|
||||||
}
|
}
|
||||||
|
} ;
|
||||||
|
imp_s = table {
|
||||||
|
Sg => table {
|
||||||
|
Pos => "yiba" ++ "lapha" ;
|
||||||
|
Neg => "ungabi" ++ "lapha"
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
Pos => "yibani" ++ "lapha" ;
|
||||||
|
Neg => "ningabi" ++ "lapha"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
khona_Loc = {
|
khona_Loc = {
|
||||||
s = \\c,a,p,t => kho_cop (VFIndic c p t) a ;
|
s = \\c,a,p,t => kho_cop (VFIndic c p t) a ;
|
||||||
|
imp_s = table {
|
||||||
|
Sg => table {
|
||||||
|
Pos => "yiba" ++ "khona" ;
|
||||||
|
Neg => "ungabi" ++ "khona" -- this is a guess
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
Pos => "yibani" ++ "khona" ;
|
||||||
|
Neg => "ningabi" ++ "khona"
|
||||||
|
}
|
||||||
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
kakhulu_Adv = { s = "kakhulu" ; reqLocS = False } ;
|
kakhulu_Adv = { s = "kakhulu" ; reqLocS = False } ;
|
||||||
@@ -608,6 +648,9 @@ concrete ExtraExtZul of ExtraExt =
|
|||||||
fix = True
|
fix = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
want_VV = regVerb "fun" ;
|
||||||
|
prepare_to_VV = regVerb "lungiselel" ;
|
||||||
|
|
||||||
-- Deverb15 v =
|
-- Deverb15 v =
|
||||||
-- let
|
-- let
|
||||||
-- agr = Third C15 Sg ;
|
-- agr = Third C15 Sg ;
|
||||||
|
|||||||
@@ -136,35 +136,74 @@ concrete NounExtZul of NounExt = CatZul,CatExtZul ** open ResZul, Prelude, Param
|
|||||||
heavy = True
|
heavy = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
Deverb15 v =
|
-- Deverb15 v =
|
||||||
let
|
-- let
|
||||||
agr = Third C15 Sg ;
|
-- agr = Third C15 Sg ;
|
||||||
in
|
-- in
|
||||||
{
|
-- {
|
||||||
s = \\_ => table {
|
-- s = \\_ => table {
|
||||||
NFull => case v.r of {
|
-- NFull => case v.r of {
|
||||||
RC => "uku"++BIND++(v.s!R_a) ;
|
-- RC => "uku"++BIND++(v.s!R_a) ;
|
||||||
(RA|RE) => "ukw"++BIND++(v.s!R_a) ;
|
-- (RA|RE) => "ukw"++BIND++(v.s!R_a) ;
|
||||||
_ => "uk"++BIND++(v.s!R_a)
|
-- _ => "uk"++BIND++(v.s!R_a)
|
||||||
|
-- } ;
|
||||||
|
-- NReduced => case v.r of {
|
||||||
|
-- RC => "ku"++BIND++(v.s!R_a) ;
|
||||||
|
-- (RA|RE) => "kw"++BIND++(v.s!R_a) ;
|
||||||
|
-- _ => "k"++BIND++(v.s!R_a)
|
||||||
|
-- } ;
|
||||||
|
-- NPoss => case v.r of {
|
||||||
|
-- RC => "ku"++BIND++(v.s!R_a) ;
|
||||||
|
-- (RA|RE) => "kw"++BIND++(v.s!R_a) ;
|
||||||
|
-- _ => "k"++BIND++(v.s!R_a)
|
||||||
|
-- } ;
|
||||||
|
-- NLoc => case v.r of {
|
||||||
|
-- RC => "eku"++BIND++(v.s!R_e)++BIND++"ni" ;
|
||||||
|
-- (RA|RE) => "ekw"++BIND++(v.s!R_e)++BIND++"ni" ;
|
||||||
|
-- _ => "ek"++BIND++(v.s!R_e)++BIND++"ni"
|
||||||
|
-- }
|
||||||
|
-- } ;
|
||||||
|
-- c = C15 ;
|
||||||
|
-- empty = []
|
||||||
|
-- } ;
|
||||||
|
|
||||||
|
-- not built to work for copulative VPs for now (specifically for agreement)
|
||||||
|
Deverb15 pol vp =
|
||||||
|
let
|
||||||
|
agr = Third C15 Sg ;
|
||||||
|
v = vp.s!MainCl!(Third C15 Sg)!pol.p!PresTense!False
|
||||||
|
in
|
||||||
|
{
|
||||||
|
s = table {
|
||||||
|
NFull => case <pol.p,vp.r> of {
|
||||||
|
<Neg,_ > => "uku"++BIND++"nga"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s ;
|
||||||
|
<_,RC> => "uku"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s ;
|
||||||
|
<_,(RA|RE)> => "ukw"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s ;
|
||||||
|
<_,_> => "uk"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s
|
||||||
|
} ;
|
||||||
|
NReduced => case <pol.p,vp.r> of {
|
||||||
|
<Neg,_ > => "ku"++BIND++"nga"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s ;
|
||||||
|
<_,RC> => "ku"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s ;
|
||||||
|
<_,(RA|RE)> => "kw"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s ;
|
||||||
|
<_,_> => "k"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s
|
||||||
|
} ;
|
||||||
|
NPoss => case <pol.p,vp.r> of {
|
||||||
|
<Neg,_ > => "ku"++BIND++"nga"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s ;
|
||||||
|
<_,RC> => "ku"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s ;
|
||||||
|
<_,(RA|RE)> => "kw"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s ;
|
||||||
|
<_,_> => "k"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s
|
||||||
|
} ;
|
||||||
|
NLoc => case <pol.p,vp.r> of {
|
||||||
|
<Neg,_ > => "ku"++BIND++poss_pron_stem!(Third C15 Sg) ++ "uku"++BIND++"nga"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s ;
|
||||||
|
<_,_> => "ku"++BIND++poss_pron_stem!(Third C15 Sg) ++ "uku"++BIND++v ++ vp.comp ++ vp.advs ++ vp.iadv ++ pol.s
|
||||||
|
}
|
||||||
} ;
|
} ;
|
||||||
NReduced => case v.r of {
|
agr = agr ;
|
||||||
RC => "ku"++BIND++(v.s!R_a) ;
|
i = RU ;
|
||||||
(RA|RE) => "kw"++BIND++(v.s!R_a) ;
|
proDrop = False ;
|
||||||
_ => "k"++BIND++(v.s!R_a)
|
isPron = False ;
|
||||||
} ;
|
heavy = True ;
|
||||||
NPoss => case v.r of {
|
empty = []
|
||||||
RC => "ku"++BIND++(v.s!R_a) ;
|
|
||||||
(RA|RE) => "kw"++BIND++(v.s!R_a) ;
|
|
||||||
_ => "k"++BIND++(v.s!R_a)
|
|
||||||
} ;
|
|
||||||
NLoc => case v.r of {
|
|
||||||
RC => "eku"++BIND++(v.s!R_e)++BIND++"ni" ;
|
|
||||||
(RA|RE) => "ekw"++BIND++(v.s!R_e)++BIND++"ni" ;
|
|
||||||
_ => "ek"++BIND++(v.s!R_e)++BIND++"ni"
|
|
||||||
}
|
|
||||||
} ;
|
|
||||||
c = C15 ;
|
|
||||||
empty = []
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
LocNP np = {
|
LocNP np = {
|
||||||
@@ -191,28 +230,76 @@ concrete NounExtZul of NounExt = CatZul,CatExtZul ** open ResZul, Prelude, Param
|
|||||||
} ;
|
} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
LocNLoc locn = {
|
-- LocNLoc locn = {
|
||||||
|
-- s = table {
|
||||||
|
-- MainCl => \\a,p,t => let
|
||||||
|
-- vform = VFIndic MainCl p t ;
|
||||||
|
-- pcp = ap_cop_pref vform a RelType ; -- u- / uzoba / akazukuba
|
||||||
|
-- cop_base = locn.s
|
||||||
|
-- in
|
||||||
|
-- case vform of {
|
||||||
|
-- VFIndic _ Neg PresTense => (kho_cop vform a) ++ cop_base;
|
||||||
|
-- VFIndic _ _ _ => pcp ++ cop_base
|
||||||
|
-- } ;
|
||||||
|
-- RelCl => \\a,p,t => let
|
||||||
|
-- vform = VFIndic RelCl p t ;
|
||||||
|
-- rcp = (relConcCop vform a RC) ; -- o- / onge-
|
||||||
|
-- pcp = ap_cop_pref vform a RelType ; -- u- / uzoba / akazukuba
|
||||||
|
-- cop_base = locn.s
|
||||||
|
-- in
|
||||||
|
-- case vform of {
|
||||||
|
-- VFIndic _ Neg PresTense => (kho_cop vform a) ++ cop_base;
|
||||||
|
-- VFIndic _ _ _ => rcp ++ pcp ++ cop_base
|
||||||
|
-- }
|
||||||
|
-- } ;
|
||||||
|
-- } ;
|
||||||
|
|
||||||
|
-- LocNPossNP locn np = {
|
||||||
|
-- s = locn.s ++ poss_concord_agr!(Third C17 Sg)!(np.i) ++BIND++ np.s!NPoss;
|
||||||
|
-- } ;
|
||||||
|
|
||||||
|
LocAdvLoc locadv = {
|
||||||
s = table {
|
s = table {
|
||||||
MainCl => \\a,p,t => let
|
MainCl => \\a,p,t => let
|
||||||
vform = VFIndic MainCl p t ;
|
vform = VFIndic MainCl p t ;
|
||||||
pcp = ap_cop_pref vform a RelType ; -- u- / uzoba / akazukuba
|
pcp = ap_cop_pref vform a RelType ; -- u- / uzoba / akazukuba
|
||||||
cop_base = locn.s
|
s = case locadv.reqLocS of {
|
||||||
|
True => "s"++BIND ;
|
||||||
|
False => []
|
||||||
|
} ;
|
||||||
|
cop_base = locadv.s
|
||||||
in
|
in
|
||||||
case vform of {
|
case vform of {
|
||||||
VFIndic _ Neg PresTense => (kho_cop vform a) ++ cop_base;
|
VFIndic _ Neg PresTense => (kho_cop vform a) ++ cop_base;
|
||||||
VFIndic _ _ _ => pcp ++ cop_base
|
VFIndic _ _ _ => pcp ++ s ++ cop_base
|
||||||
} ;
|
} ;
|
||||||
RelCl => \\a,p,t => let
|
RelCl => \\a,p,t => let
|
||||||
vform = VFIndic RelCl p t ;
|
vform = VFIndic RelCl p t ;
|
||||||
rcp = (relConcCop vform a RC) ; -- o- / onge-
|
rcp = (relConcCop vform a RC) ; -- o- / onge-
|
||||||
pcp = ap_cop_pref vform a RelType ; -- u- / uzoba / akazukuba
|
pcp = ap_cop_pref vform a RelType ; -- u- / uzoba / akazukuba
|
||||||
cop_base = locn.s
|
s = case locadv.reqLocS of {
|
||||||
|
True => "s"++BIND ;
|
||||||
|
False => []
|
||||||
|
} ;
|
||||||
|
cop_base = locadv.s
|
||||||
in
|
in
|
||||||
case vform of {
|
case vform of {
|
||||||
VFIndic _ Neg PresTense => (kho_cop vform a) ++ cop_base;
|
VFIndic _ Neg PresTense => (kho_cop vform a) ++ cop_base;
|
||||||
VFIndic _ _ _ => rcp ++ pcp ++ cop_base
|
VFIndic _ _ _ => rcp ++ pcp ++ s ++ cop_base
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
imp_s = table {
|
||||||
|
Sg => table {
|
||||||
|
Pos => "yiba" ++ "s"++BIND++ locadv.s ;
|
||||||
|
Neg => "ungabi" ++ "s"++BIND++ locadv.s
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
Pos => "yibani" ++ "s"++BIND++ locadv.s ;
|
||||||
|
Neg => "ningabi" ++ "s"++BIND++ locadv.s
|
||||||
|
}
|
||||||
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,7 +101,10 @@ concrete NounZul of Noun = CatZul ** open ResZul, Prelude, ParamX in {
|
|||||||
-- TODO: check refactor (no change?)
|
-- TODO: check refactor (no change?)
|
||||||
PossNP cn np = {
|
PossNP cn np = {
|
||||||
empty = cn.empty ;
|
empty = cn.empty ;
|
||||||
s = \\num,nform => cn.s!num!nform ++ poss_concord!cn.c!num!np.i ++BIND++ np.s!NPoss;
|
s = \\num,nform => case np.agr of {
|
||||||
|
Third C1a_2a Sg => cn.s!num!nform ++ poss_concord_c1a!cn.c!num ++BIND++ np.s!NPoss ;
|
||||||
|
(First _ | Second _ | Third _ _) => cn.s!num!nform ++ poss_concord!cn.c!num!np.i ++BIND++ np.s!NPoss
|
||||||
|
} ;
|
||||||
-- mod = \\num => cn.mod!num ++ poss_concord!cn.c!num!np.i ++BIND++ (poss_NP np) ;
|
-- mod = \\num => cn.mod!num ++ poss_concord!cn.c!num!np.i ++BIND++ (poss_NP np) ;
|
||||||
c = cn.c ;
|
c = cn.c ;
|
||||||
emph = cn.emph
|
emph = cn.emph
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ concrete PChunkZul of PChunk = CatZul, CatExtZul, SymbolZul [Symb] **
|
|||||||
lincat
|
lincat
|
||||||
Chunks = {s : Str} ;
|
Chunks = {s : Str} ;
|
||||||
Chunk = {s : Str};
|
Chunk = {s : Str};
|
||||||
Chunk_Phr, Chunk_AP, Chunk_Adv, Chunk_Imp, Chunk_S, Chunk_RS, Chunk_QS, Chunk_CN, Chunk_NP, Chunk_N, Chunk_Symb = {s: Str} ;
|
Chunk_Phr, Chunk_AP, Chunk_Adv, Chunk_Imp, Chunk_S, Chunk_RS, Chunk_QS, Chunk_VP, Chunk_CN, Chunk_NP, Chunk_N, Chunk_Symb = {s: Str} ;
|
||||||
|
|
||||||
VC = V ;
|
VC = V ;
|
||||||
|
|
||||||
@@ -21,6 +21,7 @@ concrete PChunkZul of PChunk = CatZul, CatExtZul, SymbolZul [Symb] **
|
|||||||
S_Chunker c = c ;
|
S_Chunker c = c ;
|
||||||
RS_Chunker c = c ;
|
RS_Chunker c = c ;
|
||||||
QS_Chunker c = c ;
|
QS_Chunker c = c ;
|
||||||
|
VP_Chunker c = c ;
|
||||||
CN_Chunker c = c ;
|
CN_Chunker c = c ;
|
||||||
NP_Chunker c = c ;
|
NP_Chunker c = c ;
|
||||||
N_Chunker c = c ;
|
N_Chunker c = c ;
|
||||||
@@ -30,10 +31,17 @@ concrete PChunkZul of PChunk = CatZul, CatExtZul, SymbolZul [Symb] **
|
|||||||
|
|
||||||
Phr_Chunk p = {s = p.s } ;
|
Phr_Chunk p = {s = p.s } ;
|
||||||
Adv_Chunk a = { s = a.s } ;
|
Adv_Chunk a = { s = a.s } ;
|
||||||
Imp_Chunk i = { s = variants { i.s!Pos ; i.s!Neg} } ;
|
Imp_Sg_Chunk i = { s = variants { i.s!Sg!Pos ; i.s!Sg!Neg} } ;
|
||||||
|
Imp_Pl_Chunk i = { s = variants { i.s!Pl!Pos ; i.s!Pl!Neg} } ;
|
||||||
S_Chunk s = { s = s.s } ;
|
S_Chunk s = { s = s.s } ;
|
||||||
RS_Chunk rs = { s = rs.s!agr_vars } ;
|
RS_Chunk pron rs = { s = pron.s!NFull ++ rs.s!pron.agr } ;
|
||||||
QS_Chunk s = { s = s.qword_pre ++ s.s ++ s.qword_post } ;
|
QS_Chunk s = { s = s.qword_pre ++ s.s ++ s.qword_post } ;
|
||||||
|
VP_RelYo_Chunk temp pol pron vp = {
|
||||||
|
s = temp.s ++ pol.s ++ pron.s!NFull ++ vp.s!RelCl!pron.agr!pol.p!temp.t!True
|
||||||
|
} ;
|
||||||
|
VP_Rel_Chunk temp pol pron vp = {
|
||||||
|
s = temp.s ++ pol.s ++ pron.s!NFull ++ vp.s!RelCl!pron.agr!pol.p!temp.t!False
|
||||||
|
} ;
|
||||||
CN_Sg_Chunk cn = {
|
CN_Sg_Chunk cn = {
|
||||||
s = cn.s!Sg!NFull
|
s = cn.s!Sg!NFull
|
||||||
} ;
|
} ;
|
||||||
@@ -43,18 +51,23 @@ concrete PChunkZul of PChunk = CatZul, CatExtZul, SymbolZul [Symb] **
|
|||||||
NP_Nom_Chunk np = {
|
NP_Nom_Chunk np = {
|
||||||
s = variants {
|
s = variants {
|
||||||
np.s!NFull ;
|
np.s!NFull ;
|
||||||
np.s!NReduced ;
|
np.s!NReduced
|
||||||
np.s!NLoc
|
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
NP_Gen_Chunk np = {
|
NP_Loc_Chunk np = {
|
||||||
s = poss_concord_agr!agr_vars!np.i ++BIND++ np.s!NPoss
|
s = np.s!NLoc
|
||||||
} ;
|
} ;
|
||||||
Predet_Chunk predet = {
|
NP_Gen_Chunk pron np = {
|
||||||
s = predet.s!agr_vars
|
s = pron.s!NFull ++ poss_concord_agr!pron.agr!np.i ++BIND++ np.s!NPoss
|
||||||
} ;
|
} ;
|
||||||
Postdet_Chunk postdet = {
|
-- NP_Gen_Chunk np = {
|
||||||
s = postdet.s!agr_vars
|
-- s = poss_concord_agr!agr_vars!np.i ++BIND++ np.s!NPoss
|
||||||
|
-- } ;
|
||||||
|
Predet_Chunk pron predet = {
|
||||||
|
s = pron.s!NFull ++ predet.s!pron.agr
|
||||||
|
} ;
|
||||||
|
Postdet_Chunk pron postdet = {
|
||||||
|
s = pron.s!NFull ++ postdet.s!pron.agr
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- for unknown words that are not names
|
-- for unknown words that are not names
|
||||||
@@ -101,4 +114,6 @@ concrete PChunkZul of PChunk = CatZul, CatExtZul, SymbolZul [Symb] **
|
|||||||
Second Pl
|
Second Pl
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
bool_vars : Bool = variants { True | False } ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,28 @@ concrete PhraseExtZul of PhraseExt = CatZul,CatExtZul ** open ResZul, Prelude, P
|
|||||||
phr.s ++ "ku" ++ BIND ++ vform ++ np.s!NFull ++ t.s
|
phr.s ++ "ku" ++ BIND ++ vform ++ np.s!NFull ++ t.s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
DirectSpeechNP np1 t v np2 = {
|
||||||
|
s = let
|
||||||
|
vform = case t.t of {
|
||||||
|
PastTense => v.s!R_e ;
|
||||||
|
PresTense => v.s!R_a ;
|
||||||
|
_ => v.s!R_a ++ "*"
|
||||||
|
} ;
|
||||||
|
in
|
||||||
|
np1.s!NFull ++ "ku" ++ BIND ++ vform ++ np2.s!NFull ++ t.s
|
||||||
|
} ;
|
||||||
|
|
||||||
|
DirectSpeechAdv adv t v np = {
|
||||||
|
s = let
|
||||||
|
vform = case t.t of {
|
||||||
|
PastTense => v.s!R_e ;
|
||||||
|
PresTense => v.s!R_a ;
|
||||||
|
_ => v.s!R_a ++ "*"
|
||||||
|
} ;
|
||||||
|
in
|
||||||
|
adv.s ++ "ku" ++ BIND ++ vform ++ np.s!NFull ++ t.s
|
||||||
|
} ;
|
||||||
|
|
||||||
ExtPhrConj p1 p2 = {
|
ExtPhrConj p1 p2 = {
|
||||||
s = p1.s ++ p2.s
|
s = p1.s ++ p2.s
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
concrete PhraseZul of Phrase = CatZul ** open Prelude, ResZul in {
|
concrete PhraseZul of Phrase = CatZul ** open Prelude, ParamX, ResZul in {
|
||||||
|
|
||||||
lin
|
lin
|
||||||
PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
|
PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
|
||||||
--
|
--
|
||||||
UttS sent = { s = sent.s } ;
|
UttS sent = { s = sent.s } ;
|
||||||
UttQS sent = { s = sent.qword_pre ++ sent.s ++ sent.qword_post } ;
|
UttQS sent = { s = sent.qword_pre ++ sent.s ++ sent.qword_post } ;
|
||||||
UttImpSg pol imp = { s = pol.s ++ imp.s!pol.p } ;
|
UttImpSg pol imp = { s = pol.s ++ imp.s!Sg!pol.p } ;
|
||||||
-- UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Pl False} ;
|
UttImpPl pol imp = {s = pol.s ++ imp.s!Pl!pol.p } ;
|
||||||
-- UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg True} ;
|
-- UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg True} ;
|
||||||
|
|
||||||
-- UttIP ip = {s = ip.s ! npNom} ; --- Acc also
|
-- UttIP ip = {s = ip.s ! npNom} ; --- Acc also
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ resource ResZul = open Prelude,Predef,ParamX in {
|
|||||||
VPType = CopIdent | CopAssoc | CopDescr | CopEq | VNPCompl | NoComp | VSCompl | AdvComp | CopLoc ; -- VACompl |
|
VPType = CopIdent | CopAssoc | CopDescr | CopEq | VNPCompl | NoComp | VSCompl | AdvComp | CopLoc ; -- VACompl |
|
||||||
AuxType = PartAux ; -- TODO: add SubjAux, InfAux, ConsecAux etc (p327)
|
AuxType = PartAux ; -- TODO: add SubjAux, InfAux, ConsecAux etc (p327)
|
||||||
AType = AdjType | RelType ;
|
AType = AdjType | RelType ;
|
||||||
|
LocAdvType = KwaAdv | NaAdv ;
|
||||||
|
|
||||||
AForm = AF1 | AF2 | AF3 ; -- two forms for implementing sound changes Poulos+Msimang p143, one for monosyllabic
|
AForm = AF1 | AF2 | AF3 ; -- two forms for implementing sound changes Poulos+Msimang p143, one for monosyllabic
|
||||||
SCForm = SC | SCVow | SCNeg | SCNegVow | SCPS | SCPart | SCVowP | SCBe | SCRP ;
|
SCForm = SC | SCVow | SCNeg | SCNegVow | SCPS | SCPart | SCVowP | SCBe | SCRP ;
|
||||||
@@ -265,10 +266,11 @@ resource ResZul = open Prelude,Predef,ParamX in {
|
|||||||
R_ile => case root of {
|
R_ile => case root of {
|
||||||
_+"el" => root ++BIND++ "e" ;
|
_+"el" => root ++BIND++ "e" ;
|
||||||
_+"al" => (tk 2 root) + "el" ++BIND++ "e" ;
|
_+"al" => (tk 2 root) + "el" ++BIND++ "e" ;
|
||||||
|
_+"an" => (tk 2 root) + "en" ++BIND++ "e" ;
|
||||||
_ => root ++BIND++ "ile"
|
_ => root ++BIND++ "ile"
|
||||||
} ;
|
} ;
|
||||||
R_e => case root of {
|
R_e => case root of {
|
||||||
_+"al" => (tk 2 root) + "el" ++BIND++ "e" ;
|
_+"an" => (tk 2 root) + "en" ++BIND++ "e" ;
|
||||||
_ => root ++BIND++ "e"
|
_ => root ++BIND++ "e"
|
||||||
} ;
|
} ;
|
||||||
R_i => root ++BIND++ "i" ;
|
R_i => root ++BIND++ "i" ;
|
||||||
@@ -1656,48 +1658,48 @@ resource ResZul = open Prelude,Predef,ParamX in {
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
poss_concord_c1a : ClassGender => Number => RInit => Str =
|
poss_concord_c1a : ClassGender => Number => Str =
|
||||||
table {
|
table {
|
||||||
C1_2 => table {
|
C1_2 => table {
|
||||||
Sg => table {(RA|RC) => "ka" ; (RE|RI) => "ke" ; (RO|RU) => "ko" } ;
|
Sg => "ka" ;
|
||||||
Pl => table {(RA|RC) => "baka" ; (RE|RI) => "bake" ; (RO|RU) => "bako" }
|
Pl => "baka"
|
||||||
} ;
|
} ;
|
||||||
C1a_2a => table {
|
C1a_2a => table {
|
||||||
Sg => table {(RA|RC) => "ka" ; (RE|RI) => "ke" ; (RO|RU) => "ko" } ;
|
Sg => "ka" ;
|
||||||
Pl => table {(RA|RC) => "baka" ; (RE|RI) => "bake" ; (RO|RU) => "bako" }
|
Pl => "baka"
|
||||||
} ;
|
} ;
|
||||||
C3_4 => table {
|
C3_4 => table {
|
||||||
Sg => table {(RA|RC) => "ka" ; (RE|RI) => "ke" ; (RO|RU) => "ko" } ;
|
Sg => "ka" ;
|
||||||
Pl => table {(RA|RC) => "ka" ; (RE|RI) => "ke" ; (RO|RU) => "ko" }
|
Pl => "ka"
|
||||||
} ;
|
} ;
|
||||||
C5_6 => table {
|
C5_6 => table {
|
||||||
Sg => table {(RA|RC) => "lika" ; (RE|RI) => "like" ; (RO|RU) => "liko" } ;
|
Sg => "lika" ;
|
||||||
Pl => table {(RA|RC) => "ka" ; (RE|RI) => "ke" ; (RO|RU) => "ko" }
|
Pl => "ka"
|
||||||
} ;
|
} ;
|
||||||
C7_8 => table {
|
C7_8 => table {
|
||||||
Sg => table {(RA|RC) => "sika" ; (RE|RI) => "sike" ; (RO|RU) => "siko" } ;
|
Sg => "sika" ;
|
||||||
Pl => table {(RA|RC) => "zika" ; (RE|RI) => "zike" ; (RO|RU) => "ziko" }
|
Pl => "zika"
|
||||||
} ;
|
} ;
|
||||||
C9_10 => table {
|
C9_10 => table {
|
||||||
Sg => table {(RA|RC) => "ka" ; (RE|RI) => "ke" ; (RO|RU) => "ko" } ;
|
Sg => "ka" ;
|
||||||
Pl => table {(RA|RC) => "zika" ; (RE|RI) => "zike" ; (RO|RU) => "ziko" }
|
Pl => "zika"
|
||||||
} ;
|
} ;
|
||||||
C11_10 => table {
|
C11_10 => table {
|
||||||
Sg => table {(RA|RC) => "luka" ; (RE|RI) => "luke" ; (RO|RU) => "luko" } ;
|
Sg => "luka" ;
|
||||||
Pl => table {(RA|RC) => "zika" ; (RE|RI) => "zike" ; (RO|RU) => "ziko" }
|
Pl => "zika"
|
||||||
} ;
|
} ;
|
||||||
C9_6 => table {
|
C9_6 => table {
|
||||||
Sg => table {(RA|RC) => "ka" ; (RE|RI) => "ke" ; (RO|RU) => "ko" } ;
|
Sg => "ka" ;
|
||||||
Pl => table {(RA|RC) => "ka" ; (RE|RI) => "ke" ; (RO|RU) => "ko" }
|
Pl => "ka"
|
||||||
} ;
|
} ;
|
||||||
C14 => table {
|
C14 => table {
|
||||||
_ => table {(RA|RC) => "buka" ; (RE|RI) => "buke" ; (RO|RU) => "buko" }
|
_ => "buka"
|
||||||
} ;
|
} ;
|
||||||
C15 => table {
|
C15 => table {
|
||||||
_ => table {(RA|RC) => "kuka" ; (RE|RI) => "kuke" ; (RO|RU) => "kuko" }
|
_ => "kuka"
|
||||||
} ;
|
} ;
|
||||||
C17 => table {
|
C17 => table {
|
||||||
_ => table {(RA|RC) => "kuka" ; (RE|RI) => "kuke" ; (RO|RU) => "kuko" }
|
_ => "kuka"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -26,37 +26,52 @@ concrete SentenceZul of Sentence = CatZul ** open Prelude,ResZul,ParamX in {
|
|||||||
|
|
||||||
-- PredSCVP sc vp = mkClause sc.s (agrP3 Sg) vp ;
|
-- PredSCVP sc vp = mkClause sc.s (agrP3 Sg) vp ;
|
||||||
|
|
||||||
ImpVP vp = let
|
-- ImpVP vp = let
|
||||||
np = {
|
-- np = {
|
||||||
empty = [] ;
|
-- empty = [] ;
|
||||||
s = table {NFull|NReduced|NPoss|NLoc => []} ;
|
-- s = table {NFull|NReduced|NPoss|NLoc => []} ;
|
||||||
-- loc = [] ;
|
-- -- loc = [] ;
|
||||||
-- desc = [] ;
|
-- -- desc = [] ;
|
||||||
-- det = [] ;
|
-- -- det = [] ;
|
||||||
agr = Second Sg ;
|
-- agr = Second Sg ;
|
||||||
i = nominit!(Second Sg) ;
|
-- i = nominit!(Second Sg) ;
|
||||||
proDrop = True ;
|
-- proDrop = True ;
|
||||||
isPron = True ;
|
-- isPron = True ;
|
||||||
heavy = False
|
-- heavy = False
|
||||||
-- reqLocS = True ;
|
-- -- reqLocS = True ;
|
||||||
-- qdef = Article Spec
|
-- -- qdef = Article Spec
|
||||||
} ;
|
-- } ;
|
||||||
impTense = PresTense
|
-- impTense = PresTense
|
||||||
in case vp.vptype of {
|
-- in case vp.vptype of {
|
||||||
VNPCompl => {
|
-- NoComp => let
|
||||||
s = table {
|
-- yi = case vp.syl of {
|
||||||
Pos => vp.s!MainCl!np.agr!Pos!impTense!False ++ vp.comp ++ vp.iadv ++ vp.advs ;
|
-- SylMono => "yi"++BIND ;
|
||||||
Neg => "unga" ++ vp.s!MainCl!np.agr!Neg!impTense!False ++ vp.comp ++ vp.iadv ++ vp.advs
|
-- _ => []
|
||||||
}
|
-- }
|
||||||
} ;
|
-- in {
|
||||||
|
-- s = table {
|
||||||
|
-- Pos => yi ++ vp.s!MainCl!np.agr!Pos!impTense!False ++ vp.comp ++ vp.iadv ++ vp.advs ;
|
||||||
|
-- Neg => "unga" ++ vp.s!MainCl!np.agr!Neg!impTense!False ++ vp.comp ++ vp.iadv ++ vp.advs
|
||||||
|
-- }
|
||||||
|
-- } ;
|
||||||
|
-- VNPCompl => {
|
||||||
|
-- s = table {
|
||||||
|
-- Pos => vp.s!MainCl!np.agr!Pos!impTense!False ++ vp.comp ++ vp.iadv ++ vp.advs ;
|
||||||
|
-- Neg => "unga" ++ vp.s!MainCl!np.agr!Neg!impTense!False ++ vp.comp ++ vp.iadv ++ vp.advs
|
||||||
|
-- }
|
||||||
|
-- } ;
|
||||||
|
--
|
||||||
|
-- CopIdent => {s = \\pol => (comp_pred np vp).s!pol!impTense } ;
|
||||||
|
-- CopAssoc => {s = \\pol => (comp_pred np vp).s!pol!impTense } ;
|
||||||
|
-- CopDescr => {s = \\pol => (comp_pred np vp).s!pol!impTense } ;
|
||||||
|
-- CopEq => {s = \\pol => (cl_with_eq_cop_predicate np vp).s!pol!impTense } ;
|
||||||
|
-- -- VACompl => {s = \\pol => (cl_with_ap_comp_predicate np vp).s!pol!impTense!Princ } ;
|
||||||
|
-- AdvComp => {s = \\pol => (cl_with_adv_comp_predicate np vp).s!pol!impTense } ;
|
||||||
|
-- _ => {s = \\pol => (imp_verb_predicate np vp).s!pol!impTense }
|
||||||
|
-- } ;
|
||||||
|
|
||||||
CopIdent => {s = \\pol => (comp_pred np vp).s!pol!impTense } ;
|
ImpVP vp = {
|
||||||
CopAssoc => {s = \\pol => (comp_pred np vp).s!pol!impTense } ;
|
s = \\n,p => vp.imp_s!n!p ++ vp.comp ++ vp.iadv ++ vp.advs
|
||||||
CopDescr => {s = \\pol => (comp_pred np vp).s!pol!impTense } ;
|
|
||||||
CopEq => {s = \\pol => (cl_with_eq_cop_predicate np vp).s!pol!impTense } ;
|
|
||||||
-- VACompl => {s = \\pol => (cl_with_ap_comp_predicate np vp).s!pol!impTense!Princ } ;
|
|
||||||
AdvComp => {s = \\pol => (cl_with_adv_comp_predicate np vp).s!pol!impTense } ;
|
|
||||||
_ => {s = \\pol => (imp_verb_predicate np vp).s!pol!impTense }
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- SlashVP np vp =
|
-- SlashVP np vp =
|
||||||
@@ -189,8 +204,6 @@ concrete SentenceZul of Sentence = CatZul ** open Prelude,ResZul,ParamX in {
|
|||||||
|
|
||||||
<_,_,PresTense,RC> => False ;
|
<_,_,PresTense,RC> => False ;
|
||||||
<_,_,PresTense,_> => True ;
|
<_,_,PresTense,_> => True ;
|
||||||
-- <_,Pos,PerfTense,RC> => False ;
|
|
||||||
-- <_,Pos,PerfTense,_> => True ;
|
|
||||||
<_,_,PastTense,RC> => False ;
|
<_,_,PastTense,RC> => False ;
|
||||||
<_,_,PastTense,_> => True ;
|
<_,_,PastTense,_> => True ;
|
||||||
<_,_,RemPastTense,RC> => False ;
|
<_,_,RemPastTense,RC> => False ;
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ concrete StructuralZul of Structural = CatZul **
|
|||||||
|
|
||||||
-- VV
|
-- VV
|
||||||
-- can8know_VV
|
-- can8know_VV
|
||||||
-- can_VV
|
can_VV = lin VV (mkV "yakwaz" "yakwazi") ;
|
||||||
-- must_VV
|
-- must_VV
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,22 @@ concrete VerbExtZul of VerbExt = CatZul,CatExtZul ** open ResZul, Prelude, Param
|
|||||||
rcp ++ pcp ++ cop_base
|
rcp ++ pcp ++ cop_base
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
imp_s = let
|
||||||
|
imp_vform = VFIndic MainCl Pos PresTense
|
||||||
|
in table {
|
||||||
|
Sg => let
|
||||||
|
agr = (Second Sg)
|
||||||
|
in table {
|
||||||
|
Pos => "yiba" ++ ap.s!AF1 ;
|
||||||
|
Neg => "ungabi" ++ ap.s!AF1
|
||||||
|
} ;
|
||||||
|
Pl => let
|
||||||
|
agr = (Second Pl)
|
||||||
|
in table {
|
||||||
|
Pos => "yibani" ++ ap.s!AF1 ;
|
||||||
|
Neg => "ningabi" ++ ap.s!AF1
|
||||||
|
}
|
||||||
|
} ;
|
||||||
comp, iadv, advs = [] ;
|
comp, iadv, advs = [] ;
|
||||||
hasComp = True ;
|
hasComp = True ;
|
||||||
r = RC ; -- should not be used
|
r = RC ; -- should not be used
|
||||||
@@ -62,6 +78,16 @@ concrete VerbExtZul of VerbExt = CatZul,CatExtZul ** open ResZul, Prelude, Param
|
|||||||
in
|
in
|
||||||
rcp ++ pcp ++ cp ++ cop_base
|
rcp ++ pcp ++ cp ++ cop_base
|
||||||
} ;
|
} ;
|
||||||
|
imp_s = table {
|
||||||
|
Sg => table {
|
||||||
|
Pos => "yiba" ++ (id_cop_pref np.agr) ++ np.s!NFull ;
|
||||||
|
Neg => "ungabi" ++ (id_cop_pref np.agr) ++ np.s!NFull
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
Pos => "yibani" ++ (id_cop_pref np.agr) ++ np.s!NFull ;
|
||||||
|
Neg => "ningabi" ++ (id_cop_pref np.agr) ++ np.s!NFull
|
||||||
|
}
|
||||||
|
} ;
|
||||||
comp, iadv, advs = [] ;
|
comp, iadv, advs = [] ;
|
||||||
hasComp = np.heavy ;
|
hasComp = np.heavy ;
|
||||||
r = RC ; -- should not be used
|
r = RC ; -- should not be used
|
||||||
@@ -87,6 +113,18 @@ concrete VerbExtZul of VerbExt = CatZul,CatExtZul ** open ResZul, Prelude, Param
|
|||||||
in
|
in
|
||||||
rcp ++ pcp ++ cp ++ cop_base
|
rcp ++ pcp ++ cp ++ cop_base
|
||||||
} ;
|
} ;
|
||||||
|
imp_s = let
|
||||||
|
cop = (assoc_cop_pref Pos np.agr) ++ np.s!NReduced
|
||||||
|
in table {
|
||||||
|
Sg => table {
|
||||||
|
Pos => "yiba" ++ cop ;
|
||||||
|
Neg => "ungabi" ++ cop
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
Pos => "yibani" ++ cop ;
|
||||||
|
Neg => "ningabi" ++ cop
|
||||||
|
}
|
||||||
|
} ;
|
||||||
comp, iadv, advs = [] ;
|
comp, iadv, advs = [] ;
|
||||||
hasComp = np.heavy ;
|
hasComp = np.heavy ;
|
||||||
r = RC ; -- should not be used
|
r = RC ; -- should not be used
|
||||||
@@ -94,16 +132,22 @@ concrete VerbExtZul of VerbExt = CatZul,CatExtZul ** open ResZul, Prelude, Param
|
|||||||
vptype = CopAssoc
|
vptype = CopAssoc
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ComplV2Nonspec v2 np = {
|
ComplV2Nonspec v2 np = let
|
||||||
|
oc = objConc np.agr v2.r v2.syl ;
|
||||||
|
longform = case np.heavy of {
|
||||||
|
True => False ;
|
||||||
|
False => True
|
||||||
|
}
|
||||||
|
in {
|
||||||
s = table {
|
s = table {
|
||||||
MainCl => \\a,p,t,l => let
|
MainCl => \\a,p,t,l => let
|
||||||
vform = VFIndic MainCl p t ;
|
vform = VFIndic MainCl p t ;
|
||||||
tp = tensePref vform v2.r v2.syl ;
|
tp = tensePref vform v2.r v2.syl ;
|
||||||
oc = objConc np.agr v2.r v2.syl ;
|
-- oc = objConc np.agr v2.r v2.syl ;
|
||||||
longform = case np.heavy of {
|
-- longform = case np.heavy of {
|
||||||
True => False ;
|
-- True => False ;
|
||||||
False => True
|
-- False => True
|
||||||
} ;
|
-- } ;
|
||||||
r = v2.s!(rform (VFIndic MainCl p t) longform) ;
|
r = v2.s!(rform (VFIndic MainCl p t) longform) ;
|
||||||
obj = case p of {
|
obj = case p of {
|
||||||
Pos => np.s!NFull ;
|
Pos => np.s!NFull ;
|
||||||
@@ -117,11 +161,11 @@ concrete VerbExtZul of VerbExt = CatZul,CatExtZul ** open ResZul, Prelude, Param
|
|||||||
vform = (VFIndic RelCl p t) ;
|
vform = (VFIndic RelCl p t) ;
|
||||||
rc = relConc vform a v2.r ;
|
rc = relConc vform a v2.r ;
|
||||||
tp = tensePref vform v2.r v2.syl ;
|
tp = tensePref vform v2.r v2.syl ;
|
||||||
oc = objConc np.agr v2.r v2.syl ;
|
-- oc = objConc np.agr v2.r v2.syl ;
|
||||||
longform = case np.heavy of {
|
-- longform = case np.heavy of {
|
||||||
True => False ;
|
-- True => False ;
|
||||||
False => True
|
-- False => True
|
||||||
} ;
|
-- } ;
|
||||||
r = v2.s!(rform vform longform) ;
|
r = v2.s!(rform vform longform) ;
|
||||||
obj = case p of {
|
obj = case p of {
|
||||||
Pos => np.s!NFull ;
|
Pos => np.s!NFull ;
|
||||||
@@ -132,6 +176,31 @@ concrete VerbExtZul of VerbExt = CatZul,CatExtZul ** open ResZul, Prelude, Param
|
|||||||
False => rc ++ tp ++ r ++ obj
|
False => rc ++ tp ++ r ++ obj
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
imp_s = let
|
||||||
|
obj_full = np.s!NFull ;
|
||||||
|
obj_red = np.s!NReduced
|
||||||
|
in table {
|
||||||
|
Sg => table {
|
||||||
|
Pos => case np.proDrop of {
|
||||||
|
True => oc ++ v2.s!R_e ++ obj_full ;
|
||||||
|
False => v2.s!R_a ++ obj_full
|
||||||
|
} ;
|
||||||
|
Neg => case np.proDrop of {
|
||||||
|
True => "unga" ++BIND++ oc ++ v2.s!R_i ++ obj_red ;
|
||||||
|
False => "unga" ++BIND++ v2.s!R_i ++ obj_red
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
Pos => case np.proDrop of {
|
||||||
|
True => oc ++ v2.s!R_e ++BIND++"ni" ++ obj_full ;
|
||||||
|
False => v2.s!R_a ++BIND++"ni" ++ obj_full
|
||||||
|
} ;
|
||||||
|
Neg => case np.proDrop of {
|
||||||
|
True => "ninga" ++BIND++ oc ++ v2.s!R_i ++ obj_red ;
|
||||||
|
False => "ninga" ++BIND++ v2.s!R_i ++ obj_red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} ;
|
||||||
iadv, advs, comp = [] ;
|
iadv, advs, comp = [] ;
|
||||||
ap_comp = \\_ => [] ;
|
ap_comp = \\_ => [] ;
|
||||||
hasComp = np.heavy ;
|
hasComp = np.heavy ;
|
||||||
@@ -142,6 +211,7 @@ concrete VerbExtZul of VerbExt = CatZul,CatExtZul ** open ResZul, Prelude, Param
|
|||||||
|
|
||||||
CopLoc loc = {
|
CopLoc loc = {
|
||||||
s = \\c,a,p,t,l => loc.s!c!a!p!t ;
|
s = \\c,a,p,t,l => loc.s!c!a!p!t ;
|
||||||
|
imp_s = loc.imp_s ;
|
||||||
comp,advs,iadv = [] ;
|
comp,advs,iadv = [] ;
|
||||||
hasComp = True ;
|
hasComp = True ;
|
||||||
r = RC ;
|
r = RC ;
|
||||||
@@ -190,6 +260,22 @@ concrete VerbExtZul of VerbExt = CatZul,CatExtZul ** open ResZul, Prelude, Param
|
|||||||
in
|
in
|
||||||
rcp ++ pcp ++ cop_base
|
rcp ++ pcp ++ cop_base
|
||||||
} ;
|
} ;
|
||||||
|
imp_s = let
|
||||||
|
imp_vform = VFIndic MainCl Pos PresTense
|
||||||
|
in table {
|
||||||
|
Sg => let
|
||||||
|
agr = (Second Sg)
|
||||||
|
in table {
|
||||||
|
Pos => "yiba" ++ qs.s!agr ;
|
||||||
|
Neg => "ungabi" ++ qs.s!agr
|
||||||
|
} ;
|
||||||
|
Pl => let
|
||||||
|
agr = (Second Pl)
|
||||||
|
in table {
|
||||||
|
Pos => "yibani" ++ qs.s!agr ;
|
||||||
|
Neg => "ningabi" ++ qs.s!agr
|
||||||
|
}
|
||||||
|
} ;
|
||||||
comp, iadv, advs = [] ;
|
comp, iadv, advs = [] ;
|
||||||
hasComp = True ;
|
hasComp = True ;
|
||||||
r = RC ; -- should not be used
|
r = RC ; -- should not be used
|
||||||
|
|||||||
@@ -22,6 +22,22 @@ concrete VerbZul of Verb = CatZul ** open ResZul, Prelude, ParamX in {
|
|||||||
} ;
|
} ;
|
||||||
in rc ++ tp ++ r ++ suf
|
in rc ++ tp ++ r ++ suf
|
||||||
} ;
|
} ;
|
||||||
|
imp_s = table {
|
||||||
|
Sg => table {
|
||||||
|
Pos => case v.syl of {
|
||||||
|
SylMono => "yi"++BIND++v.s!R_a ;
|
||||||
|
SylMult => v.s!R_a
|
||||||
|
} ;
|
||||||
|
Neg => "unga" ++BIND++ v.s!R_i
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
Pos => case v.syl of {
|
||||||
|
SylMono => "yi"++BIND++v.s!R_a ++BIND++"ni" ;
|
||||||
|
SylMult => v.s!R_a ++BIND++"ni"
|
||||||
|
} ;
|
||||||
|
Neg => "ninga" ++BIND++ v.s!R_i
|
||||||
|
}
|
||||||
|
} ;
|
||||||
iadv, advs, comp = [] ;
|
iadv, advs, comp = [] ;
|
||||||
-- ap_comp = \\_ => [] ;
|
-- ap_comp = \\_ => [] ;
|
||||||
hasComp = False ;
|
hasComp = False ;
|
||||||
@@ -30,7 +46,48 @@ concrete VerbZul of Verb = CatZul ** open ResZul, Prelude, ParamX in {
|
|||||||
vptype = NoComp
|
vptype = NoComp
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- ComplVV v vp = insertObj (\\a => infVP v.typ vp False Simul CPos a) (predVV v) ; ---- insertExtra?
|
ComplVV v vp = {
|
||||||
|
s = table {
|
||||||
|
MainCl => \\a,p,t,l => let
|
||||||
|
vform = VFIndic MainCl p t ;
|
||||||
|
tp = tensePref vform v.r v.syl ; -- [] / zo- / zuku-
|
||||||
|
r = v.s!(rform (VFIndic MainCl p t) l) -- hamba
|
||||||
|
-- rest of verb prefix built later (eg no "ya" with certain question words)
|
||||||
|
in tp ++ r ++ "uku" ++ BIND ++ vp.s!MainCl!(First Sg)!Pos!PresTense!False ;
|
||||||
|
RelCl => \\a,p,t,l => let
|
||||||
|
vform = VFIndic RelCl p t ;
|
||||||
|
rc = relConc vform a v.r ; -- o-
|
||||||
|
tp = tensePref vform v.r v.syl ; -- [] / zo- / zuku-
|
||||||
|
r = v.s!(rform vform l) ; -- hamba
|
||||||
|
suf = case l of {
|
||||||
|
True => relSuf vform ;
|
||||||
|
False => []
|
||||||
|
} ;
|
||||||
|
in rc ++ tp ++ r ++ "uku" ++ BIND ++ vp.s!MainCl!(First Sg)!Pos!PresTense!False
|
||||||
|
} ;
|
||||||
|
imp_s = table {
|
||||||
|
Sg => table {
|
||||||
|
Pos => case v.syl of {
|
||||||
|
SylMono => "yi"++BIND++v.s!R_a ++ "uku" ++ BIND ++ vp.s!MainCl!(First Sg)!Pos!PresTense!False ;
|
||||||
|
SylMult => v.s!R_a
|
||||||
|
} ;
|
||||||
|
Neg => "unga" ++BIND++ v.s!R_i ++ "uku" ++ BIND ++ vp.s!MainCl!(First Sg)!Pos!PresTense!False
|
||||||
|
} ;
|
||||||
|
Pl => table {
|
||||||
|
Pos => case v.syl of {
|
||||||
|
SylMono => "yi"++BIND++v.s!R_a ++BIND++"ni" ++ "uku" ++ BIND ++ vp.s!MainCl!(First Sg)!Pos!PresTense!False ;
|
||||||
|
SylMult => v.s!R_a ++BIND++"ni" ++ "uku" ++ BIND ++ vp.s!MainCl!(First Sg)!Pos!PresTense!False
|
||||||
|
} ;
|
||||||
|
Neg => "ninga" ++BIND++ v.s!R_i ++ "uku" ++ BIND ++ vp.s!MainCl!(First Sg)!Pos!PresTense!False
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
iadv, advs, comp = [] ;
|
||||||
|
-- ap_comp = \\_ => [] ;
|
||||||
|
hasComp = True ;
|
||||||
|
r = v.r ;
|
||||||
|
syl = v.syl ;
|
||||||
|
vptype = VNPCompl
|
||||||
|
} ;
|
||||||
|
|
||||||
-- ComplVS vs s = vs ** {
|
-- ComplVS vs s = vs ** {
|
||||||
-- -- s = vs.s ;
|
-- -- s = vs.s ;
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ abstract CatExt = {
|
|||||||
cat
|
cat
|
||||||
Loc ;
|
Loc ;
|
||||||
LocN ;
|
LocN ;
|
||||||
|
LocAdv ;
|
||||||
QuantStem ;
|
QuantStem ;
|
||||||
RelStem ;
|
RelStem ;
|
||||||
VAux ;
|
VAux ;
|
||||||
|
|||||||
@@ -30,19 +30,29 @@ abstract ExtraExt =
|
|||||||
-- PossPronZul : CN -> Pron -> CN ; -- of you (yours)
|
-- PossPronZul : CN -> Pron -> CN ; -- of you (yours)
|
||||||
-- RelV : CN -> V -> Temp -> Pol -> CN ; -- lights that flash
|
-- RelV : CN -> V -> Temp -> Pol -> CN ; -- lights that flash
|
||||||
|
|
||||||
PossLocNP : LocN -> NP -> CN ;
|
-- PossLocNP : LocN -> NP -> CN ;
|
||||||
PossNPLoc : CN -> NP -> CN ; -- zasepulazini
|
PossNPLoc : CN -> NP -> CN ; -- zasepulazini
|
||||||
|
|
||||||
InstrNPAdv : NP -> Adv ; -- ngokuhlinzwa
|
InstrNPAdv : NP -> Adv ; -- ngokuhlinzwa
|
||||||
InstrAdvNPAdv : Adv -> NP -> Adv ; -- cishe ngehora
|
InstrAdvNPAdv : Adv -> NP -> Adv ; -- cishe ngehora
|
||||||
LocNPAdv : NP -> Adv ; -- emahoreni
|
|
||||||
LocAdvNPAdv : Adv -> NP -> Adv ; -- cishe emahoreni
|
LocAdvNPAdv : Adv -> NP -> Adv ; -- cishe emahoreni amabili
|
||||||
KwaNPAdv : NP -> Adv ; -- kwa-Laurette
|
KwaNPAdv : NP -> Adv ; -- kwa-Laurette
|
||||||
-- KwaAdvNPAdv : Adv -> NP -> Adv ; -- ngaphezu kwamahora amabili adlule
|
-- KwaAdvNPAdv : LocAdv -> NP -> Adv ; -- ngaphezu kwamahora amabili adlule
|
||||||
KuNPAdv : NP -> Adv ; -- kwixesha [elingangeyure enye egqithileyo]
|
KuNPAdv : NP -> Adv ; -- kwixesha [elingangeyure enye egqithileyo]
|
||||||
KuAdvNPAdv : Adv -> NP -> Adv ; -- ngaphezu kwamahora amabili adlule
|
KuAdvNPAdv : Adv -> NP -> Adv ; -- ngaphezu kwamahora amabili adlule
|
||||||
NaNPAdv : NP -> Adv ;
|
NaNPAdv : NP -> Adv ;
|
||||||
|
|
||||||
|
-- LocNAdv : LocN -> Adv ; -- phansi kwetafula
|
||||||
|
|
||||||
|
LocAdvAdv : LocAdv -> Adv ;
|
||||||
|
LocAdvNP : LocAdv -> NP -> LocAdv ; -- ngaphezu kwamahora amabili adlule
|
||||||
|
LocNAdv : LocN -> LocAdv ;
|
||||||
|
LocNNgaAdv : LocN -> LocAdv ;
|
||||||
|
LocNPAdv : NP -> LocAdv ; -- emahoreni
|
||||||
|
|
||||||
|
NPAdv : NP -> Adv ; -- sonke lesi sikhathi
|
||||||
|
|
||||||
-- InstrAdvNP : NP -> NP -> NP ; -- questions about your pregnancy
|
-- InstrAdvNP : NP -> NP -> NP ; -- questions about your pregnancy
|
||||||
|
|
||||||
-- RelAdv : Adv -> RS ;
|
-- RelAdv : Adv -> RS ;
|
||||||
@@ -125,6 +135,10 @@ abstract ExtraExt =
|
|||||||
phakade_LocN : LocN ;
|
phakade_LocN : LocN ;
|
||||||
phezulu_LocN : LocN ;
|
phezulu_LocN : LocN ;
|
||||||
|
|
||||||
|
ngemuva_LocAdv : LocAdv ;
|
||||||
|
emuva_LocAdv : LocAdv ;
|
||||||
|
ecaleni_LocAdv : LocAdv ;
|
||||||
|
|
||||||
lapha_Loc : Loc ;
|
lapha_Loc : Loc ;
|
||||||
khona_Loc : Loc ;
|
khona_Loc : Loc ;
|
||||||
|
|
||||||
@@ -134,6 +148,9 @@ abstract ExtraExt =
|
|||||||
|
|
||||||
with_Conj : Conj ;
|
with_Conj : Conj ;
|
||||||
|
|
||||||
|
want_VV : VV ;
|
||||||
|
prepare_to_VV : VV ;
|
||||||
|
|
||||||
-- Deverb15 : V -> N ;
|
-- Deverb15 : V -> N ;
|
||||||
|
|
||||||
-- AdvQS : IAdv -> S -> QS ; -- maybe it is a pain that burns 2020-01-15: consider that this should rather be dealt with using QuestIAdv)
|
-- AdvQS : IAdv -> S -> QS ; -- maybe it is a pain that burns 2020-01-15: consider that this should rather be dealt with using QuestIAdv)
|
||||||
|
|||||||
@@ -38,10 +38,15 @@ abstract NounExt = Cat,CatExt ** {
|
|||||||
|
|
||||||
UsePNPl : PN -> NP ;
|
UsePNPl : PN -> NP ;
|
||||||
|
|
||||||
Deverb15 : V -> N ;
|
Deverb15 : Pol -> VP -> NP ;
|
||||||
|
-- DeverbV215 : Pol -> V2 -> NP -> NP ;
|
||||||
|
|
||||||
LocNP : NP -> Loc ;
|
-- LocNP : NP -> Loc ;
|
||||||
|
|
||||||
LocNLoc : LocN -> Loc ;
|
-- LocNLoc : LocN -> Loc ;
|
||||||
|
|
||||||
|
-- LocNPossNP : LocN -> NP -> LocN ;
|
||||||
|
|
||||||
|
LocAdvLoc : LocAdv -> Loc ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ cat
|
|||||||
Chunk_S ;
|
Chunk_S ;
|
||||||
Chunk_RS ;
|
Chunk_RS ;
|
||||||
Chunk_QS ;
|
Chunk_QS ;
|
||||||
|
Chunk_VP ;
|
||||||
Chunk_CN ;
|
Chunk_CN ;
|
||||||
Chunk_NP ;
|
Chunk_NP ;
|
||||||
Chunk_N ;
|
Chunk_N ;
|
||||||
@@ -30,6 +31,7 @@ fun
|
|||||||
S_Chunker : Chunk_S -> Chunk ;
|
S_Chunker : Chunk_S -> Chunk ;
|
||||||
RS_Chunker : Chunk_RS -> Chunk ;
|
RS_Chunker : Chunk_RS -> Chunk ;
|
||||||
QS_Chunker : Chunk_QS -> Chunk ;
|
QS_Chunker : Chunk_QS -> Chunk ;
|
||||||
|
VP_Chunker : Chunk_VP -> Chunk ;
|
||||||
CN_Chunker : Chunk_CN -> Chunk ;
|
CN_Chunker : Chunk_CN -> Chunk ;
|
||||||
NP_Chunker : Chunk_NP -> Chunk ;
|
NP_Chunker : Chunk_NP -> Chunk ;
|
||||||
N_Chunker : Chunk_N -> Chunk ;
|
N_Chunker : Chunk_N -> Chunk ;
|
||||||
@@ -38,18 +40,22 @@ fun
|
|||||||
Symb_Chunker : Chunk_Symb -> Chunk ;
|
Symb_Chunker : Chunk_Symb -> Chunk ;
|
||||||
|
|
||||||
Phr_Chunk : Phr -> Chunk_Phr ;
|
Phr_Chunk : Phr -> Chunk_Phr ;
|
||||||
-- AP_Chunk : AP -> Chunk_AP ;
|
AP_Chunk : AP -> Chunk_AP ;
|
||||||
Adv_Chunk : Adv -> Chunk_Adv ;
|
Adv_Chunk : Adv -> Chunk_Adv ;
|
||||||
Imp_Chunk : Imp -> Chunk_Imp ;
|
Imp_Chunk : Imp -> Chunk_Imp ;
|
||||||
S_Chunk : S -> Chunk_S ;
|
S_Chunk : S -> Chunk_S ;
|
||||||
RS_Chunk : RS -> Chunk_RS ;
|
RS_Chunk : Pron -> RS -> Chunk_RS ;
|
||||||
QS_Chunk : QS -> Chunk_QS ;
|
QS_Chunk : QS -> Chunk_QS ;
|
||||||
|
VP_RelYo_Chunk : Temp -> Pol -> Pron -> VP -> Chunk_VP ;
|
||||||
|
VP_Rel_Chunk : Temp -> Pol -> Pron -> VP -> Chunk_VP ;
|
||||||
CN_Pl_Chunk : CN -> Chunk_CN ;
|
CN_Pl_Chunk : CN -> Chunk_CN ;
|
||||||
CN_Sg_Chunk : CN -> Chunk_CN ;
|
CN_Sg_Chunk : CN -> Chunk_CN ;
|
||||||
NP_Nom_Chunk : NP -> Chunk_NP ;
|
NP_Nom_Chunk : NP -> Chunk_NP ;
|
||||||
NP_Gen_Chunk : NP -> Chunk_NP ;
|
NP_Loc_Chunk : NP -> Chunk_NP ;
|
||||||
Predet_Chunk : Predet -> Chunk_Predet ;
|
NP_Gen_Chunk : Pron -> NP -> Chunk_NP ;
|
||||||
Postdet_Chunk : Postdet -> Chunk_Postdet ;
|
-- NP_Gen_Chunk : NP -> Chunk_NP ;
|
||||||
|
Predet_Chunk : Pron -> Predet -> Chunk_Predet ;
|
||||||
|
Postdet_Chunk : Pron -> Postdet -> Chunk_Postdet ;
|
||||||
-- N_Sg_Chunk : N -> Chunk_N ;
|
-- N_Sg_Chunk : N -> Chunk_N ;
|
||||||
-- N_Pl_Chunk : N -> Chunk_N ;
|
-- N_Pl_Chunk : N -> Chunk_N ;
|
||||||
|
|
||||||
|
|||||||
@@ -4,5 +4,7 @@ abstract PhraseExt = Cat,CatExt ** {
|
|||||||
|
|
||||||
-- direct speech
|
-- direct speech
|
||||||
DirectSpeech: Phr -> Temp -> V -> NP -> Phr ;
|
DirectSpeech: Phr -> Temp -> V -> NP -> Phr ;
|
||||||
|
DirectSpeechNP : NP -> Temp -> V -> NP -> Phr ;
|
||||||
|
DirectSpeechAdv : Adv -> Temp -> V -> NP -> Phr ;
|
||||||
ExtPhrConj : Phr -> Phr -> Phr ;
|
ExtPhrConj : Phr -> Phr -> Phr ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
abstract NguniGrammar =
|
abstract NguniGrammar =
|
||||||
Noun [DetCN, UsePron, DetQuant, NumSg, NumPl, UseN, AdjCN, RelCN, PossNP,UsePN, RelNP, PredetNP,AdvNP], -- MassNP,AdvCN, AdvNP,
|
Noun [DetCN, UsePron, DetQuant, NumSg, NumPl, UseN, AdjCN, RelCN, PossNP,UsePN, RelNP, PredetNP,AdvNP], -- MassNP,AdvCN, AdvNP,
|
||||||
Verb [UseV, ComplVS, ComplVA, SlashV2a, UseComp, AdvVP, CompAP, CompNP, CompAdv, ComplSlash],
|
Verb [UseV, ComplVS, ComplVA, SlashV2a, UseComp, AdvVP, CompAP, CompNP, CompAdv, ComplSlash, ComplVV],
|
||||||
Adjective [PositA, AdAP],
|
Adjective [PositA, AdAP],
|
||||||
Adverb [PositAdvAdj, SubjS],
|
Adverb [PositAdvAdj, SubjS],
|
||||||
-- Numeral,
|
-- Numeral,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
concrete NguniGrammarZul of NguniGrammar =
|
concrete NguniGrammarZul of NguniGrammar =
|
||||||
NounZul [DetCN, UsePron, DetQuant, NumSg, NumPl, UseN, AdjCN, RelCN, PossNP,UsePN, RelNP, PredetNP,AdvNP], -- MassNP, AdvCN,AdvNP,
|
NounZul [DetCN, UsePron, DetQuant, NumSg, NumPl, UseN, AdjCN, RelCN, PossNP,UsePN, RelNP, PredetNP,AdvNP], -- MassNP, AdvCN,AdvNP,
|
||||||
VerbZul [UseV, ComplVS, ComplVA, SlashV2a, UseComp, AdvVP, CompAP, CompNP, CompAdv, ComplSlash],
|
VerbZul [UseV, ComplVS, ComplVA, SlashV2a, UseComp, AdvVP, CompAP, CompNP, CompAdv, ComplSlash, ComplVV],
|
||||||
AdjectiveZul [PositA, AdAP],
|
AdjectiveZul [PositA, AdAP],
|
||||||
AdverbZul [PositAdvAdj, SubjS],
|
AdverbZul [PositAdvAdj, SubjS],
|
||||||
-- Numeral,
|
-- Numeral,
|
||||||
|
|||||||
Reference in New Issue
Block a user