From ac1501c94263a620c8bb20e9ff90ba0a331396ef Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Mon, 6 Apr 2020 18:19:20 +0200 Subject: [PATCH] (Kor) Add inflection table to RCl and RS, change other funs accordingly --- src/korean/CatKor.gf | 4 ++-- src/korean/ConjunctionKor.gf | 18 ++++++++++-------- src/korean/NounKor.gf | 2 +- src/korean/RelativeKor.gf | 29 ++++++++++++++++++----------- src/korean/ResKor.gf | 2 +- src/korean/SentenceKor.gf | 2 +- 6 files changed, 33 insertions(+), 24 deletions(-) diff --git a/src/korean/CatKor.gf b/src/korean/CatKor.gf index 07a705d13..84f7df4a0 100644 --- a/src/korean/CatKor.gf +++ b/src/korean/CatKor.gf @@ -8,8 +8,8 @@ concrete CatKor of Cat = CommonX ** open ResKor, Prelude in { -- Constructed in SentenceKor, and also in IdiomKor S = ResKor.Sentence ; - QS = SS ; - RS = SS ; + QS = SS ; -- Questions not implemented yet + RS = ResKor.Sentence ; -- relative sentence. Tense and polarity fixed, -- but agreement may depend on the CN/NP it modifies. diff --git a/src/korean/ConjunctionKor.gf b/src/korean/ConjunctionKor.gf index cf4df9608..6d81e0d49 100644 --- a/src/korean/ConjunctionKor.gf +++ b/src/korean/ConjunctionKor.gf @@ -29,11 +29,11 @@ concrete ConjunctionKor of Conjunction = lincat - [Adv],[AdV],[IAdv],[RS] = ConjSS ; + [Adv],[AdV],[IAdv] = ConjSS ; lin - BaseAdv, BaseAdV, BaseIAdv, BaseRS = baseSS ; - ConsAdv, ConsAdV, ConsIAdv, ConsRS = consSS ; - ConjAdv, ConjAdV, ConjIAdv, ConjRS = conjSS ; + BaseAdv, BaseAdV, BaseIAdv = baseSS ; + ConsAdv, ConsAdV, ConsIAdv = consSS ; + ConjAdv, ConjAdV, ConjIAdv = conjSS ; oper ConjSS : Type = SS ** {firstSS : ConjType => Str} ; @@ -71,20 +71,22 @@ oper mkFirstSS : SS -> ConjType => Str = \s -> \\conj => glue s.s (conjTable ! VStar ! conj) ; + + lincat - [S] = ResKor.Sentence ** {firstS : ConjType => Str} ; + [S], [RS] = ResKor.Sentence ** {firstS : ConjType => Str} ; lin - BaseS s1 s2 = s2 ** { + BaseS,BaseRS = \s1,s2 -> s2 ** { firstS = mkFirstS s1 } ; - ConsS s ss = ss ** { + ConsS,ConsRS = \s,ss -> ss ** { firstS = \\conj => mkFirstS s ! conj ++ ss.firstS ! conj ; } ; - ConjS co ss = ss ** { + ConjS,ConjRS = \co,ss -> ss ** { s = \\st => co.s1 ++ ss.firstS ! co.c ++ ss.s ! st } ; diff --git a/src/korean/NounKor.gf b/src/korean/NounKor.gf index d74976d17..8c5693471 100644 --- a/src/korean/NounKor.gf +++ b/src/korean/NounKor.gf @@ -165,7 +165,7 @@ concrete NounKor of Noun = CatKor ** open ResKor, Prelude in { -- : CN -> RS -> CN ; RelCN cn rs = cn ** { - rs = cn.rs ++ rs.s + rs = cn.rs ++ rs.s ! Subord } ; diff --git a/src/korean/RelativeKor.gf b/src/korean/RelativeKor.gf index c55e24192..4150f6e49 100644 --- a/src/korean/RelativeKor.gf +++ b/src/korean/RelativeKor.gf @@ -3,21 +3,20 @@ concrete RelativeKor of Relative = CatKor ** open lin -- : Cl -> RCl ; -- such that John loves her - RelCl cl = {s = \\t,a,p => cl.s ! t ! a ! p ! Subord} ; + RelCl = relSlash (ss "") ; -- : RP -> VP -> RCl ; - RelVP rp vp = { - s = \\t,a,p => vp.adv - ++ vp.nObj - ++ vp.s ! VAttr p -- TODO no tenses yet in the grammar - ++ rp.s ; -} ; + RelVP rp vp = { -- TODO no tenses yet in the grammar + s = \\t,a,p,cltyp => + rp.s ++ vp.adv ++ vp.nObj ++ + case cltyp of { + WithConj => vp.s ! VStem ; + _ => vp.s ! VAttr p } ; + } ; -- : RP -> ClSlash -> RCl ; -- whom John loves - RelSlash rp cls = { - s = \\t,a,p => cls.s ! t ! a ! p ! Subord - ++ rp.s ; -} ; + RelSlash = relSlash ; + -- : RP ; IdRP = {s = ""} ; @@ -25,4 +24,12 @@ lin -- : Prep -> NP -> RP -> RP ; -- the mother of whom --FunRP prep np rp = {} ; +oper + relSlash : SS -> ClSlash -> ResKor.RClause = \rp,cls -> { + s = \\t,a,p,cltyp => rp.s ++ + case cltyp of { + WithConj => cls.s ! t ! a ! p ! WithConj ; + _ => cls.s ! t ! a ! p ! Subord } ; + } ; + } diff --git a/src/korean/ResKor.gf b/src/korean/ResKor.gf index de5c081d3..a51bacbf7 100644 --- a/src/korean/ResKor.gf +++ b/src/korean/ResKor.gf @@ -321,7 +321,7 @@ oper QClause : Type = Clause ; - RClause : Type = {s : Tense => Anteriority => Polarity => Str} ; + RClause : Type = Clause ; Sentence : Type = {s : ClType => Str} ; diff --git a/src/korean/SentenceKor.gf b/src/korean/SentenceKor.gf index 38d9738e2..cc9a7f474 100644 --- a/src/korean/SentenceKor.gf +++ b/src/korean/SentenceKor.gf @@ -56,7 +56,7 @@ lin UseQCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! Statement} ; -- : Temp -> Pol -> RCl -> RS ; - UseRCl t p rcl = {s = t.s ++ p.s ++ rcl.s ! t.t ! t.a ! p.p} ; + UseRCl t p rcl = {s = \\c => t.s ++ p.s ++ rcl.s ! t.t ! t.a ! p.p ! c} ; -- AdvS : Adv -> S -> S ; -- then I will go home AdvS = advS "" ;