more words and rules in Dutch

This commit is contained in:
aarne
2009-11-10 17:24:32 +00:00
parent ad89cc7cc2
commit 00cda41bc0
9 changed files with 473 additions and 475 deletions

View File

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

View File

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

View File

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

View File

@@ -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 <n,g> of {<Sg,Neutr> => "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 ;

View File

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

View File

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

View File

@@ -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 <gn,c> of {
-- <GSg _, Nom> => e ;
-- <GSg Masc,Acc> => en ;
-- <GSg _, Acc> => e ;
-- _ => en
-- }
-- } ;
--
-- Used in $NounDut$.
agrAdj : Gender -> Adjf -> NForm -> AForm = \g,a,n ->
case <a,g,n> of {
<Strong,Neutr,NF Sg _> => 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 <n,g> of {<Sg,Neutr> => dit ; _ => deze} ;
sp = \\ n,g => case <n,g> of {<Sg,Neutr> => dit ; _ => deze} ;
a = Weak
} ;
auxVV : VVerb -> VVerb ** {isAux : Bool} = \v -> v ** {isAux = True} ;
}

View File

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

View File

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