mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
Merge pull request #300 from inariksit/japanese
Document Japanese paradigms better.
This commit is contained in:
@@ -3,29 +3,32 @@ resource ParadigmsJpn = CatJpn **
|
|||||||
|
|
||||||
flags coding = utf8 ;
|
flags coding = utf8 ;
|
||||||
|
|
||||||
param
|
|
||||||
|
|
||||||
VerbGroupP = Gr1P | Gr2P | SuruP | KuruP ;
|
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
|
VerbGroup : Type ;
|
||||||
|
gr1 : VerbGroup ; -- Basic form ends in -u, consonant stem.
|
||||||
|
gr2 : VerbGroup ; -- Basic form ends in -iru/-eru, vowel stem.
|
||||||
|
suru : VerbGroup ; -- Irregular: kuru
|
||||||
|
kuru : VerbGroup ; -- Irregular: suru
|
||||||
|
|
||||||
mkN = overload {
|
mkN = overload {
|
||||||
mkN : (man : Str) -> N ---- AR 15/11/2014
|
mkN : (man : Str) -> N -- Inanimate noun. Counter is つ and not replaceable.
|
||||||
= \n -> lin N (regNoun n Inanim "つ" False True) ;
|
= \n -> lin N (regNoun n Inanim "つ" False True) ; ---- AR 15/11/2014
|
||||||
mkN : (man : Str) -> (anim : Animateness) -> N
|
mkN : (man : Str) -> (anim : Animateness) -> N -- Animacy given as argument. Counter is つ and not replaceable.
|
||||||
= \n,a -> lin N (regNoun n a "つ" False True) ;
|
= \n,a -> lin N (regNoun n a "つ" False True) ;
|
||||||
mkN : (kane,okane : Str) -> (anim : Animateness) -> N
|
mkN : (kane,okane : Str) -> (anim : Animateness) -> N -- Style variation (plain, respectful) and animacy given. Counter is つ and not replaceable.
|
||||||
= \kane,okane,a -> lin N (styleNoun kane okane a "つ" False True) ;
|
= \kane,okane,a -> lin N (styleNoun kane okane a "つ" False True) ;
|
||||||
mkN : (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) -> N
|
mkN : (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) -> N -- No style variation. Arguments are animacy, counter and whether counter is replaceable.
|
||||||
= \n,a,c,b -> lin N (regNoun n a c b False) ;
|
= \n,a,c,b -> lin N (regNoun n a c b False) ;
|
||||||
mkN : (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) ->
|
mkN : (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) ->
|
||||||
(men : Str) -> N = \n,a,c,b,pl -> lin N (numberNoun n a c b pl False) ;
|
(men : Str) -> N -- Like previous, but unpredictable plural.
|
||||||
|
= \n,a,c,b,pl -> lin N (numberNoun n a c b pl False) ;
|
||||||
mkN : (kane,okane : Str) -> (anim : Animateness) -> (counter : Str) ->
|
mkN : (kane,okane : Str) -> (anim : Animateness) -> (counter : Str) ->
|
||||||
(counterReplace : Bool) -> N
|
(counterReplace : Bool) -> N -- Style variation, animacy, counter and whether counter is replaceable.
|
||||||
= \kane,okane,a,c,b -> lin N (styleNoun kane okane a c b False) ;
|
= \kane,okane,a,c,b -> lin N (styleNoun kane okane a c b False) ;
|
||||||
mkN : (tsuma,okusan : Str) -> (anim : Animateness) -> (counter : Str) ->
|
mkN : (tsuma,okusan : Str) -> (anim : Animateness) -> (counter : Str) ->
|
||||||
(counterReplace : Bool) -> (tsumatachi : Str) -> N
|
(counterReplace : Bool) -> (tsumatachi : Str) -> N -- Worst case paradigm: style variation, animacy, counter, whether counter is replaceable and unpredictable plural.
|
||||||
= \tsuma,okusan,a,c,b,tsumatachi ->
|
= \tsuma,okusan,a,c,b,tsumatachi ->
|
||||||
lin N (mkNoun tsuma okusan tsumatachi tsumatachi a c b False)
|
lin N (mkNoun tsuma okusan tsumatachi tsumatachi a c b False)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -62,45 +65,52 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkV = overload {
|
mkV = overload {
|
||||||
mkV : (yomu : Str) -> V
|
mkV : (yomu : Str) -> V -- Default: group 1 verb
|
||||||
= \yomu -> lin V (mkVerb yomu Gr1) ; ---- AR 15/11/2014
|
= \yomu -> lin V (mkVerb yomu Gr1) ; ---- AR 15/11/2014
|
||||||
mkV : (yomu : Str) -> (group : ResJpn.VerbGroup) -> V
|
mkV : (yomu : Str) -> (group : VerbGroup) -> V
|
||||||
= \yomu,gr -> lin V (mkVerb yomu gr) ;
|
= \yomu,gr -> lin V (mkVerb yomu gr) ; -- Base form and verb group given
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkV2 = overload {
|
mkV2 = overload {
|
||||||
mkV2 : (yomu : Str) -> V2 ---- AR 15/11/2014
|
mkV2 : (yomu : Str) -> V2 -- Group 1 verb, を as object marker
|
||||||
= \yomu -> lin V2 (mkVerb2 yomu "を" Gr1) ;
|
= \yomu -> lin V2 (mkVerb2 yomu "を" Gr1) ; ---- AR 15/11/2014
|
||||||
mkV2 : (yomu, prep : Str) -> (group : ResJpn.VerbGroup) -> V2
|
mkV2 : (yomu, prep : Str) -> (group : VerbGroup) -> V2 -- Base form, object marker and verb group given
|
||||||
= \yomu,p,gr -> lin V2 (mkVerb2 yomu p gr) ;
|
= \yomu,p,gr -> lin V2 (mkVerb2 yomu p gr) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkV3 = overload {
|
mkV3 = overload {
|
||||||
mkV3 : (yomu : Str) -> V3
|
mkV3 : (yomu : Str) -> V3 -- Group 1 verb, に and を as object markers
|
||||||
= \yomu -> lin V3 (mkVerb3 yomu "に" "を" Gr1) ;
|
= \yomu -> lin V3 (mkVerb3 yomu "に" "を" Gr1) ;
|
||||||
mkV3 : (uru, p1, p2 : Str) -> (group : ResJpn.VerbGroup) -> V3 = \uru,p1,p2,gr ->
|
mkV3 : (uru, p1, p2 : Str) -> (group : VerbGroup) -> V3 -- Base form, object markers and verb group given
|
||||||
lin V3 (mkVerb3 uru p1 p2 gr) ;
|
= \uru,p1,p2,gr -> lin V3 (mkVerb3 uru p1 p2 gr) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkVS : (yomu : Str) -> VS = \yomu -> lin VS (mkVerb2 yomu "ことを" Gr1) ;
|
mkVS : (yomu : Str) -> VS
|
||||||
|
= \yomu -> lin VS (mkVerb2 yomu "ことを" Gr1) ;
|
||||||
|
|
||||||
mkVV : (yomu : Str) -> VV = \yomu -> lin VV (mkVerbV yomu Gr1) ;
|
mkVV : (yomu : Str) -> VV
|
||||||
|
= \yomu -> lin VV (mkVerbV yomu Gr1) ;
|
||||||
|
|
||||||
mkV2V : (yomu : Str) -> V2V = \yomu -> lin V2V (mkVerb yomu Gr1) ;
|
mkV2V : (yomu : Str) -> V2V
|
||||||
|
= \yomu -> lin V2V (mkVerb yomu Gr1) ;
|
||||||
|
|
||||||
mkV2S : (yomu : Str) -> V2S = \yomu -> lin V2S (mkVerb yomu Gr1) ;
|
mkV2S : (yomu : Str) -> V2S
|
||||||
|
= \yomu -> lin V2S (mkVerb yomu Gr1) ;
|
||||||
|
|
||||||
mkVQ : (yomu : Str) -> VQ = \yomu -> lin VQ (mkVerb2 yomu "を" Gr1) ;
|
mkVQ : (yomu : Str) -> VQ
|
||||||
|
= \yomu -> lin VQ (mkVerb2 yomu "を" Gr1) ;
|
||||||
|
|
||||||
mkVA : (yomu : Str) -> VA = \yomu -> lin VA (mkVerb yomu Gr1) ;
|
mkVA : (yomu : Str) -> VA
|
||||||
|
= \yomu -> lin VA (mkVerb yomu Gr1) ;
|
||||||
|
|
||||||
mkV2A : (yomu : Str) -> V2A = \yomu -> lin V2A (mkVerb yomu Gr1) ;
|
mkV2A : (yomu : Str) -> V2A
|
||||||
|
= \yomu -> lin V2A (mkVerb yomu Gr1) ;
|
||||||
|
|
||||||
mkAdv : Str -> Adv ---- AR 15/11/2014
|
mkAdv : Str -> Adv
|
||||||
= \s -> lin Adv (ResJpn.mkAdv s) ;
|
= \s -> lin Adv (ResJpn.mkAdv s) ; ---- AR 15/11/2014
|
||||||
|
|
||||||
mkPrep : Str -> Prep ---- AR 15/11/2014
|
mkPrep : Str -> Prep
|
||||||
= \s -> lin Prep (ResJpn.mkPrep s) ;
|
= \s -> lin Prep (ResJpn.mkPrep s) ; ---- AR 15/11/2014
|
||||||
|
|
||||||
mkDet : Str -> Det = \d -> lin Det (ResJpn.mkDet d d ResJpn.Sg) ;
|
mkDet : Str -> Det = \d -> lin Det (ResJpn.mkDet d d ResJpn.Sg) ;
|
||||||
|
|
||||||
@@ -116,4 +126,13 @@ oper
|
|||||||
te_neg = \\sp => "行かないで" ;
|
te_neg = \\sp => "行かないで" ;
|
||||||
ba_neg = \\sp => "行かなければ" ;
|
ba_neg = \\sp => "行かなければ" ;
|
||||||
sense = Abil} ;
|
sense = Abil} ;
|
||||||
|
|
||||||
|
--.
|
||||||
|
-- Hidden definitions
|
||||||
|
|
||||||
|
VerbGroup : Type = ResJpn.VerbGroup ;
|
||||||
|
gr1 : VerbGroup = Gr1 ;
|
||||||
|
gr2 : VerbGroup = Gr2 ;
|
||||||
|
suru : VerbGroup = Suru ;
|
||||||
|
kuru : VerbGroup = Kuru ;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user