forked from GitHub/gf-rgl
@@ -98,7 +98,6 @@ concrete CatSom of Cat = CommonX - [Adv] ** open ResSom, Prelude in {
|
|||||||
-- additional lexicon modules.
|
-- additional lexicon modules.
|
||||||
|
|
||||||
V,
|
V,
|
||||||
VV, -- verb-phrase-complement verb e.g. "want" -- TODO: VPs that have sentential complement use waxa as stm? see Nilsson p. 68
|
|
||||||
VS, -- sentence-complement verb e.g. "claim"
|
VS, -- sentence-complement verb e.g. "claim"
|
||||||
-- TODO: eventually different lincats
|
-- TODO: eventually different lincats
|
||||||
VQ, -- question-complement verb e.g. "wonder"
|
VQ, -- question-complement verb e.g. "wonder"
|
||||||
@@ -108,6 +107,8 @@ concrete CatSom of Cat = CommonX - [Adv] ** open ResSom, Prelude in {
|
|||||||
V2Q, -- verb with NP and Q complement e.g. "ask"
|
V2Q, -- verb with NP and Q complement e.g. "ask"
|
||||||
V2A = ResSom.Verb ; -- verb with NP and AP complement e.g. "paint"
|
V2A = ResSom.Verb ; -- verb with NP and AP complement e.g. "paint"
|
||||||
|
|
||||||
|
VV = ResSom.VV ; -- verb-phrase-complement verb e.g. "want"
|
||||||
|
|
||||||
V2 = ResSom.Verb2 ;
|
V2 = ResSom.Verb2 ;
|
||||||
V3 = ResSom.Verb3 ;
|
V3 = ResSom.Verb3 ;
|
||||||
|
|
||||||
@@ -123,7 +124,7 @@ concrete CatSom of Cat = CommonX - [Adv] ** open ResSom, Prelude in {
|
|||||||
|
|
||||||
linref
|
linref
|
||||||
-- Cl = linCl ;
|
-- Cl = linCl ;
|
||||||
VP = linVP VInf ;
|
VP = infVP ;
|
||||||
CN = linCN ;
|
CN = linCN ;
|
||||||
Prep = \prep -> prep.s ! P3_Prep ++ prep.sii ++ prep.dhex ++ prep.miscAdv ! Sg3 Masc ;
|
Prep = \prep -> prep.s ! P3_Prep ++ prep.sii ++ prep.dhex ++ prep.miscAdv ! Sg3 Masc ;
|
||||||
S = \s -> linBaseCl (s.s ! False) ;
|
S = \s -> linBaseCl (s.s ! False) ;
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ concrete IdiomSom of Idiom = CatSom ** open Prelude, ResSom, VerbSom in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
{- TODO: Saeed p. 92 optative
|
{- TODO: Saeed p. 92 and 207, optative
|
||||||
-- : VP -> Utt ; -- let's go
|
-- : VP -> Utt ; -- let's go
|
||||||
ImpPl1 vp = { } ;
|
ImpPl1 vp = { } ;
|
||||||
|
|
||||||
|
|||||||
@@ -312,7 +312,7 @@ lin see_V2 = mkV2 "ark" ;
|
|||||||
-- lin send_V3 = mkV3 "" ;
|
-- lin send_V3 = mkV3 "" ;
|
||||||
-- lin sew_V = mkV "" ;
|
-- lin sew_V = mkV "" ;
|
||||||
-- lin sharp_A = mkA "" ;
|
-- lin sharp_A = mkA "" ;
|
||||||
-- lin sheep_N = mkN "" ;
|
lin sheep_N = mkN "lax" fem ;
|
||||||
-- lin ship_N = mkN "" ;
|
-- lin ship_N = mkN "" ;
|
||||||
-- lin shirt_N = mkN "" ;
|
-- lin shirt_N = mkN "" ;
|
||||||
-- lin shoe_N = mkN "" ;
|
-- lin shoe_N = mkN "" ;
|
||||||
|
|||||||
@@ -23,12 +23,11 @@ concrete NounSom of Noun = CatSom ** open ResSom, Prelude in {
|
|||||||
-- If cn has modifier, Nom ending attaches to the modifier
|
-- If cn has modifier, Nom ending attaches to the modifier
|
||||||
<_,Nom,True,_,_> => {nf=Def det.n ; c=Abs} ;
|
<_,Nom,True,_,_> => {nf=Def det.n ; c=Abs} ;
|
||||||
|
|
||||||
-- Definite
|
-- a Det with st=Indefinite uses Indef forms
|
||||||
<_,_,False,Definite,n> => {nf=Def n ; c=c} ;
|
<_,_,_,Indefinite,n> => {nf=Indef n ; c=c} ;
|
||||||
|
|
||||||
<_,_,False,Indefinite,n> => {nf=Indef n ; c=c} ;
|
-- All other determiners use the definite stem
|
||||||
|
_ => {nf=Def det.n ; c=c}
|
||||||
_ => {nf=Def det.n ; c=c} -- TODO check
|
|
||||||
} ;
|
} ;
|
||||||
art = gda2da cn.gda ! det.n ;
|
art = gda2da cn.gda ! det.n ;
|
||||||
num = case det.isNum of {True => Sg ; _ => det.n} ;
|
num = case det.isNum of {True => Sg ; _ => det.n} ;
|
||||||
@@ -257,7 +256,7 @@ concrete NounSom of Noun = CatSom ** open ResSom, Prelude in {
|
|||||||
mod = \\st,n,c => --what to do with subject case if there's both adj and RS?
|
mod = \\st,n,c => --what to do with subject case if there's both adj and RS?
|
||||||
cn.mod ! st ! n ! Abs
|
cn.mod ! st ! n ! Abs
|
||||||
++ andConj st cn.hasMod
|
++ andConj st cn.hasMod
|
||||||
++ rs.s ! st ! gennum cn n ! c ;
|
++ rs.s ! st ! gennum cn Sg ! c ; -- gennum cn Sg, because plural form is only for 1st person plural
|
||||||
hasMod = True ;
|
hasMod = True ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,11 @@ oper
|
|||||||
u : Preposition ;
|
u : Preposition ;
|
||||||
noPrep : Preposition ;
|
noPrep : Preposition ;
|
||||||
|
|
||||||
|
-- TODO: add subjunctive too!
|
||||||
|
VVForm : Type ; -- Argument to give to mkVV
|
||||||
|
infinitive : VVForm ; -- Takes its complement in infinitive
|
||||||
|
waa_in : VVForm ; -- No explicit verb, just uses "waa in" construction
|
||||||
|
|
||||||
|
|
||||||
--2 Nouns
|
--2 Nouns
|
||||||
|
|
||||||
@@ -85,6 +90,11 @@ oper
|
|||||||
mkV3 : V -> (_,_ : Preposition) -> V2 ; -- Already constructed verb with preposition
|
mkV3 : V -> (_,_ : Preposition) -> V2 ; -- Already constructed verb with preposition
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
mkVV : overload {
|
||||||
|
mkVV : (kar : Str) -> VV ; -- VV that takes its complement in infinitive.
|
||||||
|
mkVV : VVForm -> VV ; -- VV such as "waa in"
|
||||||
|
} ;
|
||||||
|
|
||||||
-- TODO: actual constructors
|
-- TODO: actual constructors
|
||||||
-- mkVA : Str -> VA = \s -> lin VA (mkVerb s) ;
|
-- mkVA : Str -> VA = \s -> lin VA (mkVerb s) ;
|
||||||
--
|
--
|
||||||
@@ -161,6 +171,10 @@ oper
|
|||||||
la = ResSom.La ;
|
la = ResSom.La ;
|
||||||
u = ResSom.U ;
|
u = ResSom.U ;
|
||||||
noPrep = ResSom.NoPrep ;
|
noPrep = ResSom.NoPrep ;
|
||||||
|
|
||||||
|
VVForm = Bool ;
|
||||||
|
infinitive = False ;
|
||||||
|
waa_in = True ;
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
mkN = overload {
|
mkN = overload {
|
||||||
@@ -217,6 +231,14 @@ oper
|
|||||||
mkV3 : V -> (_,_ : Preposition) -> V2 = \v,p,q -> lin V3 (v ** {c2 = p ; c3 = q}) ;
|
mkV3 : V -> (_,_ : Preposition) -> V2 = \v,p,q -> lin V3 (v ** {c2 = p ; c3 = q}) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
mkVV = overload {
|
||||||
|
mkVV : (kar : Str) -> VV -- VV that takes its complement in infinitive.
|
||||||
|
= \kar -> lin VV ({isVS=False} ** mkV kar) ;
|
||||||
|
mkVV : VVForm -> VV -- VV such as "waa in"
|
||||||
|
= \b -> let dummyV : V = mkV "in"
|
||||||
|
in lin VV (dummyV ** {isVS=b ; s = \\_ => "in"})
|
||||||
|
} ;
|
||||||
|
|
||||||
possPrep : N -> CatSom.Prep = \dhex -> emptyPrep ** {
|
possPrep : N -> CatSom.Prep = \dhex -> emptyPrep ** {
|
||||||
miscAdv = \\agr =>
|
miscAdv = \\agr =>
|
||||||
let qnt = PossPron (pronTable ! agr) ;
|
let qnt = PossPron (pronTable ! agr) ;
|
||||||
|
|||||||
@@ -288,6 +288,7 @@ param
|
|||||||
1/2SG/3SG M/2PL/3PL suga (VRel MascSg)
|
1/2SG/3SG M/2PL/3PL suga (VRel MascSg)
|
||||||
3 SG F sugta (VRel FemSg)
|
3 SG F sugta (VRel FemSg)
|
||||||
1PL sugna (VRel PlInv) -}
|
1PL sugna (VRel PlInv) -}
|
||||||
|
| VRelNeg -- Saeed p. 211 have: lahayn, be: ahayni
|
||||||
| VNegCond GenNum ;
|
| VNegCond GenNum ;
|
||||||
|
|
||||||
VAgr =
|
VAgr =
|
||||||
@@ -315,6 +316,14 @@ oper
|
|||||||
Pl1 _ => Pl1_ ; Pl2 => Pl2_ ; Pl3 => Pl3_
|
Pl1 _ => Pl1_ ; Pl2 => Pl2_ ; Pl3 => Pl3_
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
isNeg : VForm -> Bool = \vf -> case vf of {
|
||||||
|
VNegPast _ => True ;
|
||||||
|
VNegCond _ => True ;
|
||||||
|
VRelNeg => True ;
|
||||||
|
VImp _ Neg => True ;
|
||||||
|
VPres _ _ Neg => True ;
|
||||||
|
_ => False
|
||||||
|
} ;
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
-- Clauses
|
-- Clauses
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ lin
|
|||||||
rclSubord = mergeRCl (cls.s ! True) ;
|
rclSubord = mergeRCl (cls.s ! True) ;
|
||||||
rclStatement = mergeRCl (cls.s ! False) ;
|
rclStatement = mergeRCl (cls.s ! False) ;
|
||||||
in rp.s ++ case <gn,c,t,a,p> of {
|
in rp.s ++ case <gn,c,t,a,p> of {
|
||||||
<g,Abs,Pres,Simul,Pos> => linVP (VRel g) vp ; -- reduced present only in absolutive
|
<g,Abs,Pres,Simul,Pos> => linVP (VRel g) Subord vp ; -- reduced present only in absolutive
|
||||||
|
<_,Abs,Pres,Simul,Neg> => linVP VRelNeg Subord vp ; -- special form for have and be
|
||||||
<_,Nom,Pres,Simul,Pos> => rclStatement.s ! t ! a ! p ; -- the usual forms, not subordinate
|
<_,Nom,Pres,Simul,Pos> => rclStatement.s ! t ! a ! p ; -- the usual forms, not subordinate
|
||||||
_ => rclSubord.s ! t ! a ! p } -- the rest is Subord because of negation.
|
_ => rclSubord.s ! t ! a ! p } -- the rest is Subord because of negation.
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -471,6 +471,8 @@ oper
|
|||||||
Verb2 : Type = Verb ** {c2 : Preposition} ;
|
Verb2 : Type = Verb ** {c2 : Preposition} ;
|
||||||
Verb3 : Type = Verb2 ** {c3 : Preposition} ;
|
Verb3 : Type = Verb2 ** {c3 : Preposition} ;
|
||||||
|
|
||||||
|
VV : Type = Verb ** {isVS : Bool} ;
|
||||||
|
|
||||||
-- Saeed page 79:
|
-- Saeed page 79:
|
||||||
-- "… the reference form is the imperative singular form
|
-- "… the reference form is the imperative singular form
|
||||||
-- since it corresponds to the form of the basic root."
|
-- since it corresponds to the form of the basic root."
|
||||||
@@ -561,7 +563,8 @@ oper
|
|||||||
VInf => arki ;
|
VInf => arki ;
|
||||||
VRel SgMasc => qaat + "a" ;
|
VRel SgMasc => qaat + "a" ;
|
||||||
VRel SgFem => arag + t + "a" ;
|
VRel SgFem => arag + t + "a" ;
|
||||||
VRel PlInv => arag + "na"
|
VRel PlInv => arag + "na" ;
|
||||||
|
VRelNeg => qaat + "o" -- TODO check
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
sii, dhex = [] ;
|
sii, dhex = [] ;
|
||||||
@@ -630,8 +633,8 @@ oper
|
|||||||
VNegCond SgMasc => "ahaadeen" ; -- 1SG/3 SG M/3PL
|
VNegCond SgMasc => "ahaadeen" ; -- 1SG/3 SG M/3PL
|
||||||
VNegCond SgFem => "ahaateen" ; -- 2SG/3 SG F/2PL
|
VNegCond SgFem => "ahaateen" ; -- 2SG/3 SG F/2PL
|
||||||
VNegCond PlInv => "ahaanneen" ; -- 1PL
|
VNegCond PlInv => "ahaanneen" ; -- 1PL
|
||||||
--VRelShort => "ah" ;
|
VRel _ => "ah" ; -- All persons: see Nilsson p. 78. TODO check Saeed p. 103
|
||||||
VRel _ => "ah" ; -- TODO find right forms
|
VRelNeg => "ahayni" ; -- Saeed
|
||||||
VInf => "ahaan" ;
|
VInf => "ahaan" ;
|
||||||
VImp Sg pol => if_then_Pol pol "ahaw" "ahaanin" ;
|
VImp Sg pol => if_then_Pol pol "ahaw" "ahaanin" ;
|
||||||
VImp Pl pol => if_then_Pol pol "ahaada" "ahaanina" ;
|
VImp Pl pol => if_then_Pol pol "ahaada" "ahaanina" ;
|
||||||
@@ -649,10 +652,19 @@ oper
|
|||||||
VPres _ Pl1_ Pos => "leenahay" ;
|
VPres _ Pl1_ Pos => "leenahay" ;
|
||||||
VPres _ Pl2_ Pos => "leedihiin" ;
|
VPres _ Pl2_ Pos => "leedihiin" ;
|
||||||
VPres _ Pl3_ Pos => "leeyihiin" ;
|
VPres _ Pl3_ Pos => "leeyihiin" ;
|
||||||
|
|
||||||
|
VPres _ Sg1_Sg3Masc Neg => "lihi" ;
|
||||||
|
VPres _ Sg2_Sg3Fem Neg => "lihid" ;
|
||||||
|
VPres _ Pl1_ Neg => "lihin" ;
|
||||||
|
VPres _ Pl2_ Neg => "lihidin" ;
|
||||||
|
VPres _ Pl3_ Neg => "laha" ;
|
||||||
|
|
||||||
|
VNegPast _ => "lahayn" ;
|
||||||
|
|
||||||
VPast asp agr => "l" + copula.s ! VPast asp agr ;
|
VPast asp agr => "l" + copula.s ! VPast asp agr ;
|
||||||
VNegCond agr => "l" + copula.s ! VNegCond agr ;
|
VNegCond agr => "l" + copula.s ! VNegCond agr ;
|
||||||
-- VRelShort => "leh" ;
|
VRel _ => "leh" ; -- All persons: see Nilsson p. 78
|
||||||
VRel _ => "leh" ; -- TODO find right forms
|
VRelNeg => "lahayn" ;
|
||||||
x => hold_V.s ! x }
|
x => hold_V.s ! x }
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -691,7 +703,7 @@ oper
|
|||||||
c2 : PrepCombination ; -- Prepositions can combine together and with object pronoun.
|
c2 : PrepCombination ; -- Prepositions can combine together and with object pronoun.
|
||||||
obj2 : NPLite ; -- {s : Str ; a : PrepAgr}
|
obj2 : NPLite ; -- {s : Str ; a : PrepAgr}
|
||||||
secObj : Str ; -- if two overt pronoun objects
|
secObj : Str ; -- if two overt pronoun objects
|
||||||
vComp : Str ; -- VV complement
|
vComp : {pr,pst : Str} -- VV complement
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
VPSlash : Type = VerbPhrase ;
|
VPSlash : Type = VerbPhrase ;
|
||||||
@@ -699,7 +711,8 @@ oper
|
|||||||
useV : Verb -> VerbPhrase = \v -> v ** {
|
useV : Verb -> VerbPhrase = \v -> v ** {
|
||||||
comp = \\_ => <[],[]> ;
|
comp = \\_ => <[],[]> ;
|
||||||
pred = case v.isCopula of {True => Copula ; _ => NoPred} ;
|
pred = case v.isCopula of {True => Copula ; _ => NoPred} ;
|
||||||
vComp,berri,miscAdv,refl = [] ;
|
vComp = {pr,pst = []} ;
|
||||||
|
berri,miscAdv,refl = [] ;
|
||||||
c2 = Single NoPrep ;
|
c2 = Single NoPrep ;
|
||||||
obj2 = {s = [] ; a = P3_Prep} ;
|
obj2 = {s = [] ; a = P3_Prep} ;
|
||||||
secObj = []
|
secObj = []
|
||||||
@@ -839,26 +852,39 @@ oper
|
|||||||
Statement => case <p,vp.pred,subj.a> of {
|
Statement => case <p,vp.pred,subj.a> of {
|
||||||
<Pos,Copula|NoCopula,Pl3|Sg3 _> => {p1 = "waa" ; p2 = []} ;
|
<Pos,Copula|NoCopula,Pl3|Sg3 _> => {p1 = "waa" ; p2 = []} ;
|
||||||
_ => stmarkerNoContr ! subj.a ! p }} ;
|
_ => stmarkerNoContr ! subj.a ! p }} ;
|
||||||
in (wordOrder subjnoun subjpron stm obj pred vp) ;
|
in wordOrder subjnoun stm obj pred vp cltyp ;
|
||||||
} where {
|
} where {
|
||||||
vp : VerbPhrase = case isPassive vps of {
|
vp : VerbPhrase = case isPassive vps of {
|
||||||
True => complSlash (insertComp vps np) ;
|
True => complSlash (insertComp vps np) ;
|
||||||
_ => complSlash vps } ;
|
_ => complSlash vps } ;
|
||||||
subj : NounPhrase = case isPassive vps of {True => impersNP ; _ => np}
|
subj : NounPhrase = case isPassive vps of {
|
||||||
|
True => impersNP ;
|
||||||
|
_ => np }
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
wordOrder : (sn,sp : Str) -> (stm,obj : {p1,p2 : Str}) -> {fin,inf : Str} -> VerbPhrase -> BaseCl =
|
wordOrder : (sn : Str) -> (stm,obj : {p1,p2 : Str}) -> {fin,inf : Str} -> VerbPhrase -> ClType -> BaseCl =
|
||||||
\subjnoun,subjpron,stm,obj,pred,vp -> {
|
\subjnoun,stm,obj,pred,vp,cltyp -> {
|
||||||
|
{- Saeed p. 210-211: "The relative clause resembles a main clause in syntax
|
||||||
|
except that the tendency for verb final order is much stronger. [..] Certain
|
||||||
|
elements such as subject clitic pronouns, and the negative word aan 'not' are
|
||||||
|
attracted to the head nominal and thus move away from the verbal group."
|
||||||
|
-}
|
||||||
beforeSTM = vp.berri -- AdV
|
beforeSTM = vp.berri -- AdV
|
||||||
++ subjnoun -- subject if it's a noun
|
++ subjnoun -- subject if it's a noun
|
||||||
++ obj.p1 ; -- object if it's a noun
|
++ case cltyp of {
|
||||||
stm = stm.p1 ; -- sentence type marker
|
Subord => [] ;
|
||||||
afterSTM = stm.p2 -- possible subj. pronoun
|
_ => obj.p1 } ; -- noun object if it's a statement
|
||||||
|
stm = stm.p1 ; -- sentence type marker; empty if subordinate and positive
|
||||||
|
afterSTM = vp.vComp.pr -- "waa in" construction
|
||||||
|
++ stm.p2 -- possible subj. pronoun
|
||||||
|
++ case cltyp of {
|
||||||
|
Subord => obj.p1 ; -- noun object if it's subordinate clause
|
||||||
|
_ => [] }
|
||||||
++ obj.p2 -- object if it's a pronoun
|
++ obj.p2 -- object if it's a pronoun
|
||||||
++ vp.sii -- restricted set of particles
|
++ vp.sii -- restricted set of particles
|
||||||
++ vp.dhex -- restricted set of nouns/adverbials
|
++ vp.dhex -- restricted set of nouns/adverbials
|
||||||
++ vp.secObj -- "second object"
|
++ vp.secObj -- "second object"
|
||||||
++ vp.vComp -- VV complement
|
++ vp.vComp.pst -- VV complement
|
||||||
++ pred.inf -- potential infinitive/participle
|
++ pred.inf -- potential infinitive/participle
|
||||||
++ pred.fin -- the verb inflected
|
++ pred.fin -- the verb inflected
|
||||||
++ vp.miscAdv } ; ---- NB. Only used if there are several adverbs.
|
++ vp.miscAdv } ; ---- NB. Only used if there are several adverbs.
|
||||||
@@ -903,7 +929,7 @@ oper
|
|||||||
_ => vfStatement t ant p agr vp
|
_ => vfStatement t ant p agr vp
|
||||||
} ; -- TODO other relative forms
|
} ; -- TODO other relative forms
|
||||||
|
|
||||||
infVP : VerbPhrase -> Str = linVP VInf ;
|
infVP : VerbPhrase -> Str = linVP VInf Statement ;
|
||||||
|
|
||||||
stmarkerContr : Agreement => Polarity => Str = \\a,b =>
|
stmarkerContr : Agreement => Polarity => Str = \\a,b =>
|
||||||
let stm = if_then_Pol b "w" "m"
|
let stm = if_then_Pol b "w" "m"
|
||||||
@@ -926,11 +952,15 @@ oper
|
|||||||
-- linrefs
|
-- linrefs
|
||||||
|
|
||||||
oper
|
oper
|
||||||
linVP : VForm -> VerbPhrase -> Str = \vf,vp ->
|
linVP : VForm -> ClType -> VerbPhrase -> Str = \vf,cltyp,vp ->
|
||||||
let vp' = complSlash vp ;
|
let vp' = complSlash vp ;
|
||||||
inf = {inf = vp.s ! vf ; fin=[]} ;
|
inf = {inf = vp.s ! vf ; fin=[]} ;
|
||||||
wo = wordOrder [] [] {p1,p2=[]} (vp'.comp ! pagr2agr vp.obj2.a) inf vp' ;
|
stm = case <cltyp,isNeg vf> of {
|
||||||
in wo.beforeSTM ++ wo.afterSTM ;
|
<Subord,True> => {p1 = "aan" ; p2 = []} ;
|
||||||
|
_ => {p1,p2 = []}
|
||||||
|
} ;
|
||||||
|
wo = wordOrder [] stm (vp'.comp ! pagr2agr vp.obj2.a) inf vp' cltyp ;
|
||||||
|
in wo.beforeSTM ++ wo.stm ++ wo.afterSTM ;
|
||||||
|
|
||||||
linCN : CNoun -> Str = \cn -> cn.s ! Indef Sg ++ cn.mod ! Indefinite ! Sg ! Abs ;
|
linCN : CNoun -> Str = \cn -> cn.s ! Indef Sg ++ cn.mod ! Indefinite ! Sg ! Abs ;
|
||||||
linAdv : Adverb -> Str = \adv ->
|
linAdv : Adverb -> Str = \adv ->
|
||||||
|
|||||||
@@ -176,11 +176,11 @@ lin yes_Utt = ss "haa" ;
|
|||||||
-------
|
-------
|
||||||
-- Verb
|
-- Verb
|
||||||
|
|
||||||
lin have_V2 = mkV2 have_V noPrep ;
|
lin have_V2 = mkV2 have_V noPrep ; -- TODO: check if {sii = "l" ++ BIND ; isCopula=True} makes sense for present tense negative
|
||||||
lin can8know_VV = can_VV ; -- can (capacity)
|
lin can8know_VV = can_VV ; -- can (capacity)
|
||||||
lin can_VV = mkV "kar" ; -- can (possibility)
|
lin can_VV = mkVV "kar" ; -- can (possibility)
|
||||||
{-lin must_VV = mkV "" ;
|
lin must_VV = mkVV waa_in ;
|
||||||
lin want_VV = mkV "" ;
|
{-lin want_VV = mkV "" ;
|
||||||
|
|
||||||
|
|
||||||
------
|
------
|
||||||
|
|||||||
@@ -15,10 +15,18 @@ lin
|
|||||||
ReflVP = ResSom.insertRefl ;
|
ReflVP = ResSom.insertRefl ;
|
||||||
|
|
||||||
-- : VV -> VP -> VP ;
|
-- : VV -> VP -> VP ;
|
||||||
ComplVV vv vp = vp ** { -- check Saeed p. 169
|
ComplVV vv vp = let vc = vp.vComp in case vv.isVS of {
|
||||||
s = vv.s ;
|
True => vp ** {
|
||||||
vComp = vp.vComp ++ vp.s ! VInf ;
|
vComp = vc ** {pr = vv.s ! VInf} ;
|
||||||
|
obj2 = vp.obj2 ** {s = []} ; -- word order hack to avoid more parameters:
|
||||||
|
miscAdv = vp.miscAdv ++ vp.obj2.s -- dump it all to miscAdv
|
||||||
|
} ;
|
||||||
|
|
||||||
|
False => vp ** {
|
||||||
|
s = vv.s ; -- check Saeed p. 169
|
||||||
|
vComp = vc ** {pst = vc.pst ++ vp.s ! VInf} ;
|
||||||
pred = NoPred ;
|
pred = NoPred ;
|
||||||
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- : VS -> S -> VP ;
|
-- : VS -> S -> VP ;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
-- Restrictive relative clauses (RelCN)
|
-- Restrictive relative clauses (RelCN)
|
||||||
|
-- Saeed p. 213
|
||||||
|
|
||||||
-- LangEng: the books that the men buy
|
-- LangEng: the books that the men buy
|
||||||
LangSom: buugaag BIND ta niman BIND ku iibsadaan
|
LangSom: buugaag BIND ta niman BIND ku iibsadaan
|
||||||
@@ -14,7 +15,7 @@ LangSom: niman BIND ka buugaag BIND ta iibsada
|
|||||||
Lang: PhrUtt NoPConj (UttNP (DetCN (DetQuant DefArt NumPl) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a buy_V2) (DetCN (DetQuant DefArt NumPl) (UseN book_N)))))))) NoVoc
|
Lang: PhrUtt NoPConj (UttNP (DetCN (DetQuant DefArt NumPl) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a buy_V2) (DetCN (DetQuant DefArt NumPl) (UseN book_N)))))))) NoVoc
|
||||||
|
|
||||||
-- LangEng: the men that don't buy the books
|
-- LangEng: the men that don't buy the books
|
||||||
LangSom: niman BIND ka buugaag BIND ta aan iibsado
|
LangSom: niman BIND ka aan buugaag BIND ta iibsado
|
||||||
Lang: PhrUtt NoPConj (UttNP (DetCN (DetQuant DefArt NumPl) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PNeg (RelVP IdRP (ComplSlash (SlashV2a buy_V2) (DetCN (DetQuant DefArt NumPl) (UseN book_N)))))))) NoVoc
|
Lang: PhrUtt NoPConj (UttNP (DetCN (DetQuant DefArt NumPl) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PNeg (RelVP IdRP (ComplSlash (SlashV2a buy_V2) (DetCN (DetQuant DefArt NumPl) (UseN book_N)))))))) NoVoc
|
||||||
|
|
||||||
|
|
||||||
@@ -23,7 +24,7 @@ LangSom: niman BIND ka buugaag BIND ta iibsadaa waa kuwan
|
|||||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant DefArt NumPl) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a buy_V2) (DetCN (DetQuant DefArt NumPl) (UseN book_N))))))) (UseComp (CompNP (DetNP (DetQuant this_Quant NumPl))))))) NoVoc
|
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant DefArt NumPl) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PPos (RelVP IdRP (ComplSlash (SlashV2a buy_V2) (DetCN (DetQuant DefArt NumPl) (UseN book_N))))))) (UseComp (CompNP (DetNP (DetQuant this_Quant NumPl))))))) NoVoc
|
||||||
|
|
||||||
-- LangEng: the men that don't buy the books are these
|
-- LangEng: the men that don't buy the books are these
|
||||||
LangSom: niman BIND ka buugaag BIND ta aan iibsado waa kuwan
|
LangSom: niman BIND ka aan buugaag BIND ta iibsado waa kuwan
|
||||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant DefArt NumPl) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PNeg (RelVP IdRP (ComplSlash (SlashV2a buy_V2) (DetCN (DetQuant DefArt NumPl) (UseN book_N))))))) (UseComp (CompNP (DetNP (DetQuant this_Quant NumPl))))))) NoVoc
|
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQuant DefArt NumPl) (RelCN (UseN man_N) (UseRCl (TTAnt TPres ASimul) PNeg (RelVP IdRP (ComplSlash (SlashV2a buy_V2) (DetCN (DetQuant DefArt NumPl) (UseN book_N))))))) (UseComp (CompNP (DetNP (DetQuant this_Quant NumPl))))))) NoVoc
|
||||||
|
|
||||||
|
|
||||||
@@ -45,6 +46,22 @@ Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (DetCN (DetQ
|
|||||||
LangSom: naag BIND ta aad ku bartay
|
LangSom: naag BIND ta aad ku bartay
|
||||||
Lang: PhrUtt NoPConj (UttNP (DetCN (DetQuant DefArt NumSg) (RelCN (UseN woman_N) (UseRCl (TTAnt TPast ASimul) PPos (RelSlash IdRP (SlashVP (UsePron youSg_Pron) (SlashV2a teach_V2))))))) NoVoc
|
Lang: PhrUtt NoPConj (UttNP (DetCN (DetQuant DefArt NumSg) (RelCN (UseN woman_N) (UseRCl (TTAnt TPast ASimul) PPos (RelSlash IdRP (SlashVP (UsePron youSg_Pron) (SlashV2a teach_V2))))))) NoVoc
|
||||||
|
|
||||||
|
-- Combine with passive
|
||||||
|
-- LangEng: the woman that was taught
|
||||||
|
LangSom: naag BIND ta lagu baray
|
||||||
|
Lang: PhrUtt NoPConj (UttNP (DetCN (DetQuant DefArt NumSg) (RelCN (UseN woman_N) (UseRCl (TTAnt TPast ASimul) PPos (RelVP IdRP (PassV2 teach_V2)))))) NoVoc
|
||||||
|
|
||||||
|
|
||||||
|
-- Negative forms
|
||||||
|
-- LangEng: sheep that aren't black don't see you
|
||||||
|
LangSom: lax aan madow aha ku BIND ma arkaan
|
||||||
|
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PNeg (PredVP (DetCN (DetQuant IndefArt NumPl) (RelCN (UseN sheep_N) (UseRCl (TTAnt TPres ASimul) PNeg (RelVP IdRP (UseComp (CompAP (PositA black_A))))))) (ComplSlash (SlashV2a see_V2) (UsePron youPol_Pron))))) NoVoc
|
||||||
|
|
||||||
|
-- LangEng: you don't see sheep that aren't black
|
||||||
|
LangSom: laxo aan madow ahayni ma aragto
|
||||||
|
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PNeg (PredVP (UsePron youPol_Pron) (ComplSlash (SlashV2a see_V2) (DetCN (DetQuant IndefArt NumPl) (RelCN (UseN sheep_N) (UseRCl (TTAnt TPres ASimul) PNeg (RelVP IdRP (UseComp (CompAP (PositA black_A))))))))))) NoVoc
|
||||||
|
|
||||||
|
|
||||||
-- Appositive relative clauses (RelNP)
|
-- Appositive relative clauses (RelNP)
|
||||||
|
|
||||||
-- LangEng: he , that the men see
|
-- LangEng: he , that the men see
|
||||||
|
|||||||
@@ -70,6 +70,14 @@ Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (GenericCl (ComplVV
|
|||||||
LangSom: in uu imanayo waa aynu ogaannay
|
LangSom: in uu imanayo waa aynu ogaannay
|
||||||
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePron we_Pron) (ComplVS know_VS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron he_Pron) (ProgrVP (UseV come_V)))))))) NoVoc
|
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPast ASimul) PPos (PredVP (UsePron we_Pron) (ComplVS know_VS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron he_Pron) (ProgrVP (UseV come_V)))))))) NoVoc
|
||||||
|
|
||||||
|
-- LangEng: you must see mother of the cat
|
||||||
|
LangSom: waa in aad aragtaa bisad BIND da hooya BIND deed
|
||||||
|
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (PredVP (UsePron youPol_Pron) (ComplVV must_VV (ComplSlash (SlashV2a see_V2) (MassNP (ComplN2 mother_N2 (DetCN (DetQuant DefArt NumSg) (UseN cat_N))))))))) NoVoc
|
||||||
|
|
||||||
|
-- LangEng: the mother of the cat must be seen
|
||||||
|
LangSom: waa in la arkaa bisad BIND da hooya BIND deed
|
||||||
|
Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (GenericCl (ComplVV must_VV (ComplSlash (SlashV2a see_V2) (MassNP (ComplN2 mother_N2 (DetCN (DetQuant DefArt NumSg) (UseN cat_N))))))))) NoVoc
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
-- Adverbials
|
-- Adverbials
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user