mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 11:19:32 -06:00
Jpn19.01.15
This commit is contained in:
@@ -1,59 +1,144 @@
|
||||
concrete ChunkJpn of Chunk = {} ;
|
||||
|
||||
{-
|
||||
|
||||
---- TODO: everything. Since CatJpn.Utt is not {s : Str}, nothing works in the functor
|
||||
|
||||
CatJpn, ExtensionsJpn [VPS,VPI] **
|
||||
ChunkFunctor
|
||||
concrete ChunkJpn of Chunk = CatJpn, ExtensionsJpn [VPS,VPI] **
|
||||
ChunkFunctor[Chunk, Chunks, OneChunk, PlusChunk, ChunkPhr,
|
||||
AdA_Chunk, AdV_Chunk, AdN_Chunk, PConj_Chunk, Symb_Chunk,
|
||||
fullstop_Chunk, exclmark_Chunk, questmark_Chunk, comma_Chunk,
|
||||
colon_Chunk, semicolon_Chunk, quote_Chunk, lpar_Chunk,
|
||||
rpar_Chunk, dash_Chunk]
|
||||
with (Syntax = SyntaxJpn), (Extensions = ExtensionsJpn) **
|
||||
open
|
||||
SyntaxJpn, (E = ExtensionsJpn), Prelude,
|
||||
ResJpn, (P = ParadigmsJpn) in {
|
||||
|
||||
oper
|
||||
emptyNP : NP = mkNP [] ;
|
||||
flags coding = utf8 ;
|
||||
|
||||
-- exceptions to functor
|
||||
lincat
|
||||
|
||||
VC = {s : Speaker => Style => TTense => Polarity => Str ;
|
||||
a_stem, i_stem : Speaker => Str ;
|
||||
te, ba : Speaker => Polarity => Str} ;
|
||||
|
||||
lin
|
||||
Conj_Chunk conj = ss (conj.s ! CSent).s2 ;
|
||||
Numeral_Nom_Chunk num = ss (num.s ++ ge_s) ;
|
||||
CN_Pl_Chunk cn = cn ;
|
||||
Subj_Chunk subj = ss (subj.prePart ++ subj.sufPart) ;
|
||||
Prep_Chunk prep = ss (prep.prepPre ++ prep.prepPost) ;
|
||||
Predet_Chunk predet = predet ;
|
||||
|
||||
AP_Chunk ap = {s = (mkUtt ap).s ! Wa ! Resp} ;
|
||||
Adv_Chunk adv = {s = adv.s ! Resp} ;
|
||||
S_Chunk s = {s = s.s ! Wa ! Resp} ;
|
||||
SSlash_Chunk sslash = {s = sslash.s ! Resp} ;
|
||||
QS_Chunk qs = {s = qs.s ! Wa ! Resp} ;
|
||||
CN_Pl_Chunk cn = {s = cn.prepositive ! Resp ++ cn.object ! Resp ++ cn.s ! Pl ! Resp} ;
|
||||
CN_Sg_Chunk cn = {s = cn.prepositive ! Resp ++ cn.object ! Resp ++ cn.s ! Sg ! Resp} ;
|
||||
CN_Pl_Gen_Chunk = CN_Pl_Chunk ;
|
||||
CN_Sg_Gen_Chunk = CN_Sg_Chunk ;
|
||||
Conj_Chunk conj = {s = conj.s} ;
|
||||
Det_Chunk det = {s = det.quant ! Resp ++ det.num ++ det.postpositive} ;
|
||||
IAdv_Chunk iadv = {s = iadv.s ! Resp} ;
|
||||
IP_Chunk ip = {s = ip.s_subj ! Resp} ;
|
||||
NP_Nom_Chunk np = {s = (mkUtt np).s ! Wa ! Resp} ;
|
||||
NP_Acc_Chunk, NP_Gen_Chunk = NP_Nom_Chunk ;
|
||||
Numeral_Nom_Chunk num = {s = num.s} ;
|
||||
Numeral_Gen_Chunk = Numeral_Nom_Chunk ;
|
||||
Ord_Nom_Chunk ord = {s = ord.attr} ;
|
||||
Ord_Gen_Chunk = Ord_Nom_Chunk ;
|
||||
Predet_Chunk predet = {s = predet.s} ;
|
||||
Prep_Chunk prep = {s = prep.s} ;
|
||||
RP_Nom_Chunk rp = {s = rp.s ! Resp} ;
|
||||
RP_Gen_Chunk, RP_Acc_Chunk = RP_Nom_Chunk ;
|
||||
Subj_Chunk subj = {s = subj.s} ;
|
||||
VPS_Chunk vps = {s = vps.prepositive ! Resp ++ vps.obj ! Resp ++ vps. prep ++
|
||||
vps.verb ! SomeoneElse ! Inanim ! Resp} ;
|
||||
VPI_Chunk vpi = {s = vpi.prepositive ! Resp ++ vpi.obj ! Resp ++ vpi. prep ++
|
||||
vpi.verb ! SomeoneElse ! Inanim } ;
|
||||
refl_SgP1_Chunk, refl_SgP2_Chunk, refl_SgP3_Chunk,
|
||||
refl_PlP1_Chunk, refl_PlP2_Chunk, refl_PlP3_Chunk = ss "自分" | ss "自分自身" ; -- "jibun" | "jibunjishin"
|
||||
neg_Chunk = ss "ない" | ss "しない" | ss "ではない" | ss "ません" | ss "ないで" ;
|
||||
copula_Chunk, future_Chunk = ss "です" | ss "だ" ;
|
||||
copula_neg_Chunk, future_neg_Chunk = ss "ではない" | ss "ではありません" ;
|
||||
copula_inf_Chunk = ss "です" | ss "だ" ;
|
||||
past_copula_Chunk = ss "でした" | ss "だった" ;
|
||||
past_copula_neg_Chunk = ss "ではありませんでした" | ss "ではなかった" ;
|
||||
cond_Chunk = copula_Chunk ; -- no "would" in Japanese
|
||||
cond_neg_Chunk = copula_neg_Chunk ;
|
||||
perfect_Chunk = past_copula_Chunk ** (ss "てしまった" | ss "ちゃった" | ss "でしまった" |
|
||||
ss "じゃった" | ss "ことがある" | ss "ことがあります") ;
|
||||
perfect_neg_Chunk = past_copula_neg_Chunk ** (ss "てしまわない" | ss "でしまわない" |
|
||||
ss "ことがありません" | ss "ことがない") ;
|
||||
past_perfect_Chunk = perfect_Chunk ;
|
||||
past_perfect_neg_Chunk = perfect_neg_Chunk ;
|
||||
|
||||
V2_V v2 = lin VC {
|
||||
s = \\sp => v2.s ;
|
||||
a_stem = \\sp => v2.a_stem ;
|
||||
i_stem = \\sp => v2.i_stem ;
|
||||
te = \\sp => v2.te ;
|
||||
ba = \\sp => v2.ba
|
||||
} ;
|
||||
|
||||
VA_V va = lin VC {
|
||||
s = \\sp => va.s ;
|
||||
a_stem = \\sp => va.a_stem ;
|
||||
i_stem = \\sp => va.i_stem ;
|
||||
te = \\sp => va.te ;
|
||||
ba = \\sp => va.ba
|
||||
} ;
|
||||
|
||||
VQ_V, VS_V = V2_V ;
|
||||
|
||||
VV_V vv = lin VC {
|
||||
s = vv.s ;
|
||||
a_stem = vv.a_stem ;
|
||||
i_stem = vv.i_stem ;
|
||||
te = vv.te ;
|
||||
ba = vv.ba
|
||||
} ;
|
||||
|
||||
V3_V v3 = lin VC {
|
||||
s = v3.s ;
|
||||
a_stem = v3.a_stem ;
|
||||
i_stem = v3.i_stem ;
|
||||
te = v3.te ;
|
||||
ba = v3.ba
|
||||
} ;
|
||||
|
||||
V2A_V v2a = lin VC {
|
||||
s = \\sp => v2a.s ;
|
||||
a_stem = \\sp => v2a.a_stem ;
|
||||
i_stem = \\sp => v2a.i_stem ;
|
||||
te = \\sp => v2a.te ;
|
||||
ba = \\sp => v2a.ba
|
||||
} ;
|
||||
|
||||
V2Q_V, V2S_V, V2V_V = V2A_V ;
|
||||
|
||||
UseVC t p vc = lin VPS {
|
||||
verb = \\sp,a,st => case t.a of {
|
||||
Simul => vc.s ! sp ! st ! t.t ! p.b ;
|
||||
Anter => case t.t of {
|
||||
TFut => vc.s ! sp ! st ! TPres ! p.b ;
|
||||
_ => vc.s ! sp ! st ! TPast ! p.b
|
||||
}
|
||||
} ;
|
||||
a_stem = \\sp,a,st => vc.a_stem ! sp ;
|
||||
i_stem = \\sp,a,st => vc.i_stem ! sp ;
|
||||
te = \\sp,a,st => vc.te ! sp ! p.b ;
|
||||
ba = \\sp,a,st => vc.ba ! sp ! p.b ;
|
||||
prep = "" ;
|
||||
obj = \\st => "" ;
|
||||
prepositive = \\st => ""
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
{-
|
||||
|
||||
emptyNP : NP = lin NP {s = \\st => "" ;
|
||||
prepositive = \\st => "" ;
|
||||
needPart = False ;
|
||||
changePolar = False ;
|
||||
meaning = SomeoneElse ;
|
||||
anim = Inanim} ;
|
||||
|
||||
lin
|
||||
NP_Acc_Chunk np = np ;
|
||||
NP_Gen_Chunk np = ss (np.s ++ de_s) ;
|
||||
|
||||
VPI_Chunk vpi = vpi ;
|
||||
|
||||
copula_inf_Chunk = ss copula_s ;
|
||||
|
||||
refl_SgP1_Chunk = ss reflPron ;
|
||||
refl_SgP2_Chunk = ss reflPron ;
|
||||
refl_SgP3_Chunk = ss reflPron ;
|
||||
refl_PlP1_Chunk = ss reflPron ;
|
||||
refl_PlP2_Chunk = ss reflPron ;
|
||||
refl_PlP3_Chunk = ss reflPron ;
|
||||
neg_Chunk = ss neg_s ;
|
||||
copula_Chunk = ss copula_s ;
|
||||
copula_neg_Chunk = ss (neg_s ++ copula_s) ;
|
||||
past_copula_Chunk = ss "了" ;
|
||||
past_copula_neg_Chunk = ss (neg_s ++ copula_s ++ "了") ;
|
||||
future_Chunk = ss copula_s ; ----
|
||||
future_neg_Chunk = ss (neg_s ++ copula_s) ;
|
||||
cond_Chunk = ss copula_s ; ----
|
||||
cond_neg_Chunk = ss (neg_s ++ copula_s) ;
|
||||
perfect_Chunk = ss "了" ;
|
||||
perfect_neg_Chunk = ss (neg_s ++ copula_s ++ "了") ;
|
||||
past_perfect_Chunk = ss "了" ;
|
||||
past_perfect_neg_Chunk = ss (neg_s ++ copula_s ++ "了") ;
|
||||
|
||||
}
|
||||
|
||||
-}
|
||||
|
||||
Reference in New Issue
Block a user