mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
add more time expressions to ConstructionJpn, and fill SymbolJpn (might be wrong though) functions.
This commit is contained in:
5
lib/src/api/SymbolicJpn.gf
Normal file
5
lib/src/api/SymbolicJpn.gf
Normal file
@@ -0,0 +1,5 @@
|
||||
--# -path=.:../japanese:../common:../abstract:../prelude
|
||||
|
||||
resource SymbolicJpn = Symbolic with
|
||||
(Symbol = SymbolJpn),
|
||||
(Grammar = GrammarJpn) ;
|
||||
@@ -1,5 +1,5 @@
|
||||
concrete ConstructionJpn of Construction = CatJpn **
|
||||
open SyntaxJpn, ParadigmsJpn, (R=ResJpn), (L = LexiconJpn) in {
|
||||
open SyntaxJpn, ParadigmsJpn, (R=ResJpn), (L = LexiconJpn), SymbolicJpn in {
|
||||
|
||||
lin
|
||||
hungry_VP = mkVP (mkV "お腹が空いている" R.Gr1) ;
|
||||
@@ -11,50 +11,71 @@ lin
|
||||
|
||||
|
||||
lincat
|
||||
--TODO add rest as soon as I learn that stuff in Duolingo ^^ /IL 2017-07
|
||||
-- Timeunit ;
|
||||
Timeunit = N ;
|
||||
Weekday = N ;
|
||||
-- Month ;
|
||||
-- Monthday ;
|
||||
-- Year ;
|
||||
Monthday = NP ;
|
||||
Month = N ;
|
||||
Year = NP ;
|
||||
|
||||
lin
|
||||
|
||||
|
||||
-- : Weekday -> Adv ;
|
||||
weekdayPunctualAdv w = SyntaxJpn.mkAdv in_Prep (mkNP w) ; -- on Sunday
|
||||
weekdayHabitualAdv w = SyntaxJpn.mkAdv in_Prep (mkNP w) ; -- on Sundays
|
||||
weekdayNextAdv w = SyntaxJpn.mkAdv in_Prep (mkNP (mkCN (mkA "次の") w)) ; -- next Sunday
|
||||
weekdayLastAdv w = SyntaxJpn.mkAdv in_Prep (mkNP (mkCN (mkA "先週の") w)) ; -- last Sunday
|
||||
|
||||
{-
|
||||
monthAdv : Month -> Adv ; -- in June
|
||||
yearAdv : Year -> Adv ; -- in 1976
|
||||
dayMonthAdv : Monthday -> Month -> Adv ; -- on 17 May
|
||||
monthYearAdv : Month -> Year -> Adv ; -- in May 2013
|
||||
dayMonthYearAdv : Monthday -> Month -> Year -> Adv ; -- on 17 May 2013
|
||||
|
||||
intYear : Int -> Year ; -- (year) 1963
|
||||
intMonthday : Int -> Monthday ; -- 31th (March)
|
||||
-}
|
||||
-- : Month -> Adv ; -- in June
|
||||
monthAdv m = SyntaxJpn.mkAdv in_Prep (mkNP m) ;
|
||||
|
||||
-- : Year -> Adv ; -- in 1976
|
||||
yearAdv y = SyntaxJpn.mkAdv in_Prep y ;
|
||||
|
||||
-- : Monthday -> Month -> Adv ; -- on 17 May / 五月十七日に
|
||||
dayMonthAdv day month =
|
||||
let futsukaNi : Adv = SyntaxJpn.mkAdv in_Prep day ;
|
||||
sangatsu : R.Style => Str = month.s ! R.Sg ;
|
||||
in futsukaNi ** { s = \\style => sangatsu ! style ++ futsukaNi.s ! style } ;
|
||||
|
||||
-- : Month -> Year -> Adv ; -- in May 2013
|
||||
monthYearAdv m y = SyntaxJpn.mkAdv in_Prep (mkNP (mkCN m y)) ;
|
||||
|
||||
-- : Monthday -> Month -> Year -> Adv ; -- on 17 May 2013
|
||||
dayMonthYearAdv d m y =
|
||||
let futsukaNi : Adv = SyntaxJpn.mkAdv in_Prep d ;
|
||||
sangatsu2013 : R.Style => Str = \\st => y.s ! st ++ "年" ++ m.s ! R.Sg ! st;
|
||||
|
||||
in futsukaNi ** { s = \\style => sangatsu2013 ! style ++ futsukaNi.s ! style } ;
|
||||
|
||||
-- : Int -> Year ; -- (year) 1963
|
||||
intYear = symb ;
|
||||
|
||||
-- : Int -> Monthday ; -- 31th (March)
|
||||
intMonthday i = symb { s = i.s ++ "日" } ;
|
||||
|
||||
|
||||
|
||||
-- coercions to RGL categories
|
||||
|
||||
-- : Weekday -> N ; -- (this) Monday
|
||||
weekdayN w = w ;
|
||||
monthN m = m ;
|
||||
|
||||
{-
|
||||
monthN : Month -> N ; -- (this) November
|
||||
weekdayPN w = mkPN (w.s ! R.Sg ! R.Plain) ;
|
||||
monthPN m = mkPN (m.s ! R.Sg ! R.Plain) ;
|
||||
|
||||
weekdayPN : Weekday -> PN ; -- Monday (is free)
|
||||
monthPN : Month -> PN ; -- March (is cold)
|
||||
|
||||
languageNP : Language -> NP ; -- French (is easy)
|
||||
languageCN : Language -> CN ; -- (my) French
|
||||
-}
|
||||
|
||||
----------------------------------------------
|
||||
---- lexicon of special names
|
||||
|
||||
-- This is pure guessing /IL 2017-07
|
||||
-- second_Timeunit = mkN "second" ;
|
||||
-- minute_Timeunit = mkN "minute" ;
|
||||
-- hour_Timeunit = mkN "hour" ;
|
||||
day_Timeunit = mkN "日" ;
|
||||
week_Timeunit = mkN "週間" ;
|
||||
month_Timeunit = mkN "箇月" ;
|
||||
year_Timeunit = mkN "年" ;
|
||||
|
||||
monday_Weekday = mkN "月曜日" ; -- "getsuyoubi"
|
||||
tuesday_Weekday = mkN "火曜日" ; -- "kayoubi"
|
||||
wednesday_Weekday = mkN "水曜日" ; -- "suiyoubi"
|
||||
@@ -63,4 +84,17 @@ lin
|
||||
saturday_Weekday = mkN "土曜日" ; -- "doyoubi"
|
||||
sunday_Weekday = mkN "日曜日" ; -- "nichiyoubi"
|
||||
|
||||
january_Month = mkN "一月" ; -- ichigatsu
|
||||
february_Month = mkN "二月" ; -- nigatsu
|
||||
march_Month = mkN "三月" ; -- sangatsu
|
||||
april_Month = mkN "四月" ; -- shigatsu
|
||||
may_Month = mkN "五月" ; -- gogatsu
|
||||
june_Month = mkN "六月" ; -- rokugatsu
|
||||
july_Month = mkN "七月" ; -- shichigatsu
|
||||
august_Month = mkN "八月" ; -- hachigatsu
|
||||
september_Month = mkN "九月" ; -- kugatsu
|
||||
october_Month = mkN "十月" ; -- jyuugatsu
|
||||
november_Month = mkN "十一月" ; -- jyuuichigatsu
|
||||
december_Month = mkN "十二月" ; -- jyuunigatsu
|
||||
|
||||
}
|
||||
|
||||
@@ -147,7 +147,17 @@ oper
|
||||
} ;
|
||||
dropNaEnging = ooki
|
||||
} ;
|
||||
|
||||
|
||||
-- Added by IL 2017-07. Used in NounJpn and SymbolJpn.
|
||||
mkOrd : SS -> Adj = \symb -> {
|
||||
pred = \\st,t,p => symb.s ++ "番目" ++ mkCopula.s ! st ! t ! p ; -- "banme"
|
||||
attr = symb.s ++ "番目の" ;
|
||||
te = \\p => symb.s ++ "番目" ++ mkCopula.te ! p ;
|
||||
ba = \\p => symb.s ++ "番目" ++ mkCopula.ba ! p ;
|
||||
adv = \\p => symb.s ++ "番目" ;
|
||||
dropNaEnging = symb.s ++ "番目の"
|
||||
} ;
|
||||
|
||||
VerbalA : Str -> Str -> Adj = \kekkonshiteiru,kikonno ->
|
||||
let
|
||||
kekkonshite = Predef.tk 2 kekkonshiteiru
|
||||
|
||||
@@ -1,39 +1,40 @@
|
||||
--# -path=.:../abstract:../prelude
|
||||
|
||||
concrete SymbolJpn of Symbol = CatJpn ** open Prelude, ResJpn in {
|
||||
concrete SymbolJpn of Symbol = CatJpn ** open Prelude, ResJpn, NounJpn in {
|
||||
|
||||
flags coding = utf8;
|
||||
{-
|
||||
lin
|
||||
SymbPN i = {s = addGenitiveS i.s ; g = Masc ; t = NonLiving ; h = Pers3_L } ;
|
||||
|
||||
IntPN i = {s = addGenitiveS i.s ; g = Masc ; t = NonLiving ; h = Pers3_L } ;
|
||||
|
||||
FloatPN i = {s = addGenitiveS i.s ; g = Masc ; t = NonLiving ; h = Pers3_L } ;
|
||||
|
||||
NumPN i = {s = \\_ =>i.s ; g = Masc ; t = NonLiving ; h = Pers3_L } ;
|
||||
|
||||
CNIntNP cn i = {
|
||||
s = \\c => cn.s ! Sg ! Nom ++ i.s ;
|
||||
a = agrP3 cn.g Sg ;
|
||||
t = NonLiving
|
||||
} ;
|
||||
|
||||
CNSymbNP det cn xs = {
|
||||
s = \\c => det.s!Sg!Masc ++ cn.s ! det.n ! Nom ++ xs.s ;
|
||||
a = agrP3 cn.g det.n ;
|
||||
t = NonLiving
|
||||
} ;
|
||||
|
||||
CNNumNP cn i = {
|
||||
s = \\c => cn.s ! Sg ! Nom ++ i.s ;
|
||||
a = agrP3 cn.g Sg ;
|
||||
t = NonLiving
|
||||
} ;
|
||||
|
||||
SymbS sy = sy ;
|
||||
SymbNum sy = { s = sy.s ; n = Pl } ;
|
||||
SymbOrd sy = { s = sy.s ++ "ौँ" ; n = Pl} ;
|
||||
lin
|
||||
--PN = {s : Style => Str ; anim : Animateness} ;
|
||||
SymbPN i = {s = \\style => i.s ; anim = Inanim } ;
|
||||
|
||||
IntPN i = {s = \\style => i.s ; anim = Inanim } ;
|
||||
|
||||
FloatPN i = {s = \\style => i.s ; anim = Inanim } ;
|
||||
|
||||
NumPN i = {s = \\style => i.s ; anim = Inanim } ;
|
||||
|
||||
|
||||
-- : Det -> CN -> [Symb] -> NP ; -- (the) (2) numbers x and y
|
||||
CNSymbNP det cn xs =
|
||||
let np = DetCN det cn ;
|
||||
in np ** { s = \\st => xs.s ++ "の" ++ np.s ! st } ;
|
||||
|
||||
-- : CN -> Card -> NP ; -- level five ; level 5
|
||||
-- This is pure guessing /IL 2017-07
|
||||
CNNumNP cn i =
|
||||
let np = MassNP cn ;
|
||||
in np ** { s = \\st => i.s ++ "の" ++ np.s ! st } ;
|
||||
|
||||
-- S = {s, te, ba, subj : Particle => Style => Str ; pred, pred_te, pred_ba : Style => Str} ;
|
||||
SymbS sy = { s = \\p,st => sy.s ;
|
||||
te = \\_,_ => [] ; ba = \\_,_ => [] ; subj = \\_,_ => [] ;
|
||||
pred = \\st => [] ; pred_te = \\st => [] ; pred_ba = \\st => [] } ;
|
||||
|
||||
SymbNum sy = mkNum sy.s Pl ;
|
||||
|
||||
SymbOrd = mkOrd ;
|
||||
|
||||
|
||||
lincat
|
||||
|
||||
@@ -42,13 +43,11 @@ lincat
|
||||
lin
|
||||
MkSymb s = s ;
|
||||
|
||||
BaseSymb = infixSS "र" ;
|
||||
BaseSymb = infixSS "と" ;
|
||||
ConsSymb = infixSS "," ;
|
||||
|
||||
oper
|
||||
-- Note: this results in a space before 's, but there's
|
||||
-- not mauch we can do about that.
|
||||
addGenitiveS : Str -> Case => Str = \s ->
|
||||
table {_ => Prelude.glue s "दा" } ;
|
||||
-}
|
||||
-- level 53 (covered by CNNumNP)
|
||||
--CNIntNP cn i = {} ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user