another fix in Ger Quant, for "gute Häuser"

This commit is contained in:
aarne
2012-05-08 13:45:31 +00:00
parent e64cd561c9
commit 36b1e82edb
4 changed files with 18 additions and 16 deletions

View File

@@ -52,9 +52,10 @@ concrete CatGer of Cat =
Pron = {s : NPForm => Str ; a : Agr} ; Pron = {s : NPForm => Str ; a : Agr} ;
Det = {s,sp : Gender => PCase => Str ; n : Number ; a : Adjf} ; Det = {s,sp : Gender => PCase => Str ; n : Number ; a : Adjf} ;
Quant = { Quant = {
s : Bool => Number => Gender => PCase => Str ; s : Bool => Number => Gender => PCase => Str ;
sp : Number => Gender => PCase => Str ; sp : Number => Gender => PCase => Str ;
a : Adjf a : Adjf ;
aPl : Adjf ; --- to distinguish "meine guten Freunde" / "gute Freunde"
} ; } ;
Predet = { Predet = {
s : Number => Gender => PCase => Str ; s : Number => Gender => PCase => Str ;

View File

@@ -5,7 +5,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
lin lin
DetCN det cn = { DetCN det cn = {
s = \\c => det.s ! cn.g ! c ++ s = \\c => det.s ! cn.g ! c ++
(let k = (prepC c).c in cn.s ! adjfCase det.a det.n k ! det.n ! k) ; (let k = (prepC c).c in cn.s ! adjfCase det.a k ! det.n ! k) ;
a = agrgP3 cn.g det.n ; a = agrgP3 cn.g det.n ;
isPron = False isPron = False
} ; } ;
@@ -52,11 +52,11 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
a = quant.a a = quant.a
in { in {
s = \\g,c => quant.s ! num.isNum ! n ! g ! c ++ (let k = (prepC c).c in s = \\g,c => quant.s ! num.isNum ! n ! g ! c ++ (let k = (prepC c).c in
num.s!g!k ++ ord.s ! agrAdj g (adjfCase a n k) n k) ; num.s!g!k ++ ord.s ! agrAdj g (adjfCase a k) n k) ;
sp = \\g,c => quant.sp ! n ! g ! c ++ (let k = (prepC c).c in sp = \\g,c => quant.sp ! n ! g ! c ++ (let k = (prepC c).c in
num.s!g!k ++ ord.s ! agrAdj g (adjfCase a n k) n k) ; num.s!g!k ++ ord.s ! agrAdj g (adjfCase quant.aPl k) n k) ;
n = n ; n = n ;
a = a a = case n of {Sg => a ; Pl => quant.aPl} ;
} ; } ;
DetQuant quant num = DetQuant quant num =
@@ -69,14 +69,15 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
sp = \\g,c => quant.sp ! n ! g ! c ++ (let k = (prepC c).c in sp = \\g,c => quant.sp ! n ! g ! c ++ (let k = (prepC c).c in
num.s!g!k) ; num.s!g!k) ;
n = n ; n = n ;
a = a a = case n of {Sg => a ; Pl => quant.aPl} ;
} ; } ;
PossPron p = { PossPron p = {
s = \\_,n,g,c => usePrepC c (\k -> p.s ! NPPoss (gennum g n) k) ; s = \\_,n,g,c => usePrepC c (\k -> p.s ! NPPoss (gennum g n) k) ;
sp = \\n,g,c => usePrepC c (\k -> p.s ! NPPoss (gennum g n) k) ; sp = \\n,g,c => usePrepC c (\k -> p.s ! NPPoss (gennum g n) k) ;
a = Strong --- need separately weak for Pl ? a = Strong ;
aPl = Weak ;
} ; } ;
NumCard n = n ** {isNum = True} ; NumCard n = n ** {isNum = True} ;
@@ -97,7 +98,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
DefArt = { DefArt = {
s = \\_,n,g,c => artDefContr (gennum g n) c ; s = \\_,n,g,c => artDefContr (gennum g n) c ;
sp = \\n,g,c => artDefContr (gennum g n) c ; ---- deren, denem... sp = \\n,g,c => artDefContr (gennum g n) c ; ---- deren, denem...
a = Weak a, aPl = Weak
} ; } ;
IndefArt = { IndefArt = {
@@ -112,7 +113,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
Sg => \\g,c => usePrepC c (\k -> (detLikeAdj Sg "ein").s ! g ! NPC k) ; Sg => \\g,c => usePrepC c (\k -> (detLikeAdj Sg "ein").s ! g ! NPC k) ;
Pl => \\_,c => usePrepC c (\k -> caselist "einige" "einige" "einigen" "einiger" ! k) Pl => \\_,c => usePrepC c (\k -> caselist "einige" "einige" "einigen" "einiger" ! k)
} ; } ;
a = Strong a, aPl = Strong
} ; } ;
MassNP cn = { MassNP cn = {

View File

@@ -167,8 +167,8 @@ resource ResGer = ParamX ** open Prelude in {
-- This is used twice in NounGer. -- This is used twice in NounGer.
adjfCase : Adjf -> Number -> Case -> Adjf = \a,n,c -> case <n,c> of { adjfCase : Adjf -> Case -> Adjf = \a,c -> case c of {
<Sg, Nom|Acc> => a ; Nom|Acc => a ;
_ => Weak _ => Weak
} ; } ;

View File

@@ -86,7 +86,7 @@ concrete StructuralGer of Structural = CatGer **
somewhere_Adv = ss "irgendwo" ; somewhere_Adv = ss "irgendwo" ;
that_Quant = let that_Quant = let
jener : Number => Gender => PCase => Str = \\n => (detLikeAdj n "jen").s in jener : Number => Gender => PCase => Str = \\n => (detLikeAdj n "jen").s in
{s = \\_ => jener ; sp = jener ; a = Weak} ; {s = \\_ => jener ; sp = jener ; a,aPl = Weak} ;
---b that_NP = nameNounPhrase {s = caselist "das" "das" "denem" "dessen"} ; ---- ---b that_NP = nameNounPhrase {s = caselist "das" "das" "denem" "dessen"} ; ----
there_Adv = ss "da" ; there_Adv = ss "da" ;
there7to_Adv = ss "dahin" ; there7to_Adv = ss "dahin" ;
@@ -96,7 +96,7 @@ concrete StructuralGer of Structural = CatGer **
they_Pron = mkPronPers "sie" "sie" "ihnen" "ihrer" "ihr" Fem Pl P3 ; they_Pron = mkPronPers "sie" "sie" "ihnen" "ihrer" "ihr" Fem Pl P3 ;
this_Quant = let this_Quant = let
dieser : Number => Gender => PCase => Str = \\n => (detLikeAdj n "dies").s in dieser : Number => Gender => PCase => Str = \\n => (detLikeAdj n "dies").s in
{s = \\_ => dieser ; sp = dieser ; a = Weak} ; {s = \\_ => dieser ; sp = dieser ; a,aPl = Weak} ;
---b this_NP = nameNounPhrase {s = caselist "dies" "dies" "diesem" "dieses"} ; ---- ---b this_NP = nameNounPhrase {s = caselist "dies" "dies" "diesem" "dieses"} ; ----
---b those_NP = {s = caselist "jene" "jene" "jenen" "jener" ; a = agrP3 Pl} ; ---b those_NP = {s = caselist "jene" "jene" "jenen" "jener" ; a = agrP3 Pl} ;
through_Prep = mkPrep "durch" P.accusative ; through_Prep = mkPrep "durch" P.accusative ;
@@ -137,7 +137,7 @@ concrete StructuralGer of Structural = CatGer **
Pl => (detLikeAdj Pl "kein").s Pl => (detLikeAdj Pl "kein").s
} }
in in
{s = \\_ => keiner ; sp = keiner ; a = Strong} ; ---- sp {s = \\_ => keiner ; sp = keiner ; a = Strong ; aPl = Weak} ; ---- sp
if_then_Conj = {s1 = "wenn" ; s2 = "dann" ; n = Sg ; lock_Conj = <>} ; if_then_Conj = {s1 = "wenn" ; s2 = "dann" ; n = Sg ; lock_Conj = <>} ;
nobody_NP = nobody_NP =
nameNounPhrase {s = caselist "niemand" "niemanden" "niemandem" "niemands"} ; nameNounPhrase {s = caselist "niemand" "niemanden" "niemandem" "niemands"} ;