From 02b231363ead80600c31ae9714dc94bcbcb9e3d5 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 18 Apr 2019 18:10:13 +0200 Subject: [PATCH] (Pes) Add a parameter to VS whether to select subjunctive or indicative Co-Authored-By: Nasrin Mostofian --- src/persian/CatPes.gf | 5 +++-- src/persian/LexiconPes.gf | 8 ++++---- src/persian/ParadigmsPes.gf | 4 ++-- src/persian/VerbPes.gf | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/persian/CatPes.gf b/src/persian/CatPes.gf index cfcce220..cd39cb74 100644 --- a/src/persian/CatPes.gf +++ b/src/persian/CatPes.gf @@ -12,7 +12,7 @@ concrete CatPes of Cat = CommonX ** open ResPes, Prelude in { ---- Sentence - Cl = ResPes.Clause ; + Cl = ResPes.Clause ; -- TODO: like romance does "no tiene ningún", i.e. negative quant/det/NP forces negation in Cl and S ClSlash = { subj : Str ; vp : ResPes.TAnt => Polarity => Order => Str ; @@ -72,9 +72,10 @@ concrete CatPes of Cat = CommonX ** open ResPes, Prelude in { -----b Conj = {s : Str ; n : Number} ; -----b DConj = {s1,s2 : Str ; n : Number} ; Subj = {s : Str ; compl : VVForm} ; -- subjunctive or indicative + VS = ResPes.Verb ** {compl : VVForm} ; -- subjunctive or indicative Prep = Compl ; ---- Open lexical classes, e.g. Lexicon - V, VS, VQ = ResPes.Verb ; + V, VQ = ResPes.Verb ; V2, VA, V2A, V2Q, V2S = ResPes.Verb ** {c2 : Compl} ; V3 = ResPes.Verb ** {c2, c3 : Compl} ; diff --git a/src/persian/LexiconPes.gf b/src/persian/LexiconPes.gf index e5cc5262..5207e035 100644 --- a/src/persian/LexiconPes.gf +++ b/src/persian/LexiconPes.gf @@ -76,7 +76,7 @@ concrete LexiconPes of Lexicon = CatPes ** enemy_N = mkN02 "دشمن" animate; factory_N = mkN01 "کارخانه" inanimate; father_N2 = mkN2 (mkN02 "پدر" animate) []; - fear_VS = mkV_1 "ترسیدن"; + fear_VS = mkVS (mkV_1 "ترسیدن") ; find_V2 = mkV2 (compoundV "پیدا" doVerb) "را"; fish_N = mkN01 "ماهی" animate; floor_N = mkN01 "زمین" inanimate; -- Note: floor in persian can have 3 different translations @@ -97,7 +97,7 @@ concrete LexiconPes of Lexicon = CatPes ** hat_N = mkN01 "کلاه" inanimate; hear_V2 = mkV2 (mkV "شنیدن" "شنو") "را" ; hill_N = mkN01 "تپه" inanimate; - hope_VS = compoundV "امیدوار" beVerb; + hope_VS = mkVS (compoundV "امیدوار" beVerb) ; horse_N = mkN01 "اسب" animate; hot_A = mkA "داغ" ["داغ داغ"] ; house_N = mkN01 "خانه" inanimate; @@ -106,7 +106,7 @@ concrete LexiconPes of Lexicon = CatPes ** iron_N = mkN01 "آهن" inanimate; king_N = mkN "پادشاه" "پادشاهان" animate; know_V2 = mkV2 (mkV "شناختن" "شناس") "را"; - know_VS = (mkV_1 "دانستن") ; -- danestan -> dan ; needs explicit mkV_1 + know_VS = mkVS (mkV_1 "دانستن") ; -- danestan -> dan ; needs explicit mkV_1 know_VQ = (mkV_1 "دانستن") ; lake_N = mkN01 "دریاچه" inanimate; lamp_N = mkN01 "چراغ" inanimate; -- also "لامپ", but they have different usage @@ -157,7 +157,7 @@ concrete LexiconPes of Lexicon = CatPes ** roof_N = mkN01 "بام" inanimate; -- has variant "سقف" rubber_N = mkN01 "پاککن" inanimate; -- also "لاستیک" run_V = mkV_1 "دویدن" ; - say_VS = mkV "گفتن" "گوی" ; + say_VS = mkVS (mkV "گفتن" "گوی") ; school_N = mkN "مدرسه" "مدارس" inanimate; science_N = mkN "علم" "علوم" inanimate; -- also "دانش" sea_N = mkN01 "دریا" inanimate; diff --git a/src/persian/ParadigmsPes.gf b/src/persian/ParadigmsPes.gf index b29dc62d..f0b4716e 100644 --- a/src/persian/ParadigmsPes.gf +++ b/src/persian/ParadigmsPes.gf @@ -148,9 +148,9 @@ oper mkVS = overload { mkVS : Str -> VS -- predictable verb with sentence complement - = \s -> lin VS (regV s) ; + = \s -> lin VS (regV s ** {compl=subjunctive}) ; mkVS : V -> VS -- VS out of a verb - = \v -> lin VS v + = \v -> lin VS (v ** {compl=subjunctive}) } ; mkVV = overload { diff --git a/src/persian/VerbPes.gf b/src/persian/VerbPes.gf index cff7d80d..a31a610c 100644 --- a/src/persian/VerbPes.gf +++ b/src/persian/VerbPes.gf @@ -13,7 +13,7 @@ concrete VerbPes of Verb = CatPes ** open ResPes,Prelude in { ComplSlash = complSlash ; ComplVV = insertVV ; - ComplVS v s = embComp (conjThat ++ s.s ! Indic) (predV v) ; + ComplVS v s = embComp (conjThat ++ s.s ! v.compl) (predV v) ; ComplVQ v q = embComp (conjThat ++ q.s) (predV v) ; ComplVA v ap = insertObj (appComp v.c2 ap.s) (predV v) ; -- check form of adjective