mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
added more temporal Constructions in Eng,Fin,Fre,Ger,Swe
This commit is contained in:
@@ -13,10 +13,6 @@ abstract Construction = Cat ** {
|
||||
|
||||
-- The first examples are from the MOLTO Phrasebook
|
||||
|
||||
cat
|
||||
Weekday ;
|
||||
Month ;
|
||||
|
||||
fun
|
||||
hungry_VP : VP ; -- x is hungry / x a faim (Fre)
|
||||
thirsty_VP : VP ; -- x is thirsty / x a soif (Fre)
|
||||
@@ -38,14 +34,30 @@ fun
|
||||
|
||||
n_units_AP : Card -> CN -> A -> AP ; -- x inches long
|
||||
|
||||
-- time expressions
|
||||
|
||||
cat
|
||||
Weekday ;
|
||||
Month ;
|
||||
Monthday ;
|
||||
Year ;
|
||||
|
||||
fun
|
||||
-- weekdayN : Weekday -> N ; --weekdays are already as nouns in Dict
|
||||
-- monthN : Month -> N --months are already as nouns in Dict
|
||||
weekdayPunctualAdv : Weekday -> Adv ;
|
||||
weekdayHabitualAdv : Weekday -> Adv ;
|
||||
weekdayLastAdv : Weekday -> Adv ;
|
||||
weekdayNextAdv : Weekday -> Adv ;
|
||||
weekdayPunctualAdv : Weekday -> Adv ; -- on Monday
|
||||
weekdayHabitualAdv : Weekday -> Adv ; -- on Mondays
|
||||
weekdayLastAdv : Weekday -> Adv ; -- last Monday
|
||||
weekdayNextAdv : Weekday -> Adv ; -- next Monday
|
||||
|
||||
monthAdv : Month -> Adv ;
|
||||
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 ;
|
||||
intMonthday : Int -> Monthday ;
|
||||
|
||||
monday_Weekday, tuesday_Weekday, wednesday_Weekday, thursday_Weekday, friday_Weekday, sunday_Weekday : Weekday ;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--# -path=.:../abstract
|
||||
|
||||
concrete ConstructionEng of Construction = CatEng **
|
||||
open SyntaxEng, ParadigmsEng, (L = LexiconEng), (E = ExtraEng), (G = GrammarEng), Prelude in {
|
||||
open SyntaxEng, SymbolicEng, ParadigmsEng, (L = LexiconEng), (E = ExtraEng), (G = GrammarEng), (R = ResEng), Prelude in {
|
||||
|
||||
|
||||
lin
|
||||
@@ -26,7 +26,24 @@ lin
|
||||
|
||||
lincat
|
||||
Weekday = N ;
|
||||
Monthday = NP ;
|
||||
Month = N ;
|
||||
Year = NP ;
|
||||
lin
|
||||
weekdayPunctualAdv w = SyntaxEng.mkAdv on_Prep (mkNP w) ; -- on Sunday
|
||||
weekdayHabitualAdv w = SyntaxEng.mkAdv on_Prep (mkNP aPl_Det w) ; -- on Sundays
|
||||
weekdayNextAdv w = SyntaxEng.mkAdv (mkPrep "next") (mkNP w) ; -- next Sunday
|
||||
weekdayLastAdv w = SyntaxEng.mkAdv (mkPrep "last") (mkNP w) ; -- last Sunday
|
||||
|
||||
monthAdv m = SyntaxEng.mkAdv in_Prep (mkNP m) ;
|
||||
yearAdv y = SyntaxEng.mkAdv in_Prep y ;
|
||||
dayMonthAdv d m = ParadigmsEng.mkAdv ("on" ++ d.s ! R.NPAcc ++ m.s ! R.Sg ! R.Nom) ; -- on 17 May
|
||||
monthYearAdv m y = SyntaxEng.mkAdv in_Prep (mkNP (mkCN m y)) ; -- in May 2012
|
||||
dayMonthYearAdv d m y = ParadigmsEng.mkAdv ("on" ++ d.s ! R.NPAcc ++ m.s ! R.Sg ! R.Nom ++ y.s ! R.NPAcc) ; -- on 17 May 2013
|
||||
|
||||
intYear = symb ;
|
||||
intMonthday = symb ;
|
||||
|
||||
monday_Weekday = mkN "Monday" ;
|
||||
tuesday_Weekday = mkN "Tuesday" ;
|
||||
wednesday_Weekday = mkN "Wednesday" ;
|
||||
@@ -35,10 +52,17 @@ lin
|
||||
saturday_Weekday = mkN "Saturday" ;
|
||||
sunday_Weekday = mkN "Sunday" ;
|
||||
|
||||
weekdayPunctualAdv w = SyntaxEng.mkAdv on_Prep (mkNP w) ; -- on Sunday
|
||||
weekdayHabitualAdv w = SyntaxEng.mkAdv on_Prep (mkNP aPl_Det w) ; -- on Sundays
|
||||
weekdayNextAdv w = SyntaxEng.mkAdv (mkPrep "next") (mkNP w) ; -- next Sunday
|
||||
weekdayLastAdv w = SyntaxEng.mkAdv (mkPrep "last") (mkNP w) ; -- last Sunday
|
||||
january_Month = mkN "January" ;
|
||||
february_Month = mkN "February" ;
|
||||
march_Month = mkN "March" ;
|
||||
april_Month = mkN "April" ;
|
||||
may_Month = mkN "May" ;
|
||||
june_Month = mkN "June" ;
|
||||
july_Month = mkN "July" ;
|
||||
august_Month = mkN "August" ;
|
||||
september_Month = mkN "September" ;
|
||||
october_Month = mkN "October" ;
|
||||
november_Month = mkN "November" ;
|
||||
december_Month = mkN "December" ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--# -path=alltenses:.:../abstract
|
||||
|
||||
concrete ConstructionFin of Construction = CatFin **
|
||||
open SyntaxFin, ParadigmsFin, (L = LexiconFin), (E = ExtraFin) in {
|
||||
open SyntaxFin, SymbolicFin, ParadigmsFin, (L = LexiconFin), (E = ExtraFin), (R = ResFin), Prelude in {
|
||||
|
||||
lin
|
||||
hungry_VP = mkVP have_V2 (lin NP (mkNP (ParadigmsFin.mkN "nälkä"))) ;
|
||||
@@ -24,7 +24,10 @@ lin
|
||||
n_units_AP card cn a = mkAP (lin AdA (mkUtt (lin NP (mkNP <lin Card card : Card> (lin CN cn))))) (lin A a) ;
|
||||
|
||||
lincat
|
||||
Weekday = {name : NP ; noun : CN ; point : SyntaxFin.Adv ; habitual : SyntaxFin.Adv} ;
|
||||
Weekday = {noun : N ; habitual : SyntaxFin.Adv} ;
|
||||
Monthday = NP ;
|
||||
Month = N ;
|
||||
Year = NP ;
|
||||
lin
|
||||
monday_Weekday = mkWeekday "maanantai" ;
|
||||
tuesday_Weekday = mkWeekday "tiistaisi" ;
|
||||
@@ -34,23 +37,45 @@ lin
|
||||
saturday_Weekday = mkWeekday"lauantai" ;
|
||||
sunday_Weekday = mkWeekday "sunnuntai" ;
|
||||
|
||||
weekdayPunctualAdv w = w.point ;
|
||||
weekdayPunctualAdv w = lin Adv {s = pointWeekday w} ;
|
||||
weekdayHabitualAdv w = w.habitual ;
|
||||
weekdayLastAdv w = ParadigmsFin.mkAdv ("viime" ++ w.point.s) ;
|
||||
weekdayNextAdv w = ParadigmsFin.mkAdv ("ensi" ++ w.point.s) ;
|
||||
weekdayLastAdv w = ParadigmsFin.mkAdv ("viime" ++ pointWeekday w) ;
|
||||
weekdayNextAdv w = ParadigmsFin.mkAdv ("ensi" ++ pointWeekday w) ;
|
||||
|
||||
monthAdv m = SyntaxFin.mkAdv in_Prep (mkNP m) ;
|
||||
yearAdv y = SyntaxFin.mkAdv (prePrep nominative "vuonna") y ;
|
||||
dayMonthAdv d m = ParadigmsFin.mkAdv (d.s ! R.NPCase R.Nom ++ BIND ++ "." ++ m.s ! R.NCase R.Sg R.Part) ;
|
||||
monthYearAdv m y = SyntaxFin.mkAdv in_Prep (mkNP (mkNP m) (SyntaxFin.mkAdv (casePrep nominative) y)) ;
|
||||
dayMonthYearAdv d m y =
|
||||
ParadigmsFin.mkAdv (d.s ! R.NPCase R.Nom ++ BIND ++ "." ++ m.s ! R.NCase R.Sg R.Part ++ y.s ! R.NPCase R.Nom) ;
|
||||
|
||||
intYear = symb ;
|
||||
intMonthday = symb ;
|
||||
|
||||
january_Month = mkN "tammikuu" ;
|
||||
february_Month = mkN "helmikuu" ;
|
||||
march_Month = mkN "maaliskuu" ;
|
||||
april_Month = mkN "huhtikuu" ;
|
||||
may_Month = mkN "toukokuu" ;
|
||||
june_Month = mkN "kesäkuu" ;
|
||||
july_Month = mkN "heinäkuu" ;
|
||||
august_Month = mkN "elokuu" ;
|
||||
september_Month = mkN "syyskuu" ;
|
||||
october_Month = mkN "lokakuu" ;
|
||||
november_Month = mkN "marraskuu" ;
|
||||
december_Month = mkN "joulukuu" ;
|
||||
|
||||
oper
|
||||
|
||||
mkWeekday : Str -> Weekday = \d ->
|
||||
let day = mkN d
|
||||
in
|
||||
lin Weekday {
|
||||
name = mkNP day ;
|
||||
noun = mkCN day ;
|
||||
point = SyntaxFin.mkAdv (casePrep essive) (mkNP day) ;
|
||||
noun = mkN d ;
|
||||
habitual = case d of {
|
||||
_ + "i" => ParadigmsFin.mkAdv (d + "sin") ; -- tiistaisin
|
||||
_ => ParadigmsFin.mkAdv (d + "isin") -- keskiviikkoisin
|
||||
}
|
||||
} ;
|
||||
|
||||
pointWeekday : Weekday -> Str = \w -> (SyntaxFin.mkAdv (casePrep essive) (mkNP w.noun)).s ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
--# -path=alltenses:.:../abstract
|
||||
|
||||
concrete ConstructionFre of Construction = CatFre **
|
||||
open SyntaxFre, ParadigmsFre, (L = LexiconFre), (E = ExtraFre), (I = IrregFre), Prelude in {
|
||||
open SyntaxFre, SymbolicFre, ParadigmsFre,
|
||||
(L = LexiconFre), (E = ExtraFre), (I = IrregFre), (R = ResFre), (C = CommonRomance),
|
||||
Prelude in {
|
||||
|
||||
|
||||
lin
|
||||
@@ -24,4 +26,48 @@ lin
|
||||
|
||||
n_units_AP card cn a = mkAP (lin AdA (mkUtt (mkNP <lin Card card : Card> (lin CN cn)))) (lin A a) ;
|
||||
|
||||
lincat
|
||||
Weekday = N ;
|
||||
Monthday = NP ;
|
||||
Month = N ;
|
||||
Year = NP ;
|
||||
oper
|
||||
noPrep : Prep = mkPrep [] ;
|
||||
|
||||
lin
|
||||
monday_Weekday = mkN "lundi" ;
|
||||
tuesday_Weekday = mkN "mardi" ;
|
||||
wednesday_Weekday = mkN "mercredi" ;
|
||||
thursday_Weekday = mkN "jeudi" ;
|
||||
friday_Weekday = mkN "vendredi" ;
|
||||
saturday_Weekday = mkN "samedi" ;
|
||||
sunday_Weekday = mkN "dimanche" masculine ;
|
||||
|
||||
weekdayPunctualAdv w = lin Adv {s = w.s ! C.Sg} ; -- lundi
|
||||
weekdayHabitualAdv w = SyntaxFre.mkAdv noPrep (mkNP the_Det w) ; -- le lundi
|
||||
weekdayLastAdv w = SyntaxFre.mkAdv noPrep (mkNP the_Det (mkCN (mkA "dernier") w)) ; -- le lundi dernier
|
||||
weekdayNextAdv w = SyntaxFre.mkAdv noPrep (mkNP the_Det (mkCN (mkA "prochain") w)) ; -- le lundi prochain
|
||||
|
||||
monthAdv m = lin Adv {s = "en" ++ m.s ! C.Sg} ; -- en mai
|
||||
yearAdv y = SyntaxFre.mkAdv (mkPrep "en") y ;
|
||||
dayMonthAdv d m = ParadigmsFre.mkAdv ("le" ++ (d.s ! R.Nom).comp ++ m.s ! C.Sg) ; -- le 17 mai ---- le 1 mai should be le 1er mai
|
||||
monthYearAdv m y = lin Adv {s = "en" ++ m.s ! C.Sg ++ (y.s ! R.Nom).comp} ; -- en mai 2012
|
||||
dayMonthYearAdv d m y = ParadigmsFre.mkAdv ("le" ++ (d.s ! R.Nom).comp ++ m.s ! C.Sg ++ (y.s ! R.Nom).comp) ; -- le 17 mai 2013
|
||||
|
||||
intYear = symb ;
|
||||
intMonthday = symb ;
|
||||
|
||||
january_Month = mkN "janvier" ;
|
||||
february_Month = mkN "février" ;
|
||||
march_Month = mkN "mars" ;
|
||||
april_Month = mkN "avril" ;
|
||||
may_Month = mkN "mai" ;
|
||||
june_Month = mkN "juin" ;
|
||||
july_Month = mkN "juillet" ;
|
||||
august_Month = mkN "août" ;
|
||||
september_Month = mkN "septembre" ;
|
||||
october_Month = mkN "octobre" ;
|
||||
november_Month = mkN "novembre" ;
|
||||
december_Month = mkN "décembre" ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
--# -path=.:../abstract
|
||||
|
||||
concrete ConstructionGer of Construction = CatGer **
|
||||
open SyntaxGer, ParadigmsGer, (L = LexiconGer), (E = ExtraGer), (G = GrammarGer), (I = IrregGer), Prelude in {
|
||||
open SyntaxGer, SymbolicGer, ParadigmsGer,
|
||||
(L = LexiconGer), (E = ExtraGer), (G = GrammarGer), (I = IrregGer), (R = ResGer), Prelude in {
|
||||
|
||||
|
||||
lin
|
||||
@@ -25,5 +26,48 @@ lin
|
||||
is_wrong_VP = mkVP have_V2 (mkNP (ParadigmsGer.mkN "Unrecht")) ;
|
||||
|
||||
n_units_AP card cn a = mkAP (lin AdA (mkUtt (mkNP <lin Card card : Card> (lin CN cn)))) (lin A a) ;
|
||||
|
||||
|
||||
|
||||
lincat
|
||||
Weekday = N ;
|
||||
Monthday = NP ;
|
||||
Month = N ;
|
||||
Year = NP ;
|
||||
lin
|
||||
monday_Weekday = mkN "Montag" ;
|
||||
tuesday_Weekday = mkN "Dienstag" ;
|
||||
wednesday_Weekday = mkN "Mittwoch" ;
|
||||
thursday_Weekday = mkN "Donnerstag" ;
|
||||
friday_Weekday = mkN "Freitag" ;
|
||||
saturday_Weekday = mkN "Samstag" ;
|
||||
sunday_Weekday = mkN "Sonntag" ;
|
||||
|
||||
weekdayPunctualAdv w = SyntaxGer.mkAdv anDat_Prep (mkNP the_Det w) ; -- am Montag
|
||||
weekdayHabitualAdv w = SyntaxGer.mkAdv (mkPrep "" accusative) (mkNP every_Det w) ; ---- jeden Montag
|
||||
weekdayLastAdv w = SyntaxGer.mkAdv (mkPrep "am letzten" dative) (mkNP w) ; -- letzten Montag ----
|
||||
weekdayNextAdv w = SyntaxGer.mkAdv (mkPrep "am nächsten" dative) (mkNP w) ; -- nächsten Montag ----
|
||||
|
||||
monthAdv m = SyntaxGer.mkAdv inDat_Prep (mkNP the_Det m) ;
|
||||
yearAdv y = SyntaxGer.mkAdv (mkPrep "im Jahr" dative) y ; ----
|
||||
dayMonthAdv d m = ParadigmsGer.mkAdv ("am" ++ d.s ! dative ++ BIND ++ "." ++ m.s ! R.Sg ! R.Nom) ; -- am 17 Mai
|
||||
monthYearAdv m y = SyntaxGer.mkAdv inDat_Prep (mkNP the_Det (mkCN m y)) ; -- im Mai 2012
|
||||
dayMonthYearAdv d m y = ParadigmsGer.mkAdv ("am" ++ d.s ! dative ++ BIND ++ "." ++ m.s ! R.Sg ! R.Nom ++ y.s ! accusative) ; -- am 17 Mai 2013
|
||||
|
||||
intYear = symb ;
|
||||
intMonthday = symb ;
|
||||
|
||||
january_Month = mkN "Januar" ;
|
||||
february_Month = mkN "Februar" ;
|
||||
march_Month = mkN "März" ;
|
||||
april_Month = mkN "April" ;
|
||||
may_Month = mkN "Mai" ;
|
||||
june_Month = mkN "Juni" ;
|
||||
july_Month = mkN "Juli" ;
|
||||
august_Month = mkN "August" ;
|
||||
september_Month = mkN "September" ;
|
||||
october_Month = mkN "Oktober" ;
|
||||
november_Month = mkN "November" ;
|
||||
december_Month = mkN "Dezember" ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--# -path=.:../abstract
|
||||
|
||||
concrete ConstructionSwe of Construction = CatSwe **
|
||||
open SyntaxSwe, ParadigmsSwe, (L = LexiconSwe), (E = ExtraSwe), (G = GrammarSwe), Prelude in {
|
||||
open SyntaxSwe, SymbolicSwe, ParadigmsSwe, (L = LexiconSwe), (E = ExtraSwe), (G = GrammarSwe), (R = ResSwe), (C = CommonScand), Prelude in {
|
||||
|
||||
|
||||
lin
|
||||
@@ -26,6 +26,9 @@ lin
|
||||
|
||||
lincat
|
||||
Weekday = N ;
|
||||
Monthday = NP ;
|
||||
Month = N ;
|
||||
Year = NP ;
|
||||
lin
|
||||
monday_Weekday = mkN "måndag" ;
|
||||
tuesday_Weekday = mkN "tisdag" ;
|
||||
@@ -38,7 +41,28 @@ lin
|
||||
weekdayPunctualAdv w = SyntaxSwe.mkAdv on_Prep (mkNP w) ; -- på söndag
|
||||
weekdayHabitualAdv w = SyntaxSwe.mkAdv on_Prep (mkNP aPl_Det w) ; -- på söndagar
|
||||
weekdayLastAdv w = SyntaxSwe.mkAdv in_Prep (mkNP (E.GenNP (mkNP w))) ; -- i söndags
|
||||
weekdayNextAdv w = SyntaxSwe.mkAdv (mkPrep "nästa") (mkNP w) ; -- nästa söndag --- can mean a week later than English "next Sunday"
|
||||
weekdayNextAdv w = SyntaxSwe.mkAdv (mkPrep "nästa") (mkNP w) ; -- nästa söndag --- can mean a week later than Swelish "next Sunday"
|
||||
|
||||
monthAdv m = SyntaxSwe.mkAdv in_Prep (mkNP m) ;
|
||||
yearAdv y = SyntaxSwe.mkAdv (mkPrep "år") y ;
|
||||
dayMonthAdv d m = ParadigmsSwe.mkAdv ("den" ++ d.s ! C.NPAcc ++ m.s ! C.Sg ! C.Indef ! C.Nom) ; -- den 17 maj
|
||||
monthYearAdv m y = SyntaxSwe.mkAdv in_Prep (mkNP (mkCN m y)) ; -- i maj 2012
|
||||
dayMonthYearAdv d m y = ParadigmsSwe.mkAdv ("den" ++ d.s ! C.NPAcc ++ m.s ! C.Sg ! C.Indef ! C.Nom ++ y.s ! C.NPAcc) ; -- den 17 maj 2013
|
||||
|
||||
intYear = symb ;
|
||||
intMonthday = symb ;
|
||||
|
||||
january_Month = mkN "januari" ;
|
||||
february_Month = mkN "februari" ;
|
||||
march_Month = mkN "mars" ;
|
||||
april_Month = mkN "april" ;
|
||||
may_Month = mkN "maj" ;
|
||||
june_Month = mkN "juni" ;
|
||||
july_Month = mkN "juli" ;
|
||||
august_Month = mkN "augusti" ;
|
||||
september_Month = mkN "september" ;
|
||||
october_Month = mkN "oktober" ;
|
||||
november_Month = mkN "november" ;
|
||||
december_Month = mkN "december" ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user