mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 03:09:33 -06:00
German relative "was" in RelS
This commit is contained in:
@@ -10,7 +10,7 @@ concrete CatGer of Cat =
|
|||||||
|
|
||||||
S = {s : Order => Str} ;
|
S = {s : Order => Str} ;
|
||||||
QS = {s : QForm => Str} ;
|
QS = {s : QForm => Str} ;
|
||||||
RS = {s : GenNum => Str ; c : Case} ;
|
RS = {s : RelGenNum => Str ; c : Case} ;
|
||||||
SSlash = {s : Order => Str} ** {c2 : Preposition} ;
|
SSlash = {s : Order => Str} ** {c2 : Preposition} ;
|
||||||
|
|
||||||
-- Sentence
|
-- Sentence
|
||||||
@@ -32,8 +32,8 @@ concrete CatGer of Cat =
|
|||||||
|
|
||||||
-- Relative
|
-- Relative
|
||||||
|
|
||||||
RCl = {s : Mood => ResGer.Tense => Anteriority => Polarity => GenNum => Str ; c : Case} ;
|
RCl = {s : Mood => ResGer.Tense => Anteriority => Polarity => RelGenNum => Str ; c : Case} ;
|
||||||
RP = {s : GenNum => Case => Str ; a : RAgr} ;
|
RP = {s : RelGenNum => Case => Str ; a : RAgr} ;
|
||||||
|
|
||||||
-- Verb
|
-- Verb
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ concrete ConjunctionGer of Conjunction =
|
|||||||
isPre = ss.isPre
|
isPre = ss.isPre
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ConjRS conj ss = conjunctDistrTable GenNum conj ss ** {
|
ConjRS conj ss = conjunctDistrTable RelGenNum conj ss ** {
|
||||||
c = ss.c
|
c = ss.c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -39,14 +39,14 @@ concrete ConjunctionGer of Conjunction =
|
|||||||
ConsNP xs x = consrTable PCase comma xs x ** {a = conjAgr xs.a x.a} ;
|
ConsNP xs x = consrTable PCase comma xs x ** {a = conjAgr xs.a x.a} ;
|
||||||
BaseAP x y = twoTable AForm x y ** {isPre = andB x.isPre y.isPre} ;
|
BaseAP x y = twoTable AForm x y ** {isPre = andB x.isPre y.isPre} ;
|
||||||
ConsAP xs x = consrTable AForm comma xs x ** {isPre = andB xs.isPre x.isPre} ;
|
ConsAP xs x = consrTable AForm comma xs x ** {isPre = andB xs.isPre x.isPre} ;
|
||||||
BaseRS x y = twoTable GenNum x y ** {c = y.c} ;
|
BaseRS x y = twoTable RelGenNum x y ** {c = y.c} ;
|
||||||
ConsRS xs x = consrTable GenNum comma xs x ** {c = xs.c} ;
|
ConsRS xs x = consrTable RelGenNum comma xs x ** {c = xs.c} ;
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
[S] = {s1,s2 : Order => Str} ;
|
[S] = {s1,s2 : Order => Str} ;
|
||||||
[Adv] = {s1,s2 : Str} ;
|
[Adv] = {s1,s2 : Str} ;
|
||||||
[NP] = {s1,s2 : PCase => Str ; a : Agr} ;
|
[NP] = {s1,s2 : PCase => Str ; a : Agr} ;
|
||||||
[AP] = {s1,s2 : AForm => Str ; isPre : Bool} ;
|
[AP] = {s1,s2 : AForm => Str ; isPre : Bool} ;
|
||||||
[RS] = {s1,s2 : GenNum => Str ; c : Case} ;
|
[RS] = {s1,s2 : RelGenNum => Str ; c : Case} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ concrete IdiomGer of Idiom = CatGer **
|
|||||||
GenericCl vp = mkClause "man" (agrP3 Sg) vp ;
|
GenericCl vp = mkClause "man" (agrP3 Sg) vp ;
|
||||||
|
|
||||||
CleftNP np rs = mkClause "es" (agrP3 Sg)
|
CleftNP np rs = mkClause "es" (agrP3 Sg)
|
||||||
(insertExtrapos (rs.s ! gennum (genderAgr np.a) (numberAgr np.a)) ----
|
(insertExtrapos (rs.s ! RGenNum (gennum (genderAgr np.a) (numberAgr np.a))) ----
|
||||||
(insertObj (\\_ => np.s ! NPC rs.c) (predV MorphoGer.sein_V))) ;
|
(insertObj (\\_ => np.s ! NPC rs.c) (predV MorphoGer.sein_V))) ;
|
||||||
|
|
||||||
CleftAdv ad s = mkClause "es" (agrP3 Sg)
|
CleftAdv ad s = mkClause "es" (agrP3 Sg)
|
||||||
|
|||||||
@@ -174,13 +174,13 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in {
|
|||||||
|
|
||||||
RelCN cn rs = {
|
RelCN cn rs = {
|
||||||
s = \\a,n,c => cn.s ! a ! n ! c ++ "," ++
|
s = \\a,n,c => cn.s ! a ! n ! c ++ "," ++
|
||||||
rs.s ! gennum cn.g n ;
|
rs.s ! RGenNum (gennum cn.g n) ;
|
||||||
g = cn.g
|
g = cn.g
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
RelNP np rs = {
|
RelNP np rs = {
|
||||||
s = \\c => np.s ! c ++ "," ++
|
s = \\c => np.s ! c ++ "," ++
|
||||||
rs.s ! gennum (genderAgr np.a) (numberAgr np.a) ;
|
rs.s ! RGenNum (gennum (genderAgr np.a) (numberAgr np.a)) ;
|
||||||
a = np.a ;
|
a = np.a ;
|
||||||
isPron = False
|
isPron = False
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -10,13 +10,17 @@ concrete RelativeGer of Relative = CatGer ** open ResGer in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
RelVP rp vp = {
|
RelVP rp vp = {
|
||||||
s = \\m,t,ant,b,gn =>
|
s = \\m,t,ant,b,rgn =>
|
||||||
let
|
let
|
||||||
|
gn = case rgn of {
|
||||||
|
RGenNum gf => gf ;
|
||||||
|
RSentence => GSg Neutr
|
||||||
|
} ;
|
||||||
agr = case rp.a of {
|
agr = case rp.a of {
|
||||||
RNoAg => agrP3 (numGenNum gn) ;
|
RNoAg => agrP3 (numGenNum gn) ;
|
||||||
RAg n p => Ag Neutr n p
|
RAg n p => Ag Neutr n p
|
||||||
} ;
|
} ;
|
||||||
cl = mkClause (rp.s ! gn ! Nom) agr vp
|
cl = mkClause (rp.s ! rgn ! Nom) agr vp
|
||||||
in
|
in
|
||||||
cl.s ! m ! t ! ant ! b ! Sub ;
|
cl.s ! m ! t ! ant ! b ! Sub ;
|
||||||
c = Nom
|
c = Nom
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
-- Gender distinctions are only made in the singular.
|
-- Gender distinctions are only made in the singular.
|
||||||
|
|
||||||
GenNum = GSg Gender | GPl ;
|
GenNum = GSg Gender | GPl ;
|
||||||
|
RelGenNum = RGenNum GenNum | RSentence ;
|
||||||
|
|
||||||
-- Agreement of $NP$ has three parts.
|
-- Agreement of $NP$ has three parts.
|
||||||
|
|
||||||
@@ -801,7 +802,9 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
np ** {isPron = False} ;
|
np ** {isPron = False} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
relPron : GenNum => Case => Str = \\gn,c =>
|
relPron : RelGenNum => Case => Str = \\rgn,c =>
|
||||||
|
case rgn of {
|
||||||
|
RGenNum gn =>
|
||||||
case <gn,c> of {
|
case <gn,c> of {
|
||||||
<GSg Fem,Gen> => "deren" ;
|
<GSg Fem,Gen> => "deren" ;
|
||||||
<GSg g,Gen> => "dessen" ;
|
<GSg g,Gen> => "dessen" ;
|
||||||
@@ -809,5 +812,7 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
<GPl,Gen> => "deren" ;
|
<GPl,Gen> => "deren" ;
|
||||||
_ => artDef ! gn ! c
|
_ => artDef ! gn ! c
|
||||||
} ;
|
} ;
|
||||||
|
RSentence => "was"
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,6 +66,6 @@ concrete SentenceGer of Sentence = CatGer ** open ResGer, Prelude in {
|
|||||||
|
|
||||||
SSubjS a s b = {s = \\o => a.s ! o ++ "," ++ s.s ++ b.s ! Sub} ;
|
SSubjS a s b = {s = \\o => a.s ! o ++ "," ++ s.s ++ b.s ! Sub} ;
|
||||||
|
|
||||||
RelS s r = {s = \\o => s.s ! o ++ "," ++ r.s ! gennum Neutr Sg} ; --- "welches"
|
RelS s r = {s = \\o => s.s ! o ++ "," ++ r.s ! RSentence} ; --- "welches"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user