(Ger) Some lincats changed to remove number in plural; DetQuant and DetQuantOrd reimplemented

This commit is contained in:
Hans Leiss
2023-12-22 22:44:28 +01:00
parent c365d802fe
commit 21db782ef5
17 changed files with 224 additions and 181 deletions
+34 -35
View File
@@ -33,12 +33,14 @@ concrete StructuralGer of Structural = CatGer **
during_Prep = mkPrep "während" P.genitive ; --- no variants in the rgl | P.mkPrep P.accusative "über" ;
either7or_DConj = sd2 "entweder" "oder" ** {n = Sg} ;
everybody_NP = nameNounPhrase Masc {s = caselist "jeder" "jeden" "jedem" "jedes"} ;
every_Det = let tab = (detUnlikeAdj False Sg "jed").s
in {s,sp = asQuant tab ; n = Sg ; a = Weak ; isDef = False ; hasDefArt = False} ;
every_Det = {
s,sp = \\_,g,c => "jed" + detEnding ! (gennum g Sg) ! c ;
n = Sg ; a = Weak ; isDef = False ; hasDefArt = False} ;
everything_NP = nameNounPhrase Neutr {s = caselist "alles" "alles" "allem" "alles"} ;
everywhere_Adv = ss "überall" ;
few_Det = let tab = (detLikeAdj False Pl "wenig").s
in {s,sp = asQuant tab ; n = Pl ; a = Weak ; isDef = False ; hasDefArt = False} ;
few_Det = {
s,sp = \\_,g,c => "wenig" + adjEnding ! (gennum g Pl) ! c ;
n = Pl ; a = Weak ; isDef = False ; hasDefArt = False} ;
---- first_Ord = {s = (regA "erst").s ! Posit} ;
for_Prep = mkPrep "für" P.accusative ;
from_Prep = mkPrep "aus" P.dative ;
@@ -48,25 +50,27 @@ concrete StructuralGer of Structural = CatGer **
here_Adv = ss "hier" ;
how_IAdv = ss "wie" ;
how8much_IAdv = ss "wieviel" ;
how8many_IDet = {s = \\g,c => (detUnlikeAdj False Pl "wie viel").s ! g ! c ; n = Pl} ;
how8many_IDet = {s = \\g,c => "wie viel" + detEnding ! (gennum g Pl) ! c ; n = Pl} ;
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 ;
in_Prep = P.inDat_Prep ;
it_Pron = mkPronPers "es" "es" "ihm" "seiner" "sein" Neutr Sg P3 ;
less_CAdv = X.mkCAdv "weniger" "als" ;
many_Det = let tab = (detLikeAdj False Pl "viel").s
in {s,sp = asQuant tab ; n = Pl ; a = Weak ; isDef = False ; hasDefArt = False} ;
many_Det = {
s,sp = \\_,g,c => "viel" + adjEnding ! (gennum g Pl) ! c ;
n = Pl ; a = Weak ; isDef = False ; hasDefArt = False} ;
more_CAdv = X.mkCAdv "mehr" "als" ;
-- most_Predet = {s = appAdj (regA "meist") ; c = noCase ; a = PAgNone} ;
most_Predet = { -- HL 5/2022
s = \\n,g,c => let gn = R.gennum g n ;
adj = (P.mkA "viel" "mehr" "meiste").s ! Superl
in
R.artDef ! gn ! c ++ adj ! (agrAdj g Weak n c) ;
R.artDef ! gn ! c ++ adj ! (agrAdj Weak gn c) ;
c = {p = [] ; k = PredCase Gen} ;
a = PAg Pl} ;
much_Det = {s = asQuant (\\_,_ => "viel") ; sp = asQuant (\\_,_ => "vieles") ;
much_Det = {
s = \\_,_,_ => "viel" ; sp = \\_,_,_ => "vieles" ;
n = Sg ; a = Weak ; isDef = False ; hasDefArt = False} ;
must_VV = auxVV
(mkV
@@ -88,21 +92,18 @@ concrete StructuralGer of Structural = CatGer **
she_Pron = mkPronPers "sie" "sie" "ihr" "ihrer" "ihr" Fem Sg P3 ;
so_AdA = ss "so" ;
somebody_NP = nameNounPhrase Masc {s = caselist "jemand" "jemanden" "jemandem" "jemands"} ;
somePl_Det = let tab = (detLikeAdj True Pl "einig").s
in {s,sp = asQuant tab ; n = Pl ; a = Weak ; isDef = True ; hasDefArt = False} ;
somePl_Det = {
s,sp = \\_,g,c => "einig" + adjEnding ! (gennum g Pl) ! c ;
n = Pl ; a = Weak ; isDef = True ; hasDefArt = False} ;
someSg_Det = {
s,sp = asQuant (\\g,c => "ein" + pronEnding ! GSg g ! c) ; ---- einer,eines
n = Sg ;
a = Strong ;
hasNum = True ;
isDef = False ;
hasDefArt = False
s = \\_,g,c => "ein" + pronEnding ! GSg g ! c ; -- ein, eine, ein
sp = \\_,g,c => "ein" + detEnding ! GSg g ! c ; -- einer, eine, eines
n = Sg ; a = Strong ; hasNum = True ; isDef = False ; hasDefArt = False
} ;
something_NP = nameNounPhrase Neutr {s = \\_ => "etwas"} ;
somewhere_Adv = ss "irgendwo" ;
that_Quant = let
jener : Number => Gender => Case => Str = \\n => (detUnlikeAdj True n "jen").s in
{s,sp = \\_,_ => jener ; a,aPl = Weak ; hasDefArt = False} ;
that_Quant = {
s,sp = \\gn,c => "jen" + detEnding ! gn ! c ; a = Weak ; hasDefArt,delCardOne = False} ;
---b that_NP = nameNounPhrase Neutr {s = caselist "das" "das" "dem" "dessen"} ; ----
there_Adv = ss "da" ; --- no variants in the rgl | ss "dort" ;
there7to_Adv = ss "dahin" ;
@@ -110,9 +111,8 @@ concrete StructuralGer of Structural = CatGer **
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 => (detUnlikeAdj True n "dies").s in
{s,sp = \\_,_ => dieser ; a,aPl = Weak ; hasDefArt = False} ;
this_Quant = {
s,sp = \\gn,c => "dies" + detEnding ! gn ! c ; a = Weak ; hasDefArt, delCardOne = False} ;
---b this_NP = nameNounPhrase Neutr {s = caselist "dies" "dies" "diesem" "dieses"} ; ----
---b those_NP = {s = caselist "jene" "jene" "jenen" "jener" ; a = agrP3 Pl} ;
through_Prep = mkPrep "durch" P.accusative ;
@@ -134,8 +134,7 @@ concrete StructuralGer of Structural = CatGer **
when_IAdv = ss "wann" ;
when_Subj = ss "wenn" ;
where_IAdv = ss "wo" ;
which_IQuant = {s = \\n,g,c => (detUnlikeAdj True n "welch").s ! g ! c} ;
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
why_IAdv = ss "warum" ;
@@ -147,13 +146,11 @@ concrete StructuralGer of Structural = CatGer **
yes_Utt = ss "ja" ;
not_Predet = {s = \\_,_,_ => "nicht" ; c = noCase ; a = PAgNone} ;
no_Quant = let
keiner : Number => Gender => Case => Str = table {
Sg => \\g,c => "kein" + pronEnding ! GSg g ! c ;
Pl => (detUnlikeAdj False Pl "kein").s
}
in
{s,sp = \\_,_ => keiner ; a = Strong ; aPl = Weak ; hasDefArt = False} ; ---- sp
no_Quant = {
s = table {GSg g => \\c => "kein" + pronEnding ! GSg g ! c ;
GPl => \\c => "kein" + detEnding ! GPl ! c} ;
sp = \\gn,c => "kein" + detEnding ! gn ! c ;
a = Mixed ; hasDefArt = False ; delCardOne = True} ; -- HL kein+ein(er) => kein(er)
if_then_Conj = {s1 = "wenn" ; s2 = "dann" ; n = Sg ; lock_Conj = <>} ;
nobody_NP =
nameNounPhrase Masc {s = caselist "niemand" "niemanden" "niemandem" "niemands"} ;
@@ -171,12 +168,14 @@ concrete StructuralGer of Structural = CatGer **
oper
asQuant : (Gender => Case => Str) -> (Bool => Gender => Case => Str) =
\tab -> \\_,g,c => tab ! g ! c ;
\tab -> \\_,g,c => tab ! g ! c ;
asNum : (Gender => Case => Str) -> (Gender => Case => {quant,num:Str}) =
\tab -> \\g,c => {quant = []; num = tab ! g ! c} ;
pairTable : (Gender => Case => Str) -> (Gender => Case => Str) -> (Gender => Case => {quant,num:Str})
= \qt,nt -> \\g,c => {quant = qt ! g ! c; num = nt ! g ! c} ;
appAdjDegAdjf : Adjective -> Degree -> Adjf -> Number => Gender => Case => Str =
\adj,deg,adjf -> \\n,g,c => adj.s ! deg ! (agrAdj g adjf n c) ;
appAdjDegAdjf : Adjective -> Degree -> Adjf -> GenNum => Case => Str =
\adj,deg,adjf -> \\gn,c => adj.s ! deg ! (agrAdj adjf gn c) ;
-- (detLikeAdj b n str).s = \\g,c => str + adjEnding ! (gennum g n) ! c
-- (detUnLikeAdj b n str).s = \\g,c => str + detEnding ! (gennum g n) ! c
}