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