mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 19:42:50 -06:00
existential relative in ExtraFin
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
--# -path=.:abstract:common:prelude
|
--# -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
|
lin
|
||||||
GenNP np = {
|
GenNP np = {
|
||||||
@@ -28,6 +29,20 @@ concrete ExtraFin of ExtraFinAbs = CatFin ** open ResFin, MorphoFin, Coordinatio
|
|||||||
mkClause (\_ -> adv.s) np.a (insertObj
|
mkClause (\_ -> adv.s) np.a (insertObj
|
||||||
(\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlla ** {sc = NPCase Nom}))) ;
|
(\\_,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 =
|
AdvPredNP adv v np =
|
||||||
mkClause (\_ -> adv.s) np.a (insertObj
|
mkClause (\_ -> adv.s) np.a (insertObj
|
||||||
(\\_,b,_ => np.s ! NPCase Nom) (predV v)) ;
|
(\\_,b,_ => np.s ! NPCase Nom) (predV v)) ;
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ abstract ExtraFinAbs = Extra [
|
|||||||
AdvExistNP : Adv -> NP -> Cl ; -- kuvassa olemme me
|
AdvExistNP : Adv -> NP -> Cl ; -- kuvassa olemme me
|
||||||
AdvPredNP : Adv -> V -> NP -> Cl ; -- kuvassa hymyilee Veikko
|
AdvPredNP : Adv -> V -> NP -> Cl ; -- kuvassa hymyilee Veikko
|
||||||
|
|
||||||
|
RelExistNP : Prep -> RP -> NP -> RCl ; -- jossa on jazzia
|
||||||
|
|
||||||
i_implicPron : Pron ; -- (minä), minut, ...
|
i_implicPron : Pron ; -- (minä), minut, ...
|
||||||
whatPart_IP : IP ;
|
whatPart_IP : IP ;
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,9 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
|
|||||||
RNoAg => ag ;
|
RNoAg => ag ;
|
||||||
RAg a => a
|
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
|
in
|
||||||
cl.s ! t ! ant ! b ! SDecl ;
|
cl.s ! t ! ant ! b ! SDecl ;
|
||||||
c = NPCase Nom
|
c = NPCase Nom
|
||||||
@@ -43,11 +45,6 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
|
|||||||
a = RNoAg
|
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
|
|
||||||
} ;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -563,4 +563,10 @@ oper
|
|||||||
possSuffix : Agr -> Str = \agr ->
|
possSuffix : Agr -> Str = \agr ->
|
||||||
table Agr ["ni" ; "si" ; "nsa" ; "mme" ; "nne" ; "nsa"] ! 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
|
||||||
|
} ;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user