added more temporal Constructions in Eng,Fin,Fre,Ger,Swe

This commit is contained in:
aarne
2013-12-15 11:38:43 +00:00
parent 27a9f72f37
commit 3c935f12ba
6 changed files with 204 additions and 29 deletions

View File

@@ -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 ;

View File

@@ -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" ;
}

View File

@@ -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 ;
}

View File

@@ -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" ;
}

View File

@@ -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" ;
}

View File

@@ -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" ;
}