From 00cda41bc0eb9056ed17204e6d9d845b1e9f3cbf Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 10 Nov 2009 17:24:32 +0000 Subject: [PATCH] more words and rules in Dutch --- lib/src/dutch/AdjectiveDut.gf | 8 +- lib/src/dutch/CatDut.gf | 28 +- lib/src/dutch/LexiconDut.gf | 482 ++++++++++++++++----------------- lib/src/dutch/NounDut.gf | 128 ++++----- lib/src/dutch/ParadigmsDut.gf | 18 +- lib/src/dutch/QuestionDut.gf | 58 ++-- lib/src/dutch/ResDut.gf | 107 ++++---- lib/src/dutch/StructuralDut.gf | 95 +++---- lib/src/dutch/VerbDut.gf | 24 +- 9 files changed, 473 insertions(+), 475 deletions(-) diff --git a/lib/src/dutch/AdjectiveDut.gf b/lib/src/dutch/AdjectiveDut.gf index 52100ad4b..08ba64627 100644 --- a/lib/src/dutch/AdjectiveDut.gf +++ b/lib/src/dutch/AdjectiveDut.gf @@ -10,10 +10,10 @@ concrete AdjectiveDut of Adjective = CatDut ** open ResDut, Prelude in s = a.s ! Posit ; isPre = True } ; --- ComparA a np = { --- s = \\af => a.s ! Compar ! af ++ conjThan ++ np.s ! Nom ; --- isPre = True --- } ; + ComparA a np = { + s = \\af => a.s ! Compar ! af ++ "dan" ++ np.s ! NPNom ; + isPre = True + } ; -- CAdvAP ad ap np = { -- s = \\af => ad.s ++ ap.s ! af ++ ad.p ++ np.s ! Nom ; -- isPre = False diff --git a/lib/src/dutch/CatDut.gf b/lib/src/dutch/CatDut.gf index bc6a7678f..b90c22315 100644 --- a/lib/src/dutch/CatDut.gf +++ b/lib/src/dutch/CatDut.gf @@ -47,18 +47,18 @@ concrete CatDut of Cat = -- Noun - CN = Noun ; + CN = {s : Adjf => NForm => Str ; g : Gender} ; NP = {s : NPCase => Str ; a : Agr} ; Pron = Pronoun ; --- Det = {s,sp : Gender => Case => Str ; n : Number ; a : Adjf} ; --- Quant = { --- s : Bool => Number => Gender => Case => Str ; --- sp : Number => Gender => Case => Str ; --- a : Adjf --- } ; + Det = {s,sp : Gender => Str ; n : Number ; a : Adjf} ; + Quant = { + s : Bool => Number => Gender => Str ; + sp : Number => Gender => Str ; + a : Adjf + } ; -- Predet = {s : Number => Gender => Case => Str ; c : PredetCase} ; --- Num = {s : Gender => Case => Str ; n : Number ; isNum : Bool} ; + Num = {s : Str ; n : Number ; isNum : Bool} ; -- Card = {s : Gender => Case => Str ; n : Number} ; -- Ord = {s : AForm => Str} ; -- @@ -69,14 +69,14 @@ concrete CatDut of Cat = -- ---- Structural -- --- Conj = {s1,s2 : Str ; n : Number} ; --- Subj = {s : Str} ; --- Prep = {s : Str ; c : Case} ; + Conj = {s1,s2 : Str ; n : Number} ; + Subj = {s : Str} ; + Prep = {s : Str} ; -- ---- Open lexical classes, e.g. Lexicon -- V, VS, VQ, VA = ResDut.Verb ** {aux : VAux} ; -- = {s : VForm => Str} ; --- VV = Verb ** {isAux : Bool} ; + VV = VVerb ** {isAux : Bool} ; V2, V2A, V2S, V2Q = VVerb ** {c2 : Preposition} ; -- V2V = Verb ** {c2 : Preposition ; isAux : Bool} ; -- V3 = Verb ** {c2, c3 : Preposition} ; @@ -85,9 +85,9 @@ concrete CatDut of Cat = -- A2 = {s : Degree => AForm => Str ; c2 : Preposition} ; -- N = Noun ; --- N2 = {s : Number => Case => Str ; g : Gender} ** {c2 : Preposition} ; + N2 = {s : NForm => Str ; g : Gender} ** {c2 : Preposition} ; -- N3 = {s : Number => Case => Str ; g : Gender} ** {c2,c3 : Preposition} ; --- PN = {s : Case => Str} ; + PN = {s : Case => Str} ; -- ---- tense with possibility to choose conjunctive forms -- diff --git a/lib/src/dutch/LexiconDut.gf b/lib/src/dutch/LexiconDut.gf index 9ef0d4ffd..72893e7fd 100644 --- a/lib/src/dutch/LexiconDut.gf +++ b/lib/src/dutch/LexiconDut.gf @@ -9,261 +9,261 @@ flags optimize=all_subs ; lin --- add_V3 = dirV3 (prefixV "hinzu" (regV "fügen")) zu_Prep ; +-- add_V3 = dirV3 (prefixV "hinzu" (mkV "fügen")) zu_Prep ; -- airplane_N = mkN "Flugzeug" ; --- already_Adv = mkAdv "schon" ; --- answer_V2S = mkV2S (regV "antworten") datPrep ; + already_Adv = mkAdv "al" ; +-- answer_V2S = mkV2S (mkV "antworten") datPrep ; -- apartment_N = mkN "Wohnung" ; --- apple_N = reg2N "Apfel" "Äpfel" masculine ; --- art_N = reg2N "Kunst" "Künste" feminine ; --- ask_V2Q = mkV2Q (regV "fragen") accPrep ; --- baby_N = reg2N "Baby" "Babies" neuter ; ---- +-- apple_N = mkN "Apfel" "Äpfel" masculine ; +-- art_N = mkN "Kunst" "Künste" feminine ; +-- ask_V2Q = mkV2Q (mkV "fragen") accPrep ; +-- baby_N = mkN "Baby" "Babies" neuter ; ---- bad_A = mkA "boos" ; --- bank_N = reg2N "Bank" "Banken" feminine ; --- beautiful_A = regA "schön" ; --- become_VA = mkVA IrregDut.werden_V ; --- beer_N = reg2N "Bier" "Biere" neuter ; +-- bank_N = mkN "Bank" "Banken" feminine ; + beautiful_A = mkA "mooi" ; +-- become_VA = mkVA IrmkDut.werden_V ; + beer_N = mkN "bier" "bieren" neuter ; -- beg_V2V = mkV2V (mk6V "bitten" "bittet" "bitte" "bat" "bäte" "gebeten") accPrep ; --- big_A = mk3A "groß" "größer" "größte" ; --- bike_N = reg2N "Fahrrad" "Fahrräder" neuter ; --- bird_N = reg2N "Vogel" "Vögel" masculine ; --- black_A = regA "schwarz" ; --- blue_A = regA "blau"; --- boat_N = reg2N "Boot" "Boote" neuter ; --- book_N = reg2N "Buch" "Bücher" neuter ; --- boot_N = reg2N "Stiefel" "Stiefel" masculine ; --- boss_N = reg2N "Chef" "Chefs" masculine ; ---- --- boy_N = reg2N "Junge" "Jungen" masculine ; --- bread_N = reg2N "Brot" "Brote" neuter ; --- break_V2 = dirV2 --- (irregV "zerschlagen" "zerschlägt" "zerschlug" "zerschlüge" "zerschlagen") ; --- broad_A = regA "breit" ; --- brother_N2 = mkN2 (reg2N "Bruder" "Brüder" masculine) von_Prep ; --- brown_A = regA "braun" ; --- butter_N = reg2N "Butter" "Butter" feminine ; ---- infl --- buy_V2 = dirV2 (regV "kaufen") ; --- camera_N = reg2N "Kamera" "Kameras" feminine ; + big_A = mkA "groot" ; + bike_N = mkN "fiets" ; +-- bird_N = mkN "Vogel" "Vögel" masculine ; + black_A = mkA "zwart" ; + blue_A = mkA "blauw"; +-- boat_N = mkN "Boot" "Boote" neuter ; + book_N = mkN "boek" ; +-- boot_N = mkN "Stiefel" "Stiefel" masculine ; +-- boss_N = mkN "Chef" "Chefs" masculine ; ---- +-- boy_N = mkN "Junge" "Jungen" masculine ; +-- bread_N = mkN "Brot" "Brote" neuter ; +-- break_V2 = mkV2 +-- (mkV "zerschlagen" "zerschlägt" "zerschlug" "zerschlüge" "zerschlagen") ; +-- broad_A = mkA "breit" ; +-- brother_N2 = mkN2 (mkN "Bruder" "Brüder" masculine) von_Prep ; + brown_A = mkA "bruin" ; +-- butter_N = mkN "Butter" "Butter" feminine ; ---- infl +-- buy_V2 = mkV2 (mkV "kopen") ; +-- camera_N = mkN "Kamera" "Kameras" feminine ; -- cap_N = mkN "Mütze" ; -- car_N = mkN "Wagen" ; -- carpet_N = mkN "Teppich" ; -- cat_N = mkN "Katze" ; --- ceiling_N = reg2N "Dach" "Dächer" neuter ; --- chair_N = reg2N "Stuhl" "Stühle" masculine ; +-- ceiling_N = mkN "Dach" "Dächer" neuter ; +-- chair_N = mkN "Stuhl" "Stühle" masculine ; -- cheese_N = mkN "Käse" "Käse" masculine ; --- child_N = reg2N "Kind" "Kinder" neuter ; + child_N = mkN "kind" "kinderen" neuter ; -- church_N = mkN "Kirche" ; --- city_N = reg2N "Stadt" "Städte" feminine ; --- clean_A = regA "rein" ; +-- city_N = mkN "Stadt" "Städte" feminine ; +-- clean_A = mkA "rein" ; -- clever_A = mk3A "klug" "klüger" "klügste" ; --- close_V2 = dirV2 (irregV "schließen" "schließt" "schloß" "schlösse" "geschlossen") ; +-- close_V2 = mkV2 (mkV "schließen" "schließt" "schloß" "schlösse" "geschlossen") ; -- coat_N = mkN "Jacke" ; --- cold_A = regA "kalt" ; --- come_V = seinV (mk6V "kommen" "kommt" "komm" "kam" "käme" "gekommen") ; --- computer_N = reg2N "Rechner" "Rechner" masculine ; --- country_N = reg2N "Land" "Länder" neuter ; --- cousin_N = reg2N "Vetter" "Vetter" masculine ; --- Kusine --- cow_N = reg2N "Kuh" "Kühe" feminine ; --- die_V = seinV (irregV "sterben" "stirbt" "starb" "stürbe" "gestorben") ; +-- cold_A = mkA "kalt" ; + come_V = zijnV (mkV "kom" "komt" "komen" "kwam" "kwame" "gekomen") ; +-- computer_N = mkN "Rechner" "Rechner" masculine ; +-- country_N = mkN "Land" "Länder" neuter ; +-- cousin_N = mkN "Vetter" "Vetter" masculine ; --- Kusine +-- cow_N = mkN "Kuh" "Kühe" feminine ; + die_V = zijnV (mkV "sterven" "stierf" "gestorven") ; -- distance_N3 = mkN3 (mkN "Entfernung") von_Prep zu_Prep ; --- dirty_A = regA "schmutzig" ; --- do_V2 = dirV2 (irregV "tun" "tut" "tat" "täte" "getan") ; --- doctor_N = reg2N "Arzt" "Ärzte" masculine ; +-- dirty_A = mkA "schmutzig" ; +-- do_V2 = mkV2 (mkV "tun" "tut" "tat" "täte" "getan") ; +-- doctor_N = mkN "Arzt" "Ärzte" masculine ; -- dog_N = mkN "Hund" ; --- door_N = reg2N "Tür" "Türen" feminine ; --- drink_V2 = dirV2 (irregV "trinken" "trinkt" "trank" "tränke" "getrunken") ; --- easy_A2V = mkA2V (regA "leicht") (mkPrep "für" accusative) ; --- eat_V2 = dirV2 (irregV "essen" "ißt" "aß" "äße" "gegessen") ; --- empty_A = regA "leer" ; ---- check infl +-- door_N = mkN "Tür" "Türen" feminine ; + drink_V2 = mkV2 (mkV "drinken" "dronk" "gedronken") ; +-- easy_A2V = mkA2V (mkA "leicht") (mkPrep "für" accusative) ; + eat_V2 = mkV2 (mkV "eten" "at" "gegeten") ; +-- empty_A = mkA "leer" ; ---- check infl -- enemy_N = mkN "Feind" ; -- factory_N = mkN "Fabrik" "Fabriken" feminine ; --- father_N2 = mkN2 (reg2N "Vater" "Väter" masculine) von_Prep ; --- fear_VS = mkVS (regV "fürchten") ; --- find_V2 = dirV2 (irregV "finden" "findet" "fand" "fände" "gefunden") ; --- fish_N = mkN "Fisch" ; --- floor_N = reg2N "Fußboden" "Fußböden" masculine ; --- forget_V2 = dirV2 (irregV "vergessen" "vergißt" "vergaß" "vergäße" "vergessen") ; --- fridge_N = reg2N "Kühlschrank" "Kühlschränke" masculine ; +-- father_N2 = mkN2 (mkN "Vater" "Väter" masculine) von_Prep ; +-- fear_VS = mkVS (mkV "fürchten") ; +-- find_V2 = mkV2 (mkV "finden" "findet" "fand" "fände" "gefunden") ; + fish_N = mkN "vis" ; +-- floor_N = mkN "Fußboden" "Fußböden" masculine ; +-- forget_V2 = mkV2 (mkV "vergessen" "vergißt" "vergaß" "vergäße" "vergessen") ; +-- fridge_N = mkN "Kühlschrank" "Kühlschränke" masculine ; -- friend_N = mkN "Freund" ; --- fruit_N = reg2N "Frucht" "Früchte" feminine ; --- fun_AV = mkAV (regA "toll") ; --- garden_N = reg2N "Garten" "Gärten" masculine ; --- girl_N = reg2N "Mädchen" "Mädchen" neuter ; +-- fruit_N = mkN "Frucht" "Früchte" feminine ; +-- fun_AV = mkAV (mkA "toll") ; +-- garden_N = mkN "Garten" "Gärten" masculine ; +-- girl_N = mkN "meisje" ; -- glove_N = mkN "Handschuh" ; --- gold_N = reg2N "Gold" "Golde" neuter ; ---- infl +-- gold_N = mkN "Gold" "Golde" neuter ; ---- infl -- good_A = mk3A "gut" "besser" "beste" ; --- go_V = seinV (irregV "gehen" "geht" "ging" "ginge" "gegangen") ; --- green_A = regA "grün" ; --- harbour_N = reg2N "Hafen" "Häfen" masculine ; --- hate_V2 = dirV2 (regV "hassen") ; --- hat_N = reg2N "Hut" "Hüte" masculine ; --- hear_V2 = dirV2 (regV "hören") ; + go_V = zijnV (mkV "gaan" "ging" "gegaan") ; +-- green_A = mkA "grün" ; +-- harbour_N = mkN "Hafen" "Häfen" masculine ; +-- hate_V2 = mkV2 (mkV "hassen") ; +-- hat_N = mkN "Hut" "Hüte" masculine ; +-- hear_V2 = mkV2 (mkV "hören") ; -- hill_N = mkN "Hügel" ; --- hope_VS = mkVS (regV "hoffen") ; --- horse_N = reg2N "Pferd" "Pferde" neuter ; --- hot_A = regA "heiß" ; --- house_N = reg2N "Haus" "Häuser" neuter ; --- important_A = regA "wichtig" ; +-- hope_VS = mkVS (mkV "hoffen") ; +-- horse_N = mkN "Pferd" "Pferde" neuter ; +-- hot_A = mkA "heiß" ; + house_N = mkN "huis" neuter ; +-- important_A = mkA "wichtig" ; -- industry_N = mkN "Industrie" ; --- iron_N = reg2N "Eisen" "Eisen" neuter ; --- jump_V = seinV (irregV "springen" "springt" "sprang" "spränge" "gesprungen") ; +-- iron_N = mkN "Eisen" "Eisen" neuter ; +-- jump_V = zijnV (mkV "springen" "springt" "sprang" "spränge" "gesprungen") ; -- king_N = mkN "König" ; --- know_V2 = dirV2 (irregV "kennen" "kennt" "kannte" "kännte" "gekannt") ; ---- infl --- know_VS = mkVS (irregV "wissen" "weiß" "wußte" "wüßte" "gewußt") ; ---- infl --- lake_N = reg2N "See" "Seen" masculine ; --- infl +-- know_V2 = mkV2 (mkV "kennen" "kennt" "kannte" "kännte" "gekannt") ; ---- infl +-- know_VS = mkVS (mkV "wissen" "weiß" "wußte" "wüßte" "gewußt") ; ---- infl +-- lake_N = mkN "See" "Seen" masculine ; --- infl -- lamp_N = mkN "Lampe"; --- learn_V2 = dirV2 (regV "lernen") ; --- leather_N = reg2N "Leder" "Leder" neuter ; --- leave_V2 = dirV2 (irregV "verlassen" "verläßt" "verließ" "verließe" "verlassen") ; --- like_V2 = dirV2 (irregV "mögen" "mag" "mochte" "möchte" "gemocht") ; --- listen_V2 = prepV2 (prefixV "zu" (regV "hören")) datPrep ; ---- dat --- live_V = regV "leben" ; +-- learn_V2 = mkV2 (mkV "lernen") ; +-- leather_N = mkN "Leder" "Leder" neuter ; +-- leave_V2 = mkV2 (mkV "verlassen" "verläßt" "verließ" "verließe" "verlassen") ; +-- like_V2 = mkV2 (mkV "mögen" "mag" "mochte" "möchte" "gemocht") ; +-- listen_V2 = prepV2 (prefixV "zu" (mkV "hören")) datPrep ; ---- dat +-- live_V = mkV "leben" ; -- long_A = mk3A "lang" "länger" "längste" ; --- lose_V2 = dirV2 (irregV "verlieren" "verliert" "verlor" "verlöre" "verloren") ; +-- lose_V2 = mkV2 (mkV "verlieren" "verliert" "verlor" "verlöre" "verloren") ; -- love_N = mkN "Liebe" ; --- love_V2 = dirV2 (regV "lieben") ; --- man_N = reg2N "Mann" "Männer" masculine ; --- married_A2 = mkA2 (regA "verheiratet") (mkPrep "mit" dative) ; --- meat_N = reg2N "Fleisch" "Fleische" neuter ; ---- infl --- milk_N = reg2N "Milch" "Milche" feminine ; ---- infl +-- love_V2 = mkV2 (mkV "lieben") ; +-- man_N = mkN "Mann" "Männer" masculine ; +-- married_A2 = mkA2 (mkA "verheiratet") (mkPrep "mit" dative) ; +-- meat_N = mkN "Fleisch" "Fleische" neuter ; ---- infl +-- milk_N = mkN "Milch" "Milche" feminine ; ---- infl -- moon_N = mkN "Mond" ; --- mother_N2 = mkN2 (reg2N "Mutter" "Mütter" feminine) von_Prep ; +-- mother_N2 = mkN2 (mkN "Mutter" "Mütter" feminine) von_Prep ; -- mountain_N = mkN "Berg" ; --- music_N = reg2N "Musik" "Musiken" feminine ; --- narrow_A = regA "schmal" ; --- new_A = regA "neu" ; +-- music_N = mkN "Musik" "Musiken" feminine ; +-- narrow_A = mkA "schmal" ; +-- new_A = mkA "neu" ; -- newspaper_N = mkN "Zeitung" ; -- now_Adv = mkAdv "jetzt" ; --- number_N = reg2N "Zahl" "Zahlen" feminine ; --- oil_N = reg2N "Öl" "Öle" neuter ; +-- number_N = mkN "Zahl" "Zahlen" feminine ; +-- oil_N = mkN "Öl" "Öle" neuter ; -- old_A = mk3A "alt" "älter" "älteste" ; --- open_V2 = dirV2 (regV "öffnen") ; --- paint_V2A = mkV2A (regV "malen") accPrep ; --- paper_N = reg2N "Papier" "Papiere" neuter ; +-- open_V2 = mkV2 (mkV "öffnen") ; +-- paint_V2A = mkV2A (mkV "malen") accPrep ; +-- paper_N = mkN "Papier" "Papiere" neuter ; -- paris_PN = mkPN "Paris" "Paris" ; -- peace_N = mk6N "Friede" "Frieden" "Frieden" "Friedens" "Frieden" "Frieden" masculine ; -- pen_N = mkN "Bleistift" ; ---- --- planet_N = reg2N "Planet" "Planeten" masculine ; --- plastic_N = reg2N "Plastik" "Plastiken" feminine ; ---- --- play_V2 = dirV2 (regV "spielen") ; --- policeman_N = reg2N "Polizist" "Polizisten" masculine ; +-- planet_N = mkN "Planet" "Planeten" masculine ; +-- plastic_N = mkN "Plastik" "Plastiken" feminine ; ---- +-- play_V2 = mkV2 (mkV "spielen") ; +-- policeman_N = mkN "Polizist" "Polizisten" masculine ; -- priest_N = mkN "Priester" ; --- probable_AS = mkAS (regA "wahrscheinlich") ; --- put_V2 = dirV2 (regV "setzen") ; --- queen_N = reg2N "Königin" "Königinnen" feminine ; --- radio_N = reg2N "Radio" "Radios" neuter ; ---- --- rain_V0 = mkV0 (regV "regnen") ; --- read_V2 = dirV2 (irregV "lesen" "liest" "las" "läse" "gelesen") ; --- red_A = regA "rot" ; +-- probable_AS = mkAS (mkA "wahrscheinlich") ; +-- put_V2 = mkV2 (mkV "setzen") ; +-- queen_N = mkN "Königin" "Königinnen" feminine ; +-- radio_N = mkN "Radio" "Radios" neuter ; ---- +-- rain_V0 = mkV0 (mkV "mknen") ; +-- read_V2 = mkV2 (mkV "lesen" "liest" "las" "läse" "gelesen") ; + red_A = mkA "rood" ; -- religion_N = mkN "Religion" ; --- restaurant_N = reg2N "Restaurant" "Restaurants" neuter ; --- river_N = reg2N "Fluß" "Flüsse" masculine ; +-- restaurant_N = mkN "Restaurant" "Restaurants" neuter ; +-- river_N = mkN "Fluß" "Flüsse" masculine ; -- rock_N = mkN "Stein" ; --- roof_N = reg2N "Dach" "Dächer" neuter ; --- rubber_N = reg2N "Gummi" "Gummis" neuter ; --- run_V = seinV (irregV "laufen" "läuft" "lief" "liefe" "gelaufen") ; --- say_VS = mkVS (regV "sagen") ; +-- roof_N = mkN "Dach" "Dächer" neuter ; +-- rubber_N = mkN "Gummi" "Gummis" neuter ; +-- run_V = zijnV (mkV "laufen" "läuft" "lief" "liefe" "gelaufen") ; +-- say_VS = mkVS (mkV "sagen") ; -- school_N = mkN "Schule"; --- science_N = reg2N "Wissenschaft" "Wissenschaften" feminine ; --- sea_N = reg2N "Meer" "Meere" neuter ; --- seek_V2 = dirV2 (regV "suchen") ; +-- science_N = mkN "Wissenschaft" "Wissenschaften" feminine ; +-- sea_N = mkN "Meer" "Meere" neuter ; +-- seek_V2 = mkV2 (mkV "suchen") ; see_V2 = mkV2 (mkV "zien" "zag" "gezien") ; --- sell_V3 = accdatV3 (no_geV (regV "verkaufen")) ; --- send_V3 = accdatV3 (regV "schicken") ; --- sheep_N = reg2N "Schaf" "Schafe" neuter ; --- ship_N = reg2N "Schiff" "Schiffe" neuter ; --- shirt_N = reg2N "Hemd" "Hemden" neuter ; ---- infl +-- sell_V3 = accdatV3 (no_geV (mkV "verkaufen")) ; +-- send_V3 = accdatV3 (mkV "schicken") ; +-- sheep_N = mkN "Schaf" "Schafe" neuter ; +-- ship_N = mkN "Schiff" "Schiffe" neuter ; +-- shirt_N = mkN "Hemd" "Hemden" neuter ; ---- infl -- shoe_N = mkN "Schuh" ; --- shop_N = reg2N "Laden" "Läden" masculine ; +-- shop_N = mkN "Laden" "Läden" masculine ; -- short_A = mk3A "kurz" "kürzer" "kürzeste" ; --- silver_N = reg2N "Silber" "Silber" neuter ; ---- infl --- sister_N = reg2N "Schwester" "Schwestern" feminine ; +-- silver_N = mkN "Silber" "Silber" neuter ; ---- infl +-- sister_N = mkN "Schwester" "Schwestern" feminine ; sleep_V = mkV "slapen" "sliep" "geslapen" ; --- small_A = regA "klein" ; + small_A = mkA "klein" ; -- snake_N = mkN "Schlange" ; --- sock_N = reg2N "Strumpf" "Strümpfe" masculine ; --- song_N = reg2N "Lied" "Lieder" neuter ; --- speak_V2 = dirV2 (irregV "sprechen" "spricht" "sprach" "spräche" "gesprochen") ; +-- sock_N = mkN "Strumpf" "Strümpfe" masculine ; +-- song_N = mkN "Lied" "Lieder" neuter ; +-- speak_V2 = mkV2 (mkV "sprechen" "spricht" "sprach" "spräche" "gesprochen") ; -- star_N = mkN "Sterne" ; -- steel_N = mkN "Stahl" ; -- stone_N = mkN "Stein" ; --- stop_V = seinV (irregV "halten" "hält" "hielt" "hielte" "gehalten") ; +-- stop_V = zijnV (mkV "halten" "hält" "hielt" "hielte" "gehalten") ; -- stove_N = mkN "Herd" ; --- student_N = reg2N "Student" "Studenten" masculine ; +-- student_N = mkN "Student" "Studenten" masculine ; -- stupid_A = mk3A "dumm" "dümmer" "dümmste" ; ---- -- sun_N = mkN "Sonne" ; --- switch8off_V2 = dirV2 (prefixV "aus" (regV "schalten")) ; --- switch8on_V2 = dirV2 (prefixV "ein" (regV "schalten")) ; +-- switch8off_V2 = mkV2 (prefixV "aus" (mkV "schalten")) ; +-- switch8on_V2 = mkV2 (prefixV "ein" (mkV "schalten")) ; -- table_N = mkN "Tisch" ; --- talk_V3 = mkV3 (regV "reden") datPrep von_Prep ; --- teacher_N = reg2N "Lehrer" "Lehrer" masculine ; --- teach_V2 = dirV2 (no_geV (regV "unterrichten")) ; --- television_N = reg2N "Fernsehen" "Fernsehen" neuter; --- thick_A = regA "dick" ; --- thin_A = regA "dünn" ; --- train_N = reg2N "Zug" "Züge" masculine ; --- travel_V = regV "reisen" ; --- tree_N = reg2N "Baum" "Bäume" masculine ; +-- talk_V3 = mkV3 (mkV "reden") datPrep von_Prep ; +-- teacher_N = mkN "Lehrer" "Lehrer" masculine ; +-- teach_V2 = mkV2 (no_geV (mkV "unterrichten")) ; +-- television_N = mkN "Fernsehen" "Fernsehen" neuter; +-- thick_A = mkA "dick" ; +-- thin_A = mkA "dünn" ; +-- train_N = mkN "Zug" "Züge" masculine ; +-- travel_V = mkV "reisen" ; +-- tree_N = mkN "Baum" "Bäume" masculine ; -- ---- trousers_N = mkN "trousers" ; ---- pl t ! --- ugly_A = regA "häßlich" ; +-- ugly_A = mkA "häßlich" ; -- understand_V2 = --- dirV2 (irregV "verstehen" "versteht" "verstand" "verstände" "verstanden") ; --- university_N = reg2N "Universität" "Universitäten" feminine ; --- village_N = reg2N "Dorf" "Dörfer" neuter ; --- wait_V2 = prepV2 (regV "warten") (mkPrep "auf" accusative) ; --- walk_V = seinV (irregV "gehen" "geht" "ging" "ginge" "gegangen") ; --- warm_A = mk3A "warm" "wärmer" "wärmste" ; +-- mkV2 (mkV "verstehen" "versteht" "verstand" "verstände" "verstanden") ; +-- university_N = mkN "Universität" "Universitäten" feminine ; +-- village_N = mkN "Dorf" "Dörfer" neuter ; +-- wait_V2 = prepV2 (mkV "warten") (mkPrep "auf" accusative) ; +-- walk_V = zijnV (mkV "gehen" "geht" "ging" "ginge" "gegangen") ; + warm_A = mkA "warm" ; -- war_N = mkN "Krieg" ; --- watch_V2 = prepV2 (regV "schauen") (mkPrep "an" accusative) ; --- water_N = reg2N "Wasser" "Wasser" neuter ; --- white_A = regA "weiß" ; --- window_N = reg2N "Fenster" "Fenster" neuter ; --- wine_N = mkN "Wein" ; --- win_V2 = dirV2 (irregV "gewinnen" "gewinnt" "gewann" "gewänne" "gewonnen") ; --- woman_N = reg2N "Frau" "Frauen" feminine ; --- wonder_VQ = mkVQ (reflV (regV "wundern") accusative) ; --- wood_N = reg2N "Holz" "Hölzer" neuter ; --- write_V2 = dirV2 (irregV "schreiben" "schreibt" "schrieb" "schriebe" "geschrieben") ; --- yellow_A = regA "gelb" ; +-- watch_V2 = prepV2 (mkV "schauen") (mkPrep "an" accusative) ; +-- water_N = mkN "Wasser" "Wasser" neuter ; +-- white_A = mkA "weiß" ; +-- window_N = mkN "Fenster" "Fenster" neuter ; + wine_N = mkN "wijn" ; +-- win_V2 = mkV2 (mkV "gewinnen" "gewinnt" "gewann" "gewänne" "gewonnen") ; +-- woman_N = mkN "Frau" "Frauen" feminine ; +-- wonder_VQ = mkVQ (reflV (mkV "wundern") accusative) ; +-- wood_N = mkN "Holz" "Hölzer" neuter ; +-- write_V2 = mkV2 (mkV "schreiben" "schreibt" "schrieb" "schriebe" "geschrieben") ; +-- yellow_A = mkA "gelb" ; -- young_A = mk3A "jung" "jünger" "jüngste" ; --- left_Ord = Mo.mkOrd (regA "link") ; --- right_Ord = Mo.mkOrd (regA "recht") ; +-- left_Ord = Mo.mkOrd (mkA "link") ; +-- right_Ord = Mo.mkOrd (mkA "recht") ; -- far_Adv = mkAdv "weit" ; --- correct_A = regA "richtig" ; --- dry_A = regA "trocken" ; --- dull_A = regA "stumpf" ; --- full_A = regA "voll" ; +-- correct_A = mkA "richtig" ; +-- dry_A = mkA "trocken" ; +-- dull_A = mkA "stumpf" ; +-- full_A = mkA "voll" ; -- heavy_A = mkA "schwer" "schwere" "schwerer" "schwerste" ; -- near_A = mk3A "nahe" "näher" "nächste" ; --- rotten_A = regA "verdorben" ; --- round_A = regA "rund" ; +-- rotten_A = mkA "verdorben" ; +-- round_A = mkA "rund" ; -- sharp_A = mk3A "scharf" "schärfer" "schärfste" ; --- smooth_A = regA "glatt" ; --- straight_A = regA "gerade" ; --- wet_A = regA "naß" ; --- wide_A = regA "breit" ; --- animal_N = reg2N "Tier" "Tiere" neuter ; +-- smooth_A = mkA "glatt" ; +-- straight_A = mkA "gerade" ; +-- wet_A = mkA "naß" ; +-- wide_A = mkA "breit" ; +-- animal_N = mkN "Tier" "Tiere" neuter ; -- ashes_N = mkN "Asche" ; --- back_N = reg2N "Rücken" "Rücken" masculine ; +-- back_N = mkN "Rücken" "Rücken" masculine ; -- bark_N = mkN "Rinde" ; --- belly_N = reg2N "Bauch" "Bäuche" masculine ; +-- belly_N = mkN "Bauch" "Bäuche" masculine ; -- blood_N = mkN "Blut" "Blute" neuter ; --- bone_N = reg2N "Knochen" "Knochen" masculine ; --- breast_N = reg2N "Brust" "Brüste" feminine ; +-- bone_N = mkN "Knochen" "Knochen" masculine ; +-- breast_N = mkN "Brust" "Brüste" feminine ; -- cloud_N = mkN "Wolke" ; -- day_N = mkN "Tag" ; --- dust_N = reg2N "Staub" "Stäube" masculine ; +-- dust_N = mkN "Staub" "Stäube" masculine ; -- ear_N = mkN "Ohr" "Ohren" neuter ; -- earth_N = mkN "Erde" ; -- egg_N = mkN "Ei" "Eier" neuter ; -- eye_N = mkN "Auge" "Augen" neuter; -- fat_N = mkN "Fett" "Fetter" neuter ; -- feather_N = mkN "Feder" "Federn" feminine ; --- fingernail_N = reg2N "Fingernagel" "Fingernägel" masculine ; +-- fingernail_N = mkN "Fingernagel" "Fingernägel" masculine ; -- fire_N = mkN "Feuer" "Feuer" neuter ; -- flower_N = mkN "Blume" ; -- fog_N = mkN "Nebel" "Nebel" masculine ; --- foot_N = reg2N "Fuß" "Füße" masculine ; --- forest_N = reg2N "Wald" "Wälder" masculine ; +-- foot_N = mkN "Fuß" "Füße" masculine ; +-- forest_N = mkN "Wald" "Wälder" masculine ; -- grass_N = mkN "Gras" "Gräser" neuter ; -- guts_N = mkN "Eingeweide" ; -- hair_N = mkN "Haar" "Haare" neuter ; @@ -274,17 +274,17 @@ lin -- husband_N = mkN "Ehemann" "Ehemänner" masculine ; -- ice_N = mkN "Eis" "Eise" neuter ; -- knee_N = mkN "Knie" "Knien" neuter ; --- leaf_N = reg2N "Blatt" "Blätter" neuter ; +-- leaf_N = mkN "Blatt" "Blätter" neuter ; -- leg_N = mkN "Bein" "Beine" neuter ; -- liver_N = mkN "Leber" "Lebern" feminine ; --- louse_N = reg2N "Laus" "Läuse" feminine ; +-- louse_N = mkN "Laus" "Läuse" feminine ; -- mouth_N = mkN "Mund" "Münder" masculine ; -- name_N = mkN "Name" "Namen" "Namen" "Namens" "Namen" "Namen" masculine ; -- neck_N = mkN "Nacken" "Nacken" masculine ; --- night_N = reg2N "Nacht" "Nächte" feminine ; +-- night_N = mkN "Nacht" "Nächte" feminine ; -- nose_N = mkN "Nase" ; -- person_N = mkN "Person" "Personen" feminine ; --- rain_N = mkN "Regen" ; +-- rain_N = mkN "Mken" ; -- road_N = mkN "Straße" ; -- root_N = mkN "Wurzel" "Wurzeln" feminine ; -- rope_N = mkN "Seil" "Seile" neuter ; @@ -301,66 +301,66 @@ lin -- tooth_N = mkN "Zahn" "Zähne" masculine ; -- wife_N = mkN "Ehefrau" "Ehefrauen" feminine ; -- wind_N = mkN "Wind" ; --- wing_N = reg2N "Flügel" "Flügel" masculine ; +-- wing_N = mkN "Flügel" "Flügel" masculine ; -- worm_N = mkN "Wurm" "Würmer" masculine ; -- year_N = mkN "Jahr" "Jahre" neuter ; --- blow_V = regV "blasen" ; --- breathe_V = regV "atmen" ; --- burn_V = regV "brennen" ; --- dig_V = regV "graben" ; --- fall_V = regV "fallen" ; --- float_V = regV "treiben" ; --- flow_V = regV "fließen" ; --- fly_V = regV "fliegen" ; --- freeze_V = regV "frieren" ; --- give_V3 = accdatV3 (irregV "geben" "gibt" "gab" "gäbe" "gegeben") ; --- laugh_V = regV "lachen" ; --- lie_V = regV "lügen" ; --- play_V = regV "spielen" ; --- sew_V = regV "nähen" ; --- sing_V = regV "singen" ; --- sit_V = irregV "sitzen" "sitzt" "saß" "säße" "gesessen" ; --- smell_V = regV "riechen" ; --- spit_V = regV "spucken" ; --- stand_V = regV "stehen" ; --- swell_V = prefixV "an" (regV "schwellen") ; --- swim_V = regV "schwimmen" ; --- think_V = regV "denken" ; --- turn_V = regV "drehen" ; --- vomit_V = regV "kotzen" ; +-- blow_V = mkV "blasen" ; +-- breathe_V = mkV "atmen" ; +-- burn_V = mkV "brennen" ; +-- dig_V = mkV "graben" ; +-- fall_V = mkV "fallen" ; +-- float_V = mkV "treiben" ; +-- flow_V = mkV "fließen" ; +-- fly_V = mkV "fliegen" ; +-- freeze_V = mkV "frieren" ; +-- give_V3 = accdatV3 (mkV "geben" "gibt" "gab" "gäbe" "gegeben") ; +-- laugh_V = mkV "lachen" ; +-- lie_V = mkV "lügen" ; +-- play_V = mkV "spielen" ; +-- sew_V = mkV "nähen" ; +-- sing_V = mkV "singen" ; +-- sit_V = mkV "sitzen" "sitzt" "saß" "säße" "gesessen" ; +-- smell_V = mkV "riechen" ; +-- spit_V = mkV "spucken" ; +-- stand_V = mkV "stehen" ; +-- swell_V = prefixV "an" (mkV "schwellen") ; +-- swim_V = mkV "schwimmen" ; +-- think_V = mkV "denken" ; +-- turn_V = mkV "drehen" ; +-- vomit_V = mkV "kotzen" ; -- --- bite_V2 = dirV2 (irregV "beißen" "beißt" "biss" "bisse" "gebissen") ; --- count_V2 = dirV2 (regV "zählen") ; --- cut_V2 = dirV2 (irregV "schneiden" "schneidet" "schnitt" "schnitte" "geschnitten") ; --- fear_V2 = dirV2 (regV "fürchten") ; --- fight_V2 = dirV2 (regV "bekämpfen") ; --- hit_V2 = dirV2 (irregV "schlagen" "schlägt" "schlug" "schlüge" "geschlagen") ; --- hold_V2 = dirV2 (irregV "halten" "hält" "hielt" "hielte" "gehalten") ; --- hunt_V2 = dirV2 (regV "jagen") ; --- kill_V2 = dirV2 (regV "töten") ; --- pull_V2 = dirV2 (irregV "ziehen" "zieht" "zog" "zöge" "gezogen") ; --- push_V2 = dirV2 (irregV "schieben" "schiebt" "schub" "schübe" "geschoben") ; --- rub_V2 = dirV2 (irregV "reiben" "reibt" "rieb" "riebe" "gerieben") ; --- scratch_V2 = dirV2 (regV "kratzen") ; --- split_V2 = dirV2 (prefixV "auf" (regV "teilen")) ; --- squeeze_V2 = dirV2 (regV "pressen") ; --- stab_V2 = dirV2 (irregV "stechen" "sticht" "stach" "stäche" "gestochen") ; --- suck_V2 = dirV2 (regV "saugen") ; --- throw_V2 = dirV2 (irregV "werfen" "wirft" "warf" "würfe" "geworfen") ; --- tie_V2 = dirV2 (irregV "binden" "bindet" "band" "bände" "gebunden") ; --- wash_V2 = dirV2 (irregV "waschen" "wäscht" "wusch" "wüsche" "gewaschen") ; --- wipe_V2 = dirV2 (regV "wischen") ; +-- bite_V2 = mkV2 (mkV "beißen" "beißt" "biss" "bisse" "gebissen") ; +-- count_V2 = mkV2 (mkV "zählen") ; +-- cut_V2 = mkV2 (mkV "schneiden" "schneidet" "schnitt" "schnitte" "geschnitten") ; +-- fear_V2 = mkV2 (mkV "fürchten") ; +-- fight_V2 = mkV2 (mkV "bekämpfen") ; +-- hit_V2 = mkV2 (mkV "schlagen" "schlägt" "schlug" "schlüge" "geschlagen") ; +-- hold_V2 = mkV2 (mkV "halten" "hält" "hielt" "hielte" "gehalten") ; +-- hunt_V2 = mkV2 (mkV "jagen") ; +-- kill_V2 = mkV2 (mkV "töten") ; +-- pull_V2 = mkV2 (mkV "ziehen" "zieht" "zog" "zöge" "gezogen") ; +-- push_V2 = mkV2 (mkV "schieben" "schiebt" "schub" "schübe" "geschoben") ; +-- rub_V2 = mkV2 (mkV "reiben" "reibt" "rieb" "riebe" "gerieben") ; +-- scratch_V2 = mkV2 (mkV "kratzen") ; +-- split_V2 = mkV2 (prefixV "auf" (mkV "teilen")) ; +-- squeeze_V2 = mkV2 (mkV "pressen") ; +-- stab_V2 = mkV2 (mkV "stechen" "sticht" "stach" "stäche" "gestochen") ; +-- suck_V2 = mkV2 (mkV "saugen") ; +-- throw_V2 = mkV2 (mkV "werfen" "wirft" "warf" "würfe" "geworfen") ; +-- tie_V2 = mkV2 (mkV "binden" "bindet" "band" "bände" "gebunden") ; +-- wash_V2 = mkV2 (mkV "waschen" "wäscht" "wusch" "wüsche" "gewaschen") ; +-- wipe_V2 = mkV2 (mkV "wischen") ; -- --- grammar_N = reg2N "Grammatik" "Grammatiken" feminine ; +-- grammar_N = mkN "Grammatik" "Grammatiken" feminine ; -- language_N = mkN "Sprache" ; --- rule_N = reg2N "Regel" "Regeln" feminine ; +-- rule_N = mkN "Mkel" "Mkeln" feminine ; -- --- john_PN = regPN "Johann" ; +-- john_PN = mkPN "Johann" ; -- question_N = mkN "Frage" ; --- ready_A = regA "fertig" ; --- reason_N = reg2N "Grund" "Gründe" masculine ; --- today_Adv = mkAdv "heute" ; --- uncertain_A = regA "unsicher" ; +-- ready_A = mkA "fertig" ; +-- reason_N = mkN "Grund" "Gründe" masculine ; + today_Adv = mkAdv "vandaag" ; +-- uncertain_A = mkA "unsicher" ; -- -- --} ; diff --git a/lib/src/dutch/NounDut.gf b/lib/src/dutch/NounDut.gf index fbd7f2c13..71f159fad 100644 --- a/lib/src/dutch/NounDut.gf +++ b/lib/src/dutch/NounDut.gf @@ -3,18 +3,18 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in { flags optimize=all_subs ; lin --- DetCN det cn = { --- s = \\c => det.s ! cn.g ! c ++ cn.s ! adjfCase det.a c ! det.n ! c ; --- a = agrP3 det.n ; --- isPron = False --- } ; --- --- DetNP det = { --- s = \\c => det.sp ! Neutr ! c ; ---- genders --- a = agrP3 det.n ; --- isPron = False --- } ; --- + DetCN det cn = { + s = \\c => det.s ! cn.g ++ cn.s ! det.a ! NF det.n Nom ; + a = agrP3 det.n ; + isPron = False + } ; + + DetNP det = { + s = \\_ => det.sp ! Neutr ; + a = agrP3 det.n ; + isPron = False + } ; + -- UsePN pn = pn ** {a = agrP3 Sg} ; UsePron pron = { @@ -51,18 +51,18 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in { -- n = n ; -- a = a -- } ; --- --- DetQuant quant num = --- let --- n = num.n ; --- a = quant.a --- in { --- s = \\g,c => quant.s ! num.isNum ! n ! g ! c ++ num.s!g!c ; --- sp = \\g,c => quant.sp ! n ! g ! c ++ num.s!g!c ; --- n = n ; --- a = a --- } ; --- + + DetQuant quant num = + let + n = num.n ; + a = quant.a + in { + s = \\g => quant.s ! num.isNum ! n ! g ++ num.s ; + sp = \\g => quant.sp ! n ! g ++ num.s ; + n = n ; + a = a + } ; + -- -- PossPron p = { -- s = \\_,n,g,c => p.s ! NPPoss (gennum g n) c ; @@ -72,8 +72,8 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in { -- -- NumCard n = n ** {isNum = True} ; -- --- NumPl = {s = \\g,c => []; n = Pl ; isNum = False} ; --- NumSg = {s = \\g,c => []; n = Sg ; isNum = False} ; + NumPl = {s = []; n = Pl ; isNum = False} ; + NumSg = {s = []; n = Sg ; isNum = False} ; -- -- NumDigits numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ; -- OrdDigits numeral = {s = \\af => numeral.s ! NOrd af} ; @@ -84,39 +84,39 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in { -- AdNum adn num = {s = \\g,c => adn.s ++ num.s!g!c; n = num.n } ; -- -- OrdSuperl a = {s = a.s ! Superl} ; --- --- DefArt = { --- s = \\_,n,g,c => artDef ! gennum g n ! c ; --- sp = \\n,g,c => artDef ! gennum g n ! c ; ---- deren, denem... --- a = Weak --- } ; --- --- IndefArt = { --- s = table { --- True => \\_,_,_ => [] ; --- False => table { --- Sg => \\g,c => "ein" + pronEnding ! GSg g ! c ; --- Pl => \\_,_ => [] --- } --- } ; --- sp = table { --- Sg => \\g,c => "ein" + pronEnding ! GSg g ! c ; --- Pl => \\_ => caselist "einige" "einige" "einigen" "einiger" --- } ; --- a = Strong --- } ; --- + + DefArt = { + s = \\_,n,g => case of { => "het" ; _ => "de"} ; + sp = \\n,g => "die" ; + a = Weak + } ; + + IndefArt = { + s = table { + True => \\_,_ => [] ; + False => table { + Sg => \\g => "een" ; + Pl => \\_ => [] + } + } ; + sp = table { + Sg => \\g => "een" ; + Pl => \\_ => "een" ---- + } ; + a = Strong + } ; + -- MassNP cn = { -- s = \\c => cn.s ! adjfCase Strong c ! Sg ! c ; -- a = agrP3 Sg ; -- isPron = False -- } ; --- --- UseN, UseN2 = \n -> { --- s = \\_ => n.s ; --- g = n.g --- } ; --- + + UseN, UseN2 = \n -> { + s = \\_ => n.s ; + g = n.g + } ; + -- ComplN2 f x = { -- s = \\_,n,c => f.s ! n ! c ++ appPrep f.c2 x.s ; -- g = f.g @@ -140,16 +140,16 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in { -- c2 = f.c3 -- } ; -- --- AdjCN ap cn = --- let --- g = cn.g --- in { --- s = \\a,n,c => --- preOrPost ap.isPre --- (ap.s ! agrAdj g a n c) --- (cn.s ! a ! n ! c) ; --- g = g --- } ; + AdjCN ap cn = + let + g = cn.g + in { + s = \\a,n => + preOrPost ap.isPre + (ap.s ! agrAdj g a n) + (cn.s ! a ! n) ; + g = g + } ; -- -- RelCN cn rs = { -- s = \\a,n,c => cn.s ! a ! n ! c ++ rs.s ! gennum cn.g n ; diff --git a/lib/src/dutch/ParadigmsDut.gf b/lib/src/dutch/ParadigmsDut.gf index 7e710ffaf..8c8910da9 100644 --- a/lib/src/dutch/ParadigmsDut.gf +++ b/lib/src/dutch/ParadigmsDut.gf @@ -112,14 +112,14 @@ oper ---- Two-place adjectives are formed by adding a preposition to an adjective. -- -- mkA2 : A -> Prep -> A2 ; --- -----2 Adverbs --- ----- Adverbs are formed from strings. --- --- mkAdv : Str -> Adv ; --- --- + +--2 Adverbs + +-- Adverbs are formed from strings. + + mkAdv : Str -> Adv ; + + --2 Prepositions @@ -316,7 +316,7 @@ oper -- -- mkA2 = \a,p -> a ** {c2 = p ; lock_A2 = <>} ; -- --- mkAdv s = {s = s ; lock_Adv = <>} ; + mkAdv s = {s = s ; lock_Adv = <>} ; -- -- mkPrep s c = {s = s ; c = c ; lock_Prep = <>} ; -- accPrep = mkPrep [] accusative ; diff --git a/lib/src/dutch/QuestionDut.gf b/lib/src/dutch/QuestionDut.gf index a0bde36e9..7dc03bfd3 100644 --- a/lib/src/dutch/QuestionDut.gf +++ b/lib/src/dutch/QuestionDut.gf @@ -1,20 +1,19 @@ -concrete QuestionDut of Question = CatDut ** open ResDut in -{ ---{ --- --- flags optimize=all_subs ; --- --- lin --- --- QuestCl cl = { --- s = \\m,t,a,p => --- let cls = cl.s ! m ! t ! a ! p --- in table { --- QDir => cls ! Inv ; --- QIndir => "ob" ++ cls ! Sub --- } --- } ; --- +concrete QuestionDut of Question = CatDut ** open ResDut in { + + + flags optimize=all_subs ; + + lin + + QuestCl cl = { + s = \\t,a,p => + let cls = cl.s ! t ! a ! p + in table { + QDir => cls ! Inv ; + QIndir => "of" ++ cls ! Sub + } + } ; + -- QuestVP qp vp = { -- s = \\m,t,a,b,q => -- let @@ -36,17 +35,17 @@ concrete QuestionDut of Question = CatDut ** open ResDut in -- QIndir => who ++ cls ! Sub -- } -- } ; --- --- QuestIAdv iadv cl = { --- s = \\m,t,a,p => --- let --- cls = cl.s ! m ! t ! a ! p ; --- why = iadv.s --- in table { --- QDir => why ++ cls ! Inv ; --- QIndir => why ++ cls ! Sub --- } --- } ; + + QuestIAdv iadv cl = { + s = \\t,a,p => + let + cls = cl.s ! t ! a ! p ; + why = iadv.s + in table { + QDir => why ++ cls ! Inv ; + QIndir => why ++ cls ! Sub + } + } ; -- -- QuestIComp icomp np = { -- s = \\m,t,a,p => @@ -98,8 +97,5 @@ concrete QuestionDut of Question = CatDut ** open ResDut in -- CompIAdv a = {s = \\_ => a.s} ; -- -- CompIP ip = {s = \\_ => ip.s ! Nom} ; --- ---} --- } diff --git a/lib/src/dutch/ResDut.gf b/lib/src/dutch/ResDut.gf index 15ebf4d93..9aaadac99 100644 --- a/lib/src/dutch/ResDut.gf +++ b/lib/src/dutch/ResDut.gf @@ -34,6 +34,7 @@ resource ResDut = ParamX ** open Prelude in { _ + ("oir" | "ion") => mkNoun s (s + "s") Neutr ; ? + ? + ? + _ + ("el" | "em" | "en" | "er" | "erd" | "aar" | "aard") => -- unstressed mkNoun s (s + s) Utr ; + _ + ("i"|"u") => mkNoun s (endCons s + "en") Utr ; b + v@("aa"|"ee"|"oo"|"uu") + c@? => mkNoun s (b + shortVoc v c + "en") Utr ; b + v@("a" |"e" |"o" |"u" ) + c@? => mkNoun s (b + v + c + c + "en") Utr ; _ => mkNoun s (endCons s + "en") Utr @@ -47,7 +48,7 @@ resource ResDut = ParamX ** open Prelude in { shortVoc : Str -> Str -> Str = \v,s -> init v + endCons s ; endCons : Str -> Str = \s -> case s of { - _ + "rs" => s ; + _ + ("ts" |"rs") => s ; b + "s" => b + "z" ; b + "f" => b + "v" ; _ => s @@ -69,6 +70,7 @@ resource ResDut = ParamX ** open Prelude in { regAdjective : Str -> Adjective = \s -> ---- let se : Str = case s of { + _ + ("i"|"u") => s + "e" ; b + v@("aa"|"ee"|"oo"|"uu") + c@? => b + shortVoc v c + "e" ; b + v@("a" |"e" |"o" |"u" ) + c@? => b + v + c + c + "en" ; _ => endCons s + "e" @@ -305,9 +307,10 @@ resource ResDut = ParamX ** open Prelude in { -- Complex $CN$s, like adjectives, have strong and weak forms. --- --- Adjf = Strong | Weak ; --- + +param + Adjf = Strong | Weak ; + ---- Gender distinctions are only made in the singular. -- -- GenNum = GSg Gender | GPl ; @@ -418,25 +421,15 @@ resource ResDut = ParamX ** open Prelude in { -- GSg _ => Sg ; -- GPl => Pl -- } ; --- ----- Used in $NounDut$. --- --- agrAdj : Gender -> Adjf -> Number -> Case -> AForm = \g,a,n,c -> --- let --- gn = gennum g n ; --- e = AMod (GSg Fem) Nom ; --- en = AMod (GSg Masc) Acc ; --- in --- case a of { --- Strong => AMod gn c ; --- _ => case of { --- => e ; --- => en ; --- => e ; --- _ => en --- } --- } ; --- + +-- Used in $NounDut$. + + agrAdj : Gender -> Adjf -> NForm -> AForm = \g,a,n -> + case of { + => APred ; + _ => AAttr + } ; + ---- To add a prefix (like "ein") to an already existing verb. -- -- prefixV : Str -> Verb -> Verb = \ein,verb -> @@ -591,26 +584,26 @@ resource ResDut = ParamX ** open Prelude in { ext = vp.ext } ; --- insertExtrapos : Str -> VP -> VP = \ext,vp -> { --- s = vp.s ; --- a1 = vp.a1 ; --- n2 = vp.n2 ; --- a2 = vp.a2 ; --- isAux = vp.isAux ; --- inf = vp.inf ; --- ext = vp.ext ++ ext --- } ; --- --- insertInf : Str -> VP -> VP = \inf,vp -> { --- s = vp.s ; --- a1 = vp.a1 ; --- n2 = vp.n2 ; --- a2 = vp.a2 ; --- isAux = vp.isAux ; ---- --- inf = inf ++ vp.inf ; --- ext = vp.ext --- } ; --- + insertExtrapos : Str -> VP -> VP = \ext,vp -> { + s = vp.s ; + a1 = vp.a1 ; + n2 = vp.n2 ; + a2 = vp.a2 ; + isAux = vp.isAux ; + inf = vp.inf ; + ext = vp.ext ++ ext + } ; + + insertInf : Str -> VP -> VP = \inf,vp -> { + s = vp.s ; + a1 = vp.a1 ; + n2 = vp.n2 ; + a2 = vp.a2 ; + isAux = vp.isAux ; ---- + inf = inf ++ vp.inf ; + ext = vp.ext + } ; + -- For $Sentence$. Clause : Type = { @@ -658,13 +651,14 @@ resource ResDut = ParamX ** open Prelude in { VZijn => zijn_V } ; --- infVP : Bool -> VP -> ((Agr => Str) * Str * Str) = \isAux, vp -> let vps = useVP vp in --- < --- \\agr => vp.n2 ! agr ++ vp.a2, --- vp.a1 ! Pos ++ (vps.s ! (notB isAux) ! agrP3 Sg ! VPInfinit Simul).inf, --- vp.inf ++ vp.ext --- > ; --- + infVP : Bool -> VP -> ((Agr => Str) * Str * Str) = \isAux, vp -> + < + \\agr => vp.n2 ! agr ++ vp.a2, + vp.a1 ! Pos ++ + if_then_Str isAux [] "te" ++ vp.s.s ! VInf, + vp.inf ++ vp.ext + > ; + -- useInfVP : Bool -> VP -> Str = \isAux,vp -> -- let vpi = infVP isAux vp in -- vpi.p1 ! agrP3 Sg ++ vpi.p3 ++ vpi.p2 ; @@ -695,4 +689,17 @@ resource ResDut = ParamX ** open Prelude in { -- --} + mkQuant : Str -> Str -> { + s : Bool => Number => Gender => Str ; + sp : Number => Gender => Str ; + a : Adjf + } = + \deze,dit -> { + s = \\_ ,n,g => case of { => dit ; _ => deze} ; + sp = \\ n,g => case of { => dit ; _ => deze} ; + a = Weak + } ; + + auxVV : VVerb -> VVerb ** {isAux : Bool} = \v -> v ** {isAux = True} ; + } diff --git a/lib/src/dutch/StructuralDut.gf b/lib/src/dutch/StructuralDut.gf index df8447463..c250cd31f 100644 --- a/lib/src/dutch/StructuralDut.gf +++ b/lib/src/dutch/StructuralDut.gf @@ -1,6 +1,6 @@ concrete StructuralDut of Structural = CatDut, Prelude ** - open ResDut in + open ParadigmsDut, ResDut in { @@ -8,21 +8,21 @@ concrete StructuralDut of Structural = CatDut, Prelude ** lin --- above_Prep = mkPrep "über" Dat ; --- after_Prep = mkPrep "nach" Dat ; + above_Prep = mkPrep "boven" ; + after_Prep = mkPrep "na" ; -- all_Predet = {s = appAdj (regA "all") ; c = NoCase} ; -- almost_AdA, almost_AdN = ss "fast" ; -- although_Subj = ss "obwohl" ; --- always_AdV = ss "immer" ; --- and_Conj = {s1 = [] ; s2 = "und" ; n = Pl} ; --- because_Subj = ss "weil" ; --- before_Prep = mkPrep "vor" Dat ; --- behind_Prep = mkPrep "hinter" Dat ; --- between_Prep = mkPrep "zwischen" Dat ; + always_AdV = ss "altijd" ; + and_Conj = {s1 = [] ; s2 = "en" ; n = Pl} ; + because_Subj = ss "omdat" ; ---- doordat + before_Prep = mkPrep "voor" ; + behind_Prep = mkPrep "achter" ; + between_Prep = mkPrep "tussen" ; -- both7and_DConj = sd2 "sowohl" ["als auch"] ** {n = Pl} ; --- but_PConj = ss "aber" ; --- by8agent_Prep = mkPrep "durch" Acc ; --- by8means_Prep = mkPrep "mit" Dat ; + but_PConj = ss "maar" ; + by8agent_Prep = mkPrep "door" ; + by8means_Prep = mkPrep "met" ; -- can8know_VV, can_VV = auxVV -- (mkV -- "können" "kann" "kannst" "kann" "könnt" "könn" @@ -34,22 +34,23 @@ concrete StructuralDut of Structural = CatDut, Prelude ** -- everybody_NP = nameNounPhrase {s = caselist "jeder" "jeden" "jedem" "jedes"} ; -- every_Det = detLikeAdj Sg "jed" ; -- everything_NP = nameNounPhrase {s = caselist "alles" "alles" "allem" "alles"} ; --- everywhere_Adv = ss "überall" ; + everywhere_Adv = ss "overal" ; -- few_Det = detLikeAdj Pl "wenig" ; ------ first_Ord = {s = (regA "erst").s ! Posit} ; -- for_Prep = mkPrep "für" Acc ; --- from_Prep = mkPrep "aus" Dat ; --- he_Pron = mkPronPers "er" "ihn" "ihm" "seiner" "sein" Utr Sg P3 ; --- here7to_Adv = ss ["hierher"] ; --- here7from_Adv = ss ["hieraus"] ; --- here_Adv = ss "hier" ; --- how_IAdv = ss "wie" ; --- how8many_IDet = detLikeAdj Pl "wieviel" ; + from_Prep = mkPrep "uit" ; + he_Pron = mkPronoun "hij" "hem" "zijn" "hij" "hem" "zijn" "zijne" Utr Sg P3 ; + here7to_Adv = ss ["hier"] ; + here7from_Adv = ss ["van hier"] ; ---- + here_Adv = ss "hier" ; + how_IAdv = ss "hoe" ; +-- how8many_IDet = detLikeAdj Pl "hoeveel" ; if_Subj = ss "als" ; --- in8front_Prep = mkPrep "vor" Dat ; + in8front_Prep = mkPrep "voor" ; i_Pron = mkPronoun "ik" "me" "m'n" "ik" "mij" "mijn" "mijne" Utr Sg P1 ; --- in_Prep = mkPrep "in" Dat ; --- it_Pron = mkPronPers "es" "es" "ihm" "seiner" "sein" Neutr Sg P3 ; + in_Prep = ss "in" ; + it_Pron = mkPronoun "het" "het" "zijn" "het" "het" "zijn" "zijne" Neutr Sg P3 ; + -- less_CAdv = X.mkCAdv "weniger" "als" ; -- many_Det = detLikeAdj Pl "viel" ; -- more_CAdv = X.mkCAdv "mehr" "als" ; @@ -65,14 +66,15 @@ concrete StructuralDut of Structural = CatDut, Prelude ** -- only_Predet = {s = \\_,_,_ => "nur" ; c = NoCase} ; -- no_Utt = ss "nein" ; -----b no_Phr = ss "nein" ; --- on_Prep = mkPrep "auf" Dat ; --- or_Conj = {s1 = [] ; s2 = "oder" ; n = Sg} ; + on_Prep = mkPrep "op" ; + or_Conj = {s1 = [] ; s2 = "of" ; n = Sg} ; -- otherwise_PConj = ss "sonst" ; --- part_Prep = mkPrep "von" Dat ; + part_Prep = mkPrep "van" ; -- please_Voc = ss "bitte" ; --- possess_Prep = mkPrep "von" Dat ; + possess_Prep = mkPrep "van" ; -- quite_Adv = ss "ziemlich" ; --- she_Pron = mkPronPers "sie" "sie" "ihr" "ihrer" "ihr" Fem Sg P3 ; + she_Pron = mkPronoun "ze" "haar" "haar" "zij" "haar" "haar" "haare" Utr Sg P3 ; + -- so_AdA = ss "so" ; -- somebody_NP = nameNounPhrase {s = caselist "jemand" "jemanden" "jemandem" "jemands"} ; -- somePl_Det = detLikeAdj Pl "einig" ; @@ -83,40 +85,33 @@ concrete StructuralDut of Structural = CatDut, Prelude ** -- } ; -- something_NP = nameNounPhrase {s = \\_ => "etwas"} ; -- somewhere_Adv = ss "irgendwo" ; --- that_Quant = let + that_Quant = mkQuant "die" "dat" ; -- jener : Number => Gender => Case => Str = \\n => (detLikeAdj n "jen").s in -- {s = \\_ => jener ; sp = jener ; a = Weak} ; ------b that_NP = nameNounPhrase {s = caselist "das" "das" "denem" "dessen"} ; ---- + -- there_Adv = ss "da" ; -- there7to_Adv = ss "dahin" ; -- there7from_Adv = ss ["daher"] ; -- therefore_PConj = ss "deshalb" ; ------b these_NP = {s = caselist "diese" "diese" "diesen" "dieser" ; a = agrP3 Pl} ; --- they_Pron = mkPronPers "sie" "sie" "ihnen" "ihrer" "ihr" Fem Pl P3 ; --- this_Quant = let --- dieser : Number => Gender => Case => Str = \\n => (detLikeAdj n "dies").s in --- {s = \\_ => dieser ; sp = dieser ; a = Weak} ; ------b this_NP = nameNounPhrase {s = caselist "dies" "dies" "diesem" "dieses"} ; ---- ------b those_NP = {s = caselist "jene" "jene" "jenen" "jener" ; a = agrP3 Pl} ; --- through_Prep = mkPrep "durch" Acc ; + + they_Pron = mkPronoun "ze" "ze" "hun" "zij" "hen" "hun" "hunne" Utr Pl P3 ; ---- + + this_Quant = mkQuant "deze" "dit" ; + through_Prep = mkPrep "door" ; -- too_AdA = ss "zu" ; --- to_Prep = mkPrep "nach" Dat ; --- under_Prep = mkPrep "unter" Dat ; --- very_AdA = ss "sehr" ; --- want_VV = auxVV --- (mkV --- "wollen" "will" "willst" "will" "wollt" "woll" --- "wollte" "wolltest" "wollten" "wolltet" --- "wollte" "gewollt" [] --- VHaben) ; --- we_Pron = mkPronPers "wir" "uns" "uns" "unser" "unser" Fem Pl P1 ; + to_Prep = mkPrep "te" ; + under_Prep = mkPrep "onder" ; + very_AdA = ss "erg" ; + want_VV = auxVV (mkV "wil" "wil" "willen" "wou" "wouden" "gewild") ; + + we_Pron = mkPronoun "we" "ons" "ons" "wij" "ons" "onze" "onze" Utr Sg P3 ; ---- -- -- whatSg_IP = {s = caselist "was" "was" "was" "wessen" ; n = Sg} ; ---- -- whatPl_IP = {s = caselist "was" "was" "was" "wessen" ; n = Pl} ; ---- -- --- when_IAdv = ss "wann" ; + when_IAdv = ss "wanneer" ; -- when_Subj = ss "wenn" ; --- where_IAdv = ss "wo" ; + where_IAdv = ss "waar" ; -- which_IQuant = {s = \\n => (detLikeAdj n "welch").s} ; -- -- whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ; diff --git a/lib/src/dutch/VerbDut.gf b/lib/src/dutch/VerbDut.gf index 87f995aab..b3a8a2601 100644 --- a/lib/src/dutch/VerbDut.gf +++ b/lib/src/dutch/VerbDut.gf @@ -5,15 +5,15 @@ concrete VerbDut of Verb = CatDut ** open Prelude, ResDut in { lin UseV = predV ; --- ComplVV v vp = --- let --- vpi = infVP v.isAux vp --- in --- insertExtrapos vpi.p3 ( --- insertInf vpi.p2 ( --- insertObj vpi.p1 ( --- predVGen v.isAux v))) ; --- + ComplVV v vp = + let + vpi = infVP v.isAux vp + in + insertExtrapos vpi.p3 ( + insertInf vpi.p2 ( + insertObj vpi.p1 ( + predVGen v.isAux {s = v.s ; aux = v.aux}))) ; ---- subtyp + -- ComplVS v s = -- insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ; -- ComplVQ v q = @@ -66,9 +66,9 @@ concrete VerbDut of Verb = CatDut ** open Prelude, ResDut in { UseComp comp = insertAdv (comp.s ! agrP3 Sg) (predV zijn_V) ; -- agr not used CompAP ap = {s = \\_ => ap.s ! APred} ; -- CompNP np = {s = \\_ => np.s ! Nom} ; --- CompAdv a = {s = \\_ => a.s} ; --- --- AdvVP vp adv = insertAdv adv.s vp ; + CompAdv a = {s = \\_ => a.s} ; + + AdvVP vp adv = insertAdv adv.s vp ; -- AdVVP adv vp = insertAdV adv.s vp ; -- -- ReflVP vp = insertObj (\\a => appPrep vp.c2 (reflPron ! a)) vp ;