fixes in Finnish passives and pronouns ; pass imperf still missing

This commit is contained in:
aarne
2006-03-06 22:27:23 +00:00
parent 5e70830f3c
commit 21202641a1
8 changed files with 37 additions and 21 deletions

View File

@@ -11,12 +11,12 @@ concrete IdiomFin of Idiom = CatFin **
Neg => NPCase Part -- ei ole olemassa lukua Neg => NPCase Part -- ei ole olemassa lukua
} }
in in
mkClause [] (agrP3 Sg) (insertObj mkClause noSubj (agrP3 Sg) (insertObj
(\\_,b,_ => "olemassa" ++ np.s ! cas b) (predV olla)) ; (\\_,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 ; s = \\_ => vp.s ! VIPass ;
s2 = vp.s2 ; s2 = vp.s2 ;
ext = vp.ext ; ext = vp.ext ;
@@ -38,5 +38,6 @@ concrete IdiomFin of Idiom = CatFin **
oper oper
olla = verbOlla ** {sc = NPCase Nom} ; olla = verbOlla ** {sc = NPCase Nom} ;
noSubj : Polarity -> Str = \_ -> [] ;
} }

View File

@@ -550,7 +550,17 @@ vowelHarmony : Str -> Str = \liitin ->
a = {n = n ; p = p} 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 -- Determiners

View File

@@ -69,7 +69,6 @@ oper
postPrep : Case -> Str -> Prep ; -- takana, genitive postPrep : Case -> Str -> Prep ; -- takana, genitive
postGenPrep : Str -> Prep ; -- takana postGenPrep : Str -> Prep ; -- takana
casePrep : Case -> Prep ; -- adessive casePrep : Case -> Prep ; -- adessive
accusative : Prep ;
--2 Nouns --2 Nouns

View File

@@ -10,7 +10,7 @@ concrete QuestionFin of Question = CatFin ** open ResFin, Prelude in {
QuestVP ip vp = QuestVP ip vp =
let 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 { in {
s = \\t,a,p => cl.s ! t ! a ! p ! SDecl s = \\t,a,p => cl.s ! t ! a ! p ! SDecl
} ; } ;

View File

@@ -16,7 +16,7 @@ concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin in
RNoAg => ag ; RNoAg => ag ;
RAg a => a 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 in
cl.s ! t ! ant ! b ! SDecl cl.s ! t ! ant ! b ! SDecl
} ; } ;

View File

@@ -231,10 +231,11 @@ oper
s : Tense => Anteriority => Polarity => SType => Str s : Tense => Anteriority => Polarity => SType => Str
} ; } ;
mkClause : Str -> Agr -> VP -> Clause = mkClause : (Polarity -> Str) -> Agr -> VP -> Clause =
\subj,agr,vp -> { \sub,agr,vp -> {
s = \\t,a,b,o => s = \\t,a,b,o =>
let let
subj = sub b ;
agrfin = case vp.sc of { agrfin = case vp.sc of {
NPCase Nom => <agr,True> ; NPCase Nom => <agr,True> ;
_ => <agrP3 Sg,False> -- minun täytyy, minulla on _ => <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" ; ---- questPart : Str -> Str = \on -> on ++ BIND ++ "ko" ; ----
infVP : NPForm -> Polarity -> Agr -> VP -> Str = infVP : NPForm -> Polarity -> Agr -> VP -> Str =

View File

@@ -4,9 +4,9 @@ concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin in {
lin 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 = { ImpVP vp = {
s = \\pol,n => 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$. -- The object case is formed at the use site of $c2$, in $Relative$ and $Question$.
SlashV2 np v2 = { 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 c2 = v2.c2
} ; } ;
@@ -34,7 +34,7 @@ concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin in {
in in
{s = \\t,ag,p => {s = \\t,ag,p =>
(mkClause (mkClause
(np.s ! sc) np.a (subjForm np sc) np.a
(insertObj (insertObj
(\\_,b,a => infVP vv.sc b a (predV v2)) (\\_,b,a => infVP vv.sc b a (predV v2))
(predV vv) (predV vv)

View File

@@ -29,7 +29,7 @@ concrete StructuralFin of Structural = CatFin **
by8agent_Prep = postGenPrep "toimesta" ; by8agent_Prep = postGenPrep "toimesta" ;
by8means_Prep = casePrep adessive ; by8means_Prep = casePrep adessive ;
can8know_VV = reg2V "osata" "osasi" ; can8know_VV = reg2V "osata" "osasi" ;
can_VV = regV "voida" ; can_VV = reg2V "voida" "voi" ;
during_Prep = postGenPrep "aikana" ; during_Prep = postGenPrep "aikana" ;
either7or_DConj = sd2 "joko" "tai" ** {n = Sg} ; either7or_DConj = sd2 "joko" "tai" ** {n = Sg} ;
everybody_NP = mkNP (regN "jokainen") Sg ; everybody_NP = mkNP (regN "jokainen") Sg ;
@@ -108,14 +108,14 @@ concrete StructuralFin of Structural = CatFin **
s2 = [] ; isNum,isPoss = False ; isDef = True ; s2 = [] ; isNum,isPoss = False ; isDef = True ;
} ; } ;
that_NP = that_NP =
mkPronoun "tuo" "tuon" "tuota" "tuona" "tuohon" Sg P3 ** mkDemPronoun "tuo" "tuon" "tuota" "tuona" "tuohon" Sg **
{isPron = False} ; {isPron = False} ;
there_Adv = ss "siellä" ; --- tuolla there_Adv = ss "siellä" ; --- tuolla
there7to_Adv = ss "sinne" ; there7to_Adv = ss "sinne" ;
there7from_Adv = ss "sieltä" ; there7from_Adv = ss "sieltä" ;
therefore_PConj = ss "siksi" ; therefore_PConj = ss "siksi" ;
these_NP = 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} ; {isPron = False} ;
they_Pron = mkPronoun "he" "heidän" "heitä" "heinä" "heihin" Pl P3 ; --- ne they_Pron = mkPronoun "he" "heidän" "heitä" "heinä" "heihin" Pl P3 ; --- ne
this_Quant = { this_Quant = {
@@ -130,10 +130,10 @@ concrete StructuralFin of Structural = CatFin **
s2 = [] ; isNum,isPoss = False ; isDef = True ; s2 = [] ; isNum,isPoss = False ; isDef = True ;
} ; } ;
this_NP = 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} ; {isPron = False} ;
those_NP = those_NP =
mkPronoun "nuo" "noiden" "noita" "noina" "noihin" Pl P3 ** mkDemPronoun "nuo" "noiden" "noita" "noina" "noihin" Pl **
{isPron = False} ; {isPron = False} ;
through_Prep = postGenPrep "kautta" ; through_Prep = postGenPrep "kautta" ;
too_AdA = ss "liian" ; too_AdA = ss "liian" ;
@@ -143,7 +143,7 @@ concrete StructuralFin of Structural = CatFin **
want_VV = regV "tahtoa" ; want_VV = regV "tahtoa" ;
we_Pron = mkPronoun "me" "meidän" "meitä" "meinä" "meihin" Pl P1 ; we_Pron = mkPronoun "me" "meidän" "meitä" "meinä" "meihin" Pl P1 ;
whatPl_IP = { whatPl_IP = {
s = \\c => mikaInt ! Pl ! npform2case c ; s = table {NPAcc => "mitkä" ; c => mikaInt ! Pl ! npform2case c} ;
n = Pl n = Pl
} ; } ;
whatSg_IP = { whatSg_IP = {
@@ -162,11 +162,11 @@ concrete StructuralFin of Structural = CatFin **
n = Sg n = Sg
} ; } ;
whoSg_IP = { whoSg_IP = {
s = \\c => kukaInt ! Sg ! npform2case c ; s = table {NPAcc => "kenet" ; c => kukaInt ! Sg ! npform2case c} ;
n = Sg n = Sg
} ; } ;
whoPl_IP = { whoPl_IP = {
s = \\c => kukaInt ! Pl ! npform2case c ; s = table {NPAcc => "ketkä" ; c => kukaInt ! Pl ! npform2case c} ;
n = Pl n = Pl
} ; } ;
why_IAdv = ss "miksi" ; why_IAdv = ss "miksi" ;