forked from GitHub/gf-rgl
Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
--# -path=.:../german:../common:../abstract:../prelude
|
--# -path=.:../german:../common:../abstract:../prelude
|
||||||
|
|
||||||
resource TryGer = SyntaxGer, ExtraGer, LexiconGer, ParadigmsGer - [mkAdv], MakeStructuralGer ;
|
resource TryGer = SyntaxGer, ExtraGer, LexiconGer, ParadigmsGer - [mkAdv,mkIAdv], MakeStructuralGer ;
|
||||||
|
|||||||
@@ -26,10 +26,11 @@ concrete CatGer of Cat =
|
|||||||
-- Question
|
-- Question
|
||||||
|
|
||||||
QCl = {s : Mood => ResGer.Tense => Anteriority => Polarity => QForm => Str} ;
|
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} ;
|
IComp = {s : Agr => Str ; ext : Str} ;
|
||||||
IDet = {s : Gender => Case => Str ; n : Number} ;
|
IDet = {s : Gender => Case => Str ; n : Number ; a : Adjf} ;
|
||||||
IQuant = {s : GenNum => Case => Str} ;
|
IQuant = {s : GenNum => Case => Str ; a : Adjf} ;
|
||||||
|
|
||||||
-- Relative
|
-- Relative
|
||||||
|
|
||||||
@@ -114,7 +115,7 @@ concrete CatGer of Cat =
|
|||||||
GN = {s : Case => Str; g : Sex} ;
|
GN = {s : Case => Str; g : Sex} ;
|
||||||
SN = {s : Sex => Case => Str} ;
|
SN = {s : Sex => Case => Str} ;
|
||||||
PN = {s : Case => Str; g : Gender; n : Number} ;
|
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
|
-- tense with possibility to choose conjunctive forms
|
||||||
|
|
||||||
|
|||||||
@@ -3,14 +3,14 @@
|
|||||||
concrete ExtendGer of Extend =
|
concrete ExtendGer of Extend =
|
||||||
CatGer ** ExtendFunctor
|
CatGer ** ExtendFunctor
|
||||||
- [ -- remove the default implementations of:
|
- [ -- remove the default implementations of:
|
||||||
GenNP, GenRP, EmptyRelSlash,
|
GenNP, GenRP, EmptyRelSlash, GenIP, GenModIP,
|
||||||
VPS, ListVPS, MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS,
|
VPS, ListVPS, MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS,
|
||||||
VPI, ListVPI, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
VPI, ListVPI, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
||||||
ICompAP, IAdvAdv, CompIQuant, PrepCN,
|
ICompAP, IAdvAdv, CompIQuant, PrepCN,
|
||||||
PastPartAP, PastPartAgentAP,
|
PastPartAP, PastPartAgentAP,
|
||||||
PassVPSlash, PassAgentVPSlash,
|
PassVPSlash, PassAgentVPSlash,
|
||||||
AdvIsNP,
|
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,
|
ReflRNP, ReflPron, ReflPoss, PredetRNP, AdvRNP, ReflA2RNP, PossPronRNP,
|
||||||
CompoundN, DetNPMasc, DetNPFem, UseDAP, UseDAPMasc, UseDAPFem,
|
CompoundN, DetNPMasc, DetNPFem, UseDAP, UseDAPMasc, UseDAPFem,
|
||||||
CardCNCard,
|
CardCNCard,
|
||||||
@@ -37,11 +37,12 @@ concrete ExtendGer of Extend =
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
GenRP nu cn = {
|
GenRP nu cn = {
|
||||||
s = \\gn,c => relPron ! gn ! Gen ++ cn.s ! Weak ! nu.n ! c ;
|
s = \\gn,c => relPron ! gn ! Gen ++ cn.s ! Strong ! nu.n ! c ;
|
||||||
a = RAg nu.n P3
|
a = RAg nu.n P3
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
GenIP ip = {s = \\gn,c => ip.s!Gen ; a = Strong} ;
|
||||||
|
GenModIP num ip cn = IdetCN (IdetQuant (GenIP ip) num) cn ;
|
||||||
|
|
||||||
EmptyRelSlash slash = {
|
EmptyRelSlash slash = {
|
||||||
s = \\m,t,a,p,gn =>
|
s = \\m,t,a,p,gn =>
|
||||||
|
|||||||
@@ -385,6 +385,4 @@ concrete ExtraGer of ExtraGerAbs = CatGer **
|
|||||||
|
|
||||||
-- this function is not entirely satisfactory as largely
|
-- this function is not entirely satisfactory as largely
|
||||||
-- though not entirely duplicating mkClause in ResGer
|
-- though not entirely duplicating mkClause in ResGer
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,13 +96,13 @@ in {
|
|||||||
lin laden_V = irregV "laden" "lädt" "lud" "lüde" "geladen" ;
|
lin laden_V = irregV "laden" "lädt" "lud" "lüde" "geladen" ;
|
||||||
lin lassen_V = irregV "lassen" "lässt" "ließ" "ließe" "gelassen" ;
|
lin lassen_V = irregV "lassen" "lässt" "ließ" "ließe" "gelassen" ;
|
||||||
lin laufen_V = irregV "laufen" "läuft" "lief" "liefe" "gelaufen" ;
|
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 leihen_V = irregV "leihen" "leiht" "lieh" "liehe" "geliehen" ;
|
||||||
lin lesen_V = irregV "lesen" "liest" "las" "läse" "gelesen" ;
|
lin lesen_V = irregV "lesen" "liest" "las" "läse" "gelesen" ;
|
||||||
lin liegen_V = irregV "liegen" "liegt" "lag" "läge" "gelegen" ;
|
lin liegen_V = irregV "liegen" "liegt" "lag" "läge" "gelegen" ;
|
||||||
lin lügen_V = irregV "lügen" "lügt" "log" "löge" "gelogen" ;
|
lin lügen_V = irregV "lügen" "lügt" "log" "löge" "gelogen" ;
|
||||||
lin mahlen_V = irregV "mahlen" "mahlt" "mahlte" "mahlte" "gemahlen" ;
|
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 melken_V = irregV "melken" "milkt" "molk" "mölke" "gemolken" ;
|
||||||
lin messen_V = irregV "messen" "misst" "maß" "mäße" "gemessen" ;
|
lin messen_V = irregV "messen" "misst" "maß" "mäße" "gemessen" ;
|
||||||
lin mißlingen_V = irregV "misslingen" "misslingt" "misslang" "misslungen" "misslänge" ; -- old spelling
|
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 saufen_V = irregV "saufen" "säuft" "soff" "söffe" "gesoffen" ;
|
||||||
lin saugen_V = irregV "saugen" "saugt" "sog" "soge" "gesogen" ;
|
lin saugen_V = irregV "saugen" "saugt" "sog" "soge" "gesogen" ;
|
||||||
lin schaffen_V = irregV "schaffen" "schafft" "schuf" "schüfe" "geschaffen" ;
|
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 scheinen_V = irregV "scheinen" "scheint" "schien" "schiene" "geschienen" ;
|
||||||
lin scheißen_V = irregV "scheißen" "scheißt" "schiss" "schisse" "geschissen" ;
|
lin scheißen_V = irregV "scheißen" "scheißt" "schiss" "schisse" "geschissen" ;
|
||||||
lin schelten_V = irregV "schelten" "schilt" "schalt" "schölte" "gescholten" ;
|
lin schelten_V = irregV "schelten" "schilt" "schalt" "schölte" "gescholten" ;
|
||||||
lin scheren_V = irregV "scheren" "schert" "schor" "schöre" "geschoren" ;
|
lin scheren_V = irregV "scheren" "schert" "schor" "schöre" "geschoren" ;
|
||||||
lin schieben_V = irregV "schieben" "schiebt" "schob" "schöbe" "geschoben" ;
|
lin schieben_V = irregV "schieben" "schiebt" "schob" "schöbe" "geschoben" ;
|
||||||
lin schießen_V = irregV "schießen" "schießt" "schoss" "schösse" "geschossen" ;
|
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 schlafen_V = irregV "schlafen" "schläft" "schlief" "schliefe" "geschlafen" ;
|
||||||
lin schlagen_V = irregV "schlagen" "schlägt" "schlug" "schlüge" "geschlagen" ;
|
lin schlagen_V = irregV "schlagen" "schlägt" "schlug" "schlüge" "geschlagen" ;
|
||||||
lin schleichen_V = irregV "schleichen" "schleicht" "schlich" "schliche" "geschlichen" ;
|
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 schwellen_V = irregV "schwellen" "schwillt" "schwoll" "schwölle" "geschwollen" ;
|
||||||
lin schwimmen_V = irregV "schwimmen" "schwimmt" "schwamm" "schwämme" "geschwommen" ;
|
lin schwimmen_V = irregV "schwimmen" "schwimmt" "schwamm" "schwämme" "geschwommen" ;
|
||||||
lin schwimmen_o_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 schwingen_V = irregV "schwingen" "schwingt" "schwang" "schwänge" "geschwungen" ;
|
||||||
lin schwören_V = irregV "schwören" "schwört" "schwor" "schwüre" "geschworen" ;
|
lin schwören_V = irregV "schwören" "schwört" "schwor" "schwüre" "geschworen" ;
|
||||||
lin sehen_V = irregV "sehen" "sieht" "sah" "sähe" "gesehen" ;
|
lin sehen_V = irregV "sehen" "sieht" "sah" "sähe" "gesehen" ;
|
||||||
@@ -200,7 +200,7 @@ in {
|
|||||||
"tun" "tue" "tust" "tut" "tut" "tue"
|
"tun" "tue" "tust" "tut" "tut" "tue"
|
||||||
"tat" "tatest" "taten" "tatet"
|
"tat" "tatest" "taten" "tatet"
|
||||||
"täte" "getan" [] M.VHaben) ;
|
"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 vergessen_V = irregV "vergessen" "vergisst" "vergaß" "vergäße" "vergessen" ;
|
||||||
lin verlieren_V = irregV "verlieren" "verliert" "verlor" "verlöre" "verloren" ;
|
lin verlieren_V = irregV "verlieren" "verliert" "verlor" "verlöre" "verloren" ;
|
||||||
lin wachsen_V = irregV "wachsen" "wächst" "wuchs" "wüchse" "gewachsen" ;
|
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 weben_V = irregV "weben" "webt" "wob" "wöbe" "gewoben" ;
|
||||||
lin weichen_V = irregV "weichen" "weicht" "wich" "wiche" "gewichen" ;
|
lin weichen_V = irregV "weichen" "weicht" "wich" "wiche" "gewichen" ;
|
||||||
lin weisen_V = irregV "weisen" "weist" "wies" "wiese" "gewiesen" ;
|
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 werben_V = irregV "werben" "wirbt" "warb" "würbe" "geworben" ;
|
||||||
lin werden_V = lin V (M.mkV "werden" "werde" "wirst" "wird" "werdet" "werd"
|
lin werden_V = lin V (M.mkV "werden" "werde" "wirst" "wird" "werdet" "werd"
|
||||||
"wurde" "wurdest" "wurden" "wurdet"
|
"wurde" "wurdest" "wurden" "wurdet"
|
||||||
"würde" "geworden" [] M.VSein) ;
|
"würde" "geworden" [] M.VSein) ;
|
||||||
lin werfen_V = irregV "werfen" "wirft" "warf" "würfe" "geworfen" ;
|
lin werfen_V = irregV "werfen" "wirft" "warf" "würfe" "geworfen" ;
|
||||||
lin wiegen_V = irregV "wiegen" "wiegt" "wog" "wöge" "gewogen" ;
|
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"
|
lin wissen_V = lin V (M.mkV "wissen" "weiß" "weißt" "weiß" "wisst" "wisse"
|
||||||
"wusste" "wusstest" "wussten" "wusstet"
|
"wusste" "wusstest" "wussten" "wusstet"
|
||||||
"wüsste" "gewusst" [] M.VHaben) ;
|
"wüsste" "gewusst" [] M.VHaben) ;
|
||||||
|
|||||||
@@ -2,25 +2,26 @@
|
|||||||
|
|
||||||
-- work by Aarne Ranta, Andreas Priesnitz, and Henning Thielemann.
|
-- work by Aarne Ranta, Andreas Priesnitz, and Henning Thielemann.
|
||||||
-- a few corrections by Hans Leiß, and using the better IrregGer
|
-- a few corrections by Hans Leiß, and using the better IrregGer
|
||||||
|
-- sg/pl t = singulare/plurale tantum
|
||||||
|
|
||||||
concrete LexiconGer of Lexicon = CatGer **
|
concrete LexiconGer of Lexicon = CatGer **
|
||||||
open Prelude, ParadigmsGer, (Mo = MorphoGer), (Irreg = IrregGer) in {
|
open Prelude, ParadigmsGer, (Mo = MorphoGer), (Irreg = IrregGer) in {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
coding=utf8 ;
|
coding=utf8 ;
|
||||||
optimize=all_subs ;
|
optimize=all_subs ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
add_V3 = dirV3 (prefixV "hinzu" (regV "fügen")) zu_Prep ;
|
add_V3 = dirV3 (prefixV "hinzu" (regV "fügen")) zu_Prep ;
|
||||||
airplane_N = mkN "Flugzeug" "Flugzeuge" neuter ;
|
airplane_N = mkN "Flugzeug" "Flugzeuge" neuter ;
|
||||||
alas_Interj = {s = "ach"} ;
|
alas_Interj = ss "leider" ; -- {s = "ach"} ;
|
||||||
already_Adv = mkAdv "schon" ;
|
already_Adv = mkAdv "schon" ;
|
||||||
answer_V2S = mkV2S (regV "antworten") datPrep ;
|
answer_V2S = mkV2S (regV "antworten") datPrep ;
|
||||||
apartment_N = mkN "Wohnung" ;
|
apartment_N = mkN "Wohnung" ;
|
||||||
apple_N = reg2N "Apfel" "Äpfel" masculine ;
|
apple_N = reg2N "Apfel" "Äpfel" masculine ;
|
||||||
art_N = reg2N "Kunst" "Künste" feminine ;
|
art_N = reg2N "Kunst" "Künste" feminine ;
|
||||||
ask_V2Q = mkV2Q (regV "fragen") accPrep ;
|
ask_V2Q = mkV2Q (regV "fragen") accPrep ;
|
||||||
baby_N = reg2N "Baby" "Babies" neuter ; ----
|
baby_N = reg2N "Baby" "Babies" neuter ; ---- "Kleinkind"
|
||||||
bad_A = regA "schlecht" ;
|
bad_A = regA "schlecht" ;
|
||||||
bank_N = reg2N "Bank" "Banken" feminine ;
|
bank_N = reg2N "Bank" "Banken" feminine ;
|
||||||
beautiful_A = regA "schön" ;
|
beautiful_A = regA "schön" ;
|
||||||
@@ -35,21 +36,21 @@ lin
|
|||||||
boat_N = reg2N "Boot" "Boote" neuter ;
|
boat_N = reg2N "Boot" "Boote" neuter ;
|
||||||
book_N = reg2N "Buch" "Bücher" neuter ;
|
book_N = reg2N "Buch" "Bücher" neuter ;
|
||||||
boot_N = reg2N "Stiefel" "Stiefel" masculine ;
|
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 ;
|
boy_N = reg2N "Junge" "Jungen" masculine ;
|
||||||
bread_N = reg2N "Brot" "Brote" neuter ;
|
bread_N = reg2N "Brot" "Brote" neuter ;
|
||||||
break_V2 = dirV2 (fixprefixV "zer" Irreg.schlagen_V) ;
|
break_V2 = dirV2 (fixprefixV "zer" Irreg.schlagen_V) ;
|
||||||
broad_A = regA "breit" ;
|
broad_A = regA "breit" ;
|
||||||
brother_N2 = mkN2 (reg2N "Bruder" "Brüder" masculine) von_Prep ;
|
brother_N2 = mkN2 (reg2N "Bruder" "Brüder" masculine) von_Prep ;
|
||||||
brown_A = regA "braun" ;
|
brown_A = regA "braun" ;
|
||||||
butter_N = reg2N "Butter" "Butter" feminine ; ---- infl
|
butter_N = reg2N "Butter" "Butter" feminine ; ---- sg t
|
||||||
buy_V2 = dirV2 (regV "kaufen") ;
|
buy_V2 = dirV2 (regV "kaufen") ;
|
||||||
camera_N = reg2N "Kamera" "Kameras" feminine ;
|
camera_N = reg2N "Kamera" "Kameras" feminine ;
|
||||||
cap_N = mkN "Mütze" ;
|
cap_N = mkN "Mütze" ;
|
||||||
car_N = mkN "Auto" "Autos" neuter | mkN "Wagen" "Wagen" masculine ;
|
car_N = mkN "Auto" "Autos" neuter | mkN "Wagen" "Wagen" masculine ;
|
||||||
carpet_N = mkN "Teppich" ;
|
carpet_N = mkN "Teppich" ;
|
||||||
cat_N = mkN "Katze" ;
|
cat_N = mkN "Katze" ;
|
||||||
ceiling_N = reg2N "Dach" "Dächer" neuter ;
|
ceiling_N = mkN "Zimmerdecke" ;
|
||||||
chair_N = reg2N "Stuhl" "Stühle" masculine ;
|
chair_N = reg2N "Stuhl" "Stühle" masculine ;
|
||||||
cheese_N = mkN "Käse" "Käse" masculine ;
|
cheese_N = mkN "Käse" "Käse" masculine ;
|
||||||
child_N = reg2N "Kind" "Kinder" neuter ;
|
child_N = reg2N "Kind" "Kinder" neuter ;
|
||||||
@@ -58,12 +59,12 @@ lin
|
|||||||
clean_A = regA "rein" ;
|
clean_A = regA "rein" ;
|
||||||
clever_A = mk3A "klug" "klüger" "klügste" ;
|
clever_A = mk3A "klug" "klüger" "klügste" ;
|
||||||
close_V2 = dirV2 Irreg.schließen_V ;
|
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" ;
|
cold_A = mk3A "kalt" "kälter" "kälteste" ;
|
||||||
come_V = seinV (mk6V "kommen" "kommt" "komm" "kam" "käme" "gekommen") ;
|
come_V = seinV (mk6V "kommen" "kommt" "komm" "kam" "käme" "gekommen") ;
|
||||||
computer_N = reg2N "Rechner" "Rechner" masculine ;
|
computer_N = reg2N "Rechner" "Rechner" masculine ;
|
||||||
country_N = reg2N "Land" "Länder" neuter ;
|
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 ;
|
cow_N = reg2N "Kuh" "Kühe" feminine ;
|
||||||
die_V = seinV Irreg.sterben_V | seinV (prefixV "um" Irreg.kommen_V);
|
die_V = seinV Irreg.sterben_V | seinV (prefixV "um" Irreg.kommen_V);
|
||||||
distance_N3 = mkN3 (mkN "Entfernung") von_Prep zu_Prep ;
|
distance_N3 = mkN3 (mkN "Entfernung") von_Prep zu_Prep ;
|
||||||
@@ -91,7 +92,7 @@ lin
|
|||||||
garden_N = reg2N "Garten" "Gärten" masculine ;
|
garden_N = reg2N "Garten" "Gärten" masculine ;
|
||||||
girl_N = reg2N "Mädchen" "Mädchen" neuter ;
|
girl_N = reg2N "Mädchen" "Mädchen" neuter ;
|
||||||
glove_N = mkN "Handschuh" ;
|
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" ;
|
good_A = mk3A "gut" "besser" "beste" ;
|
||||||
go_V = seinV Irreg.gehen_V ;
|
go_V = seinV Irreg.gehen_V ;
|
||||||
green_A = regA "grün" ;
|
green_A = regA "grün" ;
|
||||||
@@ -112,7 +113,7 @@ lin
|
|||||||
know_V2 = dirV2 Irreg.kennen_V ;
|
know_V2 = dirV2 Irreg.kennen_V ;
|
||||||
know_VQ = mkVQ Irreg.wissen_V ;
|
know_VQ = mkVQ Irreg.wissen_V ;
|
||||||
know_VS = mkVS 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";
|
lamp_N = mkN "Lampe";
|
||||||
learn_V2 = dirV2 (regV "lernen") ;
|
learn_V2 = dirV2 (regV "lernen") ;
|
||||||
leather_N = reg2N "Leder" "Leder" neuter ;
|
leather_N = reg2N "Leder" "Leder" neuter ;
|
||||||
@@ -126,8 +127,8 @@ lin
|
|||||||
love_V2 = dirV2 (regV "lieben") ;
|
love_V2 = dirV2 (regV "lieben") ;
|
||||||
man_N = reg2N "Mann" "Männer" masculine ;
|
man_N = reg2N "Mann" "Männer" masculine ;
|
||||||
married_A2 = mkA2 (regA "verheiratet") (mkPrep "mit" dative) ;
|
married_A2 = mkA2 (regA "verheiratet") (mkPrep "mit" dative) ;
|
||||||
meat_N = reg2N "Fleisch" "Fleische" neuter ; ---- infl
|
meat_N = reg2N "Fleisch" "Fleische" neuter ; ---- sg t
|
||||||
milk_N = reg2N "Milch" "Milche" feminine ; ---- infl
|
milk_N = reg2N "Milch" "Milche" feminine ; ---- sg t
|
||||||
moon_N = mkN "Mond" ;
|
moon_N = mkN "Mond" ;
|
||||||
mother_N2 = mkN2 (reg2N "Mutter" "Mütter" feminine) von_Prep ;
|
mother_N2 = mkN2 (reg2N "Mutter" "Mütter" feminine) von_Prep ;
|
||||||
mountain_N = mkN "Berg" ;
|
mountain_N = mkN "Berg" ;
|
||||||
@@ -144,9 +145,10 @@ lin
|
|||||||
paper_N = reg2N "Papier" "Papiere" neuter ;
|
paper_N = reg2N "Papier" "Papiere" neuter ;
|
||||||
paris_PN = mkPN "Paris" neuter ;
|
paris_PN = mkPN "Paris" neuter ;
|
||||||
peace_N = mk6N "Friede" "Frieden" "Frieden" "Friedens" "Frieden" "Frieden" masculine ;
|
peace_N = mk6N "Friede" "Frieden" "Frieden" "Friedens" "Frieden" "Frieden" masculine ;
|
||||||
pen_N = mkN "Bleistift" ; ----
|
pen_N = mkN "Bleistift" ;
|
||||||
planet_N = reg2N "Planet" "Planeten" masculine ;
|
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") ;
|
play_V2 = dirV2 (regV "spielen") ;
|
||||||
policeman_N = reg2N "Polizist" "Polizisten" masculine ;
|
policeman_N = reg2N "Polizist" "Polizisten" masculine ;
|
||||||
priest_N = mkN "Priester" ;
|
priest_N = mkN "Priester" ;
|
||||||
@@ -160,7 +162,8 @@ lin
|
|||||||
religion_N = mkN "Religion" ;
|
religion_N = mkN "Religion" ;
|
||||||
restaurant_N = reg2N "Restaurant" "Restaurants" neuter ;
|
restaurant_N = reg2N "Restaurant" "Restaurants" neuter ;
|
||||||
river_N = reg2N "Fluß" "Flüsse" masculine ;
|
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 ;
|
roof_N = reg2N "Dach" "Dächer" neuter ;
|
||||||
rubber_N = reg2N "Gummi" "Gummis" neuter ;
|
rubber_N = reg2N "Gummi" "Gummis" neuter ;
|
||||||
run_V = seinV Irreg.laufen_V ;
|
run_V = seinV Irreg.laufen_V ;
|
||||||
@@ -174,11 +177,11 @@ lin
|
|||||||
send_V3 = mkV3 (regV "schicken") ; -- Ger mkV3 v = Ger: mkV3 v accPrep datPrep
|
send_V3 = mkV3 (regV "schicken") ; -- Ger mkV3 v = Ger: mkV3 v accPrep datPrep
|
||||||
sheep_N = reg2N "Schaf" "Schafe" neuter ;
|
sheep_N = reg2N "Schaf" "Schafe" neuter ;
|
||||||
ship_N = reg2N "Schiff" "Schiffe" 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" ;
|
shoe_N = mkN "Schuh" ;
|
||||||
shop_N = reg2N "Laden" "Läden" masculine ;
|
shop_N = reg2N "Laden" "Läden" masculine ;
|
||||||
short_A = mk3A "kurz" "kürzer" "kürzeste" ;
|
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 ;
|
sister_N = reg2N "Schwester" "Schwestern" feminine ;
|
||||||
sleep_V = Irreg.schlafen_V ;
|
sleep_V = Irreg.schlafen_V ;
|
||||||
small_A = regA "klein" ;
|
small_A = regA "klein" ;
|
||||||
@@ -200,7 +203,7 @@ lin
|
|||||||
talk_V3 = mkV3 (regV "reden") (mkPrep "mit" dative) (mkPrep "über" accusative) ; -- 6/2019
|
talk_V3 = mkV3 (regV "reden") (mkPrep "mit" dative) (mkPrep "über" accusative) ; -- 6/2019
|
||||||
teacher_N = reg2N "Lehrer" "Lehrer" masculine ;
|
teacher_N = reg2N "Lehrer" "Lehrer" masculine ;
|
||||||
teach_V2 = dirV2 (no_geV (regV "unterrichten")) ;
|
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" ;
|
thick_A = regA "dick" ;
|
||||||
thin_A = regA "dünn" ;
|
thin_A = regA "dünn" ;
|
||||||
train_N = reg2N "Zug" "Züge" masculine ;
|
train_N = reg2N "Zug" "Züge" masculine ;
|
||||||
@@ -251,7 +254,7 @@ lin
|
|||||||
back_N = reg2N "Rücken" "Rücken" masculine ;
|
back_N = reg2N "Rücken" "Rücken" masculine ;
|
||||||
bark_N = mkN "Rinde" ;
|
bark_N = mkN "Rinde" ;
|
||||||
belly_N = reg2N "Bauch" "Bäuche" masculine ;
|
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 ;
|
bone_N = reg2N "Knochen" "Knochen" masculine ;
|
||||||
breast_N = reg2N "Brust" "Brüste" feminine ;
|
breast_N = reg2N "Brust" "Brüste" feminine ;
|
||||||
cloud_N = mkN "Wolke" ;
|
cloud_N = mkN "Wolke" ;
|
||||||
@@ -261,7 +264,7 @@ lin
|
|||||||
earth_N = mkN "Erde" ;
|
earth_N = mkN "Erde" ;
|
||||||
egg_N = mkN "Ei" "Eier" neuter ;
|
egg_N = mkN "Ei" "Eier" neuter ;
|
||||||
eye_N = mkN "Auge" "Augen" 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 ;
|
feather_N = mkN "Feder" "Federn" feminine ;
|
||||||
fingernail_N = reg2N "Fingernagel" "Fingernägel" masculine ;
|
fingernail_N = reg2N "Fingernagel" "Fingernägel" masculine ;
|
||||||
fire_N = mkN "Feuer" "Feuer" neuter ;
|
fire_N = mkN "Feuer" "Feuer" neuter ;
|
||||||
@@ -270,7 +273,7 @@ lin
|
|||||||
foot_N = reg2N "Fuß" "Füße" masculine ;
|
foot_N = reg2N "Fuß" "Füße" masculine ;
|
||||||
forest_N = reg2N "Wald" "Wälder" masculine ;
|
forest_N = reg2N "Wald" "Wälder" masculine ;
|
||||||
grass_N = mkN "Gras" "Gräser" neuter ;
|
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 ;
|
hair_N = mkN "Haar" "Haare" neuter ;
|
||||||
hand_N = mkN "Hand" "Hände" feminine ;
|
hand_N = mkN "Hand" "Hände" feminine ;
|
||||||
head_N = mkN "Kopf" "Köpfe" masculine ;
|
head_N = mkN "Kopf" "Köpfe" masculine ;
|
||||||
@@ -295,11 +298,11 @@ lin
|
|||||||
rope_N = mkN "Seil" "Seile" neuter ;
|
rope_N = mkN "Seil" "Seile" neuter ;
|
||||||
salt_N = mkN "Salz" "Salze" neuter ;
|
salt_N = mkN "Salz" "Salze" neuter ;
|
||||||
sand_N = mkN "Sand" ;
|
sand_N = mkN "Sand" ;
|
||||||
seed_N = mkN "Same" ;
|
seed_N = mkN "Same" "Samen" masculine ;
|
||||||
skin_N = mkN "Haut" "Häute" feminine ;
|
skin_N = mkN "Haut" "Häute" feminine ;
|
||||||
sky_N = mkN "Himmel" ;
|
sky_N = mkN "Himmel" ;
|
||||||
smoke_N = mkN "Rauch" ;
|
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 ;
|
stick_N = mkN "Stock" "Stöcke" masculine ;
|
||||||
tail_N = mkN "Schwanz" "Schwänze" masculine ;
|
tail_N = mkN "Schwanz" "Schwänze" masculine ;
|
||||||
tongue_N = mkN "Zunge" ;
|
tongue_N = mkN "Zunge" ;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ oper
|
|||||||
mkSubj : Str -> Subj = \x ->
|
mkSubj : Str -> Subj = \x ->
|
||||||
{s = x ; lock_Subj = <>} ;
|
{s = x ; lock_Subj = <>} ;
|
||||||
mkIQuant : Str -> IQuant = \s ->
|
mkIQuant : Str -> IQuant = \s ->
|
||||||
{s = \\_,_ => s ; lock_IQuant = <>} ;
|
{s = \\_,_ => s ; a = Strong ; lock_IQuant = <>} ;
|
||||||
|
|
||||||
mkPredet = overload {
|
mkPredet = overload {
|
||||||
mkPredet : A -> Predet = \a ->
|
mkPredet : A -> Predet = \a ->
|
||||||
|
|||||||
@@ -77,6 +77,18 @@ oper
|
|||||||
_ => Predef.tk 2 v
|
_ => 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$.
|
-- For $Numeral$.
|
||||||
|
|
||||||
LinDigit = {s : DForm => CardOrd => Str} ;
|
LinDigit = {s : DForm => CardOrd => Str} ;
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ lin FullName gn sn = {
|
|||||||
|
|
||||||
-- UseLN : LN -> NP ;
|
-- UseLN : LN -> NP ;
|
||||||
lin UseLN ln = {
|
lin UseLN ln = {
|
||||||
s = \\b,c => case ln.hasArt of {
|
s = \\b,c => case ln.hasDefArt of {
|
||||||
True => case b of {
|
True => case b of {
|
||||||
True => [] ; -- defart dropped
|
True => [] ; -- defart dropped
|
||||||
False => artDef ! (gennum ln.g ln.n) ! c
|
False => artDef ! (gennum ln.g ln.n) ! c
|
||||||
@@ -61,7 +61,7 @@ lin PlainLN ln = {
|
|||||||
-- InLN : LN -> Adv ;
|
-- InLN : LN -> Adv ;
|
||||||
lin InLN ln = {
|
lin InLN ln = {
|
||||||
s = appPrepNP P.inDat_Prep {
|
s = appPrepNP P.inDat_Prep {
|
||||||
s = \\b,c => case ln.hasArt of {
|
s = \\b,c => case ln.hasDefArt of {
|
||||||
True => case b of {
|
True => case b of {
|
||||||
True => [] ; -- defart dropped
|
True => [] ; -- defart dropped
|
||||||
False => artDef ! (gennum ln.g ln.n) ! c
|
False => artDef ! (gennum ln.g ln.n) ! c
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
--# -path=.:../common:../abstract:../../prelude
|
--# -path=.:../common:../abstract:../prelude:
|
||||||
|
|
||||||
--1 German Lexical Paradigms
|
--1 German Lexical Paradigms
|
||||||
--
|
--
|
||||||
@@ -174,15 +174,15 @@ mkN : overload {
|
|||||||
mkLN : (nom,acc,dat,gen : Str) -> Gender -> LN = \nom,acc,dat,gen,g ->
|
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} ;
|
lin LN {s = \\a => table {Nom => nom ; Acc => acc ; Dat => dat ; Gen => gen} ;
|
||||||
g = g ; n = Sg ;
|
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 ->
|
mk2LN : (karolus, karoli : Str) -> Gender -> LN = \karolus, karoli, g ->
|
||||||
lin LN {s = \\a => table {Gen => karoli ; _ => karolus} ; g = g ; n = Sg ;
|
lin LN {s = \\a => table {Gen => karoli ; _ => karolus} ; g = g ; n = Sg ;
|
||||||
hasArt = False} ;
|
hasDefArt = False} ;
|
||||||
regLN : (horst : Str) -> Gender -> LN = \horst, g ->
|
regLN : (horst : Str) -> Gender -> LN = \horst, g ->
|
||||||
mk2LN horst (ifTok Tok (Predef.dp 1 horst) "s" horst (horst + "s")) 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.
|
-- Adverbs are formed from strings.
|
||||||
|
|
||||||
mkAdv : Str -> Adv ; -- adverbs have just one form anyway
|
mkAdv : Str -> Adv ; -- adverbs have just one form anyway
|
||||||
|
mkIAdv : Str -> IAdv ;
|
||||||
|
|
||||||
--2 Prepositions
|
--2 Prepositions
|
||||||
|
|
||||||
@@ -576,6 +576,7 @@ mkV2 : overload {
|
|||||||
mkA2 = \a,p -> a ** {c2 = p ; lock_A2 = <>} ;
|
mkA2 = \a,p -> a ** {c2 = p ; lock_A2 = <>} ;
|
||||||
|
|
||||||
mkAdv s = {s = s ; lock_Adv = <>} ;
|
mkAdv s = {s = s ; lock_Adv = <>} ;
|
||||||
|
mkIAdv s = {s = s ; lock_IAdv = <>} ;
|
||||||
|
|
||||||
mkPrep = overload {
|
mkPrep = overload {
|
||||||
mkPrep : Str -> Case -> Prep = \s,c ->
|
mkPrep : Str -> Case -> Prep = \s,c ->
|
||||||
@@ -633,7 +634,7 @@ mkV2 : overload {
|
|||||||
|
|
||||||
irregV singen singt sang saenge gesungen =
|
irregV singen singt sang saenge gesungen =
|
||||||
let
|
let
|
||||||
sing = stemVerb singen ;
|
sing = stemVerbImpSg singen singt -- geben gibt => gib, HL 7/17
|
||||||
in
|
in
|
||||||
mk6V singen singt sing sang saenge gesungen ;
|
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 ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ concrete QuestionGer of Question = CatGer ** open ResGer in {
|
|||||||
s = \\m,t,a,p =>
|
s = \\m,t,a,p =>
|
||||||
let
|
let
|
||||||
who = appPrep vp.c1 ip.s ;
|
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 {
|
in table {
|
||||||
QDir => cl ! Main ;
|
QDir => cl ! Main ;
|
||||||
QIndir => cl ! Sub
|
QIndir => cl ! Sub
|
||||||
@@ -60,12 +60,13 @@ concrete QuestionGer of Question = CatGer ** open ResGer in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
PrepIP p ip = {
|
PrepIP p ip = {
|
||||||
s = appPrep p ip.s ;
|
s = appPrep p ip.s -- todo: mit was => womit ; an was => woran etc.
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdvIP ip adv = {
|
AdvIP ip adv = {
|
||||||
s = \\c => ip.s ! c ++ adv.s ;
|
s = \\c => ip.s ! c ++ adv.s ;
|
||||||
n = ip.n
|
a = ip.a ;
|
||||||
|
isPron = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
IdetCN idet cn =
|
IdetCN idet cn =
|
||||||
@@ -73,8 +74,9 @@ concrete QuestionGer of Question = CatGer ** open ResGer in {
|
|||||||
g = cn.g ;
|
g = cn.g ;
|
||||||
n = idet.n
|
n = idet.n
|
||||||
in {
|
in {
|
||||||
s = \\c => idet.s ! g ! c ++ cn.s ! Weak ! n ! c ;
|
s = \\c => idet.s ! g ! c ++ cn.s ! idet.a ! n ! c ++ cn.adv ++ cn.rc ! n ++ cn.ext ;
|
||||||
n = n
|
a = case n of {Sg => GSg g ; _ => GPl} ;
|
||||||
|
isPron = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
IdetIP idet =
|
IdetIP idet =
|
||||||
@@ -82,16 +84,19 @@ concrete QuestionGer of Question = CatGer ** open ResGer in {
|
|||||||
g = Neutr ; ----
|
g = Neutr ; ----
|
||||||
n = idet.n
|
n = idet.n
|
||||||
in {
|
in {
|
||||||
s = idet.s ! g ;
|
s = idet.s ! g ;
|
||||||
n = n
|
a = case n of {Sg => GSg g ; _ => GPl} ;
|
||||||
|
isPron = False ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
IdetQuant idet num =
|
IdetQuant iquant num =
|
||||||
let
|
let
|
||||||
n = num.n
|
n = num.n ;
|
||||||
|
a = iquant.a
|
||||||
in {
|
in {
|
||||||
s = \\g,c => idet.s ! (gennum g n) ! c ++ num.s ! AMod (gennum g n) c ;
|
s = \\g,c => let gn = gennum g n in iquant.s ! gn ! c ++ num.s ! agrAdj a gn c ;
|
||||||
n = n
|
n = n ;
|
||||||
|
a = a
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdvIAdv i a = {s = i.s ++ a.s} ;
|
AdvIAdv i a = {s = i.s ++ a.s} ;
|
||||||
@@ -100,5 +105,36 @@ concrete QuestionGer of Question = CatGer ** open ResGer in {
|
|||||||
|
|
||||||
CompIP ip = {s = \\_ => ip.s ! Nom ; ext = "" } ;
|
CompIP ip = {s = \\_ => ip.s ! Nom ; ext = "" } ;
|
||||||
|
|
||||||
|
-- QVP (added 9/2025, HL)
|
||||||
|
lincat
|
||||||
|
QVP = ResGer.VP ;
|
||||||
|
|
||||||
|
linref
|
||||||
|
QVP = \vp -> useInfVP False vp ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
ComplSlashIP vps ip = -- just as ComplSlash : VPSlash -> NP -> VP
|
||||||
|
let np = lin NP {s = table Bool {_ => ip.s} ;
|
||||||
|
a = agrGenNum ip.a ;
|
||||||
|
w = WLight ; -- guessed
|
||||||
|
rc,ext = []} ;
|
||||||
|
vp = case vps.objCtrl of { True => objAgr np vps ; _ => vps }
|
||||||
|
** { c2 = vps.c2 ; objCtrl = vps.objCtrl } ;
|
||||||
|
in insertObjNP np vps.c2 vp ;
|
||||||
|
|
||||||
|
AdvQVP vp iadv = insertAdv iadv.s vp ;
|
||||||
|
AddAdvQVP qvp iadv = insertAdv iadv.s qvp ;
|
||||||
|
|
||||||
|
QuestQVP ip qvp = { -- just as QuestVP, with qvp as vp
|
||||||
|
s = \\m,t,a,p =>
|
||||||
|
let
|
||||||
|
who = appPrep qvp.c1 ip.s ;
|
||||||
|
cl = (mkClause who (agrGenNum ip.a) qvp).s ! m ! t ! a ! p
|
||||||
|
in table {
|
||||||
|
QDir => cl ! Main ;
|
||||||
|
QIndir => cl ! Sub
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,9 +18,10 @@ concrete RelativeGer of Relative = CatGer ** open ResGer, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
agr = case rp.a of {
|
agr = case rp.a of {
|
||||||
RNoAg => agrP3 (numGenNum gn) ;
|
RNoAg => agrP3 (numGenNum gn) ;
|
||||||
RAg n p => case n of {Sg => AgSgP3 Neutr ; Pl => AgPl p}
|
RAg Sg p => AgSgP3 Neutr ;
|
||||||
} ;
|
RAg Pl p => AgPl p
|
||||||
cl = mkClause (rp.s ! rgn ! Nom) agr vp
|
} ; -- subject may be non-nom, e.g. an dem gezweifelt wird
|
||||||
|
cl = mkClause (appPrep vp.c1 (rp.s ! rgn)) agr vp
|
||||||
in
|
in
|
||||||
cl.s ! m ! t ! ant ! b ! Sub ;
|
cl.s ! m ! t ! ant ! b ! Sub ;
|
||||||
c = Nom
|
c = Nom
|
||||||
|
|||||||
@@ -181,6 +181,9 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
genGenNum : GenNum -> Gender = \gn ->
|
genGenNum : GenNum -> Gender = \gn ->
|
||||||
case gn of {GSg g => g ; GPl => Masc} ;
|
case gn of {GSg g => g ; GPl => Masc} ;
|
||||||
|
|
||||||
|
agrGenNum : GenNum -> Agr = \gn ->
|
||||||
|
case gn of {GSg g => AgSgP3 g ; _ => AgPl P3} ;
|
||||||
|
|
||||||
-- Used in $NounGer$.
|
-- Used in $NounGer$.
|
||||||
|
|
||||||
agrAdj : Adjf -> GenNum -> Case -> AForm = \a,gn,c ->
|
agrAdj : Adjf -> GenNum -> Case -> AForm = \a,gn,c ->
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
here_Adv = ss "hier" ;
|
here_Adv = ss "hier" ;
|
||||||
how_IAdv = ss "wie" ;
|
how_IAdv = ss "wie" ;
|
||||||
how8much_IAdv = ss "wieviel" ;
|
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" ;
|
if_Subj = ss "wenn" ; --- no variants in the RGL! | ss "falls" ;
|
||||||
in8front_Prep = mkPrep "vor" P.dative ;
|
in8front_Prep = mkPrep "vor" P.dative ;
|
||||||
i_Pron = mkPronPers "ich" "mich" "mir" "meiner" "mein" Masc Sg P1 ;
|
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 ?
|
sp = \\_,g,c => "viel" + detEnding ! (gennum g Sg) ! c ; ---- (GSg _ Sg) ! Gen ?
|
||||||
n = Sg ; a = Strong ; isDef = False ; hasDefArt = False} ;
|
n = Sg ; a = Strong ; isDef = False ; hasDefArt = False} ;
|
||||||
must_VV = auxVV
|
must_VV = auxVV
|
||||||
(mkV
|
(mkV -- modal verb, has no imperative forms "müsse,müsst" HL 12/2024
|
||||||
"müssen" "muss" "musst" "muss" "müsst" "müss"
|
"müssen" "muss" "musst" "muss" "müsst" "müsse"
|
||||||
"musste" "musstest" "mussten" "musstet"
|
"musste" "musstest" "mussten" "musstet"
|
||||||
"müsste" "gemusst" []
|
"müsste" "gemusst" []
|
||||||
VHaben) ;
|
VHaben) ;
|
||||||
@@ -123,22 +123,26 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
under_Prep = mkPrep "unter" P.dative ;
|
under_Prep = mkPrep "unter" P.dative ;
|
||||||
very_AdA = ss "sehr" ;
|
very_AdA = ss "sehr" ;
|
||||||
want_VV = auxVV
|
want_VV = auxVV
|
||||||
(mkV
|
(mkV -- modal verb, has no imperative forms "wolle,woll(e)t" HL 12/2024
|
||||||
"wollen" "will" "willst" "will" "wollt" "woll"
|
"wollen" "will" "willst" "will" "wollt" "wolle"
|
||||||
"wollte" "wolltest" "wollten" "wolltet"
|
"wollte" "wolltest" "wollten" "wolltet"
|
||||||
"wollte" "gewollt" []
|
"wollte" "gewollt" []
|
||||||
VHaben) ;
|
VHaben) ;
|
||||||
we_Pron = mkPronPers "wir" "uns" "uns" "unser" "unser" Fem Pl P1 ;
|
we_Pron = mkPronPers "wir" "uns" "uns" "unser" "unser" Fem Pl P1 ;
|
||||||
|
|
||||||
whatSg_IP = {s = caselist "was" "was" "was" "wessen" ; n = Sg} ; ----
|
whatSg_IP = {s = caselist "was" "was" "was" "wessen" ;
|
||||||
whatPl_IP = {s = caselist "was" "was" "was" "wessen" ; n = Pl} ; -- HL 6/2016
|
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_IAdv = ss "wann" ;
|
||||||
when_Subj = ss "wenn" ;
|
when_Subj = ss "wenn" ;
|
||||||
where_IAdv = ss "wo" ;
|
where_IAdv = ss "wo" ;
|
||||||
which_IQuant = {s = \\gn,c => "welch" + detEnding ! gn ! c} ;
|
which_IQuant = {s = \\gn,c => "welch" + detEnding ! gn ! c ; a = Weak} ;
|
||||||
whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ;
|
whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ;
|
||||||
whoPl_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ; -- HL 6/2016
|
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" ;
|
why_IAdv = ss "warum" ;
|
||||||
without_Prep = mkPrep "ohne" P.accusative ;
|
without_Prep = mkPrep "ohne" P.accusative ;
|
||||||
with_Prep = mkPrep "mit" P.dative ;
|
with_Prep = mkPrep "mit" P.dative ;
|
||||||
@@ -153,7 +157,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
GPl => \\c => "kein" + detEnding ! GPl ! c} ;
|
GPl => \\c => "kein" + detEnding ! GPl ! c} ;
|
||||||
sp = \\gn,c => "kein" + detEnding ! gn ! c ;
|
sp = \\gn,c => "kein" + detEnding ! gn ! c ;
|
||||||
a = Mixed ; isDefArt = False ; delCardOne = True} ; -- HL kein+ein(er) => kein(er)
|
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 =
|
nobody_NP =
|
||||||
nameNounPhrase Masc {s = caselist "niemand" "niemanden" "niemandem" "niemands"} ;
|
nameNounPhrase Masc {s = caselist "niemand" "niemanden" "niemandem" "niemands"} ;
|
||||||
nothing_NP =
|
nothing_NP =
|
||||||
@@ -166,7 +170,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
have_V2 = P.dirV2 IrregGer.haben_V ;
|
have_V2 = P.dirV2 IrregGer.haben_V ;
|
||||||
that_Subj = ss "dass" ;
|
that_Subj = ss "dass" ;
|
||||||
|
|
||||||
lin language_title_Utt = ss "Deutsch" ;
|
language_title_Utt = ss "Deutsch" ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
asNum : (Gender => Case => Str) -> (Gender => Case => {quant,num:Str}) =
|
asNum : (Gender => Case => Str) -> (Gender => Case => {quant,num:Str}) =
|
||||||
|
|||||||
Reference in New Issue
Block a user