resource = resource-1.0

This commit is contained in:
aarne
2006-06-22 22:25:55 +00:00
parent 7e5584b1ab
commit 251bc4c738
881 changed files with 31130 additions and 31130 deletions

View File

@@ -1,114 +1,306 @@
--# -path=.:../abstract:../../prelude
concrete StructuralFin of Structural = CatFin **
open MorphoFin, ParadigmsFin, Prelude in {
--1 The Top-Level Finnish Resource Grammar: Structural Words
--
-- Aarne Ranta 2002 -- 2005
--
concrete StructuralFin of Structural =
CategoriesFin, NumeralsFin ** open Prelude, SyntaxFin in {
flags optimize=all ;
lin
above_Prep = postGenPrep "yläpuolella" ;
after_Prep = postGenPrep "jälkeen" ;
UseNumeral i = {s = \\np => i.s ! NCase Sg (npForm2Case Sg np) ; n = i.n ; isNum = True} ;
above_Prep = prepPostpGen "yläpuolella" ;
after_Prep = prepPostpGen "jälkeen" ;
all8mass_Det = mkDeterminer singular (kaikkiPron Sg) ;
all_NDet = mkDeterminerNum (kaikkiPron Pl) ;
almost_Adv = ss "melkein" ;
although_Subj = ss "vaikka" ;
all_Predet = {s = \\n,c =>
let
kaiket = caseTable n (nhn (sKorpi "kaikki" "kaiken" "kaikkena"))
in
case npform2case n c of {
Nom => "kaikki" ;
k => kaiket ! k
}
} ;
almost_AdA, almost_AdN = ss "melkein" ;
although_Subj = ss "vaikka" ;
always_AdV = ss "aina" ;
and_Conj = ss "ja" ** {n = Pl} ;
because_Subj = ss "koska" ;
before_Prep = prepPrep "ennen" Part ;
behind_Prep = prepPostpGen "takana" ;
between_Prep = prepPostpGen "välissä" ;
both_AndConjD = sd2 "sekä" "että" ** {n = Pl} ;
by8agent_Prep = prepPostpGen "toimesta" ;
by8means_Prep = prepPostpGen "avulla" ;
---- can8know_VV = nomVerbVerb (vOsata "osata") ;
---- can_VV = nomVerbVerb (vJuoda "voida" "voi") ;
during_Prep = prepPostpGen "aikana" ;
either8or_ConjD = sd2 "joko" "tai" ** {n = Sg} ;
everybody_NP = {
s = \\f => kaikkiPron Pl ! (npForm2Case Pl f) ; -- näin kaikki
n = Pl ;
p = NP3
} ;
every_Det = jokainenDet ;
everything_NP = {
s = \\f => kaikkiPron Sg ! (npForm2Case Sg f) ; -- näin kaiken
n = Sg ;
p = NP3
} ;
before_Prep = prePrep partitive "ennen" ;
behind_Prep = postGenPrep "takana" ;
between_Prep = postGenPrep "välissä" ;
both7and_DConj = sd2 "sekä" "että" ** {n = Pl} ;
but_PConj = ss "mutta" ;
by8agent_Prep = postGenPrep "toimesta" ;
by8means_Prep = casePrep adessive ;
can8know_VV = reg2V "osata" "osasi" ;
can_VV = reg2V "voida" "voi" ;
during_Prep = postGenPrep "aikana" ;
either7or_DConj = sd2 "joko" "tai" ** {n = Sg} ;
everybody_NP = mkNP (regN "jokainen") Sg ;
every_Det = mkDet Sg (regN "jokainen") ;
everything_NP = mkNP ((nhn (sKorpi "kaikki" "kaiken" "kaikkena")) **
{lock_N = <>}) Sg ;
everywhere_Adv = ss "kaikkialla" ;
from_Prep = prepCase Elat ; --- ablat
he_NP = pronNounPhrase pronHan ;
how_IAdv = ss "kuinka" ;
few_Det = mkDet Sg (regN "harva") ;
first_Ord = {s = \\n,c => (regN "ensimmäinen").s ! NCase n c} ;
from_Prep = casePrep elative ;
he_Pron = mkPronoun "hän" "hänen" "häntä" "hänenä" "häneen" Sg P3 ;
here_Adv = ss "täällä" ;
here7to_Adv = ss "tänne" ;
here7from_Adv = ss "täältä" ;
how_IAdv = ss "miten" ;
how8many_IDet =
{s = \\c => "kuinka" ++ (reg2N "moni" "monia").s ! NCase Sg c ; n = Sg} ;
if_Subj = ss "jos" ;
in8front_Prep = prepPostpGen "edessä" ;
i_NP = pronNounPhrase pronMina ;
in_Prep = prepCase Iness ;
it_NP = nameNounPhrase pronSe ;
many_Det = mkDeterminer singular moniPron ;
most8many_Det = useimmatDet ;
most_Det = mkDeterminer singular (caseTable singular (nhn (sSuurin "enintä"))) ;
much_Det = mkDeterminer singular (caseTable singular (nhn (sNauris "runsasta"))) ;
---- must_VV = vHukkua "täytyä" "täydy" ** {c = CCase Gen} ;
no_Phr = ss ("Ei" ++ stopPunct) ;
on_Prep = prepCase Adess ;
or_Conj = ss "tai" ** {n = Sg} ;
otherwise_Adv = ss "muuten" ;
part_Prep = prepCase Part ;
possess_Prep = prepCase Gen ;
quite_Adv = ss "aika" ;
she_NP = pronNounPhrase pronHan ;
so_Adv = ss "niin" ;
somebody_NP = {
s = \\f => jokuPron ! Sg ! (npForm2Case Sg f) ;
n = Sg ;
p = NP3
in8front_Prep = postGenPrep "edessä" ;
i_Pron = mkPronoun "minä" "minun" "minua" "minuna" "minuun" Sg P1 ;
in_Prep = casePrep inessive ;
it_Pron = {
s = \\c => pronSe.s ! npform2case Sg c ;
a = agrP3 Sg ;
isPron = False
} ;
less_CAdv = ss "vähemmän" ;
many_Det = mkDet Sg (reg2N "moni" "monia") ;
more_CAdv = ss "enemmän" ;
most_Predet = {s = \\n,c => (nhn (sSuurin "useinta")).s ! NCase n (npform2case n c)} ;
much_Det = mkDet Sg {s = \\_ => "paljon"} ;
must_VV = subjcaseV (regV "täytyä") genitive ;
no_Phr = ss "ei" ;
on_Prep = casePrep adessive ;
one_Quant = mkDet Sg
(nhn (mkSubst "ä" "yksi" "yhde" "yhte" "yhtä" "yhteen" "yksi" "yksi"
"yksien" "yksiä" "yksiin")) ;
only_Predet = {s = \\_,_ => "vain"} ;
or_Conj = ss "tai" ** {n = Sg} ;
otherwise_PConj = ss "muuten" ;
part_Prep = casePrep partitive ;
please_Voc = ss ["ole hyvä"] ; --- number
possess_Prep = casePrep genitive ;
quite_Adv = ss "melko" ;
she_Pron = mkPronoun "hän" "hänen" "häntä" "hänenä" "häneen" Sg P3 ;
so_AdA = ss "niin" ;
somebody_NP = {
s = \\c => jokuPron ! Sg ! npform2case Sg c ;
a = agrP3 Sg ;
isPron = False
} ;
someSg_Det = {
s1 = jokuPron ! Sg ;
s2 = [] ;
isNum,isPoss = False ; isDef = True ; n = Sg
} ;
somePl_Det = {
s1 = jokuPron ! Pl ;
s2 = [] ; isNum,isPoss = False ; isDef = True ;
n = Pl
} ;
some_Det = mkDeterminerGen Sg (jokinPron ! Sg) (jokuPron ! Sg) ;
some_NDet = mkDeterminerGenNum (jokinPron ! Pl) (jokuPron ! Pl) ;
something_NP = {
s = \\f => jokinPron ! Sg ! (npForm2Case Sg f) ; -- näin kaiken
n = Sg ;
p = NP3
s = \\c => jokinPron ! Sg ! npform2case Sg c ;
a = agrP3 Sg ;
isPron = False
} ;
somewhere_Adv = ss "jossain" ;
that_Det = mkDeterminer Sg (\\c => pronTuo.s ! PCase c) ;
that_NP = pronNounPhraseNP pronTuo ;
therefore_Adv = ss "siksi" ;
these_NDet = mkDeterminerNum (\\c => pronNama.s ! PCase c) ;
they_NP = pronNounPhrase pronHe ; --- ne
this_Det = mkDeterminer Sg (\\c => pronTama.s ! PCase c) ;
this_NP = pronNounPhraseNP pronTama ;
those_NDet = mkDeterminerNum (\\c => pronNuo.s ! PCase c) ;
thou_NP = pronNounPhrase pronSina ;
through_Prep = prepPostpGen "kautta" ;
too_Adv = ss "liian" ;
to_Prep = prepCase Illat ; --- allat
under_Prep = prepPostpGen "alla" ;
very_Adv = ss "hyvin" ;
---- want_VV = nomVerbVerb (vOsata "haluta") ;
we_NP = pronNounPhrase pronMe ;
what8many_IP = intPronWhat Pl ;
what8one_IP = intPronWhat Sg ;
when_IAdv = ss "koska" ;
that_Quant = {
s1 = table Number [
table Case {
c => (mkPronoun "tuo" "tuon" "tuota" "tuona" "tuohon" Sg P3).s ! NPCase c
} ;
table Case {
c => (mkPronoun "nuo" "noiden" "noita" "noina" "noihin" Sg P3).s ! NPCase c
}
] ;
s2 = [] ; isNum,isPoss = False ; isDef = True ;
} ;
that_NP =
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 =
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 = {
s1 = table Number [
table Case {
c => (mkPronoun "tämä" "tämän" "tätä" "tänä" "tähän" Sg P3).s ! NPCase c
} ;
table Case {
c => (mkPronoun "nuo" "noiden" "noita" "noina" "noihin" Sg P3).s ! NPCase c
}
] ;
s2 = [] ; isNum,isPoss = False ; isDef = True ;
} ;
this_NP =
mkDemPronoun "tämä" "tämän" "tätä" "tänä" "tähän" Sg **
{isPron = False} ;
those_NP =
mkDemPronoun "nuo" "noiden" "noita" "noina" "noihin" Pl **
{isPron = False} ;
through_Prep = postGenPrep "kautta" ;
too_AdA = ss "liian" ;
to_Prep = casePrep illative ; --- allative
under_Prep = postGenPrep "alla" ;
very_AdA = ss "erittäin" ;
want_VV = regV "tahtoa" ;
we_Pron = mkPronoun "me" "meidän" "meitä" "meinä" "meihin" Pl P1 ;
whatPl_IP = {
s = table {NPAcc => "mitkä" ; c => mikaInt ! Pl ! npform2case Pl c} ;
n = Pl
} ;
whatSg_IP = {
s = \\c => mikaInt ! Sg ! npform2case Sg c ;
n = Sg
} ;
when_IAdv = ss "milloin" ;
when_Subj = ss "kun" ;
where_IAdv = ss "missä" ;
which8one_IDet = mikaDet ;
---- which8many_IDet n = mkDeterminerGenNum n (mikaInt ! Pl) (kukaInt ! Pl) ;
who8many_IP = intPronWho Pl ;
who8one_IP = intPronWho Sg ;
whichPl_IDet = {
s = mikaInt ! Pl ;
n = Pl
} ;
whichSg_IDet = {
s = mikaInt ! Sg ;
n = Sg
} ;
whoSg_IP = {
s = table {NPAcc => "kenet" ; c => kukaInt ! Sg ! npform2case Sg c} ;
n = Sg
} ;
whoPl_IP = {
s = table {NPAcc => "ketkä" ; c => kukaInt ! Pl ! npform2case Pl c} ;
n = Pl
} ;
why_IAdv = ss "miksi" ;
without_Prep = prepPrep "ilman" Part ;
with_Prep = prepPostpGen "kanssa" ;
ye_NP = pronNounPhrase pronTe ;
yes_Phr = ss ("Kyllä" ++ stopPunct) ;
you_NP = pronNounPhrase pronTe ;
without_Prep = prePrep partitive "ilman" ;
with_Prep = postGenPrep "kanssa" ;
yes_Phr = ss "kyllä" ;
youSg_Pron = mkPronoun "sinä" "sinun" "sinua" "sinuna" "sinuun" Sg P2 ;
youPl_Pron = mkPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 ;
youPol_Pron = mkPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 ; --- Sg
oper
jokuPron : Number => Case => Str =
let
ku = nhn (sPuu "ku") ;
kui = nhn (sPuu "kuu")
in
table {
Sg => table {
Nom => "joku" ;
Gen => "jonkun" ;
c => relPron ! Sg ! c + ku.s ! NCase Sg c
} ;
Pl => table {
Nom => "jotkut" ;
c => relPron ! Pl ! c + kui.s ! NCase Pl c
}
} ;
jokinPron : Number => Case => Str =
table {
Sg => table {
Nom => "jokin" ;
Gen => "jonkin" ;
c => relPron ! Sg ! c + "kin"
} ;
Pl => table {
Nom => "jotkin" ;
c => relPron ! Pl ! c + "kin"
}
} ;
mikaInt : Number => Case => Str =
let {
mi = nhn (sSuo "mi")
} in
table {
Sg => table {
Nom => "mikä" ;
Gen => "minkä" ;
c => mi.s ! NCase Sg c
} ;
Pl => table {
Nom => "mitkä" ;
Gen => "mittenkä" ;
c => mi.s ! NCase Sg c
}
} ;
kukaInt : Number => Case => Str =
let {
ku = nhn (sRae "kuka" "kenenä") ;
ket = nhn (sRae "kuka" "keinä")} in
table {
Sg => table {
Nom => "kuka" ;
Part => "ketä" ;
Illat => "keneen" ;
c => ku.s ! NCase Sg c
} ;
Pl => table {
Nom => "ketkä" ;
Illat => "keihin" ;
c => ket.s ! NCase Pl c
}
} ;
mikaanPron : Number => Case => Str = \\n,c =>
case <n,c> of {
<Sg,Nom> => "mikään" ;
<_,Part> => "mitään" ;
<Sg,Gen> => "minkään" ;
<Pl,Nom> => "mitkään" ;
<Pl,Gen> => "mittenkään" ;
<_,Ess> => "minään" ;
<_,Iness> => "missään" ;
<_,Elat> => "mistään" ;
<_,Adess> => "millään" ;
<_,Ablat> => "miltään" ;
_ => mikaInt ! n ! c + "kään"
} ;
kukaanPron : Number => Case => Str =
table {
Sg => table {
Nom => "kukaan" ;
Part => "ketään" ;
Ess => "kenään" ;
Iness => "kessään" ;
Elat => "kestään" ;
Illat => "kehenkään" ;
Adess => "kellään" ;
Ablat => "keltään" ;
c => kukaInt ! Sg ! c + "kään"
} ;
Pl => table {
Nom => "ketkään" ;
Part => "keitään" ;
Ess => "keinään" ;
Iness => "keissään" ;
Elat => "keistään" ;
Adess => "keillään" ;
Ablat => "keiltään" ;
c => kukaInt ! Pl ! c + "kään"
}
} ;
pronSe : ProperName = {
s = table {
Nom => "se" ;
Gen => "sen" ;
Part => "sitä" ;
Transl => "siksi" ;
Ess => "sinä" ;
Iness => "siinä" ;
Elat => "siitä" ;
Illat => "siihen" ;
Adess => "sillä" ;
Ablat => "siltä" ;
Allat => "sille" ;
Abess => "sittä"
} ;
} ;
}