mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
(Som) Add more variants of VV
This commit is contained in:
@@ -98,7 +98,6 @@ concrete CatSom of Cat = CommonX - [Adv] ** open ResSom, Prelude in {
|
||||
-- additional lexicon modules.
|
||||
|
||||
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"
|
||||
-- TODO: eventually different lincats
|
||||
VQ, -- question-complement verb e.g. "wonder"
|
||||
@@ -106,7 +105,9 @@ concrete CatSom of Cat = CommonX - [Adv] ** open ResSom, Prelude in {
|
||||
V2V, -- verb with NP and V complement e.g. "cause"
|
||||
V2S, -- verb with NP and S complement e.g. "tell"
|
||||
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 ;
|
||||
V3 = ResSom.Verb3 ;
|
||||
|
||||
@@ -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
|
||||
ImpPl1 vp = { } ;
|
||||
|
||||
|
||||
@@ -32,6 +32,11 @@ oper
|
||||
u : 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
|
||||
|
||||
@@ -85,6 +90,11 @@ oper
|
||||
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
|
||||
-- mkVA : Str -> VA = \s -> lin VA (mkVerb s) ;
|
||||
--
|
||||
@@ -161,6 +171,10 @@ oper
|
||||
la = ResSom.La ;
|
||||
u = ResSom.U ;
|
||||
noPrep = ResSom.NoPrep ;
|
||||
|
||||
VVForm = Bool ;
|
||||
infinitive = False ;
|
||||
waa_in = True ;
|
||||
------------------------
|
||||
|
||||
mkN = overload {
|
||||
@@ -217,6 +231,14 @@ oper
|
||||
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 ** {
|
||||
miscAdv = \\agr =>
|
||||
let qnt = PossPron (pronTable ! agr) ;
|
||||
|
||||
@@ -471,6 +471,8 @@ oper
|
||||
Verb2 : Type = Verb ** {c2 : Preposition} ;
|
||||
Verb3 : Type = Verb2 ** {c3 : Preposition} ;
|
||||
|
||||
VV : Type = Verb ** {isVS : Bool} ;
|
||||
|
||||
-- Saeed page 79:
|
||||
-- "… the reference form is the imperative singular form
|
||||
-- since it corresponds to the form of the basic root."
|
||||
@@ -701,7 +703,7 @@ oper
|
||||
c2 : PrepCombination ; -- Prepositions can combine together and with object pronoun.
|
||||
obj2 : NPLite ; -- {s : Str ; a : PrepAgr}
|
||||
secObj : Str ; -- if two overt pronoun objects
|
||||
vComp : Str ; -- VV complement
|
||||
vComp : {pr,pst : Str} -- VV complement
|
||||
} ;
|
||||
|
||||
VPSlash : Type = VerbPhrase ;
|
||||
@@ -709,7 +711,8 @@ oper
|
||||
useV : Verb -> VerbPhrase = \v -> v ** {
|
||||
comp = \\_ => <[],[]> ;
|
||||
pred = case v.isCopula of {True => Copula ; _ => NoPred} ;
|
||||
vComp,berri,miscAdv,refl = [] ;
|
||||
vComp = {pr,pst = []} ;
|
||||
berri,miscAdv,refl = [] ;
|
||||
c2 = Single NoPrep ;
|
||||
obj2 = {s = [] ; a = P3_Prep} ;
|
||||
secObj = []
|
||||
@@ -849,16 +852,18 @@ oper
|
||||
Statement => case <p,vp.pred,subj.a> of {
|
||||
<Pos,Copula|NoCopula,Pl3|Sg3 _> => {p1 = "waa" ; p2 = []} ;
|
||||
_ => stmarkerNoContr ! subj.a ! p }} ;
|
||||
in wordOrder subjnoun subjpron stm obj pred vp cltyp ;
|
||||
in wordOrder subjnoun stm obj pred vp cltyp ;
|
||||
} where {
|
||||
vp : VerbPhrase = case isPassive vps of {
|
||||
True => complSlash (insertComp vps np) ;
|
||||
_ => 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 -> ClType -> BaseCl =
|
||||
\subjnoun,subjpron,stm,obj,pred,vp,cltyp -> {
|
||||
wordOrder : (sn : Str) -> (stm,obj : {p1,p2 : Str}) -> {fin,inf : Str} -> VerbPhrase -> ClType -> BaseCl =
|
||||
\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
|
||||
@@ -870,7 +875,8 @@ oper
|
||||
Subord => [] ;
|
||||
_ => obj.p1 } ; -- noun object if it's a statement
|
||||
stm = stm.p1 ; -- sentence type marker; empty if subordinate and positive
|
||||
afterSTM = stm.p2 -- possible subj. pronoun
|
||||
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
|
||||
_ => [] }
|
||||
@@ -878,7 +884,7 @@ oper
|
||||
++ vp.sii -- restricted set of particles
|
||||
++ vp.dhex -- restricted set of nouns/adverbials
|
||||
++ vp.secObj -- "second object"
|
||||
++ vp.vComp -- VV complement
|
||||
++ vp.vComp.pst -- VV complement
|
||||
++ pred.inf -- potential infinitive/participle
|
||||
++ pred.fin -- the verb inflected
|
||||
++ vp.miscAdv } ; ---- NB. Only used if there are several adverbs.
|
||||
@@ -953,7 +959,7 @@ oper
|
||||
<Subord,True> => {p1 = "aan" ; p2 = []} ;
|
||||
_ => {p1,p2 = []}
|
||||
} ;
|
||||
wo = wordOrder [] [] stm (vp'.comp ! pagr2agr vp.obj2.a) inf vp' cltyp ;
|
||||
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 ;
|
||||
|
||||
@@ -176,11 +176,11 @@ lin yes_Utt = ss "haa" ;
|
||||
-------
|
||||
-- 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 can_VV = mkV "kar" ; -- can (possibility)
|
||||
{-lin must_VV = mkV "" ;
|
||||
lin want_VV = mkV "" ;
|
||||
lin can_VV = mkVV "kar" ; -- can (possibility)
|
||||
lin must_VV = mkVV waa_in ;
|
||||
{-lin want_VV = mkV "" ;
|
||||
|
||||
|
||||
------
|
||||
|
||||
@@ -15,10 +15,18 @@ lin
|
||||
ReflVP = ResSom.insertRefl ;
|
||||
|
||||
-- : VV -> VP -> VP ;
|
||||
ComplVV vv vp = vp ** { -- check Saeed p. 169
|
||||
s = vv.s ;
|
||||
vComp = vp.vComp ++ vp.s ! VInf ;
|
||||
pred = NoPred ;
|
||||
ComplVV vv vp = let vc = vp.vComp in case vv.isVS of {
|
||||
True => vp ** {
|
||||
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 ;
|
||||
}
|
||||
} ;
|
||||
|
||||
-- : VS -> S -> VP ;
|
||||
|
||||
@@ -70,6 +70,14 @@ Lang: PhrUtt NoPConj (UttS (UseCl (TTAnt TPres ASimul) PPos (GenericCl (ComplVV
|
||||
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
|
||||
|
||||
-- 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user