diff --git a/src/zulu/CatExtZul.gf b/src/zulu/CatExtZul.gf index d4a02deb..be268c33 100755 --- a/src/zulu/CatExtZul.gf +++ b/src/zulu/CatExtZul.gf @@ -11,5 +11,6 @@ concrete CatExtZul of CatExt = open ResZul,Prelude,ParamX in { -- INAdv = { s : Str ; postIAdv : Bool } ; Postdet = { s : Agr => Str } ; + SubCl = { s : Polarity => BasicTense => Str } ; } diff --git a/src/zulu/CatZul.gf b/src/zulu/CatZul.gf index 9606929e..bcc8d0c2 100755 --- a/src/zulu/CatZul.gf +++ b/src/zulu/CatZul.gf @@ -121,7 +121,7 @@ concrete CatZul of Cat = CommonX - [Temp,Tense,Adv,IAdv] ** Num = { s: Str ; n : Number } ; -- Card = {s,sp : Bool => Case => Str ; n : Number} ; -- ACard = {s : Case => Str ; n : Number} ; - Quant = { s : Str ; dist : Distance } ; + Quant = { s : Bool => Agr => Str ; dist : Distance } ; -- Numeral diff --git a/src/zulu/ExtraExtZul.gf b/src/zulu/ExtraExtZul.gf index 26f10d22..35e68a0c 100755 --- a/src/zulu/ExtraExtZul.gf +++ b/src/zulu/ExtraExtZul.gf @@ -1,5 +1,5 @@ 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], + CatZul [NP,VP,CN,V,Temp,S,Cl,Adv,Pron,QCl,QS,A,RS,IAdv,IComp,Pol,Det,Quant,N,PN,Conj], CatExtZul ** open ResZul,Prelude,ParamX in { @@ -506,7 +506,10 @@ concrete ExtraExtZul of ExtraExt = it15_Pron = mkPron (Third C15 Sg) ; it17_Pron = mkPron (Third C17 Sg) ; - yonder_Quant = { s = [] ; dist = Dem3 } ; + yonder_Quant = { + s = \\b,a => dem_pron!Dem3!a ; + dist = Dem3 + } ; at_which_IAdv np = { s = "nga" ++BIND++ atwhichPhiPref!np.agr ++BIND++ "phi" ++ (np.s!NFull) ; @@ -570,6 +573,21 @@ concrete ExtraExtZul of ExtraExt = AdvQS adv qs = { s = adv.s ++ qs.s ; qword_pre = [] ; qword_post = [] } ; + ExtConjNP np1 conj np2 = { + s = \\nform => np1.s!nform ++ (link_conj conj np2.i) ++ np2.s!NReduced ; + agr = compAgr np1.agr np2.agr ; + i = np1.i ; + proDrop = andB np1.proDrop np2.proDrop ; + isPron = np1.isPron ; + heavy = orB np1.heavy np2.heavy ; + empty = np1.empty ++ np2.empty + } ; + + with_Conj = { + s = withPref ; + fix = True + } ; + -- Deverb15 v = -- let -- agr = Third C15 Sg ; diff --git a/src/zulu/NounExtZul.gf b/src/zulu/NounExtZul.gf index 46b35d67..03e28175 100644 --- a/src/zulu/NounExtZul.gf +++ b/src/zulu/NounExtZul.gf @@ -19,15 +19,15 @@ concrete NounExtZul of NounExt = CatZul,CatExtZul ** open ResZul, Prelude, Param } ; DemPostdet q = { - s = \\a => dem_pron!q.dist!a ++ q.s + s = \\a => q.s!True!a } ; QuantDemPostdet q d = { - s = \\a => q.s!a ++ dem_pron!d.dist!a ++ d.s + s = \\a => q.s!a ++ d.s!True!a } ; DemQuantPostdet d q = { - s = \\a => dem_pron!d.dist!a ++ q.s!a ++ d.s + s = \\a => d.s!True!a ++ q.s!a } ; DetNum n = n ; -- ** { spec = Spec } ; @@ -93,12 +93,12 @@ concrete NounExtZul of NounExt = CatZul,CatExtZul ** open ResZul, Prelude, Param } ; DemPredet q = { - s = \\a => dem_pron!q.dist!a ++ q.s ; + s = \\a => q.s!False!a ; hasDem = True } ; QuantDemPredet q d = { - s = \\a => q.s!a ++ dem_pron!d.dist!a ++ d.s ; + s = \\a => q.s!a ++ d.s!False!a ; hasDem = True } ; diff --git a/src/zulu/ResZul.gf b/src/zulu/ResZul.gf index 9cabe2fd..5d55ecc3 100755 --- a/src/zulu/ResZul.gf +++ b/src/zulu/ResZul.gf @@ -57,6 +57,7 @@ resource ResZul = open Prelude,Predef,ParamX in { #nasal_m+x => "m"+r ; #nasal_ng+x => "ng"+r ; #nasal+x => r ; + "p"+x => "mp" + x ; _ => "n"+r } ; -------------- @@ -216,6 +217,32 @@ resource ResZul = open Prelude,Predef,ParamX in { } } ; + dem_pron_na : Agr => Str = table { + First Sg => BIND++"na" ; + First Pl => [] ; + Second Sg => BIND++"na" ; + Second Pl => [] ; + Third C1_2 Sg => BIND++"na" ; + Third C1_2 Pl => [] ; + Third C1a_2a Sg => BIND++"na" ; + Third C1a_2a Pl => [] ; + Third C3_4 Sg => BIND++"na" ; + Third C3_4 Pl => BIND++"na" ; + Third C5_6 Sg => [] ; + Third C5_6 Pl => BIND++"na" ; + Third C7_8 Sg => [] ; + Third C7_8 Pl => [] ; + Third C9_10 Sg => BIND++"na" ; + Third C9_10 Pl => [] ; + Third C11_10 Sg => [] ; + Third C11_10 Pl => [] ; + Third C9_6 Sg => BIND++"na" ; + Third C9_6 Pl => BIND++"na" ; + Third C14 _ => [] ; + Third C15 _ => [] ; + Third C17 _ => [] + } ; + ----------- -- VERBS -- ----------- @@ -711,10 +738,12 @@ resource ResZul = open Prelude,Predef,ParamX in { } ; adjPref : Agr -> VForm -> Str = \agr,vform -> case vform of { - VFIndic RelCl Pos PresTense => case agr of { - (First Sg | Second Sg | Third C1_2 Sg | Third C1a_2a Sg | Third C3_4 Sg) => "m"++BIND ; - (First Pl | Second Pl | Third _ _) => [] - } ; + -- VFIndic RelCl Pos PresTense => case agr of { + -- -- (First Sg | Second Sg | Third C1_2 Sg | Third C1a_2a Sg | Third C3_4 Sg) => "m"++BIND ; + -- -- Third C3_4 Pl => "mi" ++BIND ; + -- -- (First Pl | Second Pl | Third _ _) => [] + -- relAdjPrefLookup!agr + -- } ; VFIndic _ _ _ => adjPrefLookup!agr!vform } ; @@ -863,13 +892,18 @@ resource ResZul = open Prelude,Predef,ParamX in { => "ku"+root ; => "ko"+root ; => case root of { - ("m"|"n")+_ => "e"+root ; + "m"+_ => "e"+root ; _ => "em"+root } ; => "emi"+root ; - => "e"+root ; -- ili long form (not used?) + => case root of { + "i"+_ => "e" + (last root) ; + #vowel+_ => "el" + root ; + _ => "e"+root -- ili long form (not used?) + } ; => case root of { - "i"+_ => "eme"+root ; + "i"+_ => "eme"+ (last root) ; + #vowel+_ => "em"+root ; _ => "ema"+root } ; -- ame for roots starting with i => case root of { @@ -882,8 +916,16 @@ resource ResZul = open Prelude,Predef,ParamX in { } ; => "e"+(prefix_nasal root) ; -- em for labial, en for alveolar (TODO: does this correctly split options?) => "ezi"+(prefix_nasal root) ; -- izim for labial, izin for alveolar (TODO: does this correctly split options?) - => "o"+root ; - => "ezi"+(prefix_nasal root) ; -- izim for labial, izin for alveolar, izi(n|m)k for roots starting with kh + => case root of { + #vowel+_ => "olw" + root ; + "w"+_ => "ol"+root ; + _ => "o"+root + } ; + => case root of { + #vowel+_ => "ezilw" + root ; + "w"+_ => "ezil" + root ; + _ => "ezi"+(prefix_nasal root) + } ; -- izim for labial, izin for alveolar, izi(n|m)k for roots starting with kh => "e"+(prefix_nasal root) ; -- em for labial, en for alveolar (TODO: does this correctly split options?) => case root of { "i"+_ => "eme"+root ; @@ -914,6 +956,8 @@ resource ResZul = open Prelude,Predef,ParamX in { _+"mu" => (tk 2 root) + "nyini" ; _+("a"|"e") => (init root)+"eni" ; _+"i" => (init root)+"ini" ; + _+"wu" => (init root)+"ini" ; + _+"wo" => (init root)+"eni" ; _+"o" => (init root)+"weni" ; _+"u" => (init root)+"wini" ; _ => (init root)+"ini" @@ -938,22 +982,31 @@ resource ResZul = open Prelude,Predef,ParamX in { case of { => case root of { + #vowel+_ => "um"+root ; _+#cons+#vowel+#cons+_+#vowel+_ => "um"+root ; _ => "umu"+root } ; -- umu for single syllables, um for the rest - => "aba"+root ; -- abe for tribes or guilds + => case root of { + #vowel+_ => "ab"+root ; + _ => "aba"+root -- abe for tribes or guilds + } ; => "u"+root ; => "o"+root ; => case root of { - ("m"|"n")+_+#vowel+#cons+_+#vowel+_ => "u"+root ; + "m"+_+#vowel+#cons+_+#vowel+_ => "u"+root ; _+(#cons|"y")+#vowel+#cons+_+#vowel+_ => "um"+root ; "o"+_ => "um"+root ; _ => "umu"+root } ; -- umu for single syllables, um for the rest => "imi"+root ; - => "i"+root ; -- ili long form (not used?) + => case root of { + "i"+_ => root ; + #vowel+_ => "il"+root ; + _ => "i"+root -- ili long form (not used?) + } ; => case root of { - "i"+_ => "ame"+root ; + "i"+_ => "ame"+(drop 1 root) ; + #vowel+_ => "am"+root ; _ => "ama"+root } ; -- ame for roots starting with i => case root of { @@ -966,8 +1019,16 @@ resource ResZul = open Prelude,Predef,ParamX in { } ; => "i" + prefix_nasal root ; => "izi" + prefix_nasal root ; - => "u"+root ; - => "izi" + prefix_nasal root ; + => case root of { + #vowel+_ => "ulw"+root ; + "w"+_ => "ul"+root ; + _ => "u"+root + } ; + => case root of { + #vowel+_ => "izilw"+root ; + "w"+_ => "izil"+root ; + _ => "izi" + prefix_nasal root + } ; => "i" + prefix_nasal root ; => case root of { "i"+_ => "ame"+root ; @@ -986,20 +1047,29 @@ resource ResZul = open Prelude,Predef,ParamX in { case of { => case root of { + #vowel+_ => "kum"+root ; _+#cons+#vowel+#cons+_+#vowel+_ => "kum"+root ; _ => "kumu"+root } ; -- umu for single syllables, um for the rest - => "kuba"+root ; -- abe for tribes or guilds + => case root of { + #vowel+_ => "kub"+root ; + _ => "kuba"+root -- abe for tribes or guilds + } ; => "ku"+root ; => "ko"+root ; => case root of { - ("m"|"n")+_ => "e"+(addLocSuffix root) ; + "m"+_ => "e"+(addLocSuffix root) ; _ => "em"+(addLocSuffix root) } ; => "emi"+(addLocSuffix root) ; - => "e"+(addLocSuffix root) ; -- ili long form (not used?) + => case root of { + "i"+_ => "e"+(addLocSuffix (drop 1 root)) ; + #vowel+_ => "el"+(addLocSuffix root) ; + _ => "e"+(addLocSuffix root) -- ili long form (not used?) + } ; => case root of { - "i"+_ => "eme"+(addLocSuffix root) ; + "i"+_ => "eme"+(addLocSuffix (drop 1 root)) ; + #vowel+_ => "em"+(addLocSuffix root) ; _ => "ema"+(addLocSuffix root) } ; -- ame for roots starting with i => case root of { @@ -1012,8 +1082,16 @@ resource ResZul = open Prelude,Predef,ParamX in { } ; => "e"+(addLocSuffix (prefix_nasal root)) ; -- em for labial, en for alveolar (TODO: does this correctly split options?) => "ezi"+(addLocSuffix (prefix_nasal root)) ; -- izim for labial, izin for alveolar (TODO: does this correctly split options?) - => "o"+(addLocSuffix root) ; - => "ezi"+(addLocSuffix (prefix_nasal root)) ; -- izim for labial, izin for alveolar, izi(n|m)k for roots starting with kh + => case root of { + #vowel+_ => "olw"+(addLocSuffix root) ; + "w"+_ => "ol"+(addLocSuffix root) ; + _ => "o"+(addLocSuffix root) + } ; + => case root of { + #vowel+_ => "ezilw"+(addLocSuffix root) ; + "w"+_ => "ezil"+(addLocSuffix root) ; + _ => "ezi"+(addLocSuffix (prefix_nasal root)) -- izim for labial, izin for alveolar, izi(n|m)k for roots starting with kh + } ; => "e"+(addLocSuffix (prefix_nasal root)) ; -- em for labial, en for alveolar (TODO: does this correctly split options?) => case root of { "i"+_ => "eme"+(addLocSuffix root) ; @@ -1327,7 +1405,7 @@ resource ResZul = open Prelude,Predef,ParamX in { VFIndic _ _ PastTense => relCopConcBeLookup!a ; VFIndic _ _ RemPastTense => case a of { Third C5_6 Pl => [] ; -- relConcLookup!a!RA ; -- a + aye = aye - (First _ | Second _ | Third _ _ ) => shortRelConc!a ++BIND --++ subjConcLookup!a!SCRP + (First _ | Second _ | Third _ _ ) => shortRelConc!a --++ subjConcLookup!a!SCRP } } ; @@ -1445,29 +1523,29 @@ resource ResZul = open Prelude,Predef,ParamX in { shortRelConc : Agr => Str = table { - Third C1_2 Sg => "o" ; - Third C1_2 Pl => "a" ; - Third C1a_2a Sg => "o" ; - Third C1a_2a Pl => "a" ; - Third C3_4 Sg => "o" ; - Third C3_4 Pl => "e" ; - Third C5_6 Sg => "e" ; - Third C5_6 Pl => "a" ; - Third C7_8 Sg => "e" ; - Third C7_8 Pl => "e" ; - Third C9_10 Sg => "e" ; - Third C9_10 Pl => "e" ; - Third C11_10 Sg => "o" ; - Third C11_10 Pl => "e" ; - Third C9_6 Sg => "e" ; - Third C9_6 Pl => "a" ; - Third C14 _ => "o" ; - Third C15 _ => "o" ; - Third C17 _ => "o" ; - First Sg => "e" ; - First Pl => "e" ; - Second Sg => "o" ; - Second Pl => "e" + Third C1_2 Sg => "o" ++BIND ; + Third C1_2 Pl => "a" ++BIND ; + Third C1a_2a Sg => "o" ++BIND ; + Third C1a_2a Pl => "a" ++BIND ; + Third C3_4 Sg => "o" ++BIND ; + Third C3_4 Pl => "e" ++BIND ; + Third C5_6 Sg => "e" ++BIND ; + Third C5_6 Pl => "a" ++BIND ; + Third C7_8 Sg => "e" ++BIND ; + Third C7_8 Pl => "e" ++BIND ; + Third C9_10 Sg => "e" ++BIND ; + Third C9_10 Pl => "e" ++BIND ; + Third C11_10 Sg => "o" ++BIND ; + Third C11_10 Pl => "e" ++BIND ; + Third C9_6 Sg => "e" ++BIND ; + Third C9_6 Pl => "a" ++BIND ; + Third C14 _ => "o" ++BIND ; + Third C15 _ => "o" ++BIND ; + Third C17 _ => "o" ++BIND ; + First Sg => "e" ++BIND ; + First Pl => "e" ++BIND ; + Second Sg => "o" ++BIND ; + Second Pl => "e" ++BIND } ; -- POSSESSIVE ANTECEDENT AGREEMENT MORPHEME -- @@ -1618,6 +1696,8 @@ resource ResZul = open Prelude,Predef,ParamX in { Second Pl => "no" } ; + + ----------------- -- COPULATIVES -- ----------------- @@ -1841,8 +1921,17 @@ resource ResZul = open Prelude,Predef,ParamX in { -- OTHER ---------------------------------------- - link_conj : Str -> Str -> Str -> Bool -> Str = \conj,s_full,s_novow,fix -> case fix of { - True => conj ++BIND ++ s_novow ; - False => conj ++ s_full + link_conj : { s: RInit => Str ; fix : Bool } -> RInit -> Str = \conj,rinit -> case conj.fix of { + True => conj.s!rinit ++BIND ; + False => conj.s!RC + } ; + + compAgr : Agr -> Agr -> Agr = \a1,a2 -> case of { + => First Pl ; + <(First _ | Second _ | Third _ _),First _> => First Pl ; + => Second Pl ; + <(First _ | Second _ | Third _ _),Second _> => Second Pl ; + => Third C1_2 Pl ; + => Third c Pl } ; } diff --git a/src/zulu/StructuralZul.gf b/src/zulu/StructuralZul.gf index ad0787c9..9d767419 100755 --- a/src/zulu/StructuralZul.gf +++ b/src/zulu/StructuralZul.gf @@ -129,8 +129,18 @@ concrete StructuralZul of Structural = CatZul ** -- youPol_Pron = mkPron "you" "you" "your" "yours" singular P2 human ; -- Quant (we use this category for demonstratives only) - that_Quant = { s = [] ; dist = Dem2 } ; - this_Quant = { s = [] ; dist = Dem1 } ; + that_Quant = { + s = \\b,a => dem_pron!Dem2!a ; + dist = Dem2 + } ; + -- this_Quant = { s = [] ; dist = Dem1 } ; + this_Quant = { + s = \\b,a => case b of { + False => dem_pron!Dem1!a ; + True => dem_pron!Dem1!a ++ dem_pron_na!a + } ; + dist = Dem1 + } ; -- no_Quant = mkQuant "no" "no" "none" "none" ; -- Subj diff --git a/src/zulu/VerbExtZul.gf b/src/zulu/VerbExtZul.gf index 7cda3cb2..878be714 100644 --- a/src/zulu/VerbExtZul.gf +++ b/src/zulu/VerbExtZul.gf @@ -14,7 +14,7 @@ concrete VerbExtZul of VerbExt = CatZul,CatExtZul ** open ResZul, Prelude, Param pcp ++ adjpref ++ cop_base ; RelCl => \\a,p,t,l => let vform = VFIndic RelCl p t ; - rcp = (relConcCop vform a RC) ; -- o- + rcp = shortRelConc!a ; -- o- pcp = ap_cop_pref vform a AdjType ; -- [] / -nge- / zoba / -be- / -benge- -waye- / -wayenge- adjpref = adjPref a vform ; -- m- cop_base = ap.s!(aformN a) -- khulu diff --git a/src/zulu/abstract_ext/CatExt.gf b/src/zulu/abstract_ext/CatExt.gf index 7a0e043a..fa73b8a2 100755 --- a/src/zulu/abstract_ext/CatExt.gf +++ b/src/zulu/abstract_ext/CatExt.gf @@ -11,5 +11,6 @@ abstract CatExt = { -- INAdv ; -- which/-phi? Postdet ; + SubCl ; } diff --git a/src/zulu/abstract_ext/ExtraExt.gf b/src/zulu/abstract_ext/ExtraExt.gf index 41dfc7da..3ae9381d 100755 --- a/src/zulu/abstract_ext/ExtraExt.gf +++ b/src/zulu/abstract_ext/ExtraExt.gf @@ -1,5 +1,5 @@ abstract ExtraExt = - Cat [NP,VP,CN,V,Temp,S,Cl,Adv,Pron,QCl,QS,A,RS,IAdv,IComp,Pol,Det,Quant,N,PN], + Cat [NP,VP,CN,V,Temp,S,Cl,Adv,Pron,QCl,QS,A,RS,IAdv,IComp,Pol,Det,Quant,N,PN,Conj], CatExt ** { fun @@ -126,6 +126,10 @@ abstract ExtraExt = kakhulu_Adv : Adv ; + ExtConjNP : NP -> Conj -> NP -> NP ; + + with_Conj : Conj ; + -- 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) diff --git a/src/zulu/grammar_ext/NguniGrammar.gf b/src/zulu/grammar_ext/NguniGrammar.gf index 4f2d4637..b09542b0 100755 --- a/src/zulu/grammar_ext/NguniGrammar.gf +++ b/src/zulu/grammar_ext/NguniGrammar.gf @@ -1,7 +1,7 @@ -- All functions are explicitly inherited, in order to allow useful probabilities abstract NguniGrammar = - Noun [DetCN, UsePron, DetQuant, NumSg, NumPl, IndefArt, DefArt, UseN, AdjCN, RelCN, PossNP,UsePN, RelNP, PredetNP, MassNP], -- MassNP,AdvCN, AdvNP, + Noun [DetCN, UsePron, DetQuant, NumSg, NumPl, UseN, AdjCN, RelCN, PossNP,UsePN, RelNP, PredetNP], -- MassNP,AdvCN, AdvNP, Verb [UseV, ComplVS, ComplVA, SlashV2a, UseComp, AdvVP, CompAP, CompNP, CompAdv, ComplSlash], Adjective [PositA, AdAP], Adverb [PositAdvAdj, SubjS], diff --git a/src/zulu/grammar_ext/NguniGrammarZul.gf b/src/zulu/grammar_ext/NguniGrammarZul.gf index 972b51f0..0e6b55f1 100755 --- a/src/zulu/grammar_ext/NguniGrammarZul.gf +++ b/src/zulu/grammar_ext/NguniGrammarZul.gf @@ -1,7 +1,7 @@ -- All functions are explicitly inherited, in order to allow useful probabilities concrete NguniGrammarZul of NguniGrammar = - NounZul [DetCN, UsePron, DetQuant, NumSg, NumPl, IndefArt, DefArt, UseN, AdjCN, RelCN, PossNP,UsePN, RelNP, PredetNP, MassNP], -- MassNP, AdvCN,AdvNP, + NounZul [DetCN, UsePron, DetQuant, NumSg, NumPl, UseN, AdjCN, RelCN, PossNP,UsePN, RelNP, PredetNP], -- MassNP, AdvCN,AdvNP, VerbZul [UseV, ComplVS, ComplVA, SlashV2a, UseComp, AdvVP, CompAP, CompNP, CompAdv, ComplSlash], AdjectiveZul [PositA, AdAP], AdverbZul [PositAdvAdj, SubjS], @@ -9,7 +9,7 @@ concrete NguniGrammarZul of NguniGrammar = SentenceZul [PredVP, ImpVP, UseCl, UseQCl, UseRCl], QuestionZul [QuestCl, QuestIAdv, QuestIComp], RelativeZul [RelVP, IdRP], - -- Conjunction, + -- ConjunctionZul, PhraseZul [PhrUtt, UttS, UttQS, UttImpSg, NoPConj, NoVoc], TextX - [Temp,Adv,IAdv], StructuralZul [and_Conj,how_IAdv,how8much_IAdv,i_Pron,youSg_Pron,he_Pron,she_Pron,we_Pron,youPl_Pron,they_Pron,this_Quant,that_Quant,all_Predet,only_Predet,very_AdA], diff --git a/src/zulu/lexica/MultiLex.gf b/src/zulu/lexica/MultiLex.gf index ad28e8fa..952e9719 100644 --- a/src/zulu/lexica/MultiLex.gf +++ b/src/zulu/lexica/MultiLex.gf @@ -454,6 +454,7 @@ abstract MultiLex = Cat ** { sock_N : N ; soil_N : N ; soldier_N : N ; + son_N : N ; song_N : N ; south_N : N ; spade_N : N ; diff --git a/src/zulu/lexica/MultiLexZul.gf b/src/zulu/lexica/MultiLexZul.gf index 86789d0e..16cf0c54 100644 --- a/src/zulu/lexica/MultiLexZul.gf +++ b/src/zulu/lexica/MultiLexZul.gf @@ -66,7 +66,7 @@ concrete MultiLexZul of MultiLex = CatZul ** open ResZul,ParadigmsZul in { advantage_N = mkN "zuzo" C9_10 ; advertisement_N = mkN "aziso" C7_8 ; advice_N = mkN "eluleko" C7_8 ; - aeroplane_N = mkN "bhanoyi" C5_6 ; + aeroplane_N = mkN "bhanoyi" C9_6 ; aim_N = mkN "hloso" C9_10 ; air_N = mkN "moya" C3_4 ; ambassador_N = mkN "nxusa" C5_6 ; @@ -131,7 +131,7 @@ concrete MultiLexZul of MultiLex = CatZul ** open ResZul,ParadigmsZul in { chair_N = mkN "hlalo" C7_8 ; chairman_N = mkN "sihlalo" C1a_2a ; chauffeur_N = mkN "shayeli" C1_2 ; - cheese_N = mkN "shizi" C11_10 ; + cheese_N = mkN "shizi" C1a_2a ; cheetah_N = mkN "gulule" C9_10 ; chest_N = mkN "fuba" C7_8 ; chicken_N = mkN "nkukhu" C9_10 ; @@ -163,7 +163,7 @@ concrete MultiLexZul of MultiLex = CatZul ** open ResZul,ParadigmsZul in { curtain_N = mkN "khethini" C5_6 ; customer_N = mkN "thengi" C1_2 ; danger_N = mkN "ngozi" C9_10 ; - daughter_N = mkN "doda" C9_6 ; + daughter_N = mkN "dodakazi" C9_6 ; day_N = mkN "suku" C11_10 ; decision_N = mkN "nqumo" C7_8 ; deed_N = mkN "enzo" C7_8 ; @@ -218,7 +218,7 @@ concrete MultiLexZul of MultiLex = CatZul ** open ResZul,ParadigmsZul in { frog_N = mkN "selesele" C5_6 ; frost_N = mkN "thwathwa" C7_8 ; fruit_N = mkN "thelo" C7_8 ; - girl_N = mkN "ntombazana" C5_6 ; + girl_N = mkN "ntombazana" C9_6 ; glasses_N = mkN "buko" C7_8 ; glass_N = mkN "gilazi" C9_10 ; goat_N = mkN "buzi" C9_10 ; @@ -456,6 +456,7 @@ concrete MultiLexZul of MultiLex = CatZul ** open ResZul,ParadigmsZul in { sock_N = mkN "sokisi" C5_6 ; soil_N = mkN "hlabathi" C3_4 ; soldier_N = mkN "sosha" C5_6 ; + son_N = mkN "dodana" C9_6 ; song_N = mkN "culo" C5_6 ; south_N = mkN "Ningizimu" C5_6 ; spade_N = mkN "fosholo" C5_6 ; @@ -478,7 +479,7 @@ concrete MultiLexZul of MultiLex = CatZul ** open ResZul,ParadigmsZul in { supper_N = mkN "dlakusihlwa" C9_10 ; surname_N = mkN "bongo" C7_8 ; sweater_N = mkN "jezi" C5_6 ; - sweet_N = mkN "Swidi" C5_6 ; + sweet_N = mkN "swidi" C5_6 ; sympathy_N = mkN "hawu" C7_8 ; table_N = mkN "tafula" C5_6 ; tablet_N = mkN "philisi" C5_6 ; @@ -548,7 +549,7 @@ concrete MultiLexZul of MultiLex = CatZul ** open ResZul,ParadigmsZul in { word_N = mkN "gama" C5_6 ; work_N = mkN "sebenzi" C3_4 ; world_N = mkN "hlaba" C3_4 ; - year_N = mkN "nyaka" C11_10 ; + year_N = mkN "nyaka" C3_4 ; youth_N = mkN "tsha" C9_10 ; zebra_N = mkN "dube" C5_6 ; @@ -781,8 +782,8 @@ concrete MultiLexZul of MultiLex = CatZul ** open ResZul,ParadigmsZul in { interrupt_V2 = mkV2 "phazamis" ; invite_V = mkV "mem" ; invite_V2 = mkV2 "mem" ; - iron_V = mkV "ayin" ; - iron_V2 = mkV2 "ayin" ; + iron_V = mkV "-ayin" ; + iron_V2 = mkV2 "-ayin" ; irritate_1_V = mkV "cunul" ; irritate_1_V2 = mkV2 "cunul" ; irritate_2_V = mkV "casul" ; @@ -847,8 +848,8 @@ concrete MultiLexZul of MultiLex = CatZul ** open ResZul,ParadigmsZul in { open_V2 = mkV2 "vul" ; oppress_V = mkV "cindezel" ; oppress_V2 = mkV2 "cindezel" ; - order_V = mkV "od" ; - order_V2 = mkV2 "od" ; + order_V = mkV "-od" ; + order_V2 = mkV2 "-od" ; pack_V = mkV "pakish" ; pack_V2 = mkV2 "pakish" ; paint_V = mkV "pend" ;