(Kor) Add unit tests about verb inflection

This commit is contained in:
Inari Listenmaa
2020-03-24 20:51:30 +01:00
parent 5344ca7cce
commit 4730cae42b
4 changed files with 51 additions and 15 deletions

View File

@@ -74,7 +74,7 @@ lin cat_N = mkN "고양이" ;
-- lin cloud_N = mkN "" ;
-- lin coat_N = mkN "" ;
-- lin cold_A = mkA "" ;
-- lin come_V = mkV "" ;
lin come_V = mkV "오다" ;
-- lin computer_N = mkN "" ;
-- lin correct_A = mkA "" ;
-- lin count_V2 = mkV2 "" ;
@@ -105,7 +105,7 @@ lin cat_N = mkN "고양이" ;
-- lin ear_N = mkN "" ;
-- lin earth_N = mkN "" ;
-- lin eat_V2 = mkV2 "" ;
lin eat_V2 = mkV2 "먹다" ;
-- lin egg_N = mkN "" ;
-- lin empty_A = mkA "" ;
-- lin enemy_N = mkN "" ;
@@ -148,11 +148,11 @@ lin cat_N = mkN "고양이" ;
-- lin garden_N = mkN "" ;
lin girl_N = mkN "여자아이" ;
-- lin give_V3 = mkV3 "" ;
lin give_V3 = mkV3 "주다" ;
-- lin glove_N = mkN "" ;
-- lin go_V = mkV "" ;
lin go_V = mkV "가다" ;
-- lin gold_N = mkN "" ;
-- lin good_A = mkA "" ;
lin good_A = mkA "좋다" ;
-- lin grammar_N = mkN "" ;
-- lin grass_N = mkN "" ;
-- lin green_A = mkA "" ;
@@ -202,7 +202,7 @@ lin house_N = mkN "집" ;
-- lin lake_N = mkN "" ;
-- lin lamp_N = mkN "" ;
-- lin language_N = mkN "" ;
-- lin laugh_V = mkV "" ;
lin laugh_V = mkV "웃다" ;
-- lin leaf_N = mkN "" ;
-- lin learn_V2 = mkV2 "" ;
-- lin leather_N = mkN "" ;
@@ -305,7 +305,7 @@ lin person_N = mkN "사람" ;
-- lin science_N = mkN "" ;
-- lin scratch_V2 = mkV2 "" ;
-- lin sea_N = mkN "" ;
-- lin see_V2 = mkV2 "" ;
lin see_V2 = mkV2 "보다" ;
-- lin seed_N = mkN "" ;
-- lin seek_V2 = mkV2 "" ;
-- lin sell_V3 = mkV3 "" ;

View File

@@ -7,7 +7,7 @@ oper
-- To abstract over number, valency and (some) case names,
-- we define the following identifiers. The application programmer
-- should always use these constants instead of the constructors
-- defined in $ResSom$.
-- defined in $ResKor$.
--2 Nouns
@@ -28,14 +28,14 @@ oper
-- Verbs
mkV : overload {
mkV : (inf : Str) -> V ; -- Predictable verb: infinitive form as argument
mkV : (plain : Str) -> V ; -- Predictable verb: plaininitive form as argument
-- mkV : Str -> V -> V -- Add a prefix to an existing verb, e.g. u baahan+ahay
} ;
copula : V ; -- The copula verb ''
mkV2 : overload {
mkV2 : (inf : Str) -> V2 ;
mkV2 : (plain : Str) -> V2 ;
} ;
-- mkV3 : overload {
@@ -102,7 +102,7 @@ oper
} ;
mkV = overload {
mkV : (inf : Str) -> V = \v -> lin V (mkVerb v Active) ;
mkV : (plain : Str) -> V = \v -> lin V (mkVerb v Active) ;
} ;
copula = ResKor.copula ;
@@ -111,11 +111,12 @@ oper
-- } ;
mkV2 = overload {
mkV2 : (inf : Str) -> V2 = \v2 -> lin V2 (mkVerb2 v2) ;
mkV2 : (plain : Str) -> V2 = \v2 -> lin V2 (mkVerb2 v2) ;
} ;
mkV3 = overload {
mkV3 : (plain : Str) -> V3 = \v3 -> lin V3 (mkVerb3 v3) ;
} ;
--
-- mkV3 = overload {
-- } ;
--
-- mkVV = overload {
-- } ;

View File

@@ -152,6 +152,10 @@ oper
let v = mkVerb plain Active
in v ** {c2 = Object ; p2 = emptyPP} ;
mkVerb3 : (plain : Str) -> Verb3 = \plain ->
let v = mkVerb2 plain
in v ** {c3 = Bare ; p3 = emptyPP} ;
mkVerbFull : (x1,_,_,_,_,x6 : Str) -> VerbType -> Verb =
\plain,polite,formal,planeg,polneg,formneg,vt -> {
s = table {

View File

@@ -0,0 +1,31 @@
-----------------------
-- Verb inflection --
-- (Polite informal) --
-----------------------
-- Regular
Lang: eat_V2
LangKor: 먹어요
Lang: UseComp (CompAP (PositA good_A))
LangKor: 좋어요
-- Final ㅏ or ㅓ does not repeat itself
Lang: go_V
LangKor: 가요
-- Monosyllabic 으-final is dropped
Lang: UseComp (CompAP (PositA big_A))
LangKor: 커요
-- Final ㅗ + -아요 becomes ㅘ요
Lang: see_V2
LangKor: 봐요
Lang: come_V
LangKor: 와요
-- Final ㅜ + -어요 becomes ㅝ요
Lang: give_V3
LangKor: 줘요