existential relative in ExtraFin

This commit is contained in:
aarne
2007-02-24 15:21:30 +00:00
parent 0e0bcfee2f
commit fab99103c4
4 changed files with 28 additions and 8 deletions

View File

@@ -1,6 +1,7 @@
--# -path=.:abstract:common:prelude
concrete ExtraFin of ExtraFinAbs = CatFin ** open ResFin, MorphoFin, Coordination, Prelude, StructuralFin in {
concrete ExtraFin of ExtraFinAbs = CatFin **
open ResFin, MorphoFin, Coordination, Prelude, StructuralFin in {
lin
GenNP np = {
@@ -28,6 +29,20 @@ concrete ExtraFin of ExtraFinAbs = CatFin ** open ResFin, MorphoFin, Coordinatio
mkClause (\_ -> adv.s) np.a (insertObj
(\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlla ** {sc = NPCase Nom}))) ;
RelExistNP prep rp np = {
s = \\t,ant,bo,ag =>
let cl =
mkClause
(\_ -> appCompl True Pos prep (rp2np ag.n rp))
np.a
(insertObj
(\\_,b,_ => np.s ! NPCase Nom)
(predV (verbOlla ** {sc = NPCase Nom}))) ;
in
cl.s ! t ! ant ! bo ! SDecl ;
c = NPCase Nom
} ;
AdvPredNP adv v np =
mkClause (\_ -> adv.s) np.a (insertObj
(\\_,b,_ => np.s ! NPCase Nom) (predV v)) ;

View File

@@ -5,6 +5,8 @@ abstract ExtraFinAbs = Extra [
AdvExistNP : Adv -> NP -> Cl ; -- kuvassa olemme me
AdvPredNP : Adv -> V -> NP -> Cl ; -- kuvassa hymyilee Veikko
RelExistNP : Prep -> RP -> NP -> RCl ; -- jossa on jazzia
i_implicPron : Pron ; -- (minä), minut, ...
whatPart_IP : IP ;

View File

@@ -17,7 +17,9 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
RNoAg => ag ;
RAg a => a
} ;
cl = mkClause (subjForm {s = rp.s ! agr.n ; a = agr ; isPron = False} vp.sc) agr vp
cl = mkClause
(subjForm {s = rp.s ! agr.n ;
a = agr ; isPron = False} vp.sc) agr vp
in
cl.s ! t ! ant ! b ! SDecl ;
c = NPCase Nom
@@ -43,11 +45,6 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
a = RNoAg
} ;
oper
rp2np : Number -> {s : Number => NPForm => Str ; a : RAgr} -> NP = \n,rp -> {
s = rp.s ! n ;
a = agrP3 Sg ; -- does not matter (--- at least in Slash)
isPron = False -- has no special accusative
} ;
}

View File

@@ -563,4 +563,10 @@ oper
possSuffix : Agr -> Str = \agr ->
table Agr ["ni" ; "si" ; "nsa" ; "mme" ; "nne" ; "nsa"] ! agr ;
oper
rp2np : Number -> {s : Number => NPForm => Str ; a : RAgr} -> NP = \n,rp -> {
s = rp.s ! n ;
a = agrP3 Sg ; -- does not matter (--- at least in Slash)
isPron = False -- has no special accusative
} ;
}