(Pes) Remove c1 field from V2V, change c2 field from Str to Compl

c1 should be covered by isAux. Though that's not a very informative 
field either, it just controls if conjThat is inserted (is if 
isAux=True).
This commit is contained in:
Inari Listenmaa
2019-03-01 15:26:14 +01:00
parent 0ffa2400a3
commit 086d8f1479
4 changed files with 14 additions and 8 deletions

View File

@@ -83,7 +83,7 @@ concrete CatPes of Cat = CommonX - [Adv] ** open ResPes, Prelude in {
V2, V2A, V2Q, V2S = ResPes.Verb ** {c2 : Compl} ; V2, V2A, V2Q, V2S = ResPes.Verb ** {c2 : Compl} ;
V3 = ResPes.Verb ** {c2, c3 : Compl} ; V3 = ResPes.Verb ** {c2, c3 : Compl} ;
VV = ResPes.VV ; VV = ResPes.VV ;
V2V = ResPes.VV ** {c1 : Str ; c2 : Str} ; V2V = ResPes.VV ** {c2 : Compl} ;
A = ResPes.Adjective ; A = ResPes.Adjective ;
A2 = ResPes.Adjective ** {c2 : Str} ; A2 = ResPes.Adjective ** {c2 : Str} ;

View File

@@ -21,7 +21,7 @@ concrete LexiconPes of Lexicon = CatPes **
beautiful_A = mkA "زیبا" ; beautiful_A = mkA "زیبا" ;
become_VA = mkV "شدن" "شو"; become_VA = mkV "شدن" "شو";
beer_N = mkN01 "آبجو" inanimate; beer_N = mkN01 "آبجو" inanimate;
beg_V2V = mkV2V (compoundV "خواهش" doVerb) "از" "" False; beg_V2V = mkV2V (compoundV "خواهش" doVerb) "از" False;
big_A = mkA "بزرگ" ; big_A = mkA "بزرگ" ;
bike_N = mkN01 "دوچرخه" inanimate; bike_N = mkN01 "دوچرخه" inanimate;
bird_N = mkN02 "پرنده" animate; bird_N = mkN02 "پرنده" animate;

View File

@@ -124,9 +124,15 @@ oper
= \isAux,vvf,v -> v ** {isAux = isAux ; compl = vvf ; isDef = False} = \isAux,vvf,v -> v ** {isAux = isAux ; compl = vvf ; isDef = False}
} ; } ;
mkV2V : V -> (cV, cN : Str) -> (isAux : Bool) -> V2V -- Verb, complementiser for the verb, complementiser for the noun, whether it's auxiliary. mkV2V = overload {
= \v,s1,s2,b -> let vv : VV = mkVV b subjunctive v in mkV2V : V -> (cN : Str) -> (isAux : Bool) -> V2V -- Verb, complementiser for the noun, whether it's auxiliary.
lin V2V (vv ** {c1 = s1 ; c2 = s2}) ; = \v,s,b -> let vv : VV = mkVV b subjunctive v in
lin V2V (vv ** {c2 = prepOrRa s}) ;
mV2V : VV -> (cN : Str) -> V2V -- V2V out of VV + complementiser for the noun
= \vv,s -> lin V2V (vv ** {c2 = prepOrRa s}) ;
mV2V : VV -> V2V -- V2V out of VV, را for direct object
= \vv -> lin V2V (vv ** {c2 = prepOrRa "را"})
} ;
----2 Adverbs ----2 Adverbs

View File

@@ -21,10 +21,10 @@ concrete VerbPes of Verb = CatPes ** open ResPes,Prelude in {
SlashV2S v s = v ** embComp (conjThat ++ s.s ! Indic) (predV v) ; SlashV2S v s = v ** embComp (conjThat ++ s.s ! Indic) (predV v) ;
SlashV2Q v q = v ** embComp (q.s ! QIndir) (predV v) ; SlashV2Q v q = v ** embComp (q.s ! QIndir) (predV v) ;
SlashV2A v ap = v ** insertObj (ap.s ! Bare) (predV v) ; ---- paint it red , check form of adjective SlashV2A v ap = v ** insertObj (ap.s ! Bare) (predV v) ; ---- paint it red , check form of adjective
SlashV2V v vp = insertVV v vp ** {c2 = {s = v.c1 ; ra = []}} ; SlashV2V v vp = v ** insertVV v vp ; -- ** {c2 = {s = v.c1 ; ra = []}} ;
SlashV2VNP v2v np vps = SlashV2VNP v2v np vps =
let vvVP : VPH = insertVV v2v vps ; let vvVPS : VPHSlash = vps ** insertVV v2v vps ;
vvVPS = vvVP ** {c2={s=v2v.c1 ; ra=v2v.c2}} ; -- TODO find out if it's a general rule; only one V2V in the lexicon /IL -- vvVPS = vvVP ** {c2={s=v2v.c1 ; ra=v2v.c2}} ; -- TODO find out if it's a general rule; only one V2V in the lexicon /IL
in complSlash vvVPS np ** {c2 = vps.c2} ; in complSlash vvVPS np ** {c2 = vps.c2} ;
AdvVP vp adv = insertAdV adv.s vp ; AdvVP vp adv = insertAdV adv.s vp ;