forked from GitHub/gf-core
adjusting German negation place for some indefinite determiners; this is difficult and not yet conclusive
This commit is contained in:
@@ -50,7 +50,7 @@ concrete CatGer of Cat =
|
|||||||
CN = {s : Adjf => Number => Case => Str ; g : Gender} ;
|
CN = {s : Adjf => Number => Case => Str ; g : Gender} ;
|
||||||
NP = {s : PCase => Str ; a : Agr ; isPron : Bool} ;
|
NP = {s : PCase => Str ; a : Agr ; isPron : Bool} ;
|
||||||
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 ; isDef : Bool} ;
|
||||||
Quant = {
|
Quant = {
|
||||||
s : Bool => Number => Gender => PCase => Str ;
|
s : Bool => Number => Gender => PCase => Str ;
|
||||||
sp : Number => Gender => PCase => Str ;
|
sp : Number => Gender => PCase => Str ;
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ oper
|
|||||||
a = agrP3 Sg
|
a = agrP3 Sg
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
detLikeAdj : Number -> Str ->
|
detLikeAdj : Bool -> Number -> Str ->
|
||||||
{s,sp : Gender => PCase => Str ; n : Number ; a : Adjf} = \n,dies ->
|
{s,sp : Gender => PCase => Str ; n : Number ; a : Adjf ; isDef : Bool} = \isDef,n,dies ->
|
||||||
{s,sp = appAdj (regA dies) ! n ; n = n ; a = Weak} ;
|
{s,sp = appAdj (regA dies) ! n ; n = n ; a = Weak ; isDef = isDef} ;
|
||||||
|
|
||||||
mkOrd : {s : Degree => AForm => Str} -> {s : AForm => Str} = \a ->
|
mkOrd : {s : Degree => AForm => Str} -> {s : AForm => Str} = \a ->
|
||||||
{s = a.s ! Posit} ;
|
{s = a.s ! Posit} ;
|
||||||
|
|||||||
@@ -7,13 +7,13 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
|
|||||||
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 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 = det.isDef -- ich sehe den Mann nicht vs. ich sehe nicht einen Mann
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
DetNP det = {
|
DetNP det = {
|
||||||
s = \\c => det.sp ! Neutr ! c ; -- more genders in ExtraGer
|
s = \\c => det.sp ! Neutr ! c ; -- more genders in ExtraGer
|
||||||
a = agrP3 det.n ;
|
a = agrP3 det.n ;
|
||||||
isPron = False
|
isPron = det.isDef
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
UsePN pn = {
|
UsePN pn = {
|
||||||
@@ -57,6 +57,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
|
|||||||
num.s!g!k ++ ord.s ! agrAdj g (adjfCase quant.aPl k) n k) ;
|
num.s!g!k ++ ord.s ! agrAdj g (adjfCase quant.aPl k) n k) ;
|
||||||
n = n ;
|
n = n ;
|
||||||
a = case n of {Sg => a ; Pl => quant.aPl} ;
|
a = case n of {Sg => a ; Pl => quant.aPl} ;
|
||||||
|
isDef = case <quant.a, quant.aPl> of {<Strong,Strong> => False ; _ => True} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
DetQuant quant num =
|
DetQuant quant num =
|
||||||
@@ -70,6 +71,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
|
|||||||
num.s!g!k) ;
|
num.s!g!k) ;
|
||||||
n = n ;
|
n = n ;
|
||||||
a = case n of {Sg => a ; Pl => quant.aPl} ;
|
a = case n of {Sg => a ; Pl => quant.aPl} ;
|
||||||
|
isDef = case <quant.a, quant.aPl> of {<Strong,Strong> => False ; _ => True} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
@@ -110,7 +112,7 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
sp = table {
|
sp = table {
|
||||||
Sg => \\g,c => usePrepC c (\k -> (detLikeAdj Sg "ein").s ! g ! NPC k) ;
|
Sg => \\g,c => usePrepC c (\k -> (detLikeAdj False 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, aPl = Strong
|
a, aPl = Strong
|
||||||
|
|||||||
@@ -31,10 +31,10 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
during_Prep = mkPrep "während" P.genitive ;
|
during_Prep = mkPrep "während" P.genitive ;
|
||||||
either7or_DConj = sd2 "entweder" "oder" ** {n = Sg} ;
|
either7or_DConj = sd2 "entweder" "oder" ** {n = Sg} ;
|
||||||
everybody_NP = nameNounPhrase {s = caselist "jeder" "jeden" "jedem" "jedes"} ;
|
everybody_NP = nameNounPhrase {s = caselist "jeder" "jeden" "jedem" "jedes"} ;
|
||||||
every_Det = detLikeAdj Sg "jed" ;
|
every_Det = detLikeAdj False Sg "jed" ;
|
||||||
everything_NP = nameNounPhrase {s = caselist "alles" "alles" "allem" "alles"} ;
|
everything_NP = nameNounPhrase {s = caselist "alles" "alles" "allem" "alles"} ;
|
||||||
everywhere_Adv = ss "überall" ;
|
everywhere_Adv = ss "überall" ;
|
||||||
few_Det = detLikeAdj Pl "wenig" ;
|
few_Det = detLikeAdj False Pl "wenig" ;
|
||||||
---- first_Ord = {s = (regA "erst").s ! Posit} ;
|
---- first_Ord = {s = (regA "erst").s ! Posit} ;
|
||||||
for_Prep = mkPrep "für" P.accusative ;
|
for_Prep = mkPrep "für" P.accusative ;
|
||||||
from_Prep = mkPrep "aus" P.dative ;
|
from_Prep = mkPrep "aus" P.dative ;
|
||||||
@@ -44,17 +44,17 @@ 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 => (detLikeAdj Pl "wieviel").s ! g ! NPC c ; n = Pl} ;
|
how8many_IDet = {s = \\g,c => (detLikeAdj False Pl "wieviel").s ! g ! NPC c ; n = Pl} ;
|
||||||
if_Subj = ss "wenn" ;
|
if_Subj = ss "wenn" ;
|
||||||
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 ;
|
||||||
in_Prep = mkPrep [] (NPP CInDat) ;
|
in_Prep = mkPrep [] (NPP CInDat) ;
|
||||||
it_Pron = mkPronPers "es" "es" "ihm" "seiner" "sein" Neutr Sg P3 ;
|
it_Pron = mkPronPers "es" "es" "ihm" "seiner" "sein" Neutr Sg P3 ;
|
||||||
less_CAdv = X.mkCAdv "weniger" "als" ;
|
less_CAdv = X.mkCAdv "weniger" "als" ;
|
||||||
many_Det = detLikeAdj Pl "viel" ;
|
many_Det = detLikeAdj False Pl "viel" ;
|
||||||
more_CAdv = X.mkCAdv "mehr" "als" ;
|
more_CAdv = X.mkCAdv "mehr" "als" ;
|
||||||
most_Predet = {s = appAdj (regA "meist") ; c = noCase ; a = PAgNone} ;
|
most_Predet = {s = appAdj (regA "meist") ; c = noCase ; a = PAgNone} ;
|
||||||
much_Det = detLikeAdj Sg "viel" ;
|
much_Det = detLikeAdj False Sg "viel" ;
|
||||||
must_VV = auxVV
|
must_VV = auxVV
|
||||||
(mkV
|
(mkV
|
||||||
"müssen" "muß" "mußt" "muß" "müßt" "müß"
|
"müssen" "muß" "mußt" "muß" "müßt" "müß"
|
||||||
@@ -75,18 +75,19 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
she_Pron = mkPronPers "sie" "sie" "ihr" "ihrer" "ihr" Fem Sg P3 ;
|
she_Pron = mkPronPers "sie" "sie" "ihr" "ihrer" "ihr" Fem Sg P3 ;
|
||||||
so_AdA = ss "so" ;
|
so_AdA = ss "so" ;
|
||||||
somebody_NP = nameNounPhrase {s = caselist "jemand" "jemanden" "jemandem" "jemands"} ;
|
somebody_NP = nameNounPhrase {s = caselist "jemand" "jemanden" "jemandem" "jemands"} ;
|
||||||
somePl_Det = detLikeAdj Pl "einig" ;
|
somePl_Det = detLikeAdj True Pl "einig" ;
|
||||||
someSg_Det = {
|
someSg_Det = {
|
||||||
s,sp = \\g,c =>
|
s,sp = \\g,c =>
|
||||||
usePrepC c (\k -> "ein" + pronEnding ! GSg g ! k) ; ---- einer,eines
|
usePrepC c (\k -> "ein" + pronEnding ! GSg g ! k) ; ---- einer,eines
|
||||||
n = Sg ;
|
n = Sg ;
|
||||||
a = Strong ;
|
a = Strong ;
|
||||||
hasNum = True
|
hasNum = True ;
|
||||||
|
isDef = False ;
|
||||||
} ;
|
} ;
|
||||||
something_NP = nameNounPhrase {s = \\_ => "etwas"} ;
|
something_NP = nameNounPhrase {s = \\_ => "etwas"} ;
|
||||||
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 True n "jen").s in
|
||||||
{s = \\_ => jener ; sp = jener ; a,aPl = 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" ;
|
||||||
@@ -96,7 +97,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
---b these_NP = {s = caselist "diese" "diese" "diesen" "dieser" ; a = agrP3 Pl} ;
|
---b these_NP = {s = caselist "diese" "diese" "diesen" "dieser" ; a = agrP3 Pl} ;
|
||||||
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 True n "dies").s in
|
||||||
{s = \\_ => dieser ; sp = dieser ; a,aPl = 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} ;
|
||||||
@@ -119,7 +120,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
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 = \\n,g,c => (detLikeAdj n "welch").s ! g ! NPC c} ;
|
which_IQuant = {s = \\n,g,c => (detLikeAdj True n "welch").s ! g ! NPC c} ;
|
||||||
|
|
||||||
whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ;
|
whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ;
|
||||||
whoPl_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Pl} ;
|
whoPl_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Pl} ;
|
||||||
@@ -135,7 +136,7 @@ concrete StructuralGer of Structural = CatGer **
|
|||||||
no_Quant = let
|
no_Quant = let
|
||||||
keiner : Number => Gender => PCase => Str = table {
|
keiner : Number => Gender => PCase => Str = table {
|
||||||
Sg => \\g,c => usePrepC c (\k -> "kein" + pronEnding ! GSg g ! k) ;
|
Sg => \\g,c => usePrepC c (\k -> "kein" + pronEnding ! GSg g ! k) ;
|
||||||
Pl => (detLikeAdj Pl "kein").s
|
Pl => (detLikeAdj False Pl "kein").s
|
||||||
}
|
}
|
||||||
in
|
in
|
||||||
{s = \\_ => keiner ; sp = keiner ; a = Strong ; aPl = Weak} ; ---- sp
|
{s = \\_ => keiner ; sp = keiner ; a = Strong ; aPl = Weak} ; ---- sp
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ concrete VerbGer of Verb = CatGer ** open Prelude, ResGer, Coordination in {
|
|||||||
SlashV2A v ap =
|
SlashV2A v ap =
|
||||||
insertObj (\\_ => ap.s ! APred) (predV v) ** {c2 = v.c2} ;
|
insertObj (\\_ => ap.s ! APred) (predV v) ** {c2 = v.c2} ;
|
||||||
|
|
||||||
ComplSlash vp np = insertObjNP True (\\_ => appPrep vp.c2 np.s) vp ;
|
ComplSlash vp np = insertObjNP np.isPron (\\_ => appPrep vp.c2 np.s) vp ;
|
||||||
|
|
||||||
SlashVV v vp =
|
SlashVV v vp =
|
||||||
let
|
let
|
||||||
|
|||||||
Reference in New Issue
Block a user