mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-22 17:42:51 -06:00
Fin: replaced a few selections of NPCase Nom by NPSep to work properly with prodrop: pronouns should not be dropped in those cases. This moreover gave rise to lots of spurious ambiguities.
This commit is contained in:
@@ -12,11 +12,11 @@ concrete AdjectiveFin of Adjective = CatFin ** open ResFin, StemFin, Prelude in
|
|||||||
let acomp = (snoun2nounSep {s = \\f => a.s ! Compar ! sAN f ; h = a.h}).s in {
|
let acomp = (snoun2nounSep {s = \\f => a.s ! Compar ! sAN f ; h = a.h}).s in {
|
||||||
s = \\isMod,af => case isMod of {
|
s = \\isMod,af => case isMod of {
|
||||||
True => np.s ! NPCase Part ++ acomp ! af ; -- minua isompi
|
True => np.s ! NPCase Part ++ acomp ! af ; -- minua isompi
|
||||||
_ => acomp ! af ++ "kuin" ++ np.s ! NPCase Nom -- isompi kuin minä
|
_ => acomp ! af ++ "kuin" ++ np.s ! NPSep -- isompi kuin minä
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
CAdvAP ad ap np = {
|
CAdvAP ad ap np = {
|
||||||
s = \\m,af => ad.s ++ ap.s ! m ! af ++ ad.p ++ np.s ! NPCase Nom
|
s = \\m,af => ad.s ++ ap.s ! m ! af ++ ad.p ++ np.s ! NPSep
|
||||||
} ;
|
} ;
|
||||||
UseComparA a = {
|
UseComparA a = {
|
||||||
s = \\_ => (snoun2nounSep {s = \\f => a.s ! Compar ! sAN f ; h = a.h}).s
|
s = \\_ => (snoun2nounSep {s = \\f => a.s ! Compar ! sAN f ; h = a.h}).s
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ concrete AdverbFin of Adverb = CatFin ** open ResFin, Prelude, StemFin in {
|
|||||||
lin
|
lin
|
||||||
PositAdvAdj a = {s = a.s ! Posit ! sAAdv} ;
|
PositAdvAdj a = {s = a.s ! Posit ! sAAdv} ;
|
||||||
ComparAdvAdj cadv a np = {
|
ComparAdvAdj cadv a np = {
|
||||||
s = cadv.s ++ a.s ! Posit ! sAAdv ++ cadv.p ++ np.s ! NPCase Nom
|
s = cadv.s ++ a.s ! Posit ! sAAdv ++ cadv.p ++ np.s ! NPSep
|
||||||
} ;
|
} ;
|
||||||
ComparAdvAdjS cadv a s = {
|
ComparAdvAdjS cadv a s = {
|
||||||
s = cadv.s ++ a.s ! Posit ! sAAdv ++ cadv.p ++ s.s
|
s = cadv.s ++ a.s ! Posit ! sAAdv ++ cadv.p ++ s.s
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
|||||||
|
|
||||||
AdvExistNP adv np =
|
AdvExistNP adv np =
|
||||||
mkClause (\_ -> adv.s) np.a (insertObj
|
mkClause (\_ -> adv.s) np.a (insertObj
|
||||||
(\\_,b,_ => np.s ! NPCase Nom) (predV vpVerbOlla)) ;
|
(\\_,b,_ => np.s ! NPSep) (predV vpVerbOlla)) ;
|
||||||
|
|
||||||
RelExistNP prep rp np = {
|
RelExistNP prep rp np = {
|
||||||
s = \\t,ant,bo,ag =>
|
s = \\t,ant,bo,ag =>
|
||||||
@@ -92,7 +92,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
|||||||
(\_ -> appCompl True Pos prep (rp2np n rp))
|
(\_ -> appCompl True Pos prep (rp2np n rp))
|
||||||
np.a
|
np.a
|
||||||
(insertObj
|
(insertObj
|
||||||
(\\_,b,_ => np.s ! NPCase Nom)
|
(\\_,b,_ => np.s ! NPSep)
|
||||||
(predV vpVerbOlla)) ;
|
(predV vpVerbOlla)) ;
|
||||||
in
|
in
|
||||||
cl.s ! t ! ant ! bo ! SDecl ;
|
cl.s ! t ! ant ! bo ! SDecl ;
|
||||||
@@ -105,7 +105,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
|||||||
|
|
||||||
ICompExistNP adv np =
|
ICompExistNP adv np =
|
||||||
let cl = mkClause (\_ -> adv.s ! np.a) np.a (insertObj
|
let cl = mkClause (\_ -> adv.s ! np.a) np.a (insertObj
|
||||||
(\\_,b,_ => np.s ! NPCase Nom) (predV vpVerbOlla)) ;
|
(\\_,b,_ => np.s ! NPSep) (predV vpVerbOlla)) ;
|
||||||
in {
|
in {
|
||||||
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
|
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
|
||||||
} ;
|
} ;
|
||||||
@@ -258,7 +258,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
|||||||
|
|
||||||
PassAgentVPSlash vp np = {
|
PassAgentVPSlash vp np = {
|
||||||
s = {s = vp.s.s ; h = vp.s.h ; p = vp.s.p ; sc = npform2subjcase vp.c2.c} ;
|
s = {s = vp.s.s ; h = vp.s.h ; p = vp.s.p ; sc = npform2subjcase vp.c2.c} ;
|
||||||
s2 = \\b,p,a => np.s ! NPCase Nom ++ vp.s2 ! b ! p ! a ;
|
s2 = \\b,p,a => np.s ! NPSep ++ vp.s2 ! b ! p ! a ;
|
||||||
adv = vp.adv ;
|
adv = vp.adv ;
|
||||||
ext = vp.ext ;
|
ext = vp.ext ;
|
||||||
vptyp = vp.vptyp ;
|
vptyp = vp.vptyp ;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ concrete IdiomFin of Idiom = CatFin **
|
|||||||
ExistNP np =
|
ExistNP np =
|
||||||
let
|
let
|
||||||
cas : Polarity -> NPForm = \p -> case p of {
|
cas : Polarity -> NPForm = \p -> case p of {
|
||||||
Pos => NPCase Nom ; -- on olemassa luku
|
Pos => NPSep ; -- on olemassa luku
|
||||||
Neg => NPCase Part -- ei ole olemassa lukua
|
Neg => NPCase Part -- ei ole olemassa lukua
|
||||||
}
|
}
|
||||||
in
|
in
|
||||||
@@ -27,7 +27,7 @@ concrete IdiomFin of Idiom = CatFin **
|
|||||||
|
|
||||||
CleftNP np rs = mkClause (\_ -> "se") (agrP3 Sg)
|
CleftNP np rs = mkClause (\_ -> "se") (agrP3 Sg)
|
||||||
(insertExtrapos (rs.s ! np.a)
|
(insertExtrapos (rs.s ! np.a)
|
||||||
(insertObj (\\_,_,_ => np.s ! NPCase Nom) (predV olla))) ;
|
(insertObj (\\_,_,_ => np.s ! NPSep) (predV olla))) ;
|
||||||
|
|
||||||
-- This gives the almost forbidden "se on Porissa kun Matti asuu".
|
-- This gives the almost forbidden "se on Porissa kun Matti asuu".
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@ concrete IdiomFin of Idiom = CatFin **
|
|||||||
|
|
||||||
ExistNPAdv np adv =
|
ExistNPAdv np adv =
|
||||||
mkClause (\_ -> adv.s) np.a (insertObj
|
mkClause (\_ -> adv.s) np.a (insertObj
|
||||||
(\\_,b,_ => np.s ! NPCase Nom) (predV vpVerbOlla)) ;
|
(\\_,b,_ => np.s ! NPSep) (predV vpVerbOlla)) ;
|
||||||
|
|
||||||
ExistIPAdv ip adv =
|
ExistIPAdv ip adv =
|
||||||
let
|
let
|
||||||
|
|||||||
@@ -234,7 +234,7 @@ concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, StemFin, Prelude in
|
|||||||
SentCN cn sc = {s = \\nf=> cn.s ! nf ++ sc.s;
|
SentCN cn sc = {s = \\nf=> cn.s ! nf ++ sc.s;
|
||||||
h = cn.h } ;
|
h = cn.h } ;
|
||||||
|
|
||||||
ApposCN cn np = {s = \\nf=> cn.s ! nf ++ np.s ! NPCase Nom ;
|
ApposCN cn np = {s = \\nf=> cn.s ! nf ++ np.s ! NPSep ;
|
||||||
h = cn.h } ; --- luvun x
|
h = cn.h } ; --- luvun x
|
||||||
|
|
||||||
PossNP cn np = {s = \\nf => np.s ! NPCase Gen ++ cn.s ! nf ;
|
PossNP cn np = {s = \\nf => np.s ! NPCase Gen ++ cn.s ! nf ;
|
||||||
|
|||||||
Reference in New Issue
Block a user