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
}
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 = \_ -> [] ;
}

View File

@@ -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

View File

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

View File

@@ -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
} ;

View File

@@ -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
} ;

View File

@@ -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 =

View File

@@ -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)

View File

@@ -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" ;