forked from GitHub/gf-rgl
(Ger) Corrections in Cat, Res, Lexicon, Structural, Morpho, Paradigms and Questions
This commit is contained in:
@@ -26,10 +26,11 @@ concrete CatGer of Cat =
|
||||
-- Question
|
||||
|
||||
QCl = {s : Mood => ResGer.Tense => Anteriority => Polarity => QForm => Str} ;
|
||||
IP = {s : Case => Str ; n : Number} ;
|
||||
|
||||
IP = {s : Case => Str ; a : GenNum ; isPron : Bool} ;
|
||||
IComp = {s : Agr => Str ; ext : Str} ;
|
||||
IDet = {s : Gender => Case => Str ; n : Number} ;
|
||||
IQuant = {s : GenNum => Case => Str} ;
|
||||
IDet = {s : Gender => Case => Str ; n : Number ; a : Adjf} ;
|
||||
IQuant = {s : GenNum => Case => Str ; a : Adjf} ;
|
||||
|
||||
-- Relative
|
||||
|
||||
@@ -114,7 +115,7 @@ concrete CatGer of Cat =
|
||||
GN = {s : Case => Str; g : Sex} ;
|
||||
SN = {s : Sex => Case => Str} ;
|
||||
PN = {s : Case => Str; g : Gender; n : Number} ;
|
||||
LN = {s : Adjf => Case => Str; hasArt : Bool; g : Gender; n : Number} ;
|
||||
LN = {s : Adjf => Case => Str; hasDefArt : Bool; g : Gender; n : Number} ;
|
||||
|
||||
-- tense with possibility to choose conjunctive forms
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ concrete ExtendGer of Extend =
|
||||
PastPartAP, PastPartAgentAP,
|
||||
PassVPSlash, PassAgentVPSlash,
|
||||
AdvIsNP,
|
||||
RNP, RNPList, Base_rr_RNP, Base_nr_RNP, Base_rn_RNP, Cons_rr_RNP, Cons_nr_RNP, Conj_RNP,
|
||||
RNP, RNPList, Base_rr_RNP, Base_nr_RNP, Base_rn_RNP, Cons_rr_RNP, Cons_nr_RNP, ConjRNP,
|
||||
ReflRNP, ReflPron, ReflPoss, PredetRNP, AdvRNP, ReflA2RNP, PossPronRNP,
|
||||
CompoundN, DetNPMasc, DetNPFem, UseDAP, UseDAPMasc, UseDAPFem,
|
||||
CardCNCard,
|
||||
|
||||
@@ -96,13 +96,13 @@ in {
|
||||
lin laden_V = irregV "laden" "lädt" "lud" "lüde" "geladen" ;
|
||||
lin lassen_V = irregV "lassen" "lässt" "ließ" "ließe" "gelassen" ;
|
||||
lin laufen_V = irregV "laufen" "läuft" "lief" "liefe" "gelaufen" ;
|
||||
lin leiden_V = irregV "leiden" "leidt" "litt" "litte" "gelitten" ;
|
||||
lin leiden_V = irregV "leiden" "leidet" "litt" "litte" "gelitten" ;
|
||||
lin leihen_V = irregV "leihen" "leiht" "lieh" "liehe" "geliehen" ;
|
||||
lin lesen_V = irregV "lesen" "liest" "las" "läse" "gelesen" ;
|
||||
lin liegen_V = irregV "liegen" "liegt" "lag" "läge" "gelegen" ;
|
||||
lin lügen_V = irregV "lügen" "lügt" "log" "löge" "gelogen" ;
|
||||
lin mahlen_V = irregV "mahlen" "mahlt" "mahlte" "mahlte" "gemahlen" ;
|
||||
lin meiden_V = irregV "meiden" "meidt" "mied" "miede" "gemieden" ;
|
||||
lin meiden_V = irregV "meiden" "meidet" "mied" "miede" "gemieden" ;
|
||||
lin melken_V = irregV "melken" "milkt" "molk" "mölke" "gemolken" ;
|
||||
lin messen_V = irregV "messen" "misst" "maß" "mäße" "gemessen" ;
|
||||
lin mißlingen_V = irregV "misslingen" "misslingt" "misslang" "misslungen" "misslänge" ; -- old spelling
|
||||
@@ -131,14 +131,14 @@ in {
|
||||
lin saufen_V = irregV "saufen" "säuft" "soff" "söffe" "gesoffen" ;
|
||||
lin saugen_V = irregV "saugen" "saugt" "sog" "soge" "gesogen" ;
|
||||
lin schaffen_V = irregV "schaffen" "schafft" "schuf" "schüfe" "geschaffen" ;
|
||||
lin scheiden_V = irregV "scheiden" "scheidt" "schied" "schiede" "geschieden" ;
|
||||
lin scheiden_V = irregV "scheiden" "scheidet" "schied" "schiede" "geschieden" ;
|
||||
lin scheinen_V = irregV "scheinen" "scheint" "schien" "schiene" "geschienen" ;
|
||||
lin scheißen_V = irregV "scheißen" "scheißt" "schiss" "schisse" "geschissen" ;
|
||||
lin schelten_V = irregV "schelten" "schilt" "schalt" "schölte" "gescholten" ;
|
||||
lin scheren_V = irregV "scheren" "schert" "schor" "schöre" "geschoren" ;
|
||||
lin schieben_V = irregV "schieben" "schiebt" "schob" "schöbe" "geschoben" ;
|
||||
lin schießen_V = irregV "schießen" "schießt" "schoss" "schösse" "geschossen" ;
|
||||
lin schinden_V = irregV "schinden" "schindt" "schund" "schunde" "geschunden" ;
|
||||
lin schinden_V = irregV "schinden" "schindet" "schund" "schunde" "geschunden" ;
|
||||
lin schlafen_V = irregV "schlafen" "schläft" "schlief" "schliefe" "geschlafen" ;
|
||||
lin schlagen_V = irregV "schlagen" "schlägt" "schlug" "schlüge" "geschlagen" ;
|
||||
lin schleichen_V = irregV "schleichen" "schleicht" "schlich" "schliche" "geschlichen" ;
|
||||
@@ -156,7 +156,7 @@ in {
|
||||
lin schwellen_V = irregV "schwellen" "schwillt" "schwoll" "schwölle" "geschwollen" ;
|
||||
lin schwimmen_V = irregV "schwimmen" "schwimmt" "schwamm" "schwämme" "geschwommen" ;
|
||||
lin schwimmen_o_V = irregV "schwimmen" "schwimmt" "schwamm" "schwömme" "geschwommen" ;
|
||||
lin schwinden_V = irregV "schwinden" "schwindt" "schwand" "schwände" "geschwunden" ;
|
||||
lin schwinden_V = irregV "schwinden" "schwindet" "schwand" "schwände" "geschwunden" ;
|
||||
lin schwingen_V = irregV "schwingen" "schwingt" "schwang" "schwänge" "geschwungen" ;
|
||||
lin schwören_V = irregV "schwören" "schwört" "schwor" "schwüre" "geschworen" ;
|
||||
lin sehen_V = irregV "sehen" "sieht" "sah" "sähe" "gesehen" ;
|
||||
@@ -200,7 +200,7 @@ in {
|
||||
"tun" "tue" "tust" "tut" "tut" "tue"
|
||||
"tat" "tatest" "taten" "tatet"
|
||||
"täte" "getan" [] M.VHaben) ;
|
||||
lin verderben_V = irregV "verderben" "verdirbt" "verdarb" "verdarbe" "verdorben" ;
|
||||
lin verderben_V = irregV "verderben" "verdirbt" "verdarb" "verdürbe" "verdorben" ;
|
||||
lin vergessen_V = irregV "vergessen" "vergisst" "vergaß" "vergäße" "vergessen" ;
|
||||
lin verlieren_V = irregV "verlieren" "verliert" "verlor" "verlöre" "verloren" ;
|
||||
lin wachsen_V = irregV "wachsen" "wächst" "wuchs" "wüchse" "gewachsen" ;
|
||||
@@ -209,14 +209,14 @@ in {
|
||||
lin weben_V = irregV "weben" "webt" "wob" "wöbe" "gewoben" ;
|
||||
lin weichen_V = irregV "weichen" "weicht" "wich" "wiche" "gewichen" ;
|
||||
lin weisen_V = irregV "weisen" "weist" "wies" "wiese" "gewiesen" ;
|
||||
lin wenden_V = irregV "wenden" "wendt" "wandte" "wandte" "gewandt" ;
|
||||
lin wenden_V = irregV "wenden" "wendet" "wandte" "wandte" "gewandt" ;
|
||||
lin werben_V = irregV "werben" "wirbt" "warb" "würbe" "geworben" ;
|
||||
lin werden_V = lin V (M.mkV "werden" "werde" "wirst" "wird" "werdet" "werd"
|
||||
"wurde" "wurdest" "wurden" "wurdet"
|
||||
"würde" "geworden" [] M.VSein) ;
|
||||
lin werfen_V = irregV "werfen" "wirft" "warf" "würfe" "geworfen" ;
|
||||
lin wiegen_V = irregV "wiegen" "wiegt" "wog" "wöge" "gewogen" ;
|
||||
lin winden_V = irregV "winden" "windt" "wand" "wände" "gewunden" ;
|
||||
lin winden_V = irregV "winden" "windet" "wand" "wände" "gewunden" ;
|
||||
lin wissen_V = lin V (M.mkV "wissen" "weiß" "weißt" "weiß" "wisst" "wisse"
|
||||
"wusste" "wusstest" "wussten" "wusstet"
|
||||
"wüsste" "gewusst" [] M.VHaben) ;
|
||||
|
||||
@@ -2,25 +2,26 @@
|
||||
|
||||
-- work by Aarne Ranta, Andreas Priesnitz, and Henning Thielemann.
|
||||
-- a few corrections by Hans Leiß, and using the better IrregGer
|
||||
-- sg/pl t = singulare/plurale tantum
|
||||
|
||||
concrete LexiconGer of Lexicon = CatGer **
|
||||
open Prelude, ParadigmsGer, (Mo = MorphoGer), (Irreg = IrregGer) in {
|
||||
|
||||
flags
|
||||
coding=utf8 ;
|
||||
coding=utf8 ;
|
||||
optimize=all_subs ;
|
||||
|
||||
lin
|
||||
add_V3 = dirV3 (prefixV "hinzu" (regV "fügen")) zu_Prep ;
|
||||
airplane_N = mkN "Flugzeug" "Flugzeuge" neuter ;
|
||||
alas_Interj = {s = "ach"} ;
|
||||
alas_Interj = ss "leider" ; -- {s = "ach"} ;
|
||||
already_Adv = mkAdv "schon" ;
|
||||
answer_V2S = mkV2S (regV "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 ; ----
|
||||
baby_N = reg2N "Baby" "Babies" neuter ; ---- "Kleinkind"
|
||||
bad_A = regA "schlecht" ;
|
||||
bank_N = reg2N "Bank" "Banken" feminine ;
|
||||
beautiful_A = regA "schön" ;
|
||||
@@ -35,21 +36,21 @@ lin
|
||||
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 ; ----
|
||||
boss_N = reg2N "Chef" "Chefs" masculine ; ---- "Vorgesetzte"
|
||||
boy_N = reg2N "Junge" "Jungen" masculine ;
|
||||
bread_N = reg2N "Brot" "Brote" neuter ;
|
||||
break_V2 = dirV2 (fixprefixV "zer" Irreg.schlagen_V) ;
|
||||
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
|
||||
butter_N = reg2N "Butter" "Butter" feminine ; ---- sg t
|
||||
buy_V2 = dirV2 (regV "kaufen") ;
|
||||
camera_N = reg2N "Kamera" "Kameras" feminine ;
|
||||
cap_N = mkN "Mütze" ;
|
||||
car_N = mkN "Auto" "Autos" neuter | mkN "Wagen" "Wagen" masculine ;
|
||||
carpet_N = mkN "Teppich" ;
|
||||
cat_N = mkN "Katze" ;
|
||||
ceiling_N = reg2N "Dach" "Dächer" neuter ;
|
||||
ceiling_N = mkN "Zimmerdecke" ;
|
||||
chair_N = reg2N "Stuhl" "Stühle" masculine ;
|
||||
cheese_N = mkN "Käse" "Käse" masculine ;
|
||||
child_N = reg2N "Kind" "Kinder" neuter ;
|
||||
@@ -58,12 +59,12 @@ lin
|
||||
clean_A = regA "rein" ;
|
||||
clever_A = mk3A "klug" "klüger" "klügste" ;
|
||||
close_V2 = dirV2 Irreg.schließen_V ;
|
||||
coat_N = mkN "Jacke" | mkN "Mantel" "Mantel" masculine;
|
||||
coat_N = mkN "Jacke" | mkN "Mantel" "Mäntel" masculine;
|
||||
cold_A = mk3A "kalt" "kälter" "kälteste" ;
|
||||
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
|
||||
cousin_N = reg2N "Vetter" "Vettern" masculine ; --- "Kusine" feminine
|
||||
cow_N = reg2N "Kuh" "Kühe" feminine ;
|
||||
die_V = seinV Irreg.sterben_V | seinV (prefixV "um" Irreg.kommen_V);
|
||||
distance_N3 = mkN3 (mkN "Entfernung") von_Prep zu_Prep ;
|
||||
@@ -91,7 +92,7 @@ lin
|
||||
garden_N = reg2N "Garten" "Gärten" masculine ;
|
||||
girl_N = reg2N "Mädchen" "Mädchen" neuter ;
|
||||
glove_N = mkN "Handschuh" ;
|
||||
gold_N = reg2N "Gold" "Golde" neuter ; ---- infl
|
||||
gold_N = reg2N "Gold" "Golde" neuter ; ---- sg t
|
||||
good_A = mk3A "gut" "besser" "beste" ;
|
||||
go_V = seinV Irreg.gehen_V ;
|
||||
green_A = regA "grün" ;
|
||||
@@ -112,7 +113,7 @@ lin
|
||||
know_V2 = dirV2 Irreg.kennen_V ;
|
||||
know_VQ = mkVQ Irreg.wissen_V ;
|
||||
know_VS = mkVS Irreg.wissen_V ;
|
||||
lake_N = reg2N "See" "Seen" masculine ; --- infl
|
||||
lake_N = mkN "See" "See" "See" "Sees" "Seen" "Seen" masculine ;
|
||||
lamp_N = mkN "Lampe";
|
||||
learn_V2 = dirV2 (regV "lernen") ;
|
||||
leather_N = reg2N "Leder" "Leder" neuter ;
|
||||
@@ -126,8 +127,8 @@ lin
|
||||
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
|
||||
meat_N = reg2N "Fleisch" "Fleische" neuter ; ---- sg t
|
||||
milk_N = reg2N "Milch" "Milche" feminine ; ---- sg t
|
||||
moon_N = mkN "Mond" ;
|
||||
mother_N2 = mkN2 (reg2N "Mutter" "Mütter" feminine) von_Prep ;
|
||||
mountain_N = mkN "Berg" ;
|
||||
@@ -144,9 +145,10 @@ lin
|
||||
paper_N = reg2N "Papier" "Papiere" neuter ;
|
||||
paris_PN = mkPN "Paris" neuter ;
|
||||
peace_N = mk6N "Friede" "Frieden" "Frieden" "Friedens" "Frieden" "Frieden" masculine ;
|
||||
pen_N = mkN "Bleistift" ; ----
|
||||
pen_N = mkN "Bleistift" ;
|
||||
planet_N = reg2N "Planet" "Planeten" masculine ;
|
||||
plastic_N = reg2N "Plastik" "Plastiken" feminine ; ----
|
||||
-- plastic_N = reg2N "Plastik" "Plastiken" feminine ; ----
|
||||
plastic_N = regN "Kunststoff" ;
|
||||
play_V2 = dirV2 (regV "spielen") ;
|
||||
policeman_N = reg2N "Polizist" "Polizisten" masculine ;
|
||||
priest_N = mkN "Priester" ;
|
||||
@@ -160,7 +162,8 @@ lin
|
||||
religion_N = mkN "Religion" ;
|
||||
restaurant_N = reg2N "Restaurant" "Restaurants" neuter ;
|
||||
river_N = reg2N "Fluß" "Flüsse" masculine ;
|
||||
rock_N = mkN "Stein" ;
|
||||
-- rock_N = mkN "Stein" ; -- cf. stone_N = mkN "Stein" ;
|
||||
rock_N = mkN "Felsen" ; -- "Felsbrocken"; infl "Fels" ; HL 6/17
|
||||
roof_N = reg2N "Dach" "Dächer" neuter ;
|
||||
rubber_N = reg2N "Gummi" "Gummis" neuter ;
|
||||
run_V = seinV Irreg.laufen_V ;
|
||||
@@ -174,11 +177,11 @@ lin
|
||||
send_V3 = mkV3 (regV "schicken") ; -- Ger mkV3 v = Ger: mkV3 v accPrep datPrep
|
||||
sheep_N = reg2N "Schaf" "Schafe" neuter ;
|
||||
ship_N = reg2N "Schiff" "Schiffe" neuter ;
|
||||
shirt_N = reg2N "Hemd" "Hemden" neuter ; ---- infl
|
||||
shirt_N = mkN "Hemd" "Hemd" "Hemd" "Hemds" "Hemden" "Hemden" neuter ;
|
||||
shoe_N = mkN "Schuh" ;
|
||||
shop_N = reg2N "Laden" "Läden" masculine ;
|
||||
short_A = mk3A "kurz" "kürzer" "kürzeste" ;
|
||||
silver_N = reg2N "Silber" "Silber" neuter ; ---- infl
|
||||
silver_N = reg2N "Silber" "Silber" neuter ; ---- sg t
|
||||
sister_N = reg2N "Schwester" "Schwestern" feminine ;
|
||||
sleep_V = Irreg.schlafen_V ;
|
||||
small_A = regA "klein" ;
|
||||
@@ -200,7 +203,7 @@ lin
|
||||
talk_V3 = mkV3 (regV "reden") (mkPrep "mit" dative) (mkPrep "über" accusative) ; -- 6/2019
|
||||
teacher_N = reg2N "Lehrer" "Lehrer" masculine ;
|
||||
teach_V2 = dirV2 (no_geV (regV "unterrichten")) ;
|
||||
television_N = reg2N "Fernsehen" "Fernsehen" neuter;
|
||||
television_N = reg2N "Fernsehen" "Fernsehen" neuter; ---- sg t
|
||||
thick_A = regA "dick" ;
|
||||
thin_A = regA "dünn" ;
|
||||
train_N = reg2N "Zug" "Züge" masculine ;
|
||||
@@ -251,7 +254,7 @@ lin
|
||||
back_N = reg2N "Rücken" "Rücken" masculine ;
|
||||
bark_N = mkN "Rinde" ;
|
||||
belly_N = reg2N "Bauch" "Bäuche" masculine ;
|
||||
blood_N = mkN "Blut" "Blute" neuter ;
|
||||
blood_N = mkN "Blut" "Blute" neuter ; ---- sg t
|
||||
bone_N = reg2N "Knochen" "Knochen" masculine ;
|
||||
breast_N = reg2N "Brust" "Brüste" feminine ;
|
||||
cloud_N = mkN "Wolke" ;
|
||||
@@ -261,7 +264,7 @@ lin
|
||||
earth_N = mkN "Erde" ;
|
||||
egg_N = mkN "Ei" "Eier" neuter ;
|
||||
eye_N = mkN "Auge" "Augen" neuter;
|
||||
fat_N = mkN "Fett" "Fetter" neuter ;
|
||||
fat_N = mkN "Fett" "Fette" neuter ;
|
||||
feather_N = mkN "Feder" "Federn" feminine ;
|
||||
fingernail_N = reg2N "Fingernagel" "Fingernägel" masculine ;
|
||||
fire_N = mkN "Feuer" "Feuer" neuter ;
|
||||
@@ -270,7 +273,7 @@ lin
|
||||
foot_N = reg2N "Fuß" "Füße" masculine ;
|
||||
forest_N = reg2N "Wald" "Wälder" masculine ;
|
||||
grass_N = mkN "Gras" "Gräser" neuter ;
|
||||
guts_N = mkN "Eingeweide" ;
|
||||
guts_N = mkN "Eingeweide" "Eingeweide" neuter ; ---- pl t ?
|
||||
hair_N = mkN "Haar" "Haare" neuter ;
|
||||
hand_N = mkN "Hand" "Hände" feminine ;
|
||||
head_N = mkN "Kopf" "Köpfe" masculine ;
|
||||
@@ -295,11 +298,11 @@ lin
|
||||
rope_N = mkN "Seil" "Seile" neuter ;
|
||||
salt_N = mkN "Salz" "Salze" neuter ;
|
||||
sand_N = mkN "Sand" ;
|
||||
seed_N = mkN "Same" ;
|
||||
seed_N = mkN "Same" "Samen" masculine ;
|
||||
skin_N = mkN "Haut" "Häute" feminine ;
|
||||
sky_N = mkN "Himmel" ;
|
||||
smoke_N = mkN "Rauch" ;
|
||||
snow_N = mkN "Schnee" "Schneen" masculine ; ---- pl
|
||||
snow_N = mkN "Schnee" "Schneen" masculine ; ---- sg t
|
||||
stick_N = mkN "Stock" "Stöcke" masculine ;
|
||||
tail_N = mkN "Schwanz" "Schwänze" masculine ;
|
||||
tongue_N = mkN "Zunge" ;
|
||||
|
||||
@@ -8,7 +8,7 @@ oper
|
||||
mkSubj : Str -> Subj = \x ->
|
||||
{s = x ; lock_Subj = <>} ;
|
||||
mkIQuant : Str -> IQuant = \s ->
|
||||
{s = \\_,_ => s ; lock_IQuant = <>} ;
|
||||
{s = \\_,_ => s ; a = Strong ; lock_IQuant = <>} ;
|
||||
|
||||
mkPredet = overload {
|
||||
mkPredet : A -> Predet = \a ->
|
||||
|
||||
@@ -77,6 +77,18 @@ oper
|
||||
_ => Predef.tk 2 v
|
||||
} ;
|
||||
|
||||
stemVerbImpSg : Str -> Str -> Str = \inf,pres3Sg ->
|
||||
let stem = stemVerb inf ; -- vergeb.en, piss.en
|
||||
stemI = init pres3Sg -- vergib.t , piß.t
|
||||
in case <stem,stemI> of {
|
||||
<_ + ("e"|"i") + #nonvowels,
|
||||
_ + ("i"|"ie") + #nonvowels> => stemI ; -- vergib , piß
|
||||
_ => stem } ; -- HL 7/17 (always the final vowel?)
|
||||
|
||||
nonvowels : pattern Str =
|
||||
#(("p"|"b"|"f"|"t"|"d"|"v"|"k"|"g"|"c"|"h"|"j"
|
||||
|"l"|"r"|"m"|"n"|"s"|"x"|"q"|"z"|"s"|"ß")*) ;
|
||||
|
||||
-- For $Numeral$.
|
||||
|
||||
LinDigit = {s : DForm => CardOrd => Str} ;
|
||||
|
||||
@@ -37,7 +37,7 @@ lin FullName gn sn = {
|
||||
|
||||
-- UseLN : LN -> NP ;
|
||||
lin UseLN ln = {
|
||||
s = \\b,c => case ln.hasArt of {
|
||||
s = \\b,c => case ln.hasDefArt of {
|
||||
True => case b of {
|
||||
True => [] ; -- defart dropped
|
||||
False => artDef ! (gennum ln.g ln.n) ! c
|
||||
@@ -61,7 +61,7 @@ lin PlainLN ln = {
|
||||
-- InLN : LN -> Adv ;
|
||||
lin InLN ln = {
|
||||
s = appPrepNP P.inDat_Prep {
|
||||
s = \\b,c => case ln.hasArt of {
|
||||
s = \\b,c => case ln.hasDefArt of {
|
||||
True => case b of {
|
||||
True => [] ; -- defart dropped
|
||||
False => artDef ! (gennum ln.g ln.n) ! c
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
--# -path=.:../common:../abstract:../../prelude
|
||||
--# -path=.:../common:../abstract:../prelude:
|
||||
|
||||
--1 German Lexical Paradigms
|
||||
--
|
||||
@@ -174,15 +174,15 @@ mkN : overload {
|
||||
mkLN : (nom,acc,dat,gen : Str) -> Gender -> LN = \nom,acc,dat,gen,g ->
|
||||
lin LN {s = \\a => table {Nom => nom ; Acc => acc ; Dat => dat ; Gen => gen} ;
|
||||
g = g ; n = Sg ;
|
||||
hasArt = False}
|
||||
hasDefArt = False}
|
||||
|
||||
} ;
|
||||
|
||||
defLN : LN -> LN = \n -> n ** {hasArt = True} ;
|
||||
defLN : LN -> LN = \n -> n ** {hasDefArt = True} ;
|
||||
|
||||
mk2LN : (karolus, karoli : Str) -> Gender -> LN = \karolus, karoli, g ->
|
||||
lin LN {s = \\a => table {Gen => karoli ; _ => karolus} ; g = g ; n = Sg ;
|
||||
hasArt = False} ;
|
||||
hasDefArt = False} ;
|
||||
regLN : (horst : Str) -> Gender -> LN = \horst, g ->
|
||||
mk2LN horst (ifTok Tok (Predef.dp 1 horst) "s" horst (horst + "s")) g ;
|
||||
|
||||
@@ -224,7 +224,7 @@ mkN : overload {
|
||||
-- Adverbs are formed from strings.
|
||||
|
||||
mkAdv : Str -> Adv ; -- adverbs have just one form anyway
|
||||
|
||||
mkIAdv : Str -> IAdv ;
|
||||
|
||||
--2 Prepositions
|
||||
|
||||
@@ -576,6 +576,7 @@ mkV2 : overload {
|
||||
mkA2 = \a,p -> a ** {c2 = p ; lock_A2 = <>} ;
|
||||
|
||||
mkAdv s = {s = s ; lock_Adv = <>} ;
|
||||
mkIAdv s = {s = s ; lock_IAdv = <>} ;
|
||||
|
||||
mkPrep = overload {
|
||||
mkPrep : Str -> Case -> Prep = \s,c ->
|
||||
@@ -633,7 +634,7 @@ mkV2 : overload {
|
||||
|
||||
irregV singen singt sang saenge gesungen =
|
||||
let
|
||||
sing = stemVerb singen ;
|
||||
sing = stemVerbImpSg singen singt -- geben gibt => gib, HL 7/17
|
||||
in
|
||||
mk6V singen singt sing sang saenge gesungen ;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
concrete QuestionGer of Question = CatGer ** open ResGer in {
|
||||
concrete QuestionGer of Question = CatGer ** open ResGer, Prelude in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
|
||||
@@ -17,7 +17,7 @@ concrete QuestionGer of Question = CatGer ** open ResGer in {
|
||||
s = \\m,t,a,p =>
|
||||
let
|
||||
who = appPrep vp.c1 ip.s ;
|
||||
cl = (mkClause who (agrP3 ip.n) vp).s ! m ! t ! a ! p
|
||||
cl = (mkClause who (agrGenNum ip.a) vp).s ! m ! t ! a ! p
|
||||
in table {
|
||||
QDir => cl ! Main ;
|
||||
QIndir => cl ! Sub
|
||||
@@ -36,8 +36,8 @@ concrete QuestionGer of Question = CatGer ** open ResGer in {
|
||||
} ;
|
||||
|
||||
QuestIAdv iadv cl = {
|
||||
s = \\m,t,a,p =>
|
||||
let
|
||||
s = \\m,t,a,p =>
|
||||
let
|
||||
cls = cl.s ! m ! t ! a ! p ;
|
||||
why = iadv.s
|
||||
in table {
|
||||
@@ -47,8 +47,8 @@ concrete QuestionGer of Question = CatGer ** open ResGer in {
|
||||
} ;
|
||||
|
||||
QuestIComp icomp np = {
|
||||
s = \\m,t,a,p =>
|
||||
let
|
||||
s = \\m,t,a,p =>
|
||||
let
|
||||
vp = predV sein_V ** {ext = icomp.ext};
|
||||
subj = mkSubject np vp.c1 ;
|
||||
cls = (mkClause subj.s subj.a vp).s ! m ! t ! a ! p ;
|
||||
@@ -60,12 +60,13 @@ concrete QuestionGer of Question = CatGer ** open ResGer in {
|
||||
} ;
|
||||
|
||||
PrepIP p ip = {
|
||||
s = appPrep p ip.s ;
|
||||
s = appPrep p ip.s -- todo: mit was => womit ; an was => woran etc.
|
||||
} ;
|
||||
|
||||
AdvIP ip adv = {
|
||||
s = \\c => ip.s ! c ++ adv.s ;
|
||||
n = ip.n
|
||||
a = ip.a ;
|
||||
isPron = False
|
||||
} ;
|
||||
|
||||
IdetCN idet cn =
|
||||
@@ -73,8 +74,9 @@ concrete QuestionGer of Question = CatGer ** open ResGer in {
|
||||
g = cn.g ;
|
||||
n = idet.n
|
||||
in {
|
||||
s = \\c => idet.s ! g ! c ++ cn.s ! Weak ! n ! c ;
|
||||
n = n
|
||||
s = \\c => idet.s ! g ! c ++ cn.s ! idet.a ! n ! c ++ cn.adv ++ cn.rc ! n ++ cn.ext ;
|
||||
a = case n of {Sg => GSg g ; _ => GPl} ;
|
||||
isPron = False
|
||||
} ;
|
||||
|
||||
IdetIP idet =
|
||||
@@ -82,16 +84,19 @@ concrete QuestionGer of Question = CatGer ** open ResGer in {
|
||||
g = Neutr ; ----
|
||||
n = idet.n
|
||||
in {
|
||||
s = idet.s ! g ;
|
||||
n = n
|
||||
s = idet.s ! g ;
|
||||
a = case n of {Sg => GSg g ; _ => GPl} ;
|
||||
isPron = False ;
|
||||
} ;
|
||||
|
||||
IdetQuant idet num =
|
||||
IdetQuant iquant num =
|
||||
let
|
||||
n = num.n
|
||||
n = num.n ;
|
||||
a = iquant.a
|
||||
in {
|
||||
s = \\g,c => idet.s ! (gennum g n) ! c ++ num.s ! AMod (gennum g n) c ;
|
||||
n = n
|
||||
s = \\g,c => let gn = gennum g n in iquant.s ! gn ! c ++ num.s ! agrAdj a gn c ;
|
||||
n = n ;
|
||||
a = a
|
||||
} ;
|
||||
|
||||
AdvIAdv i a = {s = i.s ++ a.s} ;
|
||||
|
||||
@@ -181,6 +181,9 @@ resource ResGer = ParamX ** open Prelude in {
|
||||
genGenNum : GenNum -> Gender = \gn ->
|
||||
case gn of {GSg g => g ; GPl => Masc} ;
|
||||
|
||||
agrGenNum : GenNum -> Agr = \gn ->
|
||||
case gn of {GSg g => AgSgP3 g ; _ => AgPl P3} ;
|
||||
|
||||
-- Used in $NounGer$.
|
||||
|
||||
agrAdj : Adjf -> GenNum -> Case -> AForm = \a,gn,c ->
|
||||
|
||||
@@ -50,7 +50,7 @@ concrete StructuralGer of Structural = CatGer **
|
||||
here_Adv = ss "hier" ;
|
||||
how_IAdv = ss "wie" ;
|
||||
how8much_IAdv = ss "wieviel" ;
|
||||
how8many_IDet = {s = \\g,c => "wie viel" + detEnding ! (gennum g Pl) ! c ; n = Pl} ;
|
||||
how8many_IDet = {s = \\g,c => "wie viel" + detEnding ! (gennum g Pl) ! c ; n = Pl ; a = Strong} ;
|
||||
if_Subj = ss "wenn" ; --- no variants in the RGL! | ss "falls" ;
|
||||
in8front_Prep = mkPrep "vor" P.dative ;
|
||||
i_Pron = mkPronPers "ich" "mich" "mir" "meiner" "mein" Masc Sg P1 ;
|
||||
@@ -74,8 +74,8 @@ concrete StructuralGer of Structural = CatGer **
|
||||
sp = \\_,g,c => "viel" + detEnding ! (gennum g Sg) ! c ; ---- (GSg _ Sg) ! Gen ?
|
||||
n = Sg ; a = Strong ; isDef = False ; hasDefArt = False} ;
|
||||
must_VV = auxVV
|
||||
(mkV
|
||||
"müssen" "muss" "musst" "muss" "müsst" "müss"
|
||||
(mkV -- modal verb, has no imperative forms "müsse,müsst" HL 12/2024
|
||||
"müssen" "muss" "musst" "muss" "müsst" "müsse"
|
||||
"musste" "musstest" "mussten" "musstet"
|
||||
"müsste" "gemusst" []
|
||||
VHaben) ;
|
||||
@@ -123,22 +123,26 @@ concrete StructuralGer of Structural = CatGer **
|
||||
under_Prep = mkPrep "unter" P.dative ;
|
||||
very_AdA = ss "sehr" ;
|
||||
want_VV = auxVV
|
||||
(mkV
|
||||
"wollen" "will" "willst" "will" "wollt" "woll"
|
||||
(mkV -- modal verb, has no imperative forms "wolle,woll(e)t" HL 12/2024
|
||||
"wollen" "will" "willst" "will" "wollt" "wolle"
|
||||
"wollte" "wolltest" "wollten" "wolltet"
|
||||
"wollte" "gewollt" []
|
||||
VHaben) ;
|
||||
we_Pron = mkPronPers "wir" "uns" "uns" "unser" "unser" Fem Pl P1 ;
|
||||
|
||||
whatSg_IP = {s = caselist "was" "was" "was" "wessen" ; n = Sg} ; ----
|
||||
whatPl_IP = {s = caselist "was" "was" "was" "wessen" ; n = Pl} ; -- HL 6/2016
|
||||
whatSg_IP = {s = caselist "was" "was" "was" "wessen" ;
|
||||
a = GSg Neutr ; isPron = True} ; -- todo: mit was => womit
|
||||
whatPl_IP = {s = caselist "was alles" "was alles" "was allem" "wessen allem" ;
|
||||
a = GSg Neutr ; isPron = True} ; -- Duden 563
|
||||
|
||||
when_IAdv = ss "wann" ;
|
||||
when_Subj = ss "wenn" ;
|
||||
where_IAdv = ss "wo" ;
|
||||
which_IQuant = {s = \\gn,c => "welch" + detEnding ! gn ! c} ;
|
||||
whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ;
|
||||
whoPl_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ; -- HL 6/2016
|
||||
which_IQuant = {s = \\gn,c => "welch" + detEnding ! gn ! c ; a = Weak} ;
|
||||
whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ;
|
||||
a = GSg Masc ; isPron = True} ; -- Duden 563
|
||||
whoPl_IP = {s = caselist "wer alles" "wen alles" "wem alles" "wessen alles" ;
|
||||
a = GSg Masc ; isPron = True} ; -- Duden 563
|
||||
why_IAdv = ss "warum" ;
|
||||
without_Prep = mkPrep "ohne" P.accusative ;
|
||||
with_Prep = mkPrep "mit" P.dative ;
|
||||
@@ -153,7 +157,7 @@ concrete StructuralGer of Structural = CatGer **
|
||||
GPl => \\c => "kein" + detEnding ! GPl ! c} ;
|
||||
sp = \\gn,c => "kein" + detEnding ! gn ! c ;
|
||||
a = Mixed ; isDefArt = False ; delCardOne = True} ; -- HL kein+ein(er) => kein(er)
|
||||
if_then_Conj = {s1 = "wenn" ; s2 = "dann" ; n = Sg ; lock_Conj = <>} ;
|
||||
if_then_Conj = {s1 = "wenn" ; s2 = bindComma ++ "dann" ; n = Sg} ;
|
||||
nobody_NP =
|
||||
nameNounPhrase Masc {s = caselist "niemand" "niemanden" "niemandem" "niemands"} ;
|
||||
nothing_NP =
|
||||
@@ -166,7 +170,7 @@ concrete StructuralGer of Structural = CatGer **
|
||||
have_V2 = P.dirV2 IrregGer.haben_V ;
|
||||
that_Subj = ss "dass" ;
|
||||
|
||||
lin language_title_Utt = ss "Deutsch" ;
|
||||
language_title_Utt = ss "Deutsch" ;
|
||||
|
||||
oper
|
||||
asNum : (Gender => Case => Str) -> (Gender => Case => {quant,num:Str}) =
|
||||
|
||||
Reference in New Issue
Block a user