From fc0432e4e1c91aaf269d673b477e348b6d7aba35 Mon Sep 17 00:00:00 2001 From: aarne Date: Sat, 8 Nov 2008 09:38:32 +0000 Subject: [PATCH] corrections in Attempto grammars --- examples/attempto/Attempto.gf | 4 ++++ examples/attempto/AttemptoI.gf | 3 +++ examples/attempto/LexAttemptoSwe.gf | 2 +- examples/attempto/TestAttemptoEng.gf | 10 ++++----- examples/attempto/TestAttemptoFre.gf | 6 +++-- examples/attempto/TestAttemptoGer.gf | 18 ++++++++------- examples/attempto/TestAttemptoSwe.gf | 32 ++++++++++++++------------- next-lib/src/swedish/ParadigmsSwe.gf | 5 +++-- next-lib/src/swedish/StructuralSwe.gf | 2 +- 9 files changed, 48 insertions(+), 34 deletions(-) diff --git a/examples/attempto/Attempto.gf b/examples/attempto/Attempto.gf index bdc8ba1c5..c52ad2c29 100644 --- a/examples/attempto/Attempto.gf +++ b/examples/attempto/Attempto.gf @@ -131,6 +131,10 @@ fun eachRS : RS -> RS ; -- each of who fun suchCN : CN -> S -> CN ; +fun predRS : VP -> RS ; +fun slashRS : NP -> V2 -> RS ; + + -- 2.2.4 fun genNP : NP -> CN -> NP ; -- everybody's customer diff --git a/examples/attempto/AttemptoI.gf b/examples/attempto/AttemptoI.gf index 9af611bc5..6f7ae91ff 100644 --- a/examples/attempto/AttemptoI.gf +++ b/examples/attempto/AttemptoI.gf @@ -126,6 +126,9 @@ lin eachRS : RS -> RS ; -- each of who lin suchCN cn s = mkCN (mkAP (mkAP such_A) s) cn ; +lin predRS vp = mkRS (mkRCl which_RP vp) ; +lin slashRS np v2 = mkRS (mkRCl which_RP np v2) ; + -- 2.2.4 lin genNP = genitiveNP ; diff --git a/examples/attempto/LexAttemptoSwe.gf b/examples/attempto/LexAttemptoSwe.gf index 59d8e4b21..04cf4398c 100644 --- a/examples/attempto/LexAttemptoSwe.gf +++ b/examples/attempto/LexAttemptoSwe.gf @@ -4,7 +4,7 @@ instance LexAttemptoSwe of LexAttempto = oper possible_A = mkA "möjlig" ; necessary_A = mkA "nödvändig" ; - own_A = mkA "egen" ; + own_A = mkA "egen" "eget" "egna" "egnare" "egnast" ; have_VV = must_VV ; provably_Adv = mkAdv "bevisbart" ; provable_A = mkA "bevisbar" ; diff --git a/examples/attempto/TestAttemptoEng.gf b/examples/attempto/TestAttemptoEng.gf index bf7333307..1eefd49b6 100644 --- a/examples/attempto/TestAttemptoEng.gf +++ b/examples/attempto/TestAttemptoEng.gf @@ -5,15 +5,15 @@ concrete TestAttemptoEng of TestAttempto = AttemptoEng ** lin card_N = mkkN "card" ; lin water_MCN = mkCN (mkkN "water") ; -lin john_PN = mkPN "john" ; +lin john_PN = mkPN "John" ; lin apple_N = mkkN "apple" ; lin sleep_V = IrregEng.sleep_V ; lin young_A = mkA "young" ; lin dog_N = mkkN "dog" ; lin animal_N = mkkN "animal" ; lin wait_V = mkV "wait" ; -lin man_N = mkkN "man" ; -lin woman_N = mkkN "woman" ; +lin man_N = mkCN (mkN "man" "men") ; +lin woman_N = mkCN (mkN "woman" "women") ; lin give_V3 = mkV3 give_V (mkPrep []) (mkPrep "to") ; lin tired_A = mkA "tired" ; lin rich_A = mkA "rich" ; @@ -25,7 +25,7 @@ lin lucky_A = mkA "lucky" ; lin well_known_A = mkA "well" ; lin important_A = mkA "important" ; lin expensive_A = mkA "expensive" ; -lin fill_in_V2 = mkV2 "fill" ; +lin fill_in_V2 = mkV2 (partV (mkV "fill") "in") ; lin form_N = mkkN "form" ; lin age_N = mkkN "age" ; lin teacher_N = mkkN "teacher" ; @@ -41,7 +41,7 @@ lin eat_V2 = mkV2 eat_V ; lin burger_N = mkkN "burger" ; lin earn_V2 = mkV2 "earn" ; lin income_N = mkkN "income" ; -lin england_PN = mkPN "england" ; +lin england_PN = mkPN "England" ; lin beginning_N = mkkN "beginning" ; lin office_N = mkkN "office" ; lin interested_A2 = mkA2 (mkA "interested") (mkPrep "in") ; diff --git a/examples/attempto/TestAttemptoFre.gf b/examples/attempto/TestAttemptoFre.gf index 2bdfb2173..d8e281083 100644 --- a/examples/attempto/TestAttemptoFre.gf +++ b/examples/attempto/TestAttemptoFre.gf @@ -42,9 +42,9 @@ lin burger_N = mkkN "hamburger" ; lin earn_V2 = mkV2 "gagner" ; lin income_N = mkkN "revenu" ; lin england_PN = mkPN "Angleterre" ; -lin beginning_N = mkkN "debut" ; +lin beginning_N = mkkN "début" ; lin office_N = mkkN "bureau" ; -lin interested_A2 = mkA2 (mkA "interessé") dative ; +lin interested_A2 = mkA2 (mkA "interessé") (mkPrep "par") ; lin classroom_N = mkkN "classe" ; lin manually_Adv = mkAdv "manuellement" ; lin slot_N = mkkN "trou" ; @@ -75,6 +75,8 @@ lin mary_PN = mkPN "Mary" ; lin machine_N = mkkN "machine" ; lin correct_A = mkA "correct" ; +lin kilogram_Unit = mkkN "kilo" ; + oper mkkN : Str -> CN = \n -> mkCN (ParadigmsFre.mkN n) ; mkgN : Str -> Gender -> CN = \n,g -> mkCN (ParadigmsFre.mkN n g) ; diff --git a/examples/attempto/TestAttemptoGer.gf b/examples/attempto/TestAttemptoGer.gf index 722d6ae05..ef774ff84 100644 --- a/examples/attempto/TestAttemptoGer.gf +++ b/examples/attempto/TestAttemptoGer.gf @@ -26,14 +26,14 @@ lin well_known_A = mkA "bekannt" ; lin important_A = mkA "wichtig" ; lin expensive_A = mkA "teuer" ; lin fill_in_V2 = mkV2 (mkV "ab" (mkV "füllen")) ; -lin form_N = mkgN "Formulär" "Formuläre" neuter ; +lin form_N = mkgN "Formular" "Formulare" neuter ; lin age_N = mkgN "Alter" "Älter" masculine ; lin teacher_N = mkgN "Lehrer" "Lehrer" masculine ; lin successful_A = mkA "erfolgreich" ; lin fond_A2 = mkA2 (mkA "verliebt") (mkPrep "in" dative) ; lin garden_N = mkgN "Garten" "Gärten" masculine ; lin morning_N = mkgN "Morgen" "Morgen" masculine ; -lin code_N = mkkN "Code" ; +lin code_N = mkgN "Code" "Codes" masculine ; lin drinkable_A = mkA "trinkbar" ; lin work_V = mkV "arbeiten" ; lin admitted_A = mkA "zugelassen" ; @@ -44,7 +44,7 @@ lin income_N = mkgN "Einkommen" "Einkommen" neuter ; lin england_PN = mkPN "England" ; lin beginning_N = mkgN "Anfang" "Anfänge" masculine ; lin office_N = mkgN "Büro" "Büros" neuter ; -lin interested_A2 = mkA2 (mkA "interessiert") (mkPrep "an" accusative) ; ---- +lin interested_A2 = mkA2 (mkA "interessiert") (mkPrep "an" dative) ; ---- lin classroom_N = mkkN "Klasse" ; lin manually_Adv = mkAdv "manuell" ; lin slot_N = mkgN "Hohl" "Höhle" masculine ; ---- @@ -55,16 +55,16 @@ lin time_N = mkgN "Zeit" "Zeiten" feminine ; lin believe_V = mkV "glauben" ; lin seriously_Adv = mkAdv "seriös" ; ---- lin clerk_N = mkgN "Angestellt" "Angestellten" masculine ; ---- -lin screen_N = mkgN "Schirm" "Schirme" neuter ; +lin screen_N = mkgN "Schirm" "Schirme" masculine ; lin blink_V = mkV "blinken" ; ---- lin bed_N = mkgN "Bett" "Bette" neuter ; lin container_N = mkgN "Gehälter" "Gehälter" masculine ; lin automated_teller_N = mkgN "Automat" "Automate" neuter ; -lin reject_V2 = mkV2 (mkV "verwerfen") ; ---- +lin reject_V2 = mkV2 (mkV "verwerfen" "verwirft" "verwarf" "verwürfe" "verworfen") ; lin accept_V2 = mkV2 (mkV "an" nehmen_V) ; -lin type_V2 = mkV2 "typen" ; ---- +lin type_V2 = mkV2 schreiben_V ; lin know_V = wissen_V ; -lin manager_N = mkgN "Manager" "Managers" masculine ; ---- +lin manager_N = mkgN "Manager" "Manager" masculine ; ---- lin oversleep_V = schlafen_V ; ---- lin valid_A = mkA "gültig" ; lin see_V2 = mkV2 sehen_V ; @@ -72,9 +72,11 @@ lin bark_V = mkV "bellen" ; lin go_V2 = mkV2 gehen_V to_Prep ; lin brother_N = mkgN "Bruder" "Brüder" masculine ; lin mary_PN = mkPN "Mary" ; -lin machine_N = mkkN "maschine" ; +lin machine_N = mkkN "Maschine" ; lin correct_A = mkA "korrekt" ; +lin kilogram_Unit = mkgN "Kilo" "Kilo" neuter ; + oper mkkN : Str -> CN = \n -> mkCN (ParadigmsGer.mkN n) ; mkgN : Str -> Str -> Gender -> CN = \s,n,g -> mkCN (ParadigmsGer.mkN s n g) ; diff --git a/examples/attempto/TestAttemptoSwe.gf b/examples/attempto/TestAttemptoSwe.gf index ee2822b07..21b1d8b37 100644 --- a/examples/attempto/TestAttemptoSwe.gf +++ b/examples/attempto/TestAttemptoSwe.gf @@ -4,48 +4,48 @@ concrete TestAttemptoSwe of TestAttempto = AttemptoSwe ** open SyntaxSwe, ParadigmsSwe, IrregSwe, (C = ConstructX) in { lin card_N = mkkN "kort" neutrum ; -lin water_MCN = mkkN "vatten" neutrum ; -lin john_PN = mkPN "john" ; +lin water_MCN = mkCN (mkN "vatten" "vattnet" "vatten" "vattnen") ; +lin john_PN = mkPN "John" ; lin apple_N = mkkN "äpple" neutrum ; lin sleep_V = IrregSwe.sova_V ; lin young_A = mkA "ung" ; lin dog_N = mkkN "hund" utrum ; lin animal_N = mkkN "djur" neutrum ; lin wait_V = mkV "vänta" ; -lin man_N = mkCN (mkN "man" "män") ; +lin man_N = mkCN (mkN "man" "mannen" "män" "männen") ; lin woman_N = mkkN "kvinna" utrum ; lin give_V3 = mkV3 giva_V (mkPrep []) (mkPrep "till") ; lin tired_A = mkA "trött" ; lin rich_A = mkA "rik" ; lin customer_N = mkCN (mkN "kund" "kunder") ; -lin enter_V2 = mkV2 "beträda" ; +lin enter_V2 = mkV2 (mkV (mkV "träder") "in") (mkPrep "i") ; lin bank_N = mkCN (mkN "bank" "banker") ; -lin satisfied_A = mkA "nöjd" ; +lin satisfied_A = mkA "nöjd" "nöjt" ; lin lucky_A = mkA "lycklig" ; lin well_known_A = mkA "välkänd" ; lin important_A = mkA "viktig" ; lin expensive_A = mkA "dyr" ; -lin fill_in_V2 = mkV2 "fyller" ; +lin fill_in_V2 = mkV2 (mkV (mkV "fyller") "i") ; lin form_N = mkkN "formulär" neutrum ; lin age_N = mkkN "ålder" utrum ; lin teacher_N = mkkN "lärare" utrum ; lin successful_A = mkA "framgångsrik" ; -lin fond_A2 = mkA2 (mkA "kär") (mkPrep "i") ; +lin fond_A2 = mkA2 (mkA "förtjust") (mkPrep "i") ; lin garden_N = mkkN "trädgård" utrum ; -lin morning_N = mkCN (mkN "morgon" "morgnar") ; +lin morning_N = mkCN (mkN "morgon" "morgonen" "morgnar" "morgnarna") ; lin code_N = mkCN (mkN "kod" "koder") ; lin drinkable_A = mkA "drickbar" ; lin work_V = mkV "arbeta" ; lin admitted_A = mkA "godkänd" ; lin eat_V2 = mkV2 äta_V ; -lin burger_N = mkkN "burgare" utrum ; +lin burger_N = mkkN "hamburgare" utrum ; lin earn_V2 = mkV2 "tjäna" ; lin income_N = mkCN (mkN "inkomst" "inkomster") ; lin england_PN = mkPN "England" ; -lin beginning_N = mkCN (mkN "början" "början") ; +lin beginning_N = mkCN (mkN "början" "början" "början" "början") ; lin office_N = mkkN "kontor" neutrum ; -lin interested_A2 = mkA2 (mkA "intresserad") (mkPrep "i") ; -lin classroom_N = mkkN "klassrum" neutrum ; +lin interested_A2 = mkA2 (compoundA (mkA "intresserad" "intresserat")) (mkPrep "i") ; +lin classroom_N = mkCN (mkN "klassrum" "klassrummet" "klassrum" "klassrummen") ; lin manually_Adv = mkAdv "manuellt" ; lin slot_N = mkkN "hål" neutrum ; lin patiently_Adv = mkAdv "tålamodigt" ; @@ -54,7 +54,7 @@ lin carefully_Adv = mkAdv "f lin time_N = mkCN (mkN "tid" "tider") ; lin believe_V = mkV "tro" ; lin seriously_Adv = mkAdv "seriöst" ; -lin clerk_N = mkkN "bokhållare" utrum ; +lin clerk_N = mkCN (mkN "kontorist" "kontorister") ; lin screen_N = mkkN "skärm" neutrum ; lin blink_V = mkV "blinka" ; lin bed_N = mkkN "säng" utrum ; @@ -62,7 +62,7 @@ lin container_N = mkkN "beh lin automated_teller_N = mkCN (mkN "automat" "automater") ; lin reject_V2 = mkV2 "förkasta" ; lin accept_V2 = mkV2 "acceptera" ; -lin type_V2 = mkV2 "inmata" ; ---- +lin type_V2 = mkV2 skriva_V ; ---- lin know_V = veta_V ; lin manager_N = mkCN (mkN "chef" "chefer") ; lin oversleep_V = mkV "försova" "försov" "försovit" ; @@ -70,13 +70,15 @@ lin valid_A = mkA "giltig" ; lin see_V2 = mkV2 se_V ; lin bark_V = mkV "skäller" ; lin go_V2 = mkV2 gå_V to_Prep ; -lin brother_N = mkCN (mkN "bror" "bröder") ; +lin brother_N = mkCN (mkN "bror" "brodern" "bröder" "bröderna") ; lin mary_PN = mkPN "Mary" ; lin machine_N = mkCN (mkN "maskin" "maskiner") ; lin correct_A = mkA "korrekt" ; oper mkkN : Str -> Gender -> CN = \n,g -> mkCN (ParadigmsSwe.mkN n g) ; +lin kilogram_Unit = mkCN (mkN "kilo" "kilot" "kilo" "kilon") ; + lin in_Prep = SyntaxSwe.in_Prep ; at_Prep = mkPrep "på" ; diff --git a/next-lib/src/swedish/ParadigmsSwe.gf b/next-lib/src/swedish/ParadigmsSwe.gf index e49fe2105..36d262c97 100644 --- a/next-lib/src/swedish/ParadigmsSwe.gf +++ b/next-lib/src/swedish/ParadigmsSwe.gf @@ -331,8 +331,9 @@ oper } ; regGenN : Str -> Gender -> N = \bil, g -> case g of { - Utr => case last bil of { - "a" => decl1Noun bil ; + Utr => case bil of { + _ + "are" => decl5Noun bil ; + _ + "a" => decl1Noun bil ; _ => decl2Noun bil } ; Neutr => case last bil of { diff --git a/next-lib/src/swedish/StructuralSwe.gf b/next-lib/src/swedish/StructuralSwe.gf index 97f17402f..b257b850a 100644 --- a/next-lib/src/swedish/StructuralSwe.gf +++ b/next-lib/src/swedish/StructuralSwe.gf @@ -132,7 +132,7 @@ lin Sg => \\_,_ => genderForms "ingen" "inget" ; Pl => \\_,_,_ => "inga" } ; - det = DDef Def + det = DIndef } ; if_then_Conj = {s1 = "om" ; s2 = "så" ; n = singular} ;