mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-06 09:42:50 -06:00
fixes in Finnish passives and pronouns ; pass imperf still missing
This commit is contained in:
@@ -11,12 +11,12 @@ concrete IdiomFin of Idiom = CatFin **
|
||||
Neg => NPCase Part -- ei ole olemassa lukua
|
||||
}
|
||||
in
|
||||
mkClause [] (agrP3 Sg) (insertObj
|
||||
mkClause noSubj (agrP3 Sg) (insertObj
|
||||
(\\_,b,_ => "olemassa" ++ np.s ! cas b) (predV olla)) ;
|
||||
|
||||
ImpersCl vp = mkClause [] (agrP3 Sg) vp ;
|
||||
ImpersCl vp = mkClause noSubj (agrP3 Sg) vp ;
|
||||
|
||||
GenericCl vp = mkClause [] (agrP3 Sg) {
|
||||
GenericCl vp = mkClause noSubj (agrP3 Sg) {
|
||||
s = \\_ => vp.s ! VIPass ;
|
||||
s2 = vp.s2 ;
|
||||
ext = vp.ext ;
|
||||
@@ -38,5 +38,6 @@ concrete IdiomFin of Idiom = CatFin **
|
||||
oper
|
||||
olla = verbOlla ** {sc = NPCase Nom} ;
|
||||
|
||||
noSubj : Polarity -> Str = \_ -> [] ;
|
||||
}
|
||||
|
||||
|
||||
@@ -550,7 +550,17 @@ vowelHarmony : Str -> Str = \liitin ->
|
||||
a = {n = n ; p = p}
|
||||
} ;
|
||||
|
||||
|
||||
mkDemPronoun : (_,_,_,_,_ : Str) -> Number ->
|
||||
{s : NPForm => Str ; a : Agr} =
|
||||
\tuo, tuon, tuota, tuona, tuohon, n ->
|
||||
let pro = mkPronoun tuo tuon tuota tuona tuohon n P3
|
||||
in {
|
||||
s = table {
|
||||
NPAcc => tuo ;
|
||||
c => pro.s ! c
|
||||
} ;
|
||||
a = pro.a
|
||||
} ;
|
||||
|
||||
-- Determiners
|
||||
|
||||
|
||||
@@ -69,7 +69,6 @@ oper
|
||||
postPrep : Case -> Str -> Prep ; -- takana, genitive
|
||||
postGenPrep : Str -> Prep ; -- takana
|
||||
casePrep : Case -> Prep ; -- adessive
|
||||
accusative : Prep ;
|
||||
|
||||
--2 Nouns
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ concrete QuestionFin of Question = CatFin ** open ResFin, Prelude in {
|
||||
|
||||
QuestVP ip vp =
|
||||
let
|
||||
cl = mkClause (ip.s ! vp.sc) (agrP3 ip.n) vp
|
||||
cl = mkClause (subjForm (ip ** {isPron = False ; a = agrP3 ip.n}) vp.sc) (agrP3 ip.n) vp
|
||||
in {
|
||||
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
|
||||
} ;
|
||||
|
||||
@@ -16,7 +16,7 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
|
||||
RNoAg => ag ;
|
||||
RAg a => a
|
||||
} ;
|
||||
cl = mkClause (rp.s ! agr.n ! 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
|
||||
} ;
|
||||
|
||||
@@ -231,10 +231,11 @@ oper
|
||||
s : Tense => Anteriority => Polarity => SType => Str
|
||||
} ;
|
||||
|
||||
mkClause : Str -> Agr -> VP -> Clause =
|
||||
\subj,agr,vp -> {
|
||||
mkClause : (Polarity -> Str) -> Agr -> VP -> Clause =
|
||||
\sub,agr,vp -> {
|
||||
s = \\t,a,b,o =>
|
||||
let
|
||||
subj = sub b ;
|
||||
agrfin = case vp.sc of {
|
||||
NPCase Nom => <agr,True> ;
|
||||
_ => <agrP3 Sg,False> -- minun täytyy, minulla on
|
||||
@@ -248,6 +249,11 @@ oper
|
||||
}
|
||||
} ;
|
||||
|
||||
-- This is used for subjects of passives: therefore isFin in False.
|
||||
|
||||
subjForm : NP -> NPForm -> Polarity -> Str = \np,sc,b ->
|
||||
appCompl False b {s = [] ; c = sc ; isPre = True} np ;
|
||||
|
||||
questPart : Str -> Str = \on -> on ++ BIND ++ "ko" ; ----
|
||||
|
||||
infVP : NPForm -> Polarity -> Agr -> VP -> Str =
|
||||
|
||||
@@ -4,9 +4,9 @@ concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin in {
|
||||
|
||||
lin
|
||||
|
||||
PredVP np vp = mkClause (np.s ! vp.sc) np.a vp ;
|
||||
PredVP np vp = mkClause (subjForm np vp.sc) np.a vp ;
|
||||
|
||||
PredSCVP sc vp = mkClause sc.s (agrP3 Sg) vp ;
|
||||
PredSCVP sc vp = mkClause (\_ -> sc.s) (agrP3 Sg) vp ;
|
||||
|
||||
ImpVP vp = {
|
||||
s = \\pol,n =>
|
||||
@@ -21,7 +21,7 @@ concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin in {
|
||||
-- The object case is formed at the use site of $c2$, in $Relative$ and $Question$.
|
||||
|
||||
SlashV2 np v2 = {
|
||||
s = \\t,a,p => (mkClause (np.s ! v2.sc) np.a (predV v2)).s ! t ! a ! p ! SDecl ;
|
||||
s = \\t,a,p => (mkClause (subjForm np v2.sc) np.a (predV v2)).s ! t ! a ! p ! SDecl ;
|
||||
c2 = v2.c2
|
||||
} ;
|
||||
|
||||
@@ -34,7 +34,7 @@ concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin in {
|
||||
in
|
||||
{s = \\t,ag,p =>
|
||||
(mkClause
|
||||
(np.s ! sc) np.a
|
||||
(subjForm np sc) np.a
|
||||
(insertObj
|
||||
(\\_,b,a => infVP vv.sc b a (predV v2))
|
||||
(predV vv)
|
||||
|
||||
@@ -29,7 +29,7 @@ concrete StructuralFin of Structural = CatFin **
|
||||
by8agent_Prep = postGenPrep "toimesta" ;
|
||||
by8means_Prep = casePrep adessive ;
|
||||
can8know_VV = reg2V "osata" "osasi" ;
|
||||
can_VV = regV "voida" ;
|
||||
can_VV = reg2V "voida" "voi" ;
|
||||
during_Prep = postGenPrep "aikana" ;
|
||||
either7or_DConj = sd2 "joko" "tai" ** {n = Sg} ;
|
||||
everybody_NP = mkNP (regN "jokainen") Sg ;
|
||||
@@ -108,14 +108,14 @@ concrete StructuralFin of Structural = CatFin **
|
||||
s2 = [] ; isNum,isPoss = False ; isDef = True ;
|
||||
} ;
|
||||
that_NP =
|
||||
mkPronoun "tuo" "tuon" "tuota" "tuona" "tuohon" Sg P3 **
|
||||
mkDemPronoun "tuo" "tuon" "tuota" "tuona" "tuohon" Sg **
|
||||
{isPron = False} ;
|
||||
there_Adv = ss "siellä" ; --- tuolla
|
||||
there7to_Adv = ss "sinne" ;
|
||||
there7from_Adv = ss "sieltä" ;
|
||||
therefore_PConj = ss "siksi" ;
|
||||
these_NP =
|
||||
mkPronoun "nämä" "näiden" "näitä" "näinä" "näihin" Pl P3 **
|
||||
mkDemPronoun "nämä" "näiden" "näitä" "näinä" "näihin" Pl **
|
||||
{isPron = False} ;
|
||||
they_Pron = mkPronoun "he" "heidän" "heitä" "heinä" "heihin" Pl P3 ; --- ne
|
||||
this_Quant = {
|
||||
@@ -130,10 +130,10 @@ concrete StructuralFin of Structural = CatFin **
|
||||
s2 = [] ; isNum,isPoss = False ; isDef = True ;
|
||||
} ;
|
||||
this_NP =
|
||||
mkPronoun "tämä" "tämän" "tätä" "tänä" "tähän" Sg P3 **
|
||||
mkDemPronoun "tämä" "tämän" "tätä" "tänä" "tähän" Sg **
|
||||
{isPron = False} ;
|
||||
those_NP =
|
||||
mkPronoun "nuo" "noiden" "noita" "noina" "noihin" Pl P3 **
|
||||
mkDemPronoun "nuo" "noiden" "noita" "noina" "noihin" Pl **
|
||||
{isPron = False} ;
|
||||
through_Prep = postGenPrep "kautta" ;
|
||||
too_AdA = ss "liian" ;
|
||||
@@ -143,7 +143,7 @@ concrete StructuralFin of Structural = CatFin **
|
||||
want_VV = regV "tahtoa" ;
|
||||
we_Pron = mkPronoun "me" "meidän" "meitä" "meinä" "meihin" Pl P1 ;
|
||||
whatPl_IP = {
|
||||
s = \\c => mikaInt ! Pl ! npform2case c ;
|
||||
s = table {NPAcc => "mitkä" ; c => mikaInt ! Pl ! npform2case c} ;
|
||||
n = Pl
|
||||
} ;
|
||||
whatSg_IP = {
|
||||
@@ -162,11 +162,11 @@ concrete StructuralFin of Structural = CatFin **
|
||||
n = Sg
|
||||
} ;
|
||||
whoSg_IP = {
|
||||
s = \\c => kukaInt ! Sg ! npform2case c ;
|
||||
s = table {NPAcc => "kenet" ; c => kukaInt ! Sg ! npform2case c} ;
|
||||
n = Sg
|
||||
} ;
|
||||
whoPl_IP = {
|
||||
s = \\c => kukaInt ! Pl ! npform2case c ;
|
||||
s = table {NPAcc => "ketkä" ; c => kukaInt ! Pl ! npform2case c} ;
|
||||
n = Pl
|
||||
} ;
|
||||
why_IAdv = ss "miksi" ;
|
||||
|
||||
Reference in New Issue
Block a user