mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-13 23:09:31 -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 {
|
||||
s = \\isMod,af => case isMod of {
|
||||
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 = {
|
||||
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 = {
|
||||
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
|
||||
PositAdvAdj a = {s = a.s ! Posit ! sAAdv} ;
|
||||
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 = {
|
||||
s = cadv.s ++ a.s ! Posit ! sAAdv ++ cadv.p ++ s.s
|
||||
|
||||
@@ -82,7 +82,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
|
||||
AdvExistNP adv np =
|
||||
mkClause (\_ -> adv.s) np.a (insertObj
|
||||
(\\_,b,_ => np.s ! NPCase Nom) (predV vpVerbOlla)) ;
|
||||
(\\_,b,_ => np.s ! NPSep) (predV vpVerbOlla)) ;
|
||||
|
||||
RelExistNP prep rp np = {
|
||||
s = \\t,ant,bo,ag =>
|
||||
@@ -92,7 +92,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
(\_ -> appCompl True Pos prep (rp2np n rp))
|
||||
np.a
|
||||
(insertObj
|
||||
(\\_,b,_ => np.s ! NPCase Nom)
|
||||
(\\_,b,_ => np.s ! NPSep)
|
||||
(predV vpVerbOlla)) ;
|
||||
in
|
||||
cl.s ! t ! ant ! bo ! SDecl ;
|
||||
@@ -105,7 +105,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
|
||||
ICompExistNP adv np =
|
||||
let cl = mkClause (\_ -> adv.s ! np.a) np.a (insertObj
|
||||
(\\_,b,_ => np.s ! NPCase Nom) (predV vpVerbOlla)) ;
|
||||
(\\_,b,_ => np.s ! NPSep) (predV vpVerbOlla)) ;
|
||||
in {
|
||||
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
|
||||
} ;
|
||||
@@ -258,7 +258,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
|
||||
PassAgentVPSlash vp np = {
|
||||
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 ;
|
||||
ext = vp.ext ;
|
||||
vptyp = vp.vptyp ;
|
||||
|
||||
@@ -7,7 +7,7 @@ concrete IdiomFin of Idiom = CatFin **
|
||||
ExistNP np =
|
||||
let
|
||||
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
|
||||
}
|
||||
in
|
||||
@@ -27,7 +27,7 @@ concrete IdiomFin of Idiom = CatFin **
|
||||
|
||||
CleftNP np rs = mkClause (\_ -> "se") (agrP3 Sg)
|
||||
(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".
|
||||
|
||||
@@ -76,7 +76,7 @@ concrete IdiomFin of Idiom = CatFin **
|
||||
|
||||
ExistNPAdv np adv =
|
||||
mkClause (\_ -> adv.s) np.a (insertObj
|
||||
(\\_,b,_ => np.s ! NPCase Nom) (predV vpVerbOlla)) ;
|
||||
(\\_,b,_ => np.s ! NPSep) (predV vpVerbOlla)) ;
|
||||
|
||||
ExistIPAdv ip adv =
|
||||
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;
|
||||
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
|
||||
|
||||
PossNP cn np = {s = \\nf => np.s ! NPCase Gen ++ cn.s ! nf ;
|
||||
@@ -242,7 +242,7 @@ concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, StemFin, Prelude in
|
||||
} ;
|
||||
|
||||
PartNP cn np = {s = \\nf => cn.s ! nf ++ np.s ! NPCase Part ;
|
||||
h = cn.h ---- gives "lasin viiniänsa" ; should be "lasinsa viiniä"
|
||||
h = cn.h ---- gives "lasin viiniänsa" ; should be "lasinsa viiniä"
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user