forked from GitHub/gf-core
it clefts and let's, implemented for Germanic
This commit is contained in:
@@ -6,12 +6,17 @@ abstract Idiom = Cat ** {
|
||||
-- often different even in closely related languages.
|
||||
|
||||
fun
|
||||
ImpersCl : VP -> Cl ; -- it rains
|
||||
GenericCl : VP -> Cl ; -- one sleeps
|
||||
ImpersCl : VP -> Cl ; -- it rains
|
||||
GenericCl : VP -> Cl ; -- one sleeps
|
||||
|
||||
ExistNP : NP -> Cl ; -- there is a house
|
||||
ExistIP : IP -> QCl ; -- which houses are there
|
||||
CleftNP : NP -> RS -> Cl ; -- it is you who did it
|
||||
CleftAdv : Adv -> S -> Cl ; -- it is yesterday she arrived
|
||||
|
||||
ProgrVP : VP -> VP ; -- be sleeping
|
||||
ExistNP : NP -> Cl ; -- there is a house
|
||||
ExistIP : IP -> QCl ; -- which houses are there
|
||||
|
||||
ProgrVP : VP -> VP ; -- be sleeping
|
||||
|
||||
ImpPl1 : VP -> Utt ; -- let's go
|
||||
|
||||
}
|
||||
|
||||
@@ -7,6 +7,15 @@ concrete IdiomDan of Idiom = CatDan **
|
||||
ImpersCl vp = mkClause "det" (agrP3 neutrum Sg) vp ;
|
||||
GenericCl vp = mkClause "man" (agrP3 utrum Sg) vp ;
|
||||
|
||||
CleftNP np rs = mkClause "det" (agrP3 neutrum Sg)
|
||||
(insertObj (\\_ => rs.s ! np.a)
|
||||
(insertObj (\\_ => np.s ! rs.c) (predV verbBe))) ;
|
||||
|
||||
CleftAdv ad s = mkClause "det" (agrP3 neutrum Sg)
|
||||
(insertObj (\\_ => s.s ! Main)
|
||||
(insertObj (\\_ => ad.s) (predV verbBe))) ;
|
||||
|
||||
|
||||
ExistNP np =
|
||||
mkClause "det" (agrP3 neutrum Sg) (insertObj
|
||||
(\\_ => np.s ! accusative) (predV (depV finde_V))) ;
|
||||
@@ -26,5 +35,7 @@ concrete IdiomDan of Idiom = CatDan **
|
||||
ProgrVP vp =
|
||||
insertObj (\\a => ["ved å"] ++ infVP vp a) (predV verbBe) ;
|
||||
|
||||
ImpPl1 vp = {s = ["lad os"] ++ infVP vp {gn = Plg ; p = P1}} ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ concrete CatEng of Cat = CommonX ** open ResEng, Prelude in {
|
||||
|
||||
S = {s : Str} ;
|
||||
QS = {s : QForm => Str} ;
|
||||
RS = {s : Agr => Str} ;
|
||||
RS = {s : Agr => Str ; c : Case} ; -- c for it clefts
|
||||
|
||||
-- Sentence
|
||||
|
||||
@@ -25,7 +25,7 @@ concrete CatEng of Cat = CommonX ** open ResEng, Prelude in {
|
||||
|
||||
-- Relative
|
||||
|
||||
RCl = {s : Tense => Anteriority => Polarity => Agr => Str} ;
|
||||
RCl = {s : Tense => Anteriority => Polarity => Agr => Str ; c : Case} ;
|
||||
RP = {s : RCase => Str ; a : RAgr} ;
|
||||
|
||||
-- Verb
|
||||
|
||||
@@ -6,13 +6,25 @@ concrete IdiomEng of Idiom = CatEng ** open Prelude, ResEng in {
|
||||
ImpersCl vp = mkClause "it" (agrP3 Sg) vp ;
|
||||
GenericCl vp = mkClause "one" (agrP3 Sg) vp ;
|
||||
|
||||
CleftNP np rs = mkClause "it" (agrP3 Sg)
|
||||
(insertObj (\\_ => rs.s ! np.a)
|
||||
(insertObj (\\_ => np.s ! rs.c) (predAux auxBe))) ;
|
||||
|
||||
CleftAdv ad s = mkClause "it" (agrP3 Sg)
|
||||
(insertObj (\\_ => conjThat ++ s.s)
|
||||
(insertObj (\\_ => ad.s) (predAux auxBe))) ;
|
||||
|
||||
ExistNP np =
|
||||
mkClause "there" (agrP3 np.a.n) (insertObj (\\_ => np.s ! Acc) (predAux auxBe)) ;
|
||||
mkClause "there" (agrP3 np.a.n)
|
||||
(insertObj (\\_ => np.s ! Acc) (predAux auxBe)) ;
|
||||
|
||||
ExistIP ip =
|
||||
mkQuestion (ss (ip.s ! Nom)) (mkClause "there" (agrP3 ip.n) (predAux auxBe)) ;
|
||||
mkQuestion (ss (ip.s ! Nom))
|
||||
(mkClause "there" (agrP3 ip.n) (predAux auxBe)) ;
|
||||
|
||||
ProgrVP vp = insertObj (\\a => vp.ad ++ vp.prp ++ vp.s2 ! a) (predAux auxBe) ;
|
||||
|
||||
ImpPl1 vp = {s = "let's" ++ infVP True vp {n = Pl ; p = P1}} ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,8 @@ concrete RelativeEng of Relative = CatEng ** open ResEng in {
|
||||
lin
|
||||
|
||||
RelCl cl = {
|
||||
s = \\t,a,p,_ => "such" ++ "that" ++ cl.s ! t ! a ! p ! ODir
|
||||
s = \\t,a,p,_ => "such" ++ "that" ++ cl.s ! t ! a ! p ! ODir ;
|
||||
c = Nom
|
||||
} ;
|
||||
|
||||
RelVP rp vp = {
|
||||
@@ -17,14 +18,16 @@ concrete RelativeEng of Relative = CatEng ** open ResEng in {
|
||||
} ;
|
||||
cl = mkClause (rp.s ! RC Nom) agr vp
|
||||
in
|
||||
cl.s ! t ! ant ! b ! ODir
|
||||
cl.s ! t ! ant ! b ! ODir ;
|
||||
c = Nom
|
||||
} ;
|
||||
|
||||
-- Preposition stranding: "that we are looking at". Pied-piping is
|
||||
-- deferred to $ExtEng.gf$ ("at which we are looking").
|
||||
|
||||
RelSlash rp slash = {
|
||||
s = \\t,a,p,_ => rp.s ! RC Acc ++ slash.s ! t ! a ! p ! ODir ++ slash.c2
|
||||
s = \\t,a,p,_ => rp.s ! RC Acc ++ slash.s ! t ! a ! p ! ODir ++ slash.c2 ;
|
||||
c = Acc
|
||||
} ;
|
||||
|
||||
FunRP p np rp = {
|
||||
|
||||
@@ -42,6 +42,9 @@ concrete SentenceEng of Sentence = CatEng ** open Prelude, ResEng in {
|
||||
|
||||
UseCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! ODir} ;
|
||||
UseQCl t a p cl = {s = \\q => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! q} ;
|
||||
UseRCl t a p cl = {s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r} ;
|
||||
UseRCl t a p cl = {
|
||||
s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r ;
|
||||
c = cl.c
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ concrete CatGer of Cat = CommonX ** open ResGer, Prelude in {
|
||||
|
||||
S = {s : Order => Str} ;
|
||||
QS = {s : QForm => Str} ;
|
||||
RS = {s : GenNum => Str} ;
|
||||
RS = {s : GenNum => Str ; c : Case} ;
|
||||
|
||||
-- Sentence
|
||||
|
||||
@@ -26,7 +26,7 @@ concrete CatGer of Cat = CommonX ** open ResGer, Prelude in {
|
||||
|
||||
-- Relative
|
||||
|
||||
RCl = {s : Tense => Anteriority => Polarity => GenNum => Str} ;
|
||||
RCl = {s : Tense => Anteriority => Polarity => GenNum => Str ; c : Case} ;
|
||||
RP = {s : GenNum => Case => Str ; a : RAgr} ;
|
||||
|
||||
-- Verb
|
||||
|
||||
@@ -12,10 +12,10 @@ concrete ConjunctionGer of Conjunction =
|
||||
DConjAdv conj ss = conjunctDistrSS conj ss ;
|
||||
|
||||
ConjNP conj ss = conjunctTable Case conj ss ** {
|
||||
a = {n = conjNumber conj.n ss.a.n ; p = ss.a.p}
|
||||
a = {g = Fem ; n = conjNumber conj.n ss.a.n ; p = ss.a.p}
|
||||
} ;
|
||||
DConjNP conj ss = conjunctDistrTable Case conj ss ** {
|
||||
a = {n = conjNumber conj.n ss.a.n ; p = ss.a.p}
|
||||
a = {g = Fem ; n = conjNumber conj.n ss.a.n ; p = ss.a.p}
|
||||
} ;
|
||||
|
||||
ConjAP conj ss = conjunctTable AForm conj ss ** {
|
||||
|
||||
@@ -7,6 +7,15 @@ concrete IdiomGer of Idiom = CatGer **
|
||||
ImpersCl vp = mkClause "es" (agrP3 Sg) vp ;
|
||||
GenericCl vp = mkClause "man" (agrP3 Sg) vp ;
|
||||
|
||||
CleftNP np rs = mkClause "es" (agrP3 Sg)
|
||||
(insertObj (\\_ => rs.s ! gennum np.a.g np.a.n) ----
|
||||
(insertObj (\\_ => np.s ! rs.c) (predV sein_V))) ;
|
||||
|
||||
CleftAdv ad s = mkClause "es" (agrP3 Sg)
|
||||
(insertObj (\\_ => s.s ! Main)
|
||||
(insertObj (\\_ => ad.s) (predV sein_V))) ;
|
||||
|
||||
|
||||
ExistNP np =
|
||||
mkClause "es" (agrP3 Sg)
|
||||
(insertObj (\\_ => appPrep geben.c2 np.s)
|
||||
@@ -25,6 +34,10 @@ concrete IdiomGer of Idiom = CatGer **
|
||||
|
||||
ProgrVP = insertAdv "eben" ; ----
|
||||
|
||||
ImpPl1 vp = {s =
|
||||
(mkClause "wir" {g = Fem ; n = Pl ; p = P1} vp).s ! Pres ! Simul ! Pos ! Inv
|
||||
} ;
|
||||
|
||||
oper
|
||||
geben = dirV2 (mkV "geben" "gibt" "gib" "gab" "gäbe" "gegeben") ;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,8 @@ concrete RelativeGer of Relative = CatGer ** open ResGer in {
|
||||
lin
|
||||
|
||||
RelCl cl = {
|
||||
s = \\t,a,b,_ => "derart" ++ conjThat ++ cl.s ! t ! a ! b ! Sub
|
||||
s = \\t,a,b,_ => "derart" ++ conjThat ++ cl.s ! t ! a ! b ! Sub ;
|
||||
c = Nom
|
||||
} ;
|
||||
|
||||
RelVP rp vp = {
|
||||
@@ -13,16 +14,18 @@ concrete RelativeGer of Relative = CatGer ** open ResGer in {
|
||||
let
|
||||
agr = case rp.a of {
|
||||
RNoAg => agrP3 (numGenNum gn) ;
|
||||
RAg a => a
|
||||
RAg a => a ** {g = Neutr}
|
||||
} ;
|
||||
cl = mkClause (rp.s ! gn ! Nom) agr vp
|
||||
in
|
||||
cl.s ! t ! ant ! b ! Sub
|
||||
cl.s ! t ! ant ! b ! Sub ;
|
||||
c = Nom
|
||||
} ;
|
||||
|
||||
RelSlash rp slash = {
|
||||
s = \\t,a,p,gn =>
|
||||
appPrep slash.c2 (rp.s ! gn) ++ slash.s ! t ! a ! p ! Sub
|
||||
appPrep slash.c2 (rp.s ! gn) ++ slash.s ! t ! a ! p ! Sub ;
|
||||
c = slash.c2.c
|
||||
} ;
|
||||
|
||||
FunRP p np rp = {
|
||||
|
||||
@@ -31,7 +31,7 @@ resource ResGer = ParamX ** open Prelude in {
|
||||
|
||||
-- Agreement of $NP$ is a record.
|
||||
|
||||
oper Agr = {n : Number ; p : Person} ;
|
||||
oper Agr = {g : Gender ; n : Number ; p : Person} ;
|
||||
|
||||
-- Pronouns are the worst-case noun phrases, which have both case
|
||||
-- and possessive forms.
|
||||
@@ -85,8 +85,10 @@ resource ResGer = ParamX ** open Prelude in {
|
||||
--2 Transformations between parameter types
|
||||
|
||||
oper
|
||||
agrP3 : Number -> Agr = \n ->
|
||||
{n = n ; p = P3} ;
|
||||
agrP3 : Number -> Agr = agrgP3 Neutr ;
|
||||
|
||||
agrgP3 : Gender -> Number -> Agr = \g,n ->
|
||||
{g = g ; n = n ; p = P3} ;
|
||||
|
||||
gennum : Gender -> Number -> GenNum = \g,n ->
|
||||
case n of {
|
||||
@@ -135,6 +137,7 @@ resource ResGer = ParamX ** open Prelude in {
|
||||
} ;
|
||||
|
||||
conjAgr : Agr -> Agr -> Agr = \a,b -> {
|
||||
g = Neutr ; ----
|
||||
n = conjNumber a.n b.n ;
|
||||
p = conjPerson a.p b.p
|
||||
} ;
|
||||
@@ -267,14 +270,14 @@ resource ResGer = ParamX ** open Prelude in {
|
||||
-- All personal pronouns, except "ihr", conform to the simple
|
||||
-- pattern $mkPronPers$.
|
||||
|
||||
mkPronPers : (x1,_,_,_,x5 : Str) -> Number -> Person ->
|
||||
mkPronPers : (x1,_,_,_,x5 : Str) -> Gender -> Number -> Person ->
|
||||
{s : NPForm => Str ; a : Agr} =
|
||||
\ich,mich,mir,meiner,mein,n,p -> {
|
||||
\ich,mich,mir,meiner,mein,g,n,p -> {
|
||||
s = table {
|
||||
NPCase c => caselist ich mich mir meiner ! c ;
|
||||
NPPoss gn c => mein + pronEnding ! gn ! c
|
||||
} ;
|
||||
a = {n = n ; p = p}
|
||||
a = {g = g ; n = n ; p = p}
|
||||
} ;
|
||||
|
||||
pronEnding : GenNum => Case => Str = table {
|
||||
@@ -538,7 +541,9 @@ resource ResGer = ParamX ** open Prelude in {
|
||||
reflPron : Agr => Case => Str = table {
|
||||
{n = Sg ; p = P1} => caselist "ich" "mich" "mir" "meiner" ;
|
||||
{n = Sg ; p = P2} => caselist "du" "dich" "dir" "deiner" ;
|
||||
{n = Sg ; p = P3} => caselist "er" "sich" "sich" "seiner" ; --- ihrer
|
||||
{g = Masc ; n = Sg ; p = P3} => caselist "er" "sich" "sich" "seiner" ;
|
||||
{g = Fem ; n = Sg ; p = P3} => caselist "sie" "sich" "sich" "ihrer" ;
|
||||
{g = Neutr ; n = Sg ; p = P3} => caselist "es" "sich" "sich" "seiner" ;
|
||||
{n = Pl ; p = P1} => caselist "wir" "uns" "uns" "unser" ;
|
||||
{n = Pl ; p = P2} => caselist "ihr" "euch" "euch" "euer" ;
|
||||
{n = Pl ; p = P3} => caselist "sie" "sich" "sich" "ihrer"
|
||||
|
||||
@@ -11,7 +11,7 @@ concrete SentenceGer of Sentence = CatGer ** open ResGer in {
|
||||
ImpVP vp = {
|
||||
s = \\pol,n =>
|
||||
let
|
||||
agr = {n = n ; p = P2} ;
|
||||
agr = {g = Fem ; n = n ; p = P2} ; --- g does not matter
|
||||
verb = vp.s ! agr ! VPImperat ;
|
||||
in
|
||||
verb.fin ++ vp.a1 ! pol ++ verb.inf ++ vp.n2 ! agr ++ vp.a2 ++ vp.inf ++ vp.ext
|
||||
@@ -39,6 +39,9 @@ concrete SentenceGer of Sentence = CatGer ** open ResGer in {
|
||||
|
||||
UseCl t a p cl = {s = \\o => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! o} ;
|
||||
UseQCl t a p cl = {s = \\q => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! q} ;
|
||||
UseRCl t a p cl = {s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r} ;
|
||||
UseRCl t a p cl = {
|
||||
s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r ;
|
||||
c = cl.c
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ concrete StructuralGer of Structural = CatGer **
|
||||
few_Det = detLikeAdj Pl "wenig" ;
|
||||
first_Ord = {s = (regA "erst").s ! Posit} ;
|
||||
from_Prep = mkPrep "aus" Dat ;
|
||||
he_Pron = mkPronPers "er" "ihn" "ihm" "seiner" "sein" Sg P3 ;
|
||||
he_Pron = mkPronPers "er" "ihn" "ihm" "seiner" "sein" Masc Sg P3 ;
|
||||
here7to_Adv = ss ["hierher"] ;
|
||||
here7from_Adv = ss ["hieraus"] ;
|
||||
here_Adv = ss "hier" ;
|
||||
@@ -44,9 +44,9 @@ concrete StructuralGer of Structural = CatGer **
|
||||
how8many_IDet = detLikeAdj Pl "wieviel" ;
|
||||
if_Subj = ss "wenn" ;
|
||||
in8front_Prep = mkPrep "vor" Dat ;
|
||||
i_Pron = mkPronPers "ich" "mich" "mir" "meiner" "mein" Sg P1 ;
|
||||
i_Pron = mkPronPers "ich" "mich" "mir" "meiner" "mein" Fem Sg P1 ;
|
||||
in_Prep = mkPrep "in" Dat ;
|
||||
it_Pron = mkPronPers "es" "es" "ihm" "seiner" "sein" Sg P3 ;
|
||||
it_Pron = mkPronPers "es" "es" "ihm" "seiner" "sein" Neutr Sg P3 ;
|
||||
less_CAdv = ss "weniger" ;
|
||||
many_Det = detLikeAdj Pl "viel" ;
|
||||
more_CAdv = ss "mehr" ;
|
||||
@@ -72,7 +72,7 @@ concrete StructuralGer of Structural = CatGer **
|
||||
please_Voc = ss "bitte" ;
|
||||
possess_Prep = mkPrep "von" Dat ;
|
||||
quite_Adv = ss "ziemlich" ;
|
||||
she_Pron = mkPronPers "sie" "sie" "ihr" "ihrer" "ihr" Sg P3 ;
|
||||
she_Pron = mkPronPers "sie" "sie" "ihr" "ihrer" "ihr" Fem Sg P3 ;
|
||||
so_AdA = ss "so" ;
|
||||
somebody_NP = nameNounPhrase {s = caselist "jemand" "jemanden" "jemandem" "jemands"} ;
|
||||
somePl_Det = detLikeAdj Pl "einig" ;
|
||||
@@ -90,7 +90,7 @@ concrete StructuralGer of Structural = CatGer **
|
||||
there7from_Adv = ss ["daher"] ;
|
||||
therefore_PConj = ss "deshalb" ;
|
||||
these_NP = {s = caselist "diese" "diese" "diesen" "dieser" ; a = agrP3 Pl} ;
|
||||
they_Pron = mkPronPers "sie" "sie" "ihnen" "ihrer" "ihr" Pl P3 ;
|
||||
they_Pron = mkPronPers "sie" "sie" "ihnen" "ihrer" "ihr" Fem Pl P3 ;
|
||||
this_Quant = {s = \\n => (detLikeAdj n "dies").s ; a = Weak} ;
|
||||
this_NP = nameNounPhrase {s = caselist "dies" "dies" "diesem" "dieses"} ; ----
|
||||
those_NP = {s = caselist "jene" "jene" "jenen" "jener" ; a = agrP3 Pl} ;
|
||||
@@ -105,7 +105,7 @@ concrete StructuralGer of Structural = CatGer **
|
||||
"wollte" "wolltest" "wollten" "wolltet"
|
||||
"wollte" "gewollen" []
|
||||
VHaben) ;
|
||||
we_Pron = mkPronPers "wir" "uns" "uns" "unser" "unser" Pl P1 ;
|
||||
we_Pron = mkPronPers "wir" "uns" "uns" "unser" "unser" Fem Pl P1 ;
|
||||
|
||||
whatSg_IP = {s = caselist "was" "was" "was" "wessen" ; n = Sg} ; ----
|
||||
whatPl_IP = {s = caselist "was" "was" "was" "wessen" ; n = Pl} ; ----
|
||||
@@ -121,9 +121,9 @@ concrete StructuralGer of Structural = CatGer **
|
||||
why_IAdv = ss "warum" ;
|
||||
without_Prep = mkPrep "ohne" Acc ;
|
||||
with_Prep = mkPrep "mit" Dat ;
|
||||
youSg_Pron = mkPronPers "du" "dich" "dir" "deiner" "dein" Sg P2 ;
|
||||
youPl_Pron = mkPronPers "ihr" "euch" "euch" "eurer" "euer" Pl P2 ; ---- poss
|
||||
youPol_Pron = mkPronPers "Sie" "Sie" "Ihnen" "Ihrer" "Ihr" Pl P3 ;
|
||||
youSg_Pron = mkPronPers "du" "dich" "dir" "deiner" "dein" Fem Sg P2 ;
|
||||
youPl_Pron = mkPronPers "ihr" "euch" "euch" "eurer" "euer" Fem Pl P2 ; ---- poss
|
||||
youPol_Pron = mkPronPers "Sie" "Sie" "Ihnen" "Ihrer" "Ihr" Fem Pl P3 ;
|
||||
yes_Phr = ss "ja" ;
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,14 @@ concrete IdiomNor of Idiom = CatNor **
|
||||
ImpersCl vp = mkClause "det" (agrP3 neutrum Sg) vp ;
|
||||
GenericCl vp = mkClause "man" (agrP3 utrum Sg) vp ;
|
||||
|
||||
CleftNP np rs = mkClause "det" (agrP3 neutrum Sg)
|
||||
(insertObj (\\_ => rs.s ! np.a)
|
||||
(insertObj (\\_ => np.s ! rs.c) (predV verbBe))) ;
|
||||
|
||||
CleftAdv ad s = mkClause "det" (agrP3 neutrum Sg)
|
||||
(insertObj (\\_ => s.s ! Main)
|
||||
(insertObj (\\_ => ad.s) (predV verbBe))) ;
|
||||
|
||||
ExistNP np =
|
||||
mkClause "det" (agrP3 neutrum Sg) (insertObj
|
||||
(\\_ => np.s ! accusative) (predV (depV finne_V))) ;
|
||||
@@ -27,5 +35,8 @@ concrete IdiomNor of Idiom = CatNor **
|
||||
ProgrVP vp =
|
||||
insertObj (\\a => ["ved å"] ++ infVP vp a) (predV verbBe) ;
|
||||
|
||||
ImpPl1 vp = {s = ["lat oss"] ++ infVP vp {gn = Plg ; p = P1}} ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ incomplete concrete CatScand of Cat =
|
||||
|
||||
S = {s : Order => Str} ;
|
||||
QS = {s : QForm => Str} ;
|
||||
RS = {s : Agr => Str} ;
|
||||
RS = {s : Agr => Str ; c : NPForm} ;
|
||||
|
||||
-- Sentence
|
||||
|
||||
@@ -24,10 +24,10 @@ incomplete concrete CatScand of Cat =
|
||||
IComp = {s : AFormPos => Str} ;
|
||||
IDet = {s : Gender => Str ; n : Number ; det : DetSpecies} ;
|
||||
|
||||
-- Relative
|
||||
-- Relative; the case $c$ is for "det" clefts.
|
||||
|
||||
RCl = {s : Tense => Anteriority => Polarity => Agr => Str} ;
|
||||
RP = {s : GenNum => RCase => Str ; a : RAgr} ;
|
||||
RCl = {s : Tense => Anteriority => Polarity => Agr => Str ; c : NPForm} ;
|
||||
RP = {s : GenNum => RCase => Str ; a : RAgr} ;
|
||||
|
||||
-- Verb
|
||||
|
||||
|
||||
@@ -6,7 +6,8 @@ incomplete concrete RelativeScand of Relative =
|
||||
lin
|
||||
|
||||
RelCl cl = {
|
||||
s = \\t,a,p,ag => pronSuch ! ag.gn ++ conjThat ++ cl.s ! t ! a ! p ! Sub
|
||||
s = \\t,a,p,ag => pronSuch ! ag.gn ++ conjThat ++ cl.s ! t ! a ! p ! Sub ;
|
||||
c = NPAcc
|
||||
} ;
|
||||
|
||||
RelVP rp vp = {
|
||||
@@ -18,7 +19,8 @@ incomplete concrete RelativeScand of Relative =
|
||||
} ;
|
||||
cl = mkClause (rp.s ! ag.gn ! RNom) agr vp
|
||||
in
|
||||
cl.s ! t ! ant ! b ! Sub
|
||||
cl.s ! t ! ant ! b ! Sub ;
|
||||
c = NPNom
|
||||
} ;
|
||||
|
||||
--- We make this easy by using "som" and preposition stranding. It would be
|
||||
@@ -29,7 +31,8 @@ incomplete concrete RelativeScand of Relative =
|
||||
|
||||
RelSlash rp slash = {
|
||||
s = \\t,a,p,ag =>
|
||||
rp.s ! ag.gn ! RNom ++ slash.s ! t ! a ! p ! Sub ++ slash.c2
|
||||
rp.s ! ag.gn ! RNom ++ slash.s ! t ! a ! p ! Sub ++ slash.c2 ;
|
||||
c = NPAcc
|
||||
} ;
|
||||
|
||||
--- The case here could be genitive.
|
||||
|
||||
@@ -42,6 +42,9 @@ incomplete concrete SentenceScand of Sentence =
|
||||
|
||||
UseCl t a p cl = {s = \\o => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! o} ;
|
||||
UseQCl t a p cl = {s = \\q => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! q} ;
|
||||
UseRCl t a p cl = {s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r} ;
|
||||
UseRCl t a p cl = {
|
||||
s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r ;
|
||||
c = cl.c
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,16 @@ concrete IdiomSwe of Idiom = CatSwe **
|
||||
lin
|
||||
ImpersCl vp = mkClause "det" (agrP3 neutrum Sg) vp ;
|
||||
GenericCl vp = mkClause "man" (agrP3 utrum Sg) vp ;
|
||||
|
||||
CleftNP np rs = mkClause "det" (agrP3 neutrum Sg)
|
||||
(insertObj (\\_ => rs.s ! np.a)
|
||||
(insertObj (\\_ => np.s ! rs.c) (predV verbBe))) ;
|
||||
|
||||
CleftAdv ad s = mkClause "det" (agrP3 neutrum Sg)
|
||||
(insertObj (\\_ => s.s ! Main)
|
||||
(insertObj (\\_ => ad.s) (predV verbBe))) ;
|
||||
|
||||
|
||||
ExistNP np =
|
||||
mkClause "det" (agrP3 neutrum Sg) (insertObj
|
||||
(\\_ => np.s ! accusative) (predV (depV finna_V))) ;
|
||||
@@ -26,5 +36,8 @@ concrete IdiomSwe of Idiom = CatSwe **
|
||||
ProgrVP vp =
|
||||
insertObj (\\a => "att" ++ infVP vp a) (predV (partV hålla_V "på")) ;
|
||||
|
||||
ImpPl1 vp = {s = ["låt oss"] ++ infVP vp {gn = Plg ; p = P1}} ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user