mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-03 08:12:51 -06:00
Convert many RGL modules from Latin-1 to UTF-8 to speed up compilation
Also add flags coding=utf8 to silence warnings.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
--# -coding=latin1
|
||||
concrete AdjectiveFin of Adjective = CatFin ** open ResFin, StemFin, Prelude in {
|
||||
|
||||
flags optimize=all_subs ; -- gfc size from 2864336 to 6786 - i.e. factor 422
|
||||
coding=utf8 ;
|
||||
|
||||
lin
|
||||
|
||||
@@ -12,7 +12,7 @@ concrete AdjectiveFin of Adjective = CatFin ** open ResFin, StemFin, Prelude in
|
||||
let acomp = (snoun2nounSep {s = \\f => a.s ! Compar ! sAN f ; h = a.h}).s in {
|
||||
s = \\isMod,af => case isMod of {
|
||||
True => np.s ! NPCase Part ++ acomp ! af ; -- minua isompi
|
||||
_ => acomp ! af ++ "kuin" ++ np.s ! NPCase Nom -- isompi kuin minä
|
||||
_ => acomp ! af ++ "kuin" ++ np.s ! NPCase Nom -- isompi kuin minä
|
||||
}
|
||||
} ;
|
||||
CAdvAP ad ap np = {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
--# -coding=latin1
|
||||
concrete AdverbFin of Adverb = CatFin ** open ResFin, Prelude, StemFin in {
|
||||
flags coding=utf8 ;
|
||||
|
||||
lin
|
||||
PositAdvAdj a = {s = a.s ! Posit ! sAAdv} ;
|
||||
@@ -14,7 +14,7 @@ concrete AdverbFin of Adverb = CatFin ** open ResFin, Prelude, StemFin in {
|
||||
|
||||
AdAdv = cc2 ;
|
||||
|
||||
PositAdAAdj a = {s = sANGen (a.s ! Posit)} ; -- älyttömän
|
||||
PositAdAAdj a = {s = sANGen (a.s ! Posit)} ; -- älyttömän
|
||||
|
||||
SubjS = cc2 ;
|
||||
----b AdvSC s = s ;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--# -coding=latin1
|
||||
concrete CatFin of Cat = CommonX ** open ResFin, StemFin, Prelude in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
coding=utf8 ;
|
||||
|
||||
lincat
|
||||
|
||||
@@ -40,7 +40,7 @@ concrete CatFin of Cat = CommonX ** open ResFin, StemFin, Prelude in {
|
||||
-- Adjective
|
||||
|
||||
-- The $Bool$ tells whether usage is modifying (as opposed to
|
||||
-- predicative), e.g. "x on suurempi kuin y" vs. "y:tä suurempi luku".
|
||||
-- predicative), e.g. "x on suurempi kuin y" vs. "y:tä suurempi luku".
|
||||
|
||||
AP = {s : Bool => NForm => Str} ;
|
||||
|
||||
@@ -53,13 +53,13 @@ concrete CatFin of Cat = CommonX ** open ResFin, StemFin, Prelude in {
|
||||
NP = {s : NPForm => Str ; a : Agr ; isPron : Bool ; isNeg : Bool} ;
|
||||
Det = {
|
||||
s1 : Case => Str ; -- minun kolme
|
||||
s2 : Harmony => Str ; -- -ni (Front for -nsä, Back for -nsa)
|
||||
s2 : Harmony => Str ; -- -ni (Front for -nsä, Back for -nsa)
|
||||
sp : Case => Str ; -- se (substantival form)
|
||||
n : Number ; -- Pl (agreement feature for verb)
|
||||
isNum : Bool ; -- True (a numeral is present)
|
||||
isPoss : Bool ; -- True (a possessive suffix is present)
|
||||
isDef : Bool ; -- True (verb agrees in Pl, Nom is not Part)
|
||||
isNeg : Bool -- False (only True for "mikään", "kukaan")
|
||||
isNeg : Bool -- False (only True for "mikään", "kukaan")
|
||||
} ;
|
||||
---- QuantSg, QuantPl = {s1 : Case => Str ; s2 : Str ; isPoss, isDef : Bool} ;
|
||||
Ord = {s : NForm => Str} ;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
concrete ConstructionFin of Construction = CatFin **
|
||||
open SyntaxFin, SymbolicFin, ParadigmsFin, (L = LexiconFin), (E = ExtraFin), (R = ResFin), Prelude in {
|
||||
flags coding=utf8 ;
|
||||
|
||||
lin
|
||||
hungry_VP = mkVP have_V2 (lin NP (mkNP (ParadigmsFin.mkN "nälkä"))) ;
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
--# -path=.:abstract:common:prelude
|
||||
--# -coding=latin1
|
||||
|
||||
concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
open ResFin, MorphoFin, Coordination, Prelude, NounFin, VerbFin, StructuralFin, StemFin, (R = ParamX) in {
|
||||
|
||||
flags coding=utf8 ;
|
||||
lin
|
||||
GenNP np = {
|
||||
s1,sp = \\_,_ => np.s ! NPCase Gen ;
|
||||
s2 = case np.isPron of { -- "isän auto", "hänen autonsa"
|
||||
s2 = case np.isPron of { -- "isän auto", "hänen autonsa"
|
||||
True => table {Front => BIND ++ possSuffixFront np.a ;
|
||||
Back => BIND ++ possSuffix np.a } ;
|
||||
False => \\_ => []
|
||||
@@ -50,8 +50,8 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
|
||||
[VPS] = {
|
||||
s1,s2 : Agr => Str ;
|
||||
sc : SubjCase ; --- take the first: minä osaan kutoa ja täytyy virkata
|
||||
h : Harmony --- take the first: osaanko minä kutoa ja käyn koulua
|
||||
sc : SubjCase ; --- take the first: minä osaan kutoa ja täytyy virkata
|
||||
h : Harmony --- take the first: osaanko minä kutoa ja käyn koulua
|
||||
} ;
|
||||
|
||||
lin
|
||||
@@ -120,7 +120,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
-- i_implicPron = mkPronoun [] "minun" "minua" "minuna" "minuun" Sg P1 ;
|
||||
whatPart_IP = {
|
||||
s = table {
|
||||
NPCase Nom | NPAcc => "mitä" ;
|
||||
NPCase Nom | NPAcc => "mitä" ;
|
||||
c => whatSg_IP.s ! c
|
||||
} ;
|
||||
n = Sg
|
||||
@@ -150,7 +150,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
let
|
||||
n = complNumAgr agr ;
|
||||
c = case n of {
|
||||
Sg => Nom ; -- minä olen iso ; te olette iso
|
||||
Sg => Nom ; -- minä olen iso ; te olette iso
|
||||
Pl => ResFin.Part -- me olemme isoja ; te olette isoja
|
||||
} --- definiteness of NP ?
|
||||
in "kuinka" ++ ap.s ! False ! (NCase n c)
|
||||
@@ -161,13 +161,13 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
ProDrop p = {
|
||||
s = table {NPCase (Nom) => [] ; c => p.s ! c} ;
|
||||
poss = [] ;
|
||||
-- drop Gen only works in adjectival position: "autoni", but not in "ø täytyy mennä"
|
||||
-- drop Gen only works in adjectival position: "autoni", but not in "ø täytyy mennä"
|
||||
a = p.a ;
|
||||
hasPoss = p.hasPoss ;
|
||||
} ;
|
||||
|
||||
ProDropPoss p = {
|
||||
s1 = \\_,_ => case p.a of {Ag _ P3 => p.s ! NPCase Gen ; _ => []} ; -- hänen nimensä ; minun nimeni
|
||||
s1 = \\_,_ => case p.a of {Ag _ P3 => p.s ! NPCase Gen ; _ => []} ; -- hänen nimensä ; minun nimeni
|
||||
sp = \\_,_ => p.s ! NPCase Gen ;
|
||||
s2 = case p.hasPoss of {
|
||||
True => table {Front => BIND ++ possSuffixFront p.a ;
|
||||
@@ -233,13 +233,13 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
ClPlusWithAdv c = c ;
|
||||
|
||||
noPart = {s = \\_ => []} ;
|
||||
han_Part = mkPart "han" "hän" ;
|
||||
pa_Part = mkPart "pa" "pä" ;
|
||||
pas_Part = mkPart "pas" "päs" ;
|
||||
ko_Part = mkPart "ko" "kö" ;
|
||||
kos_Part = mkPart "kos" "kös" ;
|
||||
kohan_Part = mkPart "kohan" "köhän" ;
|
||||
pahan_Part = mkPart "pahan" "pähän" ;
|
||||
han_Part = mkPart "han" "hän" ;
|
||||
pa_Part = mkPart "pa" "pä" ;
|
||||
pas_Part = mkPart "pas" "päs" ;
|
||||
ko_Part = mkPart "ko" "kö" ;
|
||||
kos_Part = mkPart "kos" "kös" ;
|
||||
kohan_Part = mkPart "kohan" "köhän" ;
|
||||
pahan_Part = mkPart "pahan" "pähän" ;
|
||||
|
||||
PassVPSlash vp = passVP vp vp.c2 ;
|
||||
|
||||
@@ -252,7 +252,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
|
||||
---- uses inversion of active: Guernican maalasi Picasso. TODO: use the agent participle
|
||||
---- TODO maybe squeeze s2 between the fin and inf (but this is subtle)
|
||||
---- sinua olen rakastanut minä -> sinua olen minä rakastanus
|
||||
---- sinua olen rakastanut minä -> sinua olen minä rakastanus
|
||||
-- advantage though: works for all V2 verbs, need not be transitive
|
||||
---- TODO: agr should be to the agent
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
--# -coding=latin1
|
||||
abstract ExtraFinAbs = Extra [
|
||||
IP, IQuant,Num,CN,VPSlash,
|
||||
GenNP,GenIP,GenRP,
|
||||
@@ -6,6 +5,7 @@ abstract ExtraFinAbs = Extra [
|
||||
VPI,ListVPI,BaseVPI,ConsVPI,MkVPI,ComplVPIVV,ConjVPI,
|
||||
VPS,ListVPS,BaseVPS,ConsVPS,ConjVPS,MkVPS,PredVPS,ConjVPS,Tense,Temp,Pol,S,
|
||||
VV,VP,Conj,NP,Quant,IAdv,IComp,ICompAP,IAdvAdv,Adv,AP, Pron, RP, ProDrop] ** {
|
||||
flags coding=utf8 ;
|
||||
|
||||
fun
|
||||
GenCN : NP -> CN -> CN ; -- auton merkki
|
||||
@@ -13,17 +13,17 @@ abstract ExtraFinAbs = Extra [
|
||||
AdvExistNP : Adv -> NP -> Cl ; -- kuvassa olemme me --- now obsolete because of Idiom.ExistNPAdv
|
||||
AdvPredNP : Adv -> V -> NP -> Cl ; -- kuvassa hymyilee Veikko
|
||||
|
||||
ICompExistNP : IComp -> NP -> QCl ; -- missä/kuka on Veikko
|
||||
IAdvPredNP : IAdv -> V -> NP -> QCl ; -- mistä alkaa Ruotsi
|
||||
ICompExistNP : IComp -> NP -> QCl ; -- missä/kuka on Veikko
|
||||
IAdvPredNP : IAdv -> V -> NP -> QCl ; -- mistä alkaa Ruotsi
|
||||
|
||||
RelExistNP : Prep -> RP -> NP -> RCl ; -- jossa on jazzia
|
||||
|
||||
-- i_implicPron : Pron ; -- (minä), minut, ...
|
||||
-- i_implicPron : Pron ; -- (minä), minut, ...
|
||||
whatPart_IP : IP ;
|
||||
|
||||
PartCN : CN -> NP ; -- olutta
|
||||
|
||||
vai_Conj : Conj ; -- minä vai sinä? ("or" in question)
|
||||
vai_Conj : Conj ; -- minä vai sinä? ("or" in question)
|
||||
|
||||
CompPartAP : AP -> Comp ; -- kahvi on valmista
|
||||
|
||||
@@ -36,12 +36,12 @@ abstract ExtraFinAbs = Extra [
|
||||
Part ; -- discourse particle
|
||||
|
||||
fun
|
||||
S_SVO : Part -> Temp -> Pol -> ClPlus -> S ; -- mepäs juomme maitoa nyt
|
||||
S_SVO : Part -> Temp -> Pol -> ClPlus -> S ; -- mepäs juomme maitoa nyt
|
||||
S_OSV : Part -> Temp -> Pol -> ClPlusObj -> S ; -- maitoapas me juomme nyt
|
||||
S_VSO : Part -> Temp -> Pol -> ClPlus -> S ; -- juommepas me maitoa nyt
|
||||
S_ASV : Part -> Temp -> Pol -> ClPlusAdv -> S ; -- nytpäs me juomme maitoa
|
||||
S_ASV : Part -> Temp -> Pol -> ClPlusAdv -> S ; -- nytpäs me juomme maitoa
|
||||
|
||||
-- S_SOV : Part -> Temp -> Pol -> ClPlus -> S ; -- mepäs maitoa juomme
|
||||
-- S_SOV : Part -> Temp -> Pol -> ClPlus -> S ; -- mepäs maitoa juomme
|
||||
S_OVS : Part -> Temp -> Pol -> ClPlus -> S ; -- maitoapas juomme me
|
||||
-- S_VOS : Part -> Temp -> Pol -> ClPlus -> S ; -- juommepas maitoa me
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--# -coding=latin1
|
||||
|
||||
resource Kotus = open MorphoFin, Prelude in {
|
||||
flags coding=utf8 ;
|
||||
|
||||
-- interpretations of paradigms in KOTUS word list, used in DictFin.
|
||||
|
||||
@@ -8,61 +8,61 @@ oper vowelHarmony = vowHarmony ;
|
||||
|
||||
oper
|
||||
|
||||
d01 : Str -> NForms -- 1780 öljy
|
||||
d01 : Str -> NForms -- 1780 öljy
|
||||
= \s -> dUkko s (s + "n") ;
|
||||
d01A : Str -> NForms -- 166 yökkö
|
||||
d01A : Str -> NForms -- 166 yökkö
|
||||
= \s -> dUkko s (weakGrade s + "n") ;
|
||||
d02 : Str -> NForms -- 1189 ääntely
|
||||
d02 : Str -> NForms -- 1189 ääntely
|
||||
= \s -> dSilakka s (s + "n") (s + "j" + getHarmony (last s)) ;
|
||||
d03 : Str -> NForms -- 481 ääntiö
|
||||
d03 : Str -> NForms -- 481 ääntiö
|
||||
= \s -> dSilakka s (s + "n") (s + "it" + vowelHarmony s) ;
|
||||
d04A : Str -> NForms -- 273 äpärikkö
|
||||
d04A : Str -> NForms -- 273 äpärikkö
|
||||
= \s -> let ws = weakGrade s in
|
||||
dSilakka s (ws + "n") (ws + "it" + getHarmony (last s)) ;
|
||||
d05 : Str -> NForms -- 3212 öljymaali
|
||||
d05 : Str -> NForms -- 3212 öljymaali
|
||||
= \s -> case last s of {
|
||||
"i" => dPaatti s (s + "n") ;
|
||||
_ => dUnix s
|
||||
} ;
|
||||
d05A : Str -> NForms -- 1959 öylätti
|
||||
d05A : Str -> NForms -- 1959 öylätti
|
||||
= \s -> dPaatti s (weakGrade s + "n") ;
|
||||
d06 : Str -> NForms -- 1231 öykkäri
|
||||
d06 : Str -> NForms -- 1231 öykkäri
|
||||
= \s -> dTohtori s ;
|
||||
d07 : Str -> NForms -- 81 vuoksi
|
||||
= \s -> dArpi s (init s + "en") ;
|
||||
d07A : Str -> NForms -- 70 väki
|
||||
d07A : Str -> NForms -- 70 väki
|
||||
= \s -> dArpi s (init (weakGrade s) + "en") ;
|
||||
d08 : Str -> NForms -- 99 à la carte
|
||||
d08 : Str -> NForms -- 99 à la carte
|
||||
= \s -> dNukke s (s + "n") ;
|
||||
d08A : Str -> NForms -- 5 vinaigrette
|
||||
= \s -> dNukke s (weakGrade s + "n") ;
|
||||
d09 : Str -> NForms -- 696 ääriraja
|
||||
d09 : Str -> NForms -- 696 ääriraja
|
||||
= \s -> let a = last s in dSilakka s
|
||||
(s + "n")
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ;
|
||||
d09A : Str -> NForms -- 1040 ääniraita
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ;
|
||||
d09A : Str -> NForms -- 1040 ääniraita
|
||||
= \s -> let a = last s in dSilakka s
|
||||
(weakGrade s + "n")
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ;
|
||||
d10 : Str -> NForms -- 2119 äänittäjä
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ;
|
||||
d10 : Str -> NForms -- 2119 äänittäjä
|
||||
= \s -> dSilakka s (s + "n") (init s + "i" + vowelHarmony (last s)) ;
|
||||
d10A : Str -> NForms -- 284 änkkä
|
||||
d10A : Str -> NForms -- 284 änkkä
|
||||
= \s -> dSilakka s (weakGrade s + "n") (init s + "i" + vowelHarmony (last s)) ;
|
||||
d11 : Str -> NForms -- 46 ödeema
|
||||
d11 : Str -> NForms -- 46 ödeema
|
||||
= \s -> dSilakka s (weakGrade s + "n") (init s + "i" + vowelHarmony (last s)) ;
|
||||
d12 : Str -> NForms -- 1125 örinä
|
||||
d12 : Str -> NForms -- 1125 örinä
|
||||
= \s -> let a = vowelHarmony (last s) in
|
||||
dSilakka s (s + "n")
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "it" + a) ;
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "it" + a) ;
|
||||
d13 : Str -> NForms -- 157 virtaska
|
||||
= \s -> let a = vowelHarmony (last s) in
|
||||
dSilakka s (s + "n")
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ;
|
||||
d14A : Str -> NForms -- 244 ötökkä
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ;
|
||||
d14A : Str -> NForms -- 244 ötökkä
|
||||
= \s -> let a = vowelHarmony (last s) ; ws = weakGrade s in
|
||||
dSilakka s (ws + "n")
|
||||
(init ws + case a of {"a" => "o" ; _ => "ö"} + "it" + a) ;
|
||||
d15 : Str -> NForms -- 170 äreä
|
||||
(init ws + case a of {"a" => "o" ; _ => "ö"} + "it" + a) ;
|
||||
d15 : Str -> NForms -- 170 äreä
|
||||
= dKorkea ;
|
||||
d16 : Str -> NForms -- 2 kumpikin --?
|
||||
= \s -> let kumpi = Predef.take 5 s ; kin = Predef.drop 5 s in
|
||||
@@ -71,13 +71,13 @@ oper
|
||||
= dSuurempi ;
|
||||
d17 : Str -> NForms -- 38 virkkuu
|
||||
= dPaluu ;
|
||||
d18 : Str -> NForms -- voi, tee, sää
|
||||
d18 : Str -> NForms -- voi, tee, sää
|
||||
= dPuu ;
|
||||
d19 : Str -> NForms -- 6 yö
|
||||
d19 : Str -> NForms -- 6 yö
|
||||
= dSuo ;
|
||||
d20 : Str -> NForms -- 46 voodoo
|
||||
= dPaluu ;
|
||||
d21 : Str -> NForms -- 22 tax-free --? rosé
|
||||
d21 : Str -> NForms -- 22 tax-free --? rosé
|
||||
= dPuu ;
|
||||
d22 : Str -> NForms -- 13 tournedos
|
||||
= \s -> nForms10
|
||||
@@ -89,20 +89,20 @@ oper
|
||||
= \s -> dArpi s (init s + "en") ;
|
||||
d25 : Str -> NForms -- 9 tuomi
|
||||
= \s -> dArpi s (init s + "en") ;
|
||||
d26 : Str -> NForms -- 113 ääri
|
||||
d26 : Str -> NForms -- 113 ääri
|
||||
= \s -> dArpi s (init s + "en") ;
|
||||
d27 : Str -> NForms -- 23 vuosi
|
||||
= \s -> dArpi s (Predef.tk 2 s + "den") ;
|
||||
d28 : Str -> NForms -- 13 virsi
|
||||
= \s -> dArpi s (Predef.tk 2 s + "ren") ;
|
||||
d28A : Str -> NForms -- 1 jälsi
|
||||
d28A : Str -> NForms -- 1 jälsi
|
||||
= \s -> dArpi s (Predef.tk 2 s + "len") ;
|
||||
d29 : Str -> NForms -- 1 lapsi
|
||||
= \s -> let lapsi = dArpi s (init s + "en") in
|
||||
table {2 => Predef.tk 3 s + "ta" ; i => lapsi ! i} ;
|
||||
d30 : Str -> NForms -- 2 veitsi
|
||||
= \s -> let lapsi = dArpi s (init s + "en") in
|
||||
table {2 => Predef.tk 3 s + "stä" ; i => lapsi ! i} ;
|
||||
table {2 => Predef.tk 3 s + "stä" ; i => lapsi ! i} ;
|
||||
d31 : Str -> NForms -- 3 yksi
|
||||
= \s -> let
|
||||
y = Predef.tk 3 s ;
|
||||
@@ -112,9 +112,9 @@ oper
|
||||
(s + "en") (s + a) (s + "n" + a) (s + "ss" + a) (s + "in") ;
|
||||
d32 : Str -> NForms -- 20 uumen
|
||||
= \s -> dPiennar s (s + "en") ;
|
||||
d32A : Str -> NForms -- 54 ystävätär
|
||||
d32A : Str -> NForms -- 54 ystävätär
|
||||
= \s -> dPiennar s (strongGrade (init s) + last s + "en") ;
|
||||
d33 : Str -> NForms -- 168 väistin
|
||||
d33 : Str -> NForms -- 168 väistin
|
||||
= \s -> dLiitin s (init s + "men") ;
|
||||
d33A : Str -> NForms -- 181 yllytin
|
||||
= \s -> dLiitin s (strongGrade (init s) + "men") ;
|
||||
@@ -124,14 +124,14 @@ oper
|
||||
s (alastom + "an") (s + "ta") (alastom + "ana") (alastom + "aan")
|
||||
(alastom + "ien") (alastom + "ia") (alastom + "ina") (alastom + "issa")
|
||||
(alastom + "iin") ;
|
||||
d34A : Str -> NForms -- 569 ääretön
|
||||
d34A : Str -> NForms -- 569 ääretön
|
||||
= dOnneton ;
|
||||
d35A : Str -> NForms -- 1 lämmin
|
||||
= \s -> let lämpim = strongGrade (init s) + "m" in
|
||||
d35A : Str -> NForms -- 1 lämmin
|
||||
= \s -> let lämpim = strongGrade (init s) + "m" in
|
||||
nForms10
|
||||
s (lämpim + "än") (s + "tä") (lämpim + "änä") (lämpim + "ään")
|
||||
(lämpim + "ien") (lämpim + "iä") (lämpim + "inä") (lämpim + "issä")
|
||||
(lämpim + "iin") ;
|
||||
s (lämpim + "än") (s + "tä") (lämpim + "änä") (lämpim + "ään")
|
||||
(lämpim + "ien") (lämpim + "iä") (lämpim + "inä") (lämpim + "issä")
|
||||
(lämpim + "iin") ;
|
||||
d36 : Str -> NForms -- 11 ylin
|
||||
= dSuurin ;
|
||||
d37 : Str -> NForms -- 1 vasen
|
||||
@@ -140,32 +140,32 @@ oper
|
||||
s (vasem + "man") (s + "ta") (vasem + "pana") (vasem + "paan")
|
||||
(vasem + "pien") (vasem + "pia") (vasem + "pina") (vasem + "missa")
|
||||
(vasem + "piin") ;
|
||||
d38 : Str -> NForms -- 4195 öykkärimäinen
|
||||
d38 : Str -> NForms -- 4195 öykkärimäinen
|
||||
= dNainen ;
|
||||
d39 : Str -> NForms -- 2730 örähdys
|
||||
d39 : Str -> NForms -- 2730 örähdys
|
||||
= dJalas ;
|
||||
d40 : Str -> NForms -- 2482 öykkärimäisyys
|
||||
d40 : Str -> NForms -- 2482 öykkärimäisyys
|
||||
= dLujuus ;
|
||||
d41 : Str -> NForms -- 127 äyräs
|
||||
d41 : Str -> NForms -- 127 äyräs
|
||||
= \s -> let is = init s in dRae s (is + last is + "n") ;
|
||||
d41A : Str -> NForms -- 401 öljykangas
|
||||
d41A : Str -> NForms -- 401 öljykangas
|
||||
= \s -> let is = init s in dRae s (strongGrade is + last is + "n") ;
|
||||
d42 : Str -> NForms -- 1 mies
|
||||
= \s -> let mieh = init s + "h" in
|
||||
nForms10
|
||||
s (mieh + "en") (s + "tä") (mieh + "enä") (mieh + "een")
|
||||
(s + "ten") (mieh + "iä") (mieh + "inä") (mieh + "issä")
|
||||
s (mieh + "en") (s + "tä") (mieh + "enä") (mieh + "een")
|
||||
(s + "ten") (mieh + "iä") (mieh + "inä") (mieh + "issä")
|
||||
(mieh + "iin") ;
|
||||
d43 : Str -> NForms -- 11 tiehyt
|
||||
= \s -> dRae s (init s + "en") ;
|
||||
d43A : Str -> NForms -- 1 immyt
|
||||
= \s -> dRae s (strongGrade (init s) + "en") ;
|
||||
d44 : Str -> NForms -- 1 kevät
|
||||
= \s -> let kevä = init s in
|
||||
d44 : Str -> NForms -- 1 kevät
|
||||
= \s -> let kevä = init s in
|
||||
nForms10
|
||||
s (kevä + "än") (s + "tä") (kevä + "änä") (kevä + "äseen")
|
||||
(s + "iden") (kevä + "itä") (kevä + "inä") (kevä + "issä")
|
||||
(kevä + "isiin") ;
|
||||
s (kevä + "än") (s + "tä") (kevä + "änä") (kevä + "äseen")
|
||||
(s + "iden") (kevä + "itä") (kevä + "inä") (kevä + "issä")
|
||||
(kevä + "isiin") ;
|
||||
d45 : Str -> NForms -- 23 yhdes
|
||||
= \s -> let yhde = init s ; a = vowelHarmony s in
|
||||
nForms10
|
||||
@@ -180,9 +180,9 @@ oper
|
||||
(tuha + "nsiin") ;
|
||||
d47 : Str -> NForms -- 46 ylirasittunut
|
||||
= dOttanut ;
|
||||
d48 : Str -> NForms -- 346 äpäre
|
||||
d48 : Str -> NForms -- 346 äpäre
|
||||
= \s -> dRae s (s + last s + "n") ;
|
||||
d48A : Str -> NForms -- 481 äänne
|
||||
d48A : Str -> NForms -- 481 äänne
|
||||
= \s -> dRae s (strongGrade s + "en") ;
|
||||
d49 : Str -> NForms -- 31 vempele
|
||||
= \s -> case last s of {
|
||||
@@ -192,32 +192,32 @@ oper
|
||||
d49A : Str -> NForms -- 11 vemmel
|
||||
= \s -> dPiennar s (strongGrade (init s) + "len") ;
|
||||
{-
|
||||
d50 : Str -> NForms -- 520 vääräsääri
|
||||
d50 : Str -> NForms -- 520 vääräsääri
|
||||
= \s -> ;
|
||||
d51 : Str -> NForms -- 62 vierasmies
|
||||
= \s -> ;
|
||||
-}
|
||||
c52 : Str -> VForms -- 667 ärjyä
|
||||
c52 : Str -> VForms -- 667 ärjyä
|
||||
= \s -> cHukkua s (init s + "n") ;
|
||||
c52A : Str -> VForms -- 1568 öljyyntyä
|
||||
c52A : Str -> VForms -- 1568 öljyyntyä
|
||||
= \s -> cHukkua s (weakGrade (init s) + "n") ;
|
||||
c53 : Str -> VForms -- 605 äänestää
|
||||
c53 : Str -> VForms -- 605 äänestää
|
||||
= \s -> let ott = Predef.tk 2 s in
|
||||
cOttaa s (init s + "n") (ott + "in") (ott + "i") ;
|
||||
c53A : Str -> VForms -- 2121 örähtää
|
||||
c53A : Str -> VForms -- 2121 örähtää
|
||||
= \s -> let ota = weakGrade (init s) in
|
||||
cOttaa s (ota + "n") (init ota + "in") (Predef.tk 2 s + "i") ;
|
||||
c54 : Str -> VForms -- 2 pieksää
|
||||
c54 : Str -> VForms -- 2 pieksää
|
||||
= \s -> let ott = Predef.tk 2 s in
|
||||
cOttaa s (init s + "n") (ott + "in") (ott + "i") ;
|
||||
c54A : Str -> VForms -- 316 ääntää
|
||||
c54A : Str -> VForms -- 316 ääntää
|
||||
= \s -> let ota = weakGrade (init s) ; o = Predef.tk 2 ota in
|
||||
cOttaa s (ota + "n") (o + "sin") (o + "si") ;
|
||||
c55A : Str -> VForms -- 7 yltää
|
||||
c55A : Str -> VForms -- 7 yltää
|
||||
= c54A ; --? diff: variation ylti/ylsi
|
||||
c56 : Str -> VForms -- 22 valaa
|
||||
= \s -> let val = Predef.tk 2 s in
|
||||
cOttaa s (init s + "n") (val + "oin") (val + "oi") ; -- never ö
|
||||
cOttaa s (init s + "n") (val + "oin") (val + "oi") ; -- never ö
|
||||
c56A : Str -> VForms -- 28 virkkaa
|
||||
= \s -> let ota = weakGrade (init s) ; ot = init ota in
|
||||
cOttaa s (ota + "n") (ot + "oin") (ot + "oi") ;
|
||||
@@ -232,69 +232,69 @@ oper
|
||||
vForms12 s (tunne + "n") (tunte + "e") (tunte + "vat") (tunte + "kaa") (tunne + "taan")
|
||||
(tuns + "in") (tuns + "i") (init tunte + "isi") (tunte + "nut") (tunne + "ttu")
|
||||
(tunte + "nee") ; -- just one verb
|
||||
c60A : Str -> VForms -- 1 lähteä
|
||||
= c58A ; --? diff lähti/läksi, just one verb
|
||||
c61 : Str -> VForms -- 249 äyskiä
|
||||
c60A : Str -> VForms -- 1 lähteä
|
||||
= c58A ; --? diff lähti/läksi, just one verb
|
||||
c61 : Str -> VForms -- 249 äyskiä
|
||||
= \s -> cHukkua s (init s + "n") ;
|
||||
c61A : Str -> VForms -- 153 vääntelehtiä
|
||||
c61A : Str -> VForms -- 153 vääntelehtiä
|
||||
= \s -> cHukkua s (weakGrade (init s) + "n") ;
|
||||
c62 : Str -> VForms -- 684 öykkäröidä
|
||||
c62 : Str -> VForms -- 684 öykkäröidä
|
||||
= \s -> cJuoda s ;
|
||||
c63 : Str -> VForms -- 3 saada
|
||||
= c62 ;
|
||||
c64 : Str -> VForms -- 8 viedä
|
||||
c64 : Str -> VForms -- 8 viedä
|
||||
= c62 ;
|
||||
c65 : Str -> VForms -- 1 käydä
|
||||
c65 : Str -> VForms -- 1 käydä
|
||||
= \s -> let kay = Predef.tk 2 s ; kavi = init kay + "vi" in
|
||||
vForms12 s (kay + "n") kay (kay + "vät") (kay + "kää") (kay + "dään")
|
||||
vForms12 s (kay + "n") kay (kay + "vät") (kay + "kää") (kay + "dään")
|
||||
(kavi + "n") kavi (kavi + "si") (kay + "nyt") (kay + "tty")
|
||||
(kay + "nee") ; -- just one verb
|
||||
c66 : Str -> VForms -- 268 öristä
|
||||
c66 : Str -> VForms -- 268 öristä
|
||||
= \s -> cKuunnella s (Predef.tk 2 s + "in") ;
|
||||
c66A : Str -> VForms -- 3 vavista
|
||||
= \s -> cKuunnella s (strongGrade (Predef.tk 3 s) + "sin") ;
|
||||
c67 : Str -> VForms -- 704 ällistellä
|
||||
c67 : Str -> VForms -- 704 ällistellä
|
||||
= \s -> cKuunnella s (Predef.tk 2 s + "in") ;
|
||||
c67A : Str -> VForms -- 634 äännellä
|
||||
c67A : Str -> VForms -- 634 äännellä
|
||||
= \s -> cKuunnella s (strongGrade (Predef.tk 3 s) + "lin") ;
|
||||
c68 : Str -> VForms -- 49 viheriöidä
|
||||
= c62 ; -- diff viheriöin/viheriöitsen
|
||||
c69 : Str -> VForms -- 48 villitä
|
||||
c68 : Str -> VForms -- 49 viheriöidä
|
||||
= c62 ; -- diff viheriöin/viheriöitsen
|
||||
c69 : Str -> VForms -- 48 villitä
|
||||
= \s -> cHarkita s ;
|
||||
c70 : Str -> VForms -- 3 syöstä
|
||||
c70 : Str -> VForms -- 3 syöstä
|
||||
= \s -> cJuosta s (Predef.tk 3 s + "ksen") ;
|
||||
c71 : Str -> VForms -- 2 tehdä
|
||||
c71 : Str -> VForms -- 2 tehdä
|
||||
= \s -> let te = Predef.tk 3 s in
|
||||
vForms12 s (te + "en") (te + "kee") (te + "kevät") (te + "hkää") (te + "hdään")
|
||||
vForms12 s (te + "en") (te + "kee") (te + "kevät") (te + "hkää") (te + "hdään")
|
||||
(te + "en") (te + "ki") (te + "kisi") (te + "hnyt") (te + "hty")
|
||||
(te + "hnee") ; -- just two verbs: nähdä, tehdä
|
||||
c72 : Str -> VForms -- 93 yletä
|
||||
(te + "hnee") ; -- just two verbs: nähdä, tehdä
|
||||
c72 : Str -> VForms -- 93 yletä
|
||||
= \s -> cValjeta s (Predef.tk 2 s + "ni") ;
|
||||
c72A : Str -> VForms -- 52 yhdetä
|
||||
c72A : Str -> VForms -- 52 yhdetä
|
||||
= \s -> cValjeta s (strongGrade (Predef.tk 2 s) + "ni") ;
|
||||
c73 : Str -> VForms -- 600 äkseerata
|
||||
c73 : Str -> VForms -- 600 äkseerata
|
||||
= \s -> cPudota s (Predef.tk 2 s + "si") ;
|
||||
c73A : Str -> VForms -- 313 änkätä
|
||||
c73A : Str -> VForms -- 313 änkätä
|
||||
= \s -> cPudota s (strongGrade (Predef.tk 2 s) + "si") ;
|
||||
c74 : Str -> VForms -- 99 öljytä
|
||||
c74 : Str -> VForms -- 99 öljytä
|
||||
= \s -> cPudota s (Predef.tk 2 s + "si") ;
|
||||
c74A : Str -> VForms -- 72 ängetä
|
||||
c74A : Str -> VForms -- 72 ängetä
|
||||
= \s -> cPudota s (strongGrade (Predef.tk 2 s) + "si") ;
|
||||
c75 : Str -> VForms -- 39 viritä
|
||||
c75 : Str -> VForms -- 39 viritä
|
||||
= \s -> cPudota s (Predef.tk 2 s + "si") ;
|
||||
c75A : Str -> VForms -- 9 siitä
|
||||
c75A : Str -> VForms -- 9 siitä
|
||||
= \s -> cPudota s (strongGrade (Predef.tk 2 s) + "si") ;
|
||||
c76A : Str -> VForms -- 2 tietää
|
||||
c76A : Str -> VForms -- 2 tietää
|
||||
= \s -> let tieta = init s ; tieda = weakGrade tieta ; ties = Predef.tk 2 tieta + "s" in
|
||||
cOttaa s (tieda + "n") (ties + "in") (ties + "i") ; -- only tietaa, taitaa
|
||||
-- defective verbs
|
||||
c77 : Str -> VForms -- 3 vipajaa
|
||||
= c56A ; ----
|
||||
c78 : Str -> VForms -- 31 ähkää
|
||||
c78 : Str -> VForms -- 31 ähkää
|
||||
= c56A ; ----
|
||||
c78A : Str -> VForms -- 1 tuikkaa
|
||||
= c56A ; ----
|
||||
c99 : Str -> Str -- 5453 öykkärimäisesti
|
||||
c99 : Str -> Str -- 5453 öykkärimäisesti
|
||||
= \s -> s ;
|
||||
|
||||
c101 : Str -> Str -- pronouns etc
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
--# -path=.:prelude
|
||||
--# -coding=latin1
|
||||
|
||||
concrete LexiconFin of Lexicon = CatFin ** open MorphoFin, StemFin, ParadigmsFin in {
|
||||
|
||||
flags
|
||||
coding=utf8 ;
|
||||
optimize=values ;
|
||||
|
||||
|
||||
@@ -14,16 +14,16 @@ lin
|
||||
apartment_N = mkN "asunto" ;
|
||||
apple_N = mkN "omena" ; --- omenia, not omenoita
|
||||
art_N = mkN "taide" ;
|
||||
ask_V2Q = mkV2 (mkV "kysyä") (casePrep ablative) ;
|
||||
ask_V2Q = mkV2 (mkV "kysyä") (casePrep ablative) ;
|
||||
baby_N = mkN "vauva" ;
|
||||
bad_A = mkA (mkN "paha") "pahempi" "pahin" ;
|
||||
bank_N = mkN "pankki" ;
|
||||
beautiful_A = mkA (mkN "kaunis") "kauniimpi" "kaunein" ;
|
||||
become_VA = mkVA (mkV "tulla") (casePrep translative) ;
|
||||
beer_N = mkN "olut" "oluita" ;
|
||||
beg_V2V = mkV2V (mk2V "pyytää" "pyysi") (casePrep partitive) ;
|
||||
beg_V2V = mkV2V (mk2V "pyytää" "pyysi") (casePrep partitive) ;
|
||||
big_A = mkA (mkN "suuri" "suuria") "suurempi" "suurin" ;
|
||||
bike_N = mkN "polku" (mkN "pyörä") ;
|
||||
bike_N = mkN "polku" (mkN "pyörä") ;
|
||||
bird_N = mkN "lintu" ;
|
||||
black_A = mkA (mkN "musta") "mustempi" "mustin" ;
|
||||
blue_A = mkA (mkN "sininen") "sinisempi" "sinisin" ;
|
||||
@@ -32,12 +32,12 @@ lin
|
||||
boot_N = mkN "saapas" ;
|
||||
boss_N = mkN "pomo" ;
|
||||
boy_N = mkN "poika" "pojan" "poikia" ;
|
||||
bread_N = mkN "leipä" ;
|
||||
bread_N = mkN "leipä" ;
|
||||
break_V2 = mkV2 (mkV "rikkoa") ;
|
||||
broad_A = mkA (mkN "leveä") "leveämpi" "levein" ;
|
||||
broad_A = mkA (mkN "leveä") "leveämpi" "levein" ;
|
||||
brother_N2 = mkN2 (
|
||||
mkN "veli" "veljen" "veljenä" "veljeä" "veljeen"
|
||||
"veljinä" "veljissä" "veljien" "veljiä" "veljiin") ;
|
||||
mkN "veli" "veljen" "veljenä" "veljeä" "veljeen"
|
||||
"veljinä" "veljissä" "veljien" "veljiä" "veljiin") ;
|
||||
brown_A = mkA (mkN "ruskea") "ruskeampi" "ruskein" ;
|
||||
butter_N = mk3N "voi" "voin" "voita" ; ---- errors in Part
|
||||
buy_V2 = mkV2 (mkV "ostaa") ;
|
||||
@@ -57,42 +57,42 @@ lin
|
||||
clever_A = mkA (mkN "viisas") ;
|
||||
close_V2 = mkV2 (mkV "sulkea") ;
|
||||
coat_N = mkN "takki" ;
|
||||
cold_A = mkA (mkN "kylmä") "kylmempi" "kylmin" ;
|
||||
cold_A = mkA (mkN "kylmä") "kylmempi" "kylmin" ;
|
||||
come_V = mkV "tulla" ;
|
||||
computer_N = mkN "tietokone" ;
|
||||
country_N = mkN "maa" ;
|
||||
cousin_N = mkN "serkku" ;
|
||||
cow_N = mkN "lehmä" ;
|
||||
cow_N = mkN "lehmä" ;
|
||||
die_V = mkV "kuolla" ;
|
||||
dirty_A = mkA (mkN "likainen") "likaisempi" "likaisin" ;
|
||||
distance_N3 = mkN3 (mkN "etäisyys") (casePrep elative) (casePrep illative) ;
|
||||
distance_N3 = mkN3 (mkN "etäisyys") (casePrep elative) (casePrep illative) ;
|
||||
doctor_N = mk2N "tohtori" "tohtoreita" ;
|
||||
dog_N = mkN "koira" ;
|
||||
door_N = mkN "ovi" "ovia" ;
|
||||
drink_V2 = mkV2 (mkV "juoda") (casePrep partitive) ;
|
||||
easy_A2V = mkA2 (mkA (mkN "helppo") "helpompi" "helpoin")
|
||||
(casePrep allative) ;
|
||||
eat_V2 = mkV2 (mkV "syödä") (casePrep partitive) ;
|
||||
empty_A = mkA (mkN "tyhjä") "tyhjempi" "tyhjin" ;
|
||||
eat_V2 = mkV2 (mkV "syödä") (casePrep partitive) ;
|
||||
empty_A = mkA (mkN "tyhjä") "tyhjempi" "tyhjin" ;
|
||||
enemy_N = mkN "vihollinen" ;
|
||||
factory_N = mkN "tehdas" ;
|
||||
father_N2 = mkN2 (mkN "isä") ;
|
||||
fear_VS = mkVS (mk2V "pelätä" "pelkäsi") ;
|
||||
find_V2 = mkV2 (mk2V "löytää" "löysi") ;
|
||||
father_N2 = mkN2 (mkN "isä") ;
|
||||
fear_VS = mkVS (mk2V "pelätä" "pelkäsi") ;
|
||||
find_V2 = mkV2 (mk2V "löytää" "löysi") ;
|
||||
fish_N = mkN "kala" ;
|
||||
floor_N = mk2N "lattia" "lattioita" ;
|
||||
forget_V2 = mkV2 (mkV "unohtaa") ;
|
||||
fridge_N = mkN "jääkaappi" ;
|
||||
friend_N = mkN "ystävä" ;
|
||||
fruit_N = mkN "hedelmä" ;
|
||||
fridge_N = mkN "jääkaappi" ;
|
||||
friend_N = mkN "ystävä" ;
|
||||
fruit_N = mkN "hedelmä" ;
|
||||
fun_AV = mkAV (mkA (mkN "hauska") "hauskempi" "hauskin") ;
|
||||
garden_N = mkN "puutarha" "puutarhan" "puutarhoja" ;
|
||||
girl_N = mkN "tyttö" ;
|
||||
glove_N = mkN "käsine" ;
|
||||
girl_N = mkN "tyttö" ;
|
||||
glove_N = mkN "käsine" ;
|
||||
gold_N = mkN "kulta" ;
|
||||
good_A = mkA (mkN "hyvä") (mkN "parempi" "paremman" "parempia") (exceptNomN (mkN "parhas" "parhaan" "parhaita" "parasta") "paras") "hyvin" "paremmin" "parhaiten" ;
|
||||
go_V = mkV "mennä" ;
|
||||
green_A = mkA (mkN "vihreä") "vihreämpi" "vihrein" ;
|
||||
good_A = mkA (mkN "hyvä") (mkN "parempi" "paremman" "parempia") (exceptNomN (mkN "parhas" "parhaan" "parhaita" "parasta") "paras") "hyvin" "paremmin" "parhaiten" ;
|
||||
go_V = mkV "mennä" ;
|
||||
green_A = mkA (mkN "vihreä") "vihreämpi" "vihrein" ;
|
||||
harbour_N = mkN "satama" "sataman" "satamia" ;
|
||||
hate_V2 = mkV2 (mkV "vihata") cpartitive ;
|
||||
hat_N = mkN "hattu" ;
|
||||
@@ -102,54 +102,54 @@ lin
|
||||
horse_N = mkN "hevonen" ;
|
||||
hot_A = mkA (mkN "kuuma") "kuumempi" "kuumin" ;
|
||||
house_N = mkN "talo" ;
|
||||
important_A = mkA (mkN "tärkeä") "tärkeämpi" "tärkein" ;
|
||||
important_A = mkA (mkN "tärkeä") "tärkeämpi" "tärkein" ;
|
||||
industry_N = mkN "teollisuus" ;
|
||||
iron_N = mkN "rauta" ;
|
||||
king_N = mkN "kuningas" ;
|
||||
know_VS = mkVS (mkV "tietää" "tiesi") ;
|
||||
know_VQ = mkVQ (mkV "tietää" "tiesi") ;
|
||||
know_VS = mkVS (mkV "tietää" "tiesi") ;
|
||||
know_VQ = mkVQ (mkV "tietää" "tiesi") ;
|
||||
know_V2 = mkV2 (mkV "tuntea" "tunsi") ;
|
||||
lake_N = mkN "järvi" "järviä" ;
|
||||
lake_N = mkN "järvi" "järviä" ;
|
||||
lamp_N = mkN "lamppu" ;
|
||||
learn_V2 =
|
||||
mkV2 (mk12V "oppia" "opin" "oppii" "oppivat" "oppikaa" "opitaan"
|
||||
"opin" "oppi" "oppisi" "oppinut" "opittu" "opitun") ;
|
||||
leather_N = mkN "nahka" ; --- nahan
|
||||
leave_V2 = mkV2 (mkV "jättää") ;
|
||||
like_V2 = mkV2 (mkV "pitää") elative ;
|
||||
leave_V2 = mkV2 (mkV "jättää") ;
|
||||
like_V2 = mkV2 (mkV "pitää") elative ;
|
||||
listen_V2 = mkV2 (mkV "kuunnella" "kuunteli") partitive ;
|
||||
live_V = mkV "elää" ;
|
||||
long_A = mkA (mkN "pitkä") "pitempi" "pisin" ;
|
||||
lose_V2 = mkV2 (mkV "hävitä" "hävisi") ; --- hukata
|
||||
live_V = mkV "elää" ;
|
||||
long_A = mkA (mkN "pitkä") "pitempi" "pisin" ;
|
||||
lose_V2 = mkV2 (mkV "hävitä" "hävisi") ; --- hukata
|
||||
love_N = mk3N "rakkaus" "rakkauden" "rakkauksia" ;
|
||||
love_V2 = mkV2 (mkV "rakastaa") partitive ;
|
||||
man_N = mkN "mies" "miehen" "miestä" "miehenä" "mieheen"
|
||||
"miesten" "miehiä" "miehinä" "miehissä" "miehiin" ;
|
||||
man_N = mkN "mies" "miehen" "miestä" "miehenä" "mieheen"
|
||||
"miesten" "miehiä" "miehinä" "miehissä" "miehiin" ;
|
||||
married_A2 = mkA2 (mkA "avioitunut") (postPrep genitive "kanssa") ; ---- infl
|
||||
meat_N = mkN "liha" ;
|
||||
milk_N = mkN "maito" ;
|
||||
moon_N = mkN "kuu" ;
|
||||
mother_N2 = mkN2 (mkN "äiti") ;
|
||||
mother_N2 = mkN2 (mkN "äiti") ;
|
||||
mountain_N = mkN "vuori" "vuoria" ;
|
||||
music_N = mkN "musiikki" ;
|
||||
narrow_A = mkA (mkN "kapea") "kapeampi" "kapein" ;
|
||||
new_A = mkA (mk3N "uusi" "uuden" "uusia") "uudempi" "uusin" ;
|
||||
newspaper_N = mkN "sanoma" (mkN "lehti" "lehtiä") ; --- for correct vowel harmony
|
||||
oil_N = mkN "öljy" ;
|
||||
newspaper_N = mkN "sanoma" (mkN "lehti" "lehtiä") ; --- for correct vowel harmony
|
||||
oil_N = mkN "öljy" ;
|
||||
old_A = mkA (mkN "vanha") "vanhempi" "vanhin" ;
|
||||
open_V2 = mkV2 (mkV "avata" "avasi") ;
|
||||
paint_V2A = mkV2A (mkV "maalata") accPrep (casePrep translative) ;
|
||||
paper_N = mk2N "paperi" "papereita" ;
|
||||
paris_PN = mkPN (mkN "Pariisi") ;
|
||||
peace_N = mkN "rauha" ;
|
||||
pen_N = mkN "kynä" ;
|
||||
pen_N = mkN "kynä" ;
|
||||
planet_N = mkN "planeetta" ;
|
||||
plastic_N = mkN "muovi" ;
|
||||
play_V2 = mkV2 (mkV "pelata") cpartitive ; --- leikkiä, soittaa
|
||||
play_V2 = mkV2 (mkV "pelata") cpartitive ; --- leikkiä, soittaa
|
||||
policeman_N = mkN "poliisi" ;
|
||||
priest_N = mkN "pappi" ;
|
||||
probable_AS = mkAS --- for vowel harmony
|
||||
(mkA (mkN "todennäköinen") "tonennäköisempi" "todennäköisin") ; ---- sta
|
||||
(mkA (mkN "todennäköinen") "tonennäköisempi" "todennäköisin") ; ---- sta
|
||||
queen_N = mkN "kuningatar" ;
|
||||
radio_N = mk2N "radio" "radioita" ;
|
||||
rain_V0 = mkV0 (mk2V "sataa" "satoi") ;
|
||||
@@ -165,36 +165,36 @@ lin
|
||||
say_VS = mkVS (mkV "sanoa") ;
|
||||
school_N = mkN "koulu" ;
|
||||
science_N = mkN "tiede" ;
|
||||
sea_N = mkN "meri" "meren" "meriä" "merta" ;
|
||||
seek_V2 = mkV2 (mkV "etsiä") cpartitive ;
|
||||
sea_N = mkN "meri" "meren" "meriä" "merta" ;
|
||||
seek_V2 = mkV2 (mkV "etsiä") cpartitive ;
|
||||
see_V2 = mkV2 (
|
||||
mk12V "nähdä" "näen" "näkee" "näkevät" "nähkää" "nähdään"
|
||||
"näin" "näki" "näkisi" "nähnyt" "nähty" "nähdyn") ;
|
||||
sell_V3 = mkV3 (mkV "myydä") accPrep (casePrep allative) ;
|
||||
send_V3 = mkV3 (mkV "lähettää") accPrep (casePrep allative) ;
|
||||
mk12V "nähdä" "näen" "näkee" "näkevät" "nähkää" "nähdään"
|
||||
"näin" "näki" "näkisi" "nähnyt" "nähty" "nähdyn") ;
|
||||
sell_V3 = mkV3 (mkV "myydä") accPrep (casePrep allative) ;
|
||||
send_V3 = mkV3 (mkV "lähettää") accPrep (casePrep allative) ;
|
||||
sheep_N = mkN "lammas" ;
|
||||
ship_N = mkN "laiva" ;
|
||||
shirt_N = mkN "paita" ;
|
||||
shoe_N = mkN "kenkä" ;
|
||||
shoe_N = mkN "kenkä" ;
|
||||
shop_N = mkN "kauppa" ;
|
||||
short_A = mkA (mkN "lyhyt" "lyhyitä") ;
|
||||
short_A = mkA (mkN "lyhyt" "lyhyitä") ;
|
||||
silver_N = mkN "hopea" ;
|
||||
sister_N = mkN "sisko" ;
|
||||
sleep_V = mkV "nukkua" ;
|
||||
small_A = mkA (mk2N "pieni" "pieniä") "pienempi" "pienin" ;
|
||||
snake_N = mkN "käärme" ;
|
||||
small_A = mkA (mk2N "pieni" "pieniä") "pienempi" "pienin" ;
|
||||
snake_N = mkN "käärme" ;
|
||||
sock_N = mkN "sukka" ;
|
||||
speak_V2 = mkV2 (mkV "puhua") cpartitive ;
|
||||
star_N = mkN "tähti" "tähtiä" ;
|
||||
steel_N = mkN "teräs" ;
|
||||
stone_N = mkN "kivi" "kiviä" ;
|
||||
stove_N = mk3N "liesi" "lieden" "liesiä" ;
|
||||
star_N = mkN "tähti" "tähtiä" ;
|
||||
steel_N = mkN "teräs" ;
|
||||
stone_N = mkN "kivi" "kiviä" ;
|
||||
stove_N = mk3N "liesi" "lieden" "liesiä" ;
|
||||
student_N = mk2N "opiskelija" "opiskelijoita" ;
|
||||
stupid_A = mkA "tyhmä" ;
|
||||
stupid_A = mkA "tyhmä" ;
|
||||
sun_N = mkN "aurinko" ;
|
||||
switch8off_V2 = mkV2 (mkV "sammuttaa") ; ---
|
||||
switch8on_V2 = mkV2 (mkV "sytyttää") ; ---
|
||||
table_N = mkN "pöytä" ;
|
||||
switch8on_V2 = mkV2 (mkV "sytyttää") ; ---
|
||||
table_N = mkN "pöytä" ;
|
||||
talk_V3 = mkV3 (mkV "puhua") (casePrep allative) (casePrep elative) ;
|
||||
teacher_N = mkN "opettaja" ;
|
||||
teach_V2 = mkV2 (mkV "opettaa") ;
|
||||
@@ -206,107 +206,107 @@ lin
|
||||
tree_N = mkN "puu" ;
|
||||
---- trousers_N = mkN "trousers" ;
|
||||
ugly_A = mkA (mkN "ruma") "rumempi" "rumin" ;
|
||||
understand_V2 = mkV2 (mkV "ymmärtää" "ymmärrän" "ymmärsi") ;
|
||||
understand_V2 = mkV2 (mkV "ymmärtää" "ymmärrän" "ymmärsi") ;
|
||||
university_N = mkN "yliopisto" ;
|
||||
village_N = mkN "kylä" ;
|
||||
village_N = mkN "kylä" ;
|
||||
wait_V2 = mkV2 (mkV "odottaa") partitive ;
|
||||
walk_V = mkV "kävellä" "käveli" ;
|
||||
walk_V = mkV "kävellä" "käveli" ;
|
||||
warm_A = mkA
|
||||
(mkN "lämmin" "lämpimän" "lämmintä" "lämpimänä" "lämpimään"
|
||||
"lämpiminä" "lämpimiä" "lämpimien" "lämpimissä" "lämpimiin"
|
||||
(mkN "lämmin" "lämpimän" "lämmintä" "lämpimänä" "lämpimään"
|
||||
"lämpiminä" "lämpimiä" "lämpimien" "lämpimissä" "lämpimiin"
|
||||
)
|
||||
"lämpimämpi" "lämpimin" ;
|
||||
"lämpimämpi" "lämpimin" ;
|
||||
war_N = mkN "sota" ;
|
||||
watch_V2 = mkV2 (mkV "katsella") cpartitive ;
|
||||
water_N = mk3N "vesi" "veden" "vesiä" ;
|
||||
water_N = mk3N "vesi" "veden" "vesiä" ;
|
||||
white_A = mkA "valkoinen" ;
|
||||
window_N = mk2N "ikkuna" "ikkunoita" ;
|
||||
wine_N = mkN "viini" ;
|
||||
win_V2 = mkV2 (mkV "voittaa") ;
|
||||
woman_N = mkN "nainen" ;
|
||||
wonder_VQ = mkVQ (mkV "ihmetellä") ;
|
||||
wonder_VQ = mkVQ (mkV "ihmetellä") ;
|
||||
wood_N = mkN "puu" ;
|
||||
write_V2 = mkV2 (mkV "kirjoittaa") ;
|
||||
yellow_A = mkA "keltainen" ;
|
||||
young_A = mkA (mkN "nuori" "nuoria") "nuorempi" "nuorin" ;
|
||||
|
||||
do_V2 = mkV2 (
|
||||
mkV "tehdä" "teen" "tekee" "tekevät" "tehkää" "tehdään"
|
||||
mkV "tehdä" "teen" "tekee" "tekevät" "tehkää" "tehdään"
|
||||
"tein" "teki" "tekisi" "tehnyt" "tehty" "tehdyn") ;
|
||||
|
||||
now_Adv = mkAdv "nyt" ;
|
||||
already_Adv = mkAdv "jo" ;
|
||||
song_N = mkN "laulu" ;
|
||||
add_V3 = mkV3 (mkV "lisätä") accPrep (casePrep illative) ;
|
||||
add_V3 = mkV3 (mkV "lisätä") accPrep (casePrep illative) ;
|
||||
number_N = mk2N "numero" "numeroita" ;
|
||||
put_V2 = mkV2 (mkV "panna") ;
|
||||
stop_V = mkV "pysähtyä" ;
|
||||
jump_V = mkV "hypätä" ;
|
||||
stop_V = mkV "pysähtyä" ;
|
||||
jump_V = mkV "hypätä" ;
|
||||
left_Ord = mkOrd (snoun2nounBind (mkN "vasen")) ;
|
||||
right_Ord = mkOrd (snoun2nounBind (mkN "oikea")) ;
|
||||
far_Adv = mkAdv "kaukana" ;
|
||||
correct_A = mkA "oikea" ;
|
||||
dry_A = mkA (mkN "kuiva") "kuivempi" "kuivin" ;
|
||||
dull_A = mkA (mkN "tylsä") "tylsempi" "tylsin" ;
|
||||
full_A = mkA (mk3N "täysi" "täyden" "täysiä") "täydempi" "täysin" ;
|
||||
dull_A = mkA (mkN "tylsä") "tylsempi" "tylsin" ;
|
||||
full_A = mkA (mk3N "täysi" "täyden" "täysiä") "täydempi" "täysin" ;
|
||||
heavy_A = mkA "raskas" ;
|
||||
near_A = mkA (mkN "läheinen") "läheisempi" "lähin" ;
|
||||
rotten_A = mkA "mätä" ;
|
||||
round_A = mkA "pyöreä" ;
|
||||
sharp_A = mkA "terävä" ;
|
||||
smooth_A = mkA "sileä" ;
|
||||
near_A = mkA (mkN "läheinen") "läheisempi" "lähin" ;
|
||||
rotten_A = mkA "mätä" ;
|
||||
round_A = mkA "pyöreä" ;
|
||||
sharp_A = mkA "terävä" ;
|
||||
smooth_A = mkA "sileä" ;
|
||||
straight_A = mkA (mkN "suora") "suorempi" "suorin" ;
|
||||
wet_A = mkA (mkN "märkä") "märempi" "märin" ;
|
||||
wide_A = mkA "leveä" ;
|
||||
animal_N = mk3N "eläin" "eläimen" "eläimiä" ;
|
||||
wet_A = mkA (mkN "märkä") "märempi" "märin" ;
|
||||
wide_A = mkA "leveä" ;
|
||||
animal_N = mk3N "eläin" "eläimen" "eläimiä" ;
|
||||
ashes_N = mkN "tuhka" ;
|
||||
back_N = mkN "selkä" ;
|
||||
back_N = mkN "selkä" ;
|
||||
bark_N = mkN "kaarna" ;
|
||||
belly_N = mkN "vatsa" ;
|
||||
blood_N = mkN "veri" "veren" "veriä" "verta" ;
|
||||
blood_N = mkN "veri" "veren" "veriä" "verta" ;
|
||||
bone_N = mkN "luu" ;
|
||||
breast_N = mkN "rinta" ;
|
||||
cloud_N = mk2N "pilvi" "pilviä" ;
|
||||
day_N = mkN "päivä" ;
|
||||
dust_N = mkN "pöly" ;
|
||||
cloud_N = mk2N "pilvi" "pilviä" ;
|
||||
day_N = mkN "päivä" ;
|
||||
dust_N = mkN "pöly" ;
|
||||
ear_N = mkN "korva" ;
|
||||
earth_N = mkN "maa" ;
|
||||
egg_N = mkN "muna" ;
|
||||
eye_N = mkN "silmä" ;
|
||||
eye_N = mkN "silmä" ;
|
||||
fat_N = mkN "rasva" ;
|
||||
feather_N = mk3N "höyhen" "höyhenen" "höyheniä" ;
|
||||
fingernail_N = mk3N "kynsi" "kynnen" "kynsiä" ;
|
||||
feather_N = mk3N "höyhen" "höyhenen" "höyheniä" ;
|
||||
fingernail_N = mk3N "kynsi" "kynnen" "kynsiä" ;
|
||||
fire_N = mk2N "tuli" "tulia" ;
|
||||
flower_N = mkN "kukka" ;
|
||||
fog_N = mkN "sumu" ;
|
||||
foot_N = mkN "jalka" ;
|
||||
forest_N = mkN "metsä" ;
|
||||
forest_N = mkN "metsä" ;
|
||||
grass_N = mkN "ruoho" ;
|
||||
guts_N = mkN "sisälmys" ; --- suoli
|
||||
guts_N = mkN "sisälmys" ; --- suoli
|
||||
hair_N = mkN "hius" ;
|
||||
hand_N = mk3N "käsi" "käden" "käsiä" ;
|
||||
head_N = mkN "pää" ;
|
||||
heart_N = mkN "sydän" "sydämen" "sydäntä" "sydämenä" "sydämeen"
|
||||
"sydänten" "sydämiä" "sydäminä" "sydämissä" "sydämiin" ;
|
||||
hand_N = mk3N "käsi" "käden" "käsiä" ;
|
||||
head_N = mkN "pää" ;
|
||||
heart_N = mkN "sydän" "sydämen" "sydäntä" "sydämenä" "sydämeen"
|
||||
"sydänten" "sydämiä" "sydäminä" "sydämissä" "sydämiin" ;
|
||||
horn_N = mk2N "sarvi" "sarvia" ;
|
||||
husband_N = mkN "mies" "miehen" "miestä" "miehenä" "mieheen"
|
||||
"miesten" "miehiä" "miehinä" "miehissä" "miehiin" ;
|
||||
ice_N = mkN "jää" ;
|
||||
husband_N = mkN "mies" "miehen" "miestä" "miehenä" "mieheen"
|
||||
"miesten" "miehiä" "miehinä" "miehissä" "miehiin" ;
|
||||
ice_N = mkN "jää" ;
|
||||
knee_N = mk2N "polvi" "polvia" ;
|
||||
leaf_N = mk2N "lehti" "lehtiä" ;
|
||||
leg_N = mkN "jalka" ; --- sääri
|
||||
leaf_N = mk2N "lehti" "lehtiä" ;
|
||||
leg_N = mkN "jalka" ; --- sääri
|
||||
liver_N = mkN "maksa" ;
|
||||
louse_N = mkN "lude" ;
|
||||
mouth_N = mkN "suu" ;
|
||||
name_N = mk2N "nimi" "nimiä" ;
|
||||
name_N = mk2N "nimi" "nimiä" ;
|
||||
neck_N = mkN "niska" ;
|
||||
night_N = mkN "yö" ;
|
||||
nose_N = mkN "nenä" ;
|
||||
person_N = mkN "henkilö" ;
|
||||
night_N = mkN "yö" ;
|
||||
nose_N = mkN "nenä" ;
|
||||
person_N = mkN "henkilö" ;
|
||||
rain_N = mkN "sade" ;
|
||||
road_N = mkN "tie" ;
|
||||
root_N = mk2N "juuri" "juuria" ;
|
||||
rope_N = mk3N "köysi" "köyden" "köysiä" ;
|
||||
rope_N = mk3N "köysi" "köyden" "köysiä" ;
|
||||
salt_N = mkN "suola" ;
|
||||
sand_N = mkN "hiekka" ;
|
||||
seed_N = mkN "siemen" ;
|
||||
@@ -315,12 +315,12 @@ lin
|
||||
smoke_N = mkN "savu" ;
|
||||
snow_N = mkN "lumi" "lumen" "lumia" "lunta" ;
|
||||
stick_N = mkN "keppi" ;
|
||||
tail_N = mkN "häntä" ;
|
||||
tongue_N = mk2N "kieli" "kieliä" ;
|
||||
tail_N = mkN "häntä" ;
|
||||
tongue_N = mk2N "kieli" "kieliä" ;
|
||||
tooth_N = mkN "hammas" ;
|
||||
wife_N = mkN "vaimo" ;
|
||||
wind_N = mk2N "tuuli" "tuulia" ;
|
||||
wing_N = mk2N "siipi" "siipiä" ;
|
||||
wing_N = mk2N "siipi" "siipiä" ;
|
||||
worm_N = mkN "mato" ;
|
||||
year_N = mk3N "vuosi" "vuoden" "vuosia" ;
|
||||
bite_V2 = mkV2 (mkV "purra") ;
|
||||
@@ -330,57 +330,57 @@ lin
|
||||
cut_V2 = mkV2 (mk2V "leikata" "leikkasi") ;
|
||||
dig_V = mkV "kaivaa" ;
|
||||
fall_V = mkV "pudota" "putoan" "putosi" ;
|
||||
fear_V2 = mkV2 (mkV "pelätä" "pelkään" "pelkäsi") cpartitive ;
|
||||
fear_V2 = mkV2 (mkV "pelätä" "pelkään" "pelkäsi") cpartitive ;
|
||||
fight_V2 = mkV2 (mkV "taistella") (postPrep partitive "vastaan") ;
|
||||
float_V = mkV "kellua" ;
|
||||
flow_V = mkV "virrata" "virtaan" "virtasi" ;
|
||||
fly_V = mkV "lentää" ;
|
||||
freeze_V = mkV "jäätyä" ;
|
||||
fly_V = mkV "lentää" ;
|
||||
freeze_V = mkV "jäätyä" ;
|
||||
give_V3 = mkV3 (mkV "antaa" "annan" "antoi") accPrep (casePrep allative) ;
|
||||
hit_V2 = mkV2 (mkV "lyödä") cpartitive ;
|
||||
hold_V2 = mkV2 (mkV "pitää") cpartitive ;
|
||||
hunt_V2 = mkV2 (mkV "metsästää") cpartitive ;
|
||||
hit_V2 = mkV2 (mkV "lyödä") cpartitive ;
|
||||
hold_V2 = mkV2 (mkV "pitää") cpartitive ;
|
||||
hunt_V2 = mkV2 (mkV "metsästää") cpartitive ;
|
||||
kill_V2 = mkV2 (mkV "tappaa") ;
|
||||
laugh_V = mkV "nauraa" "nauroi" ;
|
||||
lie_V = mkV "maata" "makasi" ;
|
||||
play_V = mkV "pelata" ;
|
||||
pull_V2 = mkV2 (mkV "vetää") ;
|
||||
push_V2 = mkV2 (mkV "työntää") ;
|
||||
pull_V2 = mkV2 (mkV "vetää") ;
|
||||
push_V2 = mkV2 (mkV "työntää") ;
|
||||
rub_V2 = mkV2 (mkV "hieroa") cpartitive ;
|
||||
scratch_V2 = mkV2 (mkV "raapia") cpartitive ;
|
||||
sew_V = mkV "ommella" ;
|
||||
sing_V = mkV "laulaa" ;
|
||||
sit_V = mkV "istua" ;
|
||||
smell_V = mk2V "haista" "haisi" ;
|
||||
spit_V = mkV "sylkeä" ;
|
||||
spit_V = mkV "sylkeä" ;
|
||||
split_V2 = mkV2 (mk2V "halkaista" "halkaisi") ;
|
||||
squeeze_V2 = mkV2 (mkV "puristaa") cpartitive ;
|
||||
stab_V2 = mkV2 (mkV "pistää") cpartitive ;
|
||||
stand_V = mk12V "seistä" "seison" "seisoo" "seisovat" "seiskää" "seistään"
|
||||
"seisoin" "seisoi" "seisoisi" "seissyt" "seisty" "seistyn" ; --- *seisoivät
|
||||
suck_V2 = mkV2 (mkV "imeä") cpartitive ;
|
||||
stab_V2 = mkV2 (mkV "pistää") cpartitive ;
|
||||
stand_V = mk12V "seistä" "seison" "seisoo" "seisovat" "seiskää" "seistään"
|
||||
"seisoin" "seisoi" "seisoisi" "seissyt" "seisty" "seistyn" ; --- *seisoivät
|
||||
suck_V2 = mkV2 (mkV "imeä") cpartitive ;
|
||||
swell_V = mkV "turvota" "turposi" ;
|
||||
swim_V = mkV "uida" "uin" "ui" ;
|
||||
think_V = mkV "ajatella" "ajattelen" "ajatteli" ;
|
||||
throw_V2 = mkV2 (mkV "heittää") ;
|
||||
throw_V2 = mkV2 (mkV "heittää") ;
|
||||
tie_V2 = mkV2 (mkV "sitoa") ;
|
||||
turn_V = mkV "kääntyä" ;
|
||||
turn_V = mkV "kääntyä" ;
|
||||
vomit_V = mkV "oksentaa" ;
|
||||
wash_V2 = mkV2 (mkV "pestä") ;
|
||||
wipe_V2 = mkV2 (mkV "pyyhkiä") ;
|
||||
wash_V2 = mkV2 (mkV "pestä") ;
|
||||
wipe_V2 = mkV2 (mkV "pyyhkiä") ;
|
||||
|
||||
breathe_V = mkV "hengittää" ;
|
||||
breathe_V = mkV "hengittää" ;
|
||||
|
||||
grammar_N = mkN "kielioppi" ;
|
||||
language_N = mk2N "kieli" "kieliä" ;
|
||||
rule_N = mkN "sääntö" ;
|
||||
language_N = mk2N "kieli" "kieliä" ;
|
||||
rule_N = mkN "sääntö" ;
|
||||
|
||||
john_PN = mkPN "Jussi" ;
|
||||
question_N = mkN "kysymys" ;
|
||||
ready_A = mkA (mkN "valmis") ;
|
||||
reason_N = mkN "syy" ;
|
||||
today_Adv = mkAdv "tänään" ;
|
||||
uncertain_A = mkA "epävarma" ;
|
||||
today_Adv = mkAdv "tänään" ;
|
||||
uncertain_A = mkA "epävarma" ;
|
||||
|
||||
oper
|
||||
mkOrd : Noun -> Ord ;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
--# -path=.:../common:prelude
|
||||
--# -coding=latin1
|
||||
|
||||
--1 A Simple Finnish Resource Morphology
|
||||
--
|
||||
@@ -12,6 +11,7 @@
|
||||
resource MorphoFin = ResFin ** open Prelude in {
|
||||
|
||||
flags optimize=noexpand ;
|
||||
coding=utf8 ;
|
||||
|
||||
oper
|
||||
|
||||
@@ -109,7 +109,7 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
(onnettom + "in" + a) (onnettom + "iss" + a)
|
||||
(onnettom + "iin") ;
|
||||
|
||||
-- 2-syllable a/ä, o/ö, u/y
|
||||
-- 2-syllable a/ä, o/ö, u/y
|
||||
dUkko : (_,_ : Str) -> NForms = \ukko,ukon ->
|
||||
let
|
||||
o = last ukko ;
|
||||
@@ -118,8 +118,8 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
uko = init ukon ;
|
||||
uk = init uko ;
|
||||
ukkoja = case <ukko : Str> of {
|
||||
_ + "ä" => -- kylä,kyliä,kylien,kylissä,kyliin
|
||||
<ukk + "iä", ukk + "ien", ukk, uk, ukk + "iin"> ;
|
||||
_ + "ä" => -- kylä,kyliä,kylien,kylissä,kyliin
|
||||
<ukk + "iä", ukk + "ien", ukk, uk, ukk + "iin"> ;
|
||||
_ + ("au" | "eu") + _ + "a" => -- kauhojen,seurojen
|
||||
<ukk + "oja",ukk + "ojen",ukk + "o", uk + "o", ukk + "oihin"> ;
|
||||
_ + ("o" | "u") + _ + "a" => -- pula,pulia,pulien,pulissa,puliin
|
||||
@@ -136,7 +136,7 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
ukkoja.p2 ukkoja.p1
|
||||
ukkoina ukoissa ukkoja.p5 ;
|
||||
|
||||
-- 3-syllable a/ä/o/ö
|
||||
-- 3-syllable a/ä/o/ö
|
||||
dSilakka : (_,_,_ : Str) -> NForms = \silakka,silakan,silakoita ->
|
||||
let
|
||||
o = last silakka ;
|
||||
@@ -145,15 +145,15 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
silaka = init silakan ;
|
||||
silak = init silaka ;
|
||||
silakkaa = silakka + case o of {
|
||||
"o" | "ö" => "t" + a ; -- radiota
|
||||
"o" | "ö" => "t" + a ; -- radiota
|
||||
_ => a -- sammakkoa
|
||||
} ;
|
||||
silakoiden = case <silakoita : Str> of {
|
||||
_ + "i" + ("a" | "ä") => -- asemia
|
||||
_ + "i" + ("a" | "ä") => -- asemia
|
||||
<silakka+a, silakk + "ien", silakk, silak, silakk + "iin"> ;
|
||||
_ + O@("o" | "ö" | "u" | "y" | "e") + ("ja" | "jä") => -- pasuunoja
|
||||
_ + O@("o" | "ö" | "u" | "y" | "e") + ("ja" | "jä") => -- pasuunoja
|
||||
<silakka+a,silakk+O+"jen",silakk+O, silak+O, silakk +O+ "ihin"> ;
|
||||
_ + O@("o" | "ö" | "u" | "y" | "e") + ("ita" | "itä") => -- silakoita
|
||||
_ + O@("o" | "ö" | "u" | "y" | "e") + ("ita" | "itä") => -- silakoita
|
||||
<silakkaa, silak+O+"iden",silakk+O, silak+O, silakk +O+ "ihin"> ;
|
||||
_ => Predef.error silakoita
|
||||
} ;
|
||||
@@ -172,7 +172,7 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
ar = init arp ;
|
||||
arpe = case last arp of {
|
||||
"s" => case last arv of {
|
||||
"d" | "l" | "n" | "r" => -- suden,sutta ; jälsi ; kansi ; hirsi
|
||||
"d" | "l" | "n" | "r" => -- suden,sutta ; jälsi ; kansi ; hirsi
|
||||
<ar + "tt" + a, arpi + "en",arpi,ar + "t"> ;
|
||||
_ => -- kuusta,kuusien
|
||||
<arp + "t" + a,arp + "ien",arpi, arp>
|
||||
@@ -183,7 +183,7 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
<arp + "t" + a,arp + "ien",arpi, arp>;
|
||||
_ => -- arpea,arpien,arvissa
|
||||
<arp + "e" + a,arp + "ien",arv+"i",arp>
|
||||
} ; ---- pieni,pientä; uni,unta
|
||||
} ; ---- pieni,pientä; uni,unta
|
||||
in nForms10
|
||||
arpi arven arpe.p1 (arpe.p4 + "en" + a) (arpe.p4 + "een")
|
||||
arpe.p2 (arpi + a)
|
||||
@@ -282,23 +282,23 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
"A" =>
|
||||
<"n","ta","na","han","iden","ita","ina","issa","ihin"> ;
|
||||
"B" | "C" | "D" | "E" | "G" | "P" | "T" | "V" | "W" =>
|
||||
<"n","tä","nä","hen","iden","itä","inä","issä","ihin"> ;
|
||||
<"n","tä","nä","hen","iden","itä","inä","issä","ihin"> ;
|
||||
"F" | "L" | "M" | "N" | "R" | "S" | "X" =>
|
||||
<"n","ää","nä","ään","ien","iä","inä","issä","iin"> ;
|
||||
"H" | "K" | "O" | "Å" =>
|
||||
<"n","ää","nä","ään","ien","iä","inä","issä","iin"> ;
|
||||
"H" | "K" | "O" | "Å" =>
|
||||
<"n","ta","na","hon","iden","ita","ina","issa","ihin"> ;
|
||||
"I" | "J" =>
|
||||
<"n","tä","nä","hin","iden","itä","inä","issä","ihin"> ;
|
||||
<"n","tä","nä","hin","iden","itä","inä","issä","ihin"> ;
|
||||
"Q" | "U" =>
|
||||
<"n","ta","na","hun","iden","ita","ina","issa","ihin"> ;
|
||||
"Z" =>
|
||||
<"n","aa","na","aan","ojen","oja","oina","oissa","oihin"> ;
|
||||
"Ä" =>
|
||||
<"n","tä","nä","hän","iden","itä","inä","issä","ihin"> ;
|
||||
"Ö" =>
|
||||
<"n","tä","nä","hön","iden","itä","inä","issä","ihin"> ;
|
||||
"Ä" =>
|
||||
<"n","tä","nä","hän","iden","itä","inä","issä","ihin"> ;
|
||||
"Ö" =>
|
||||
<"n","tä","nä","hön","iden","itä","inä","issä","ihin"> ;
|
||||
"Y" =>
|
||||
<"n","tä","nä","hyn","iden","itä","inä","issä","ihin"> ;
|
||||
<"n","tä","nä","hyn","iden","itä","inä","issä","ihin"> ;
|
||||
_ => Predef.error (["illegal abbreviation"] ++ SDP)
|
||||
} ;
|
||||
in nForms10
|
||||
@@ -609,7 +609,7 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
pudot = init pudota ;
|
||||
pudo = init pudot ;
|
||||
ai = case last pudo of {
|
||||
"a" | "ä" => <[], "i"> ;
|
||||
"a" | "ä" => <[], "i"> ;
|
||||
_ => <a, a + "i">
|
||||
} ;
|
||||
puto = Predef.tk 2 putosi ;
|
||||
@@ -735,7 +735,7 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
tule_ = init tulen ;
|
||||
tuli_ = init tulin ;
|
||||
a = last tulkaa ;
|
||||
tulko = Predef.tk 2 tulkaa + (ifTok Str a "a" "o" "ö") ;
|
||||
tulko = Predef.tk 2 tulkaa + (ifTok Str a "a" "o" "ö") ;
|
||||
o = last tulko ;
|
||||
tulkoo = tulko + o ;
|
||||
tullee = Predef.tk 2 tullut + "ee" ;
|
||||
@@ -853,13 +853,13 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
"rk" + ("i" | "e") => ku + "rj" + o ;
|
||||
"lk" + _ => ku + "l" + o ;
|
||||
"rk" + _ => ku + "r" + o ;
|
||||
("hk" | "tk") + _ => kukko ; -- *tahko-tahon, *pitkä-pitkän
|
||||
("hk" | "tk") + _ => kukko ; -- *tahko-tahon, *pitkä-pitkän
|
||||
("f"|"s") + ("k" | "p" | "t") + _ => kukko ; -- *lasku-lasvun, *raspi-rasvin, *lastu-lasdun, *afta-aftan
|
||||
("k"|"p") + "t" + _ => kukko ; -- *projekti-projekdin
|
||||
x + "ku" => ku + x + "vu" ;
|
||||
x + "k" + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") => ku + x + o ;
|
||||
x + "p" + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") => ku + x + "v" + o ;
|
||||
x + "t" + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") => ku + x + "d" + o ;
|
||||
x + "k" + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") => ku + x + o ;
|
||||
x + "p" + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") => ku + x + "v" + o ;
|
||||
x + "t" + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") => ku + x + "d" + o ;
|
||||
_ => kukko
|
||||
} ;
|
||||
|
||||
@@ -878,13 +878,13 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
"ll" + a => "lt" + a ;
|
||||
h@("h" | "l") + "je" + e => h + "ke" ; -- pohje/lahje impossible
|
||||
("tk" | "hk" | "sk" | "sp" | "st") + _ => nke ; -- viuhke,kuiske
|
||||
a + k@("k"|"p"|"t") + e@("e"|"a"|"ä"|"u"|"y"|"i"|"o"|"ö") => a + k + k + e ;
|
||||
a + "d" + e@("e"|"a"|"ä"|"u"|"i"|"o"|"ö") => a + "t" + e ;
|
||||
s + a@("a" | "ä") + "e" => s + a + "ke" ; -- säe, tae
|
||||
a + k@("k"|"p"|"t") + e@("e"|"a"|"ä"|"u"|"y"|"i"|"o"|"ö") => a + k + k + e ;
|
||||
a + "d" + e@("e"|"a"|"ä"|"u"|"i"|"o"|"ö") => a + "t" + e ;
|
||||
s + a@("a" | "ä") + "e" => s + a + "ke" ; -- säe, tae
|
||||
s + "ui" => s + "uki" ; -- ruis
|
||||
s + "aa" => s + "aka" ; -- taata
|
||||
s + "i" + a@("a" | "e" | "i") => s + "ik" + a ; -- liata, siitä, pietä
|
||||
a + "v" + e@("e"|"a"|"ä"|"u"|"i") => a + "p" + e ; -- taive/toive imposs
|
||||
s + "i" + a@("a" | "e" | "i") => s + "ik" + a ; -- liata, siitä, pietä
|
||||
a + "v" + e@("e"|"a"|"ä"|"u"|"i") => a + "p" + e ; -- taive/toive imposs
|
||||
ase => ase
|
||||
} ;
|
||||
|
||||
@@ -895,12 +895,12 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
|
||||
vowHarmony : Str -> Str = \s -> case s of {
|
||||
_ + ("a" | "o" | "u" | "A" | "O" | "U") + _ => "a" ;
|
||||
_ => "ä"
|
||||
_ => "ä"
|
||||
} ;
|
||||
|
||||
getHarmony : Str -> Str = \u -> case u of {
|
||||
"a"|"o"|"u" => "a" ;
|
||||
_ => "ä"
|
||||
_ => "ä"
|
||||
} ;
|
||||
|
||||
-----------------------
|
||||
@@ -914,7 +914,7 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
||||
|
||||
mkDetPol : Bool -> Number -> CommonNoun -> {
|
||||
s1,sp : Case => Str ; -- minun kolme
|
||||
s2 : Harmony => Str ; -- -ni ; nsa/nsä
|
||||
s2 : Harmony => Str ; -- -ni ; nsa/nsä
|
||||
n : Number ; -- Pl (agreement feature for verb)
|
||||
isNum : Bool ; -- True (a numeral is present)
|
||||
isPoss : Bool ; -- True (a possessive suffix is present)
|
||||
@@ -930,7 +930,7 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
||||
} ;
|
||||
|
||||
-- Here we define personal and relative pronouns.
|
||||
-- Personal pronouns have possessive suffix (hänen talonsa) but "se" doesn't (sen talo)
|
||||
-- Personal pronouns have possessive suffix (hänen talonsa) but "se" doesn't (sen talo)
|
||||
|
||||
mkPronoun : (_,_,_,_,_ : Str) -> Number -> Person ->
|
||||
{s : NPForm => Str ; a : Agr ; hasPoss : Bool ; poss : Str} = mkPronounGen True ;
|
||||
@@ -999,16 +999,16 @@ oper
|
||||
s = table {
|
||||
Nom => "se" ;
|
||||
Gen => "sen" ;
|
||||
Part => "sitä" ;
|
||||
Part => "sitä" ;
|
||||
Transl => "siksi" ;
|
||||
Ess => "sinä" ;
|
||||
Iness => "siinä" ;
|
||||
Elat => "siitä" ;
|
||||
Ess => "sinä" ;
|
||||
Iness => "siinä" ;
|
||||
Elat => "siitä" ;
|
||||
Illat => "siihen" ;
|
||||
Adess => "sillä" ;
|
||||
Ablat => "siltä" ;
|
||||
Adess => "sillä" ;
|
||||
Ablat => "siltä" ;
|
||||
Allat => "sille" ;
|
||||
Abess => "sittä"
|
||||
Abess => "sittä"
|
||||
} ;
|
||||
} ;
|
||||
|
||||
@@ -1016,16 +1016,16 @@ oper
|
||||
s = table {
|
||||
Nom => "ne" ;
|
||||
Gen => "niiden" ;
|
||||
Part => "niitä" ;
|
||||
Part => "niitä" ;
|
||||
Transl => "niiksi" ;
|
||||
Ess => "niinä" ;
|
||||
Iness => "niissä" ;
|
||||
Elat => "niitä" ;
|
||||
Ess => "niinä" ;
|
||||
Iness => "niissä" ;
|
||||
Elat => "niitä" ;
|
||||
Illat => "niihin" ;
|
||||
Adess => "niillä" ;
|
||||
Ablat => "niiltä" ;
|
||||
Adess => "niillä" ;
|
||||
Ablat => "niiltä" ;
|
||||
Allat => "niille" ;
|
||||
Abess => "niittä"
|
||||
Abess => "niittä"
|
||||
} ;
|
||||
} ;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--# -coding=latin1
|
||||
concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, StemFin, Prelude in {
|
||||
|
||||
flags coding=utf8 ;
|
||||
lin
|
||||
|
||||
-- The $Number$ is subtle: "nuo autot", "nuo kolme autoa" are both plural
|
||||
@@ -16,10 +16,10 @@ concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, StemFin, Prelude in
|
||||
let k = npform2case n c
|
||||
in
|
||||
case <n, c, det.isNum, det.isPoss, det.isDef> of {
|
||||
<_, NPAcc, True,_,_> => <Nom,NCase Sg Part> ; -- myin kolme kytkintä(ni)
|
||||
<_, NPCase Nom, True,_,_> => <Nom,NCase Sg Part> ; -- kolme kytkintä(ni) on
|
||||
<_, NPAcc, True,_,_> => <Nom,NCase Sg Part> ; -- myin kolme kytkintä(ni)
|
||||
<_, NPCase Nom, True,_,_> => <Nom,NCase Sg Part> ; -- kolme kytkintä(ni) on
|
||||
<_, _, True,False,_> => <k, NCase Sg k> ; -- kolmeksi kytkimeksi
|
||||
<Pl,NPAcc, _, _, False> => <k, NCase Pl Part> ; -- myin kytkimiä
|
||||
<Pl,NPAcc, _, _, False> => <k, NCase Pl Part> ; -- myin kytkimiä
|
||||
<_, NPAcc, _,True,_> => <k, NPossNom n> ; -- myin kytkime+ni
|
||||
<_, NPCase Nom,_,True,_> => <k, NPossNom n> ; -- kytkime+ni on/ovat...
|
||||
<_, NPCase Gen,_,True,_> => <k, NPossGen n> ; -- kytkime+ni vika
|
||||
@@ -34,7 +34,7 @@ concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, StemFin, Prelude in
|
||||
in
|
||||
det.s1 ! k.p1 ++ cn.s ! k.p2 ++ det.s2 ! cn.h ;
|
||||
a = agrP3 (case <det.isDef, det.isNum> of {
|
||||
<False,True> => Sg ; -- kolme kytkintä on
|
||||
<False,True> => Sg ; -- kolme kytkintä on
|
||||
_ => det.n
|
||||
}) ;
|
||||
isPron = False ; isNeg = det.isNeg
|
||||
@@ -73,21 +73,21 @@ concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, StemFin, Prelude in
|
||||
PPartNP np v2 = {
|
||||
s = \\c => np.s ! c ++ (sverb2verbSep v2).s ! PastPartPass (AN (NCase (complNumAgr np.a) Ess)) ;
|
||||
a = np.a ;
|
||||
isPron = np.isPron ; -- minun täällä - ni
|
||||
isPron = np.isPron ; -- minun täällä - ni
|
||||
isNeg = np.isNeg
|
||||
} ;
|
||||
|
||||
AdvNP np adv = {
|
||||
s = \\c => np.s ! c ++ adv.s ;
|
||||
a = np.a ;
|
||||
isPron = np.isPron ; -- minun täällä - ni
|
||||
isPron = np.isPron ; -- minun täällä - ni
|
||||
isNeg = np.isNeg
|
||||
} ;
|
||||
|
||||
ExtAdvNP np adv = {
|
||||
s = \\c => np.s ! c ++ embedInCommas adv.s ;
|
||||
a = np.a ;
|
||||
isPron = np.isPron ; -- minun täällä - ni
|
||||
isPron = np.isPron ; -- minun täällä - ni
|
||||
isNeg = np.isNeg
|
||||
} ;
|
||||
|
||||
@@ -164,8 +164,8 @@ concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, StemFin, Prelude in
|
||||
IndefArt = {
|
||||
s1 = \\_,_ => [] ; -- Nom is Part in Pl: use isDef in DetCN
|
||||
sp = \\n,c =>
|
||||
(nhn (mkSubst "ä" "yksi" "yhde" "yhte" "yhtä" "yhteen" "yksi" "yksi"
|
||||
"yksien" "yksiä" "yksiin")).s ! NCase n c ;
|
||||
(nhn (mkSubst "ä" "yksi" "yhde" "yhte" "yhtä" "yhteen" "yksi" "yksi"
|
||||
"yksien" "yksiä" "yksiin")).s ! NCase n c ;
|
||||
s2 = \\_ => [] ;
|
||||
isNum,isPoss,isDef,isNeg = False -- autoja on
|
||||
} ;
|
||||
@@ -239,7 +239,7 @@ concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, StemFin, Prelude in
|
||||
} ;
|
||||
|
||||
PartNP cn np = {s = \\nf => cn.s ! nf ++ np.s ! NPCase Part ;
|
||||
h = cn.h ---- gives "lasin viiniänsa" ; should be "lasinsa viiniä"
|
||||
h = cn.h ---- gives "lasin viiniänsa" ; should be "lasinsa viiniä"
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
--# -coding=latin1
|
||||
concrete NumeralFin of Numeral = CatFin [Numeral,Digits] ** open Prelude, ParadigmsFin, MorphoFin, StemFin in {
|
||||
|
||||
-- Notice: possessive forms are not used. They get wrong, since every
|
||||
-- part is made to agree in them.
|
||||
|
||||
flags optimize = all_subs ;
|
||||
coding=utf8 ;
|
||||
|
||||
lincat
|
||||
Sub1000000 = {s : CardOrd => Str ; n : MorphoFin.Number} ;
|
||||
@@ -18,23 +18,23 @@ lin
|
||||
(nhn (mkSubst "a" "kolme" "kolme" "kolme" "kolmea" "kolmeen" "kolmi" "kolmi"
|
||||
"kolmien" "kolmia" "kolmiin"))
|
||||
(ordN "a" "kolmas") ;
|
||||
n4 = co (snoun2nounBind (mkN "neljä")) (ordN "ä" "neljäs") ;
|
||||
n5 = co (snoun2nounBind (mkN "viisi" "viiden" "viisiä")) (ordN "ä" "viides") ;
|
||||
n4 = co (snoun2nounBind (mkN "neljä")) (ordN "ä" "neljäs") ;
|
||||
n5 = co (snoun2nounBind (mkN "viisi" "viiden" "viisiä")) (ordN "ä" "viides") ;
|
||||
n6 = co (snoun2nounBind (mkN "kuusi" "kuuden" "kuusia")) (ordN "a" "kuudes") ;
|
||||
n7 = co
|
||||
(nhn (mkSubst "ä" "seitsemän" "seitsemä" "seitsemä" "seitsemää"
|
||||
"seitsemään" "seitsemi" "seitsemi" "seitsemien" "seitsemiä"
|
||||
(nhn (mkSubst "ä" "seitsemän" "seitsemä" "seitsemä" "seitsemää"
|
||||
"seitsemään" "seitsemi" "seitsemi" "seitsemien" "seitsemiä"
|
||||
"seitsemiin"))
|
||||
(ordN "ä" "seitsemäs") ;
|
||||
(ordN "ä" "seitsemäs") ;
|
||||
n8 = co
|
||||
(nhn (mkSubst "a" "kahdeksan" "kahdeksa" "kahdeksa" "kahdeksaa"
|
||||
"kahdeksaan" "kahdeksi" "kahdeksi" "kahdeksien" "kahdeksia"
|
||||
"kahdeksiin"))
|
||||
(ordN "a" "kahdeksas") ;
|
||||
n9 = co
|
||||
(nhn (mkSubst "ä" "yhdeksän" "yhdeksä" "yhdeksä" "yhdeksää"
|
||||
"yhdeksään" "yhdeksi" "yhdeksi" "yhdeksien" "yhdeksiä" "yhdeksiin"))
|
||||
(ordN "ä" "yhdeksäs") ;
|
||||
(nhn (mkSubst "ä" "yhdeksän" "yhdeksä" "yhdeksä" "yhdeksää"
|
||||
"yhdeksään" "yhdeksi" "yhdeksi" "yhdeksien" "yhdeksiä" "yhdeksiin"))
|
||||
(ordN "ä" "yhdeksäs") ;
|
||||
|
||||
pot01 =
|
||||
{s = table {
|
||||
@@ -100,21 +100,21 @@ param
|
||||
|
||||
oper
|
||||
yksiN = co
|
||||
(nhn (mkSubst "ä" "yksi" "yhde" "yhte" "yhtä" "yhteen" "yksi" "yksi"
|
||||
"yksien" "yksiä" "yksiin"))
|
||||
(ordN "ä" "yhdes") ; -- yhdestoista
|
||||
(nhn (mkSubst "ä" "yksi" "yhde" "yhte" "yhtä" "yhteen" "yksi" "yksi"
|
||||
"yksien" "yksiä" "yksiin"))
|
||||
(ordN "ä" "yhdes") ; -- yhdestoista
|
||||
yksi_ensiN = co
|
||||
(nhn (mkSubst "ä" "yksi" "yhde" "yhte" "yhtä" "yhteen" "yksi" "yksi"
|
||||
"yksien" "yksiä" "yksiin"))
|
||||
(snoun2nounBind (mkN "ensimmäinen")) ; -- ensimmäinen ---- sadasensimmäinentuhannes
|
||||
(nhn (mkSubst "ä" "yksi" "yhde" "yhte" "yhtä" "yhteen" "yksi" "yksi"
|
||||
"yksien" "yksiä" "yksiin"))
|
||||
(snoun2nounBind (mkN "ensimmäinen")) ; -- ensimmäinen ---- sadasensimmäinentuhannes
|
||||
kaksi_toinenN = co
|
||||
(nhn (mkSubst "a" "kaksi" "kahde" "kahte" "kahta" "kahteen" "kaksi" "kaksi"
|
||||
"kaksien" "kaksia" "kaksiin"))
|
||||
(snoun2nounBind (mkN "toinen")) ;
|
||||
kymmenenN = co
|
||||
(nhn (mkSubst "ä" "kymmenen" "kymmene" "kymmene" "kymmentä"
|
||||
"kymmeneen" "kymmeni" "kymmeni" "kymmenien" "kymmeniä" "kymmeniin"))
|
||||
(ordN "ä" "kymmenes") ;
|
||||
(nhn (mkSubst "ä" "kymmenen" "kymmene" "kymmene" "kymmentä"
|
||||
"kymmeneen" "kymmeni" "kymmeni" "kymmenien" "kymmeniä" "kymmeniin"))
|
||||
(ordN "ä" "kymmenes") ;
|
||||
sataN = co
|
||||
(snoun2nounBind (mkN "sata"))
|
||||
(ordN "a" "sadas") ;
|
||||
@@ -126,7 +126,7 @@ oper
|
||||
|
||||
kymmentaN =
|
||||
{s = table {
|
||||
NCard (NCase Sg Nom) => "kymmentä" ;
|
||||
NCard (NCase Sg Nom) => "kymmentä" ;
|
||||
k => kymmenenN.s ! k
|
||||
}
|
||||
} ;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
--# -path=.:../abstract:../common:../../prelude
|
||||
--# -coding=latin1
|
||||
|
||||
--1 Finnish Lexical Paradigms
|
||||
--
|
||||
@@ -30,6 +29,7 @@ resource ParadigmsFin = open
|
||||
in {
|
||||
|
||||
flags optimize=noexpand ;
|
||||
coding=utf8 ;
|
||||
|
||||
--2 Parameters
|
||||
--
|
||||
@@ -57,12 +57,12 @@ oper
|
||||
ablative : Case ; -- e.g. "talolta"
|
||||
allative : Case ; -- e.g. "talolle"
|
||||
|
||||
infFirst : InfForm ; -- e.g. "tehdä"
|
||||
infIness : InfForm ; -- e.g. "tekemässä"
|
||||
infElat : InfForm ; -- e.g. "tekemästä"
|
||||
infIllat : InfForm ; -- e.g. "tekemään"
|
||||
infPresPart : InfForm ; -- e.g. "tekevän"
|
||||
infPresPartAgr : InfForm ; -- e.g. "tekevänsä"
|
||||
infFirst : InfForm ; -- e.g. "tehdä"
|
||||
infIness : InfForm ; -- e.g. "tekemässä"
|
||||
infElat : InfForm ; -- e.g. "tekemästä"
|
||||
infIllat : InfForm ; -- e.g. "tekemään"
|
||||
infPresPart : InfForm ; -- e.g. "tekevän"
|
||||
infPresPartAgr : InfForm ; -- e.g. "tekevänsä"
|
||||
|
||||
-- The following type is used for defining *rection*, i.e. complements
|
||||
-- of many-place verbs and adjective. A complement can be defined by
|
||||
@@ -107,16 +107,16 @@ oper
|
||||
--
|
||||
-- If the one-argument paradigm does not give the correct result, one can try and give
|
||||
-- two or three forms. Most notably, the two-argument variant is used
|
||||
-- for nouns like "kivi - kiviä", which would otherwise become like
|
||||
-- "rivi - rivejä". Three arguments are used e.g. for
|
||||
-- for nouns like "kivi - kiviä", which would otherwise become like
|
||||
-- "rivi - rivejä". Three arguments are used e.g. for
|
||||
-- "auto - auton - autoja", which would otherwise become
|
||||
-- "auto - audon".
|
||||
|
||||
mkN : overload {
|
||||
mkN : (kukko : Str) -> N ; -- predictable nouns, covers 82%
|
||||
mkN : (savi,savia : Str) -> N ; -- different pl.part
|
||||
mkN : (vesi,veden,vesiä : Str) -> N ; -- also different sg.gen
|
||||
mkN : (vesi,veden,vesiä,vettä : Str) -> N ; -- also different sg.part
|
||||
mkN : (vesi,veden,vesiä : Str) -> N ; -- also different sg.gen
|
||||
mkN : (vesi,veden,vesiä,vettä : Str) -> N ; -- also different sg.part
|
||||
mkN : (olo,n,a,na,oon,jen,ja,ina,issa,ihin : Str) -> N ; -- worst case, 10 forms
|
||||
mkN : (pika : Str) -> (juna : N) -> N ; -- compound with invariable prefix
|
||||
mkN : (oma : N) -> (tunto : N) -> N ; -- compound with inflecting prefix
|
||||
@@ -166,7 +166,7 @@ oper
|
||||
-- Comparison adjectives have three forms.
|
||||
-- The comparative and the superlative
|
||||
-- are always inflected in the same way, so the nominative of them is actually
|
||||
-- enough (except for the superlative "paras" of "hyvä").
|
||||
-- enough (except for the superlative "paras" of "hyvä").
|
||||
|
||||
mkA : overload {
|
||||
mkA : Str -> A ; -- regular noun made into adjective
|
||||
@@ -204,14 +204,14 @@ oper
|
||||
mkV : (huutaa,huudan,huusi : Str) -> V ; -- also deviating pres. 1sg
|
||||
mkV : (huutaa,dan,taa,tavat,takaa,detaan,sin,si,sisi,tanut,dettu,tanee : Str) -> V ; -- worst-case verb
|
||||
mkV : VK -> V ; -- verb from DictFin (Kotus)
|
||||
mkV : V -> Str -> V ; -- hakata päälle (particle verb)
|
||||
mkV : Str -> V -> V ; -- laimin+lyödä (prefixed verb)
|
||||
mkV : V -> Str -> V ; -- hakata päälle (particle verb)
|
||||
mkV : Str -> V -> V ; -- laimin+lyödä (prefixed verb)
|
||||
} ;
|
||||
|
||||
-- All the patterns above have $nominative$ as subject case.
|
||||
-- If another case is wanted, use the following.
|
||||
|
||||
caseV : Case -> V -> V ; -- deviating subj. case, e.g. genitive "täytyä"
|
||||
caseV : Case -> V -> V ; -- deviating subj. case, e.g. genitive "täytyä"
|
||||
|
||||
-- The verbs "be" is special.
|
||||
|
||||
@@ -251,7 +251,7 @@ oper
|
||||
= \v,p,q -> v ** {c2 = p ; c3 = q ; lock_V3 = <>} ;
|
||||
} ;
|
||||
|
||||
dirV3 : V -> Case -> V3 ; -- siirtää, (accusative), illative
|
||||
dirV3 : V -> Case -> V3 ; -- siirtää, (accusative), illative
|
||||
dirdirV3 : V -> V3 ; -- antaa, (accusative), (allative)
|
||||
|
||||
|
||||
@@ -261,7 +261,7 @@ oper
|
||||
-- questions, verb phrases, and adjectives.
|
||||
|
||||
mkVV = overload {
|
||||
mkVV : Str -> VV -- e.g. "yrittää" (puhua)
|
||||
mkVV : Str -> VV -- e.g. "yrittää" (puhua)
|
||||
= \s -> mkVVf (mkV s) infFirst ;
|
||||
mkVV : V -> VV -- e.g. "alkaa" (puhua)
|
||||
= \v -> mkVVf v infFirst ;
|
||||
@@ -272,7 +272,7 @@ mkVV = overload {
|
||||
} ;
|
||||
|
||||
mkVS = overload {
|
||||
mkVS : Str -> VS -- e.g. "väittää"
|
||||
mkVS : Str -> VS -- e.g. "väittää"
|
||||
= \s -> lin VS (mk1V s) ;
|
||||
mkVS : V -> VS -- e.g. "sanoa"
|
||||
= \v -> lin VS v ;
|
||||
@@ -283,9 +283,9 @@ mkVS = overload {
|
||||
= \s -> mkV2Vf (mkV s) (casePrep partitive) infIllat ; ----
|
||||
mkV2V : V -> V2V -- partitive + infillat
|
||||
= \v -> mkV2Vf v (casePrep partitive) infIllat ; ----
|
||||
mkV2V : V -> Prep -> V2V -- e.g. "käskeä" genitive + infFiilat
|
||||
mkV2V : V -> Prep -> V2V -- e.g. "käskeä" genitive + infFiilat
|
||||
= \v,p -> mkV2Vf v p infIllat ;
|
||||
mkV2V : V -> Prep -> InfForm -> V2V -- e.g. "kieltää" partitive infElat
|
||||
mkV2V : V -> Prep -> InfForm -> V2V -- e.g. "kieltää" partitive infElat
|
||||
= \v,p,f -> mk2V2 v p ** {vi = infform2vvtype f ; lock_V2V = <>} ;
|
||||
mkV2V : V -> Case -> InfForm -> V2V
|
||||
= \v,c,f -> mk2V2 v (casePrep c) ** {vi = infform2vvtype f ; lock_V2V = <>} ;
|
||||
@@ -295,11 +295,11 @@ mkVS = overload {
|
||||
|
||||
mkV2S : V -> Prep -> V2S ; -- e.g. "sanoa" allative
|
||||
mkVVf : V -> InfForm -> VV ; -- e.g. "ruveta" infIllat
|
||||
mkV2Vf : V -> Prep -> InfForm -> V2V ; -- e.g. "kieltää" partitive infElat
|
||||
mkV2Vf : V -> Prep -> InfForm -> V2V ; -- e.g. "kieltää" partitive infElat
|
||||
mkVA : V -> Prep -> VA ; -- e.g. "maistua" ablative
|
||||
mkV2A : V -> Prep -> Prep -> V2A ; -- e.g. "maalata" accusative translative
|
||||
mkVQ : V -> VQ ;
|
||||
mkV2Q : V -> Prep -> V2Q ; -- e.g. "kysyä" ablative
|
||||
mkV2Q : V -> Prep -> V2Q ; -- e.g. "kysyä" ablative
|
||||
|
||||
mkAS : A -> AS ; --%
|
||||
--- mkA2S : A -> Prep -> A2S ; --%
|
||||
@@ -344,7 +344,7 @@ mkVS = overload {
|
||||
= \nu,noun -> lin Det (MorphoFin.mkDet nu (snoun2nounBind noun)) ;
|
||||
mkDet : (isNeg : Bool) -> Number -> N -> Det -- use this with True to create a negative determiner
|
||||
= \isNeg,nu,noun -> lin Det (MorphoFin.mkDetPol isNeg nu (snoun2nounBind noun)) ;
|
||||
mkDet : (isNeg : Bool) -> Number -> N -> Case -> Det -- paljon + False + partitive, ei yhtään + True + partitive
|
||||
mkDet : (isNeg : Bool) -> Number -> N -> Case -> Det -- paljon + False + partitive, ei yhtään + True + partitive
|
||||
= \isNeg,nu,noun,_ -> lin Det (MorphoFin.mkDetPol isNeg nu (snoun2nounBind noun)) ;
|
||||
} ;
|
||||
|
||||
@@ -459,51 +459,51 @@ mkVS = overload {
|
||||
ukk = init ukko ;
|
||||
uko = weakGrade ukko ;
|
||||
ukon = uko + "n" ;
|
||||
o = case last ukko of {"ä" => "ö" ; "a" => "o"} ; -- only used then
|
||||
o = case last ukko of {"ä" => "ö" ; "a" => "o"} ; -- only used then
|
||||
renka = strongGrade (init ukko) ;
|
||||
rake = strongGrade ukko ;
|
||||
in
|
||||
case ukko of {
|
||||
_ + "nen" => dNainen ukko ;
|
||||
_ + ("aa" | "ee" | "ii" | "oo" | "uu" | "yy" |"ää"|"öö") => dPuu ukko ;
|
||||
_ + ("ai" | "ei" | "oi" | "ui" | "yi" | "äi" | "öi") => dPuu ukko ;
|
||||
_ + ("ie" | "uo" | "yö") => dSuo ukko ;
|
||||
_ + ("ea" | "eä") => dKorkea ukko ;
|
||||
_ + ("aa" | "ee" | "ii" | "oo" | "uu" | "yy" |"ää"|"öö") => dPuu ukko ;
|
||||
_ + ("ai" | "ei" | "oi" | "ui" | "yi" | "äi" | "öi") => dPuu ukko ;
|
||||
_ + ("ie" | "uo" | "yö") => dSuo ukko ;
|
||||
_ + ("ea" | "eä") => dKorkea ukko ;
|
||||
_ + "is" => dKaunis ukko ;
|
||||
_ + ("i" | "u") + "n" => dLiitin ukko (renka + "men") ;
|
||||
_ + ("ton" | "tön") => dOnneton ukko ;
|
||||
_ + ("ton" | "tön") => dOnneton ukko ;
|
||||
_ + "e" => dRae ukko (rake + "en") ;
|
||||
_ + ("ut" | "yt") => dOttanut ukko ;
|
||||
_ + ("as" | "äs") => dRae ukko (renka + last renka + "n") ;
|
||||
_ + ("as" | "äs") => dRae ukko (renka + last renka + "n") ;
|
||||
_ + ("uus" | "yys" | "eus" | "eys") => dLujuus ukko ;
|
||||
_ + "s" => dJalas ukko ;
|
||||
|
||||
-- {- heuristics for 3-syllable nouns ending a/ä
|
||||
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + ? +
|
||||
_ + "i" + ? + a@("a" | "ä") =>
|
||||
dSilakka ukko (ukko + "n") (ukk + o + "it" + a) ; -- pesijä
|
||||
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + ? + _ +
|
||||
("a" | "e" | "o" | "u" | "y" | "ä" | "ö") +
|
||||
("l" | "r" | "n") + a@("a" | "ä") =>
|
||||
-- {- heuristics for 3-syllable nouns ending a/ä
|
||||
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + ? +
|
||||
_ + "i" + ? + a@("a" | "ä") =>
|
||||
dSilakka ukko (ukko + "n") (ukk + o + "it" + a) ; -- pesijä
|
||||
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + ? + _ +
|
||||
("a" | "e" | "o" | "u" | "y" | "ä" | "ö") +
|
||||
("l" | "r" | "n") + a@("a" | "ä") =>
|
||||
dSilakka ukko (ukko + "n") (ukk + o + "it" + a) ; -- sarana, omena
|
||||
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + ? + _ +
|
||||
("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") +
|
||||
("n" | "k" | "s") + "k" + a@("a" | "ä") =>
|
||||
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + ? + _ +
|
||||
("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") +
|
||||
("n" | "k" | "s") + "k" + a@("a" | "ä") =>
|
||||
dSilakka ukko (uko + "n") (init uko + o + "it" + a) ; -- silakka
|
||||
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + ? + _ +
|
||||
("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") +
|
||||
("n" | "t" | "s") + "t" + a@("a" | "ä") =>
|
||||
dSilakka ukko (uko + "n") (ukk + o + "j" + a) ; -- yhdyntä (but not isäntä)
|
||||
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + ? + _ +
|
||||
("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") +
|
||||
("n" | "t" | "s") + "t" + a@("a" | "ä") =>
|
||||
dSilakka ukko (uko + "n") (ukk + o + "j" + a) ; -- yhdyntä (but not isäntä)
|
||||
_ + ("a" | "e" | "i" | "o" | "u") + ? + _ +
|
||||
("a" | "e" | "o" | "u") + ? + "a" =>
|
||||
dSilakka ukko (ukko + "n") (ukk + "ia") ; -- asema, johtaja
|
||||
-- -}
|
||||
_ + "i" +o@("o"|"ö") => dSilakka ukko (ukko+"n") (ukko+"it"+getHarmony o);
|
||||
_ + "i" +o@("o"|"ö") => dSilakka ukko (ukko+"n") (ukko+"it"+getHarmony o);
|
||||
_ + "i" + "a" => dSilakka ukko (ukko + "n") (ukk + "oita") ;
|
||||
_ + "i" + "ä" => dSilakka ukko (ukko + "n") (ukk + "öitä") ;
|
||||
_ + ("a" | "o" | "u" | "y" | "ä" | "ö") => dUkko ukko ukon ;
|
||||
_ + "i" + "ä" => dSilakka ukko (ukko + "n") (ukk + "öitä") ;
|
||||
_ + ("a" | "o" | "u" | "y" | "ä" | "ö") => dUkko ukko ukon ;
|
||||
_ + "i" => dPaatti ukko ukon ;
|
||||
_ + ("ar" | "är") => dPiennar ukko (renka + "ren") ;
|
||||
_ + ("ar" | "är") => dPiennar ukko (renka + "ren") ;
|
||||
_ + "e" + ("l" | "n") => dPiennar ukko (ukko + "en") ;
|
||||
_ => dUnix ukko
|
||||
} ;
|
||||
@@ -515,28 +515,28 @@ mkVS = overload {
|
||||
ukon = weakGrade ukko + "n" ;
|
||||
in
|
||||
case <ukko,ukkoja> of {
|
||||
<_, _ + ":" + ? + ("a" | "ä")> => dSDP ukko ;
|
||||
<_, _ + ":" + ? + ("a" | "ä")> => dSDP ukko ;
|
||||
<_ + "ea", _ + "oita"> =>
|
||||
dSilakka ukko ukon ukkoja ; -- idea, but not korkea
|
||||
<_ + ("aa" | "ee" | "ii" | "oo" | "uu" | "yy" | "ää" | "öö" |
|
||||
"ie" | "uo" | "yö" | "ea" | "eä" |
|
||||
"ia" | "iä" | "io" | "iö"), _ + ("a" | "ä")> =>
|
||||
<_ + ("aa" | "ee" | "ii" | "oo" | "uu" | "yy" | "ää" | "öö" |
|
||||
"ie" | "uo" | "yö" | "ea" | "eä" |
|
||||
"ia" | "iä" | "io" | "iö"), _ + ("a" | "ä")> =>
|
||||
nForms1 ukko ; --- to protect --- how to get "dioja"?
|
||||
<_ + ("a" | "ä" | "o" | "ö"), _ + ("a" | "ä")> =>
|
||||
<_ + ("a" | "ä" | "o" | "ö"), _ + ("a" | "ä")> =>
|
||||
dSilakka ukko ukon ukkoja ;
|
||||
<arp + "i", _ + "i" + ("a" | "ä")> =>
|
||||
<arp + "i", _ + "i" + ("a" | "ä")> =>
|
||||
dArpi ukko (init (weakGrade ukko) + "en") ;
|
||||
<_ + "i", _ + ("eita" | "eitä")> =>
|
||||
<_ + "i", _ + ("eita" | "eitä")> =>
|
||||
dTohtori ukko ;
|
||||
<_ + ("ut" | "yt"),_ + ("uita" | "yitä")> => dRae ukko (init ukko + "en") ;
|
||||
<_ + "e", nuk + ("eja" | "ejä")> =>
|
||||
<_ + ("ut" | "yt"),_ + ("uita" | "yitä")> => dRae ukko (init ukko + "en") ;
|
||||
<_ + "e", nuk + ("eja" | "ejä")> =>
|
||||
dNukke ukko ukon ;
|
||||
<_ + "s", _ + "ksi" + ?> => dJalas ukko ;
|
||||
<_ + ("l" | "n" | "r" | "s"), _ + ("eja" | "ejä")> => dUnix ukko ;
|
||||
<_, _ + ("a" | "ä")> => ukot ;
|
||||
<_ + ("l" | "n" | "r" | "s"), _ + ("eja" | "ejä")> => dUnix ukko ;
|
||||
<_, _ + ("a" | "ä")> => ukot ;
|
||||
_ =>
|
||||
Predef.error
|
||||
(["last argument should end in a/ä, not"] ++ ukkoja)
|
||||
(["last argument should end in a/ä, not"] ++ ukkoja)
|
||||
} ;
|
||||
|
||||
nForms3 : (_,_,_ : Str) -> NForms = \ukko,ukon,ukkoja ->
|
||||
@@ -546,17 +546,17 @@ mkVS = overload {
|
||||
in
|
||||
case <ukko,ukon> of {
|
||||
<_, _ + ":n"> => dSDP ukko ;
|
||||
<_ + ("aa" | "ee" | "ii" | "oo" | "uu" | "yy" | "ää" | "öö" |
|
||||
"ie" | "uo" | "yö" | "ea" | "eä" |
|
||||
"ia" | "iä" | "io" | "iö" | "ja" | "jä"), _ + "n"> =>
|
||||
<_ + ("aa" | "ee" | "ii" | "oo" | "uu" | "yy" | "ää" | "öö" |
|
||||
"ie" | "uo" | "yö" | "ea" | "eä" |
|
||||
"ia" | "iä" | "io" | "iö" | "ja" | "jä"), _ + "n"> =>
|
||||
ukot ; --- to protect
|
||||
<_ + ("a" | "o" | "u" | "y" | "ä" | "ö"), _ + "n"> =>
|
||||
<_ + ("a" | "o" | "u" | "y" | "ä" | "ö"), _ + "n"> =>
|
||||
dSilakka ukko ukon ukkoja ; -- auto,auton
|
||||
<_ + "mpi", _ + ("emman" | "emmän")> => dSuurempi ukko ;
|
||||
<_ + "in", _ + ("imman" | "immän")> => dSuurin ukko ;
|
||||
<_ + "mpi", _ + ("emman" | "emmän")> => dSuurempi ukko ;
|
||||
<_ + "in", _ + ("imman" | "immän")> => dSuurin ukko ;
|
||||
<terv + "e", terv2 + "een"> => -- was nonlinear
|
||||
dRae ukko ukon ;
|
||||
<taiv + ("as" | "äs"), taiv2 + ("aan" | "ään")> => -- was nonlinear
|
||||
<taiv + ("as" | "äs"), taiv2 + ("aan" | "ään")> => -- was nonlinear
|
||||
dRae ukko ukon ;
|
||||
<nukk + "e", nuk + "een"> => dRae ukko ukon ;
|
||||
<arp + "i", arv + "en"> => dArpi ukko ukon ;
|
||||
@@ -571,14 +571,14 @@ mkVS = overload {
|
||||
ukot = nForms3 ukko ukon ukkoja ;
|
||||
in
|
||||
case <ukko,ukon,ukkoja,ukkoa> of {
|
||||
<_,_ + "n", _ + ("a" | "ä"), _ + ("a" | "ä")> =>
|
||||
<_,_ + "n", _ + ("a" | "ä"), _ + ("a" | "ä")> =>
|
||||
table {
|
||||
2 => ukkoa ;
|
||||
n => ukot ! n
|
||||
} ;
|
||||
_ =>
|
||||
Predef.error
|
||||
(["last arguments should end in n, a/ä, and a/ä, not"] ++
|
||||
(["last arguments should end in n, a/ä, and a/ä, not"] ++
|
||||
ukon ++ ukkoja ++ ukkoa)
|
||||
} ;
|
||||
|
||||
@@ -613,7 +613,7 @@ mkVS = overload {
|
||||
noun : Str -> NForms = \s -> case s of {
|
||||
_ + "i" => dPaatti s (s + "n") ;
|
||||
_ + "e" => dNukke s (s + "n") ;
|
||||
_ + ("a" | "o" | "u" | "y" | "ä" | "ö" | "ü") => dUkko s (s + "n") ;
|
||||
_ + ("a" | "o" | "u" | "y" | "ä" | "ö" | "ü") => dUkko s (s + "n") ;
|
||||
_ => dUnix s
|
||||
}
|
||||
} ;
|
||||
@@ -693,28 +693,28 @@ mkVS = overload {
|
||||
ot = init ota ;
|
||||
in
|
||||
case ottaa of {
|
||||
_ + ("e" | "i" | "o" | "u" | "y" | "ö") + ("a" | "ä") =>
|
||||
_ + ("e" | "i" | "o" | "u" | "y" | "ö") + ("a" | "ä") =>
|
||||
cHukkua ottaa (ota + "n") ;
|
||||
_ + ("l" | "n" | "r") + ("taa" | "tää") =>
|
||||
_ + ("l" | "n" | "r") + ("taa" | "tää") =>
|
||||
cOttaa ottaa (ota + "n") (ots + "in") (ots + "i") ;
|
||||
("" | ?) + ("a" | "e" | "i" | "o" | "u") + ? + _ +
|
||||
("a" | "e" | "i" | "o" | "u") + _ + "aa" =>
|
||||
cOttaa ottaa (ota + "n") (ot + "in") (ott + "i") ;
|
||||
("" | ?) + ("a" | "e" | "i") + _ + "aa" =>
|
||||
cOttaa ottaa (ota + "n") (ot + "oin") (ott + "oi") ;
|
||||
_ + ("aa" | "ää") =>
|
||||
_ + ("aa" | "ää") =>
|
||||
cOttaa ottaa (ota + "n") (ot + "in") (ott + "i") ;
|
||||
_ + ("ella" | "ellä") =>
|
||||
_ + ("ella" | "ellä") =>
|
||||
cKuunnella ottaa otin ;
|
||||
_ + ("osta" | "östä") =>
|
||||
_ + ("osta" | "östä") =>
|
||||
cJuosta ottaa (init ott + "ksen") ;
|
||||
_ + ("st" | "nn" | "ll" | "rr") + ("a" | "ä") =>
|
||||
_ + ("st" | "nn" | "ll" | "rr") + ("a" | "ä") =>
|
||||
cJuosta ottaa (ott + "en") ;
|
||||
_ + ("ita" | "itä") =>
|
||||
_ + ("ita" | "itä") =>
|
||||
cHarkita ottaa ;
|
||||
_ + ("eta" | "etä" | "ota" | "ata" | "uta" | "ytä" | "ätä" | "ötä") =>
|
||||
_ + ("eta" | "etä" | "ota" | "ata" | "uta" | "ytä" | "ätä" | "ötä") =>
|
||||
cPudota ottaa (strongGrade ott + "si") ;
|
||||
_ + ("da" | "dä") =>
|
||||
_ + ("da" | "dä") =>
|
||||
cJuoda ottaa ;
|
||||
_ => Predef.error (["expected infinitive, found"] ++ ottaa)
|
||||
} ;
|
||||
@@ -726,17 +726,17 @@ mkVS = overload {
|
||||
autoin = weakGrade (init huusi) + "in" ;
|
||||
in
|
||||
case <huutaa,huusi> of {
|
||||
<_ + ("taa" | "tää"), _ + ("oi" | "öi")> =>
|
||||
<_ + ("taa" | "tää"), _ + ("oi" | "öi")> =>
|
||||
cOttaa huutaa (huuda + "n") autoin huusi ;
|
||||
<_ + ("aa" | "ää"), _ + "i"> =>
|
||||
<_ + ("aa" | "ää"), _ + "i"> =>
|
||||
cOttaa huutaa (huuda + "n") huusin huusi ;
|
||||
<_ + ("eta" | "etä"), _ + "eni"> =>
|
||||
<_ + ("eta" | "etä"), _ + "eni"> =>
|
||||
cValjeta huutaa huusi ;
|
||||
<_ + ("sta" | "stä"), _ + "si"> =>
|
||||
vForms1 huutaa ; -- pestä, halkaista
|
||||
<_ + ("ta" | "tä"), _ + "si"> =>
|
||||
<_ + ("sta" | "stä"), _ + "si"> =>
|
||||
vForms1 huutaa ; -- pestä, halkaista
|
||||
<_ + ("ta" | "tä"), _ + "si"> =>
|
||||
cPudota huutaa huusi ;
|
||||
<_ + ("lla" | "llä"), _ + "li"> =>
|
||||
<_ + ("lla" | "llä"), _ + "li"> =>
|
||||
cKuunnella huutaa huusin ;
|
||||
_ => vForms1 huutaa
|
||||
} ;
|
||||
@@ -747,7 +747,7 @@ mkVS = overload {
|
||||
|
||||
vOlla = {
|
||||
s = ollaSVerbForms ;
|
||||
sc = SCNom ; h = Back ; lock_V = <> ; p = []} ; ---- lieneekö
|
||||
sc = SCNom ; h = Back ; lock_V = <> ; p = []} ; ---- lieneekö
|
||||
|
||||
mk2V2 : V -> Prep -> V2 = \v,c -> v ** {c2 = c ; lock_V2 = <>} ;
|
||||
caseV2 : V -> Case -> V2 = \v,c -> mk2V2 v (casePrep c) ;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--# -coding=latin1
|
||||
concrete QuestionFin of Question = CatFin ** open ResFin, StemFin, Prelude in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
coding=utf8 ;
|
||||
|
||||
lin
|
||||
|
||||
@@ -55,9 +55,9 @@ concrete QuestionFin of Question = CatFin ** open ResFin, StemFin, Prelude in {
|
||||
let
|
||||
k = npform2case n c ;
|
||||
ncase = case <k,idet.isNum> of {
|
||||
<Nom, True> => NCase Sg Part ; -- mitkä kolme kytkintä
|
||||
<Nom, True> => NCase Sg Part ; -- mitkä kolme kytkintä
|
||||
<_, True> => NCase Sg k ; -- miksi kolmeksi kytkimeksi
|
||||
_ => NCase n k -- mitkä kytkimet
|
||||
_ => NCase n k -- mitkä kytkimet
|
||||
}
|
||||
in
|
||||
idet.s ! k ++ cn.s ! ncase ;
|
||||
@@ -81,9 +81,9 @@ concrete QuestionFin of Question = CatFin ** open ResFin, StemFin, Prelude in {
|
||||
s = \\k =>
|
||||
let
|
||||
ncase = case <k,isn> of {
|
||||
<Nom, True> => NCase Sg Part ; -- mitkä kolme kytkintä
|
||||
<Nom, True> => NCase Sg Part ; -- mitkä kolme kytkintä
|
||||
<_, True> => NCase Sg k ; -- miksi kolmeksi kytkimeksi
|
||||
_ => NCase n k -- mitkä kytkimet
|
||||
_ => NCase n k -- mitkä kytkimet
|
||||
}
|
||||
in
|
||||
idet.s ! n ! k ++ num.s ! Sg ! k ;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
--# -coding=latin1
|
||||
concrete RelativeFin of Relative = CatFin ** open Prelude, ResFin, MorphoFin, StemFin in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
coding=utf8 ;
|
||||
|
||||
lin
|
||||
|
||||
RelCl cl = {
|
||||
s = \\t,a,p,_ => "siten" ++ "että" ++ cl.s ! t ! a ! p ! SDecl ;
|
||||
s = \\t,a,p,_ => "siten" ++ "että" ++ cl.s ! t ! a ! p ! SDecl ;
|
||||
---- sellainen
|
||||
c = NPCase Nom
|
||||
} ;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
--# -path=.:../abstract:../common:../../prelude
|
||||
--# -coding=latin1
|
||||
|
||||
--1 Finnish auxiliary operations.
|
||||
|
||||
@@ -11,6 +10,7 @@
|
||||
resource ResFin = ParamX ** open Prelude in {
|
||||
|
||||
flags optimize=all ;
|
||||
coding=utf8 ;
|
||||
|
||||
|
||||
--2 Parameters for $Noun$
|
||||
@@ -220,11 +220,11 @@ param
|
||||
let
|
||||
c = case co.c of {
|
||||
NPAcc => case b of {
|
||||
Neg => NPCase Part ; -- en näe taloa/sinua
|
||||
Neg => NPCase Part ; -- en näe taloa/sinua
|
||||
Pos => case isFin of {
|
||||
True => NPAcc ; -- näen/täytyy nähdä sinut
|
||||
True => NPAcc ; -- näen/täytyy nähdä sinut
|
||||
_ => case np.isPron of {
|
||||
False => NPCase Nom ; -- täytyy nähdä talo
|
||||
False => NPCase Nom ; -- täytyy nähdä talo
|
||||
_ => NPAcc
|
||||
}
|
||||
}
|
||||
@@ -298,7 +298,7 @@ oper
|
||||
} ;
|
||||
|
||||
kin : Polarity -> Harmony -> Str =
|
||||
\p,b -> case p of {Pos => (mkPart "kin" "kin").s ! b ; Neg => (mkPart "kaan" "kään").s ! b} ;
|
||||
\p,b -> case p of {Pos => (mkPart "kin" "kin").s ! b ; Neg => (mkPart "kaan" "kään").s ! b} ;
|
||||
|
||||
mkPart : Str -> Str -> {s : Harmony => Str} = \ko,koe ->
|
||||
{s = table {Back => glueTok ko ; Front => glueTok koe}} ;
|
||||
@@ -311,7 +311,7 @@ oper
|
||||
subjForm : NP -> SubjCase -> Polarity -> Str = \np,sc,b ->
|
||||
appCompl False b {s = <[],[],\\_ => []> ; c = subjcase2npform sc} np ;
|
||||
|
||||
questPart : Harmony -> Str = \b -> case b of {Back => "ko" ; _ => "kö"} ;
|
||||
questPart : Harmony -> Str = \b -> case b of {Back => "ko" ; _ => "kö"} ;
|
||||
|
||||
-- The definitions below were moved here from $MorphoFin$ so that the
|
||||
-- auxiliary of predication can be defined.
|
||||
@@ -365,7 +365,7 @@ oper
|
||||
Potent Sg P3 => "lienee" ; --# notpresent
|
||||
Potent Pl P1 => "lienemme" ; --# notpresent
|
||||
Potent Pl P2 => "lienette" ; --# notpresent
|
||||
Potent Pl P3 => "lienevät" ; --# notpresent
|
||||
Potent Pl P3 => "lienevät" ; --# notpresent
|
||||
PotentNeg => "liene" ; --# notpresent
|
||||
Imper Sg => "ole" ;
|
||||
Imper Pl => "olkaa" ;
|
||||
@@ -398,8 +398,8 @@ oper
|
||||
-- Unfortunately not enough (without complicated processes).
|
||||
-- We moreover give grade alternation forms as arguments, since it does not
|
||||
-- happen automatically.
|
||||
--- A problem remains with the verb "seistä", where the infinitive
|
||||
--- stem has vowel harmony "ä" but the others "a", thus "seisoivat" but "seiskää".
|
||||
--- A problem remains with the verb "seistä", where the infinitive
|
||||
--- stem has vowel harmony "ä" but the others "a", thus "seisoivat" but "seiskää".
|
||||
|
||||
|
||||
noun2adj : CommonNoun -> Adj = noun2adjComp True ;
|
||||
@@ -521,9 +521,9 @@ oper
|
||||
(rakei + "den")
|
||||
(rakei + ("t" + a))
|
||||
(rakei + "siin") ;
|
||||
-- Nouns with partitive "a"/"ä" ;
|
||||
-- Nouns with partitive "a"/"ä" ;
|
||||
-- to account for grade and vowel alternation, three forms are usually enough
|
||||
-- Examples: "talo", "kukko", "huippu", "koira", "kukka", "syylä",...
|
||||
-- Examples: "talo", "kukko", "huippu", "koira", "kukka", "syylä",...
|
||||
|
||||
sKukko : (_,_,_ : Str) -> NounH = \kukko,kukon,kukkoja ->
|
||||
let {
|
||||
@@ -555,7 +555,7 @@ oper
|
||||
oper
|
||||
reflPron : Agr -> NP = \agr ->
|
||||
let
|
||||
itse = (nhn (sKukko "itse" "itsen" "itsejä")).s ;
|
||||
itse = (nhn (sKukko "itse" "itsen" "itsejä")).s ;
|
||||
nsa = possSuffixFront agr
|
||||
in {
|
||||
s = table {
|
||||
@@ -575,7 +575,7 @@ oper
|
||||
} ;
|
||||
|
||||
possSuffixFront : Agr -> Str = \agr ->
|
||||
table Agr ["ni" ; "si" ; "nsä" ; "mme" ; "nne" ; "nsä" ; "nne"] ! agr ;
|
||||
table Agr ["ni" ; "si" ; "nsä" ; "mme" ; "nne" ; "nsä" ; "nne"] ! agr ;
|
||||
possSuffix : Agr -> Str = \agr ->
|
||||
table Agr ["ni" ; "si" ; "nsa" ; "mme" ; "nne" ; "nsa" ; "nne"] ! agr ;
|
||||
|
||||
@@ -586,7 +586,7 @@ oper
|
||||
isPron = False -- has no special accusative
|
||||
} ;
|
||||
|
||||
etta_Conj : Str = "että" ;
|
||||
etta_Conj : Str = "että" ;
|
||||
|
||||
heavyDet : PDet -> PDet ** {sp : Case => Str} = \d -> d ** {sp = d.s1} ;
|
||||
PDet : Type = {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--# -coding=latin1
|
||||
concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin, StemFin in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
coding=utf8 ;
|
||||
|
||||
lin
|
||||
|
||||
@@ -38,7 +38,7 @@ concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin, StemFin in {
|
||||
SlashVS np vs slash = {
|
||||
s = \\t,a,p =>
|
||||
(mkClause (subjForm np vs.sc) np.a
|
||||
(insertExtrapos ("että" ++ slash.s)
|
||||
(insertExtrapos ("että" ++ slash.s)
|
||||
(predSV vs))
|
||||
).s ! t ! a ! p ! SDecl ;
|
||||
c2 = slash.c2
|
||||
@@ -63,7 +63,7 @@ concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin, StemFin in {
|
||||
AdvS a s = {s = a.s ++ s.s} ;
|
||||
ExtAdvS a s = {s = a.s ++ "," ++ s.s} ;
|
||||
|
||||
RelS s r = {s = s.s ++ "," ++ r.s ! agrP3 Sg} ; ---- mikä
|
||||
RelS s r = {s = s.s ++ "," ++ r.s ! agrP3 Sg} ; ---- mikä
|
||||
|
||||
SSubjS a subj b = {s = a.s ++ "," ++ subj.s ++ b.s} ;
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
--# -coding=latin1
|
||||
concrete StructuralFin of Structural = CatFin **
|
||||
open MorphoFin, ParadigmsFin, (X = ConstructX), StemFin, Prelude in {
|
||||
|
||||
flags optimize=all ;
|
||||
coding=utf8 ;
|
||||
|
||||
lin
|
||||
above_Prep = postGenPrep "yläpuolella" ;
|
||||
after_Prep = postGenPrep "jälkeen" ;
|
||||
above_Prep = postGenPrep "yläpuolella" ;
|
||||
after_Prep = postGenPrep "jälkeen" ;
|
||||
|
||||
all_Predet = {s = \\n,c =>
|
||||
let
|
||||
@@ -24,8 +24,8 @@ concrete StructuralFin of Structural = CatFin **
|
||||
because_Subj = ss "koska" ;
|
||||
before_Prep = prePrep partitive "ennen" ;
|
||||
behind_Prep = postGenPrep "takana" ;
|
||||
between_Prep = postGenPrep "välissä" ;
|
||||
both7and_DConj = sd2 "sekä" "että" ** {n = Pl} ;
|
||||
between_Prep = postGenPrep "välissä" ;
|
||||
both7and_DConj = sd2 "sekä" "että" ** {n = Pl} ;
|
||||
but_PConj = ss "mutta" ;
|
||||
by8agent_Prep = postGenPrep "toimesta" ;
|
||||
by8means_Prep = casePrep adessive ;
|
||||
@@ -38,20 +38,20 @@ concrete StructuralFin of Structural = CatFin **
|
||||
everything_NP = makeNP ((((mkN "kaikki" "kaiken" "kaikkena")))) Sg ;
|
||||
everywhere_Adv = ss "kaikkialla" ;
|
||||
few_Det = MorphoFin.mkDet Sg (snoun2nounBind (mkN "harva")) ;
|
||||
--- first_Ord = {s = \\n,c => (mkN "ensimmäinen").s ! NCase n c} ;
|
||||
--- first_Ord = {s = \\n,c => (mkN "ensimmäinen").s ! NCase n c} ;
|
||||
for_Prep = casePrep allative ;
|
||||
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ä" ;
|
||||
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" ;
|
||||
how8much_IAdv = ss "kuinka paljon" ;
|
||||
how8many_IDet =
|
||||
{s = \\c => "kuinka" ++ (snoun2nounBind (mkN "moni" "monia")).s ! NCase Sg c ; n = Sg ; isNum = False} ;
|
||||
if_Subj = ss "jos" ;
|
||||
in8front_Prep = postGenPrep "edessä" ;
|
||||
i_Pron = mkPronoun "minä" "minun" "minua" "minuna" "minuun" Sg P1 ;
|
||||
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 ;
|
||||
@@ -59,12 +59,12 @@ concrete StructuralFin of Structural = CatFin **
|
||||
hasPoss = False ;
|
||||
poss = "sen" ;
|
||||
} ;
|
||||
less_CAdv = X.mkCAdv "vähemmän" "kuin" ;
|
||||
less_CAdv = X.mkCAdv "vähemmän" "kuin" ;
|
||||
many_Det = MorphoFin.mkDet Sg (snoun2nounBind (mkN "moni" "monia")) ;
|
||||
more_CAdv = X.mkCAdv "enemmän" "kuin" ;
|
||||
more_CAdv = X.mkCAdv "enemmän" "kuin" ;
|
||||
most_Predet = {s = \\n,c => (nForms2N (dSuurin "useinta")).s ! NCase n (npform2case n c)} ;
|
||||
much_Det = MorphoFin.mkDet Sg {s = \\_ => "paljon" ; h = Back} ; --Harmony not relevant, it's just a CommonNoun
|
||||
must_VV = mkVV (caseV genitive (mkV "täytyä")) ;
|
||||
must_VV = mkVV (caseV genitive (mkV "täytyä")) ;
|
||||
no_Utt = ss "ei" ;
|
||||
on_Prep = casePrep adessive ;
|
||||
--- one_Quant = MorphoFin.mkDet Sg DEPREC
|
||||
@@ -72,10 +72,10 @@ concrete StructuralFin of Structural = CatFin **
|
||||
or_Conj = {s1 = [] ; s2 = "tai" ; n = Sg} ;
|
||||
otherwise_PConj = ss "muuten" ;
|
||||
part_Prep = casePrep partitive ;
|
||||
please_Voc = ss ["ole hyvä"] ; --- number
|
||||
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 ;
|
||||
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 ;
|
||||
@@ -109,19 +109,19 @@ concrete StructuralFin of Structural = CatFin **
|
||||
} ;
|
||||
s2 = \\_ => [] ; isNum,isPoss = False ; isDef = True ; isNeg = False
|
||||
} ;
|
||||
that_Subj = ss "että" ;
|
||||
there_Adv = ss "siellä" ; --- tuolla
|
||||
that_Subj = ss "että" ;
|
||||
there_Adv = ss "siellä" ; --- tuolla
|
||||
there7to_Adv = ss "sinne" ;
|
||||
there7from_Adv = ss "sieltä" ;
|
||||
there7from_Adv = ss "sieltä" ;
|
||||
therefore_PConj = ss "siksi" ;
|
||||
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 = heavyQuant {
|
||||
s1 = table (MorphoFin.Number) {
|
||||
Sg => table (MorphoFin.Case) {
|
||||
c => (mkPronoun "tämä" "tämän" "tätä" "tänä" "tähän" Sg P3).s ! NPCase c
|
||||
c => (mkPronoun "tämä" "tämän" "tätä" "tänä" "tähän" Sg P3).s ! NPCase c
|
||||
} ;
|
||||
Pl => table (MorphoFin.Case) {
|
||||
c => (mkPronoun "nämä" "näiden" "näitä" "näinä" "näihin" Sg P3).s ! NPCase c
|
||||
c => (mkPronoun "nämä" "näiden" "näitä" "näinä" "näihin" Sg P3).s ! NPCase c
|
||||
}
|
||||
} ;
|
||||
s2 = \\_ => [] ; isNum,isPoss = False ; isDef = True ; isNeg = False
|
||||
@@ -130,11 +130,11 @@ concrete StructuralFin of Structural = CatFin **
|
||||
too_AdA = ss "liian" ;
|
||||
to_Prep = casePrep illative ; --- allative
|
||||
under_Prep = postGenPrep "alla" ;
|
||||
very_AdA = ss "erittäin" ;
|
||||
very_AdA = ss "erittäin" ;
|
||||
want_VV = mkVV (mkV "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 = {
|
||||
s = table {NPAcc => "mitkä" ; c => mikaInt ! Pl ! npform2case Pl c} ;
|
||||
s = table {NPAcc => "mitkä" ; c => mikaInt ! Pl ! npform2case Pl c} ;
|
||||
n = Pl
|
||||
} ;
|
||||
whatSg_IP = {
|
||||
@@ -143,7 +143,7 @@ concrete StructuralFin of Structural = CatFin **
|
||||
} ;
|
||||
when_IAdv = ss "milloin" ;
|
||||
when_Subj = ss "kun" ;
|
||||
where_IAdv = ss "missä" ;
|
||||
where_IAdv = ss "missä" ;
|
||||
which_IQuant = {
|
||||
s = mikaInt
|
||||
} ;
|
||||
@@ -152,17 +152,17 @@ concrete StructuralFin of Structural = CatFin **
|
||||
n = Sg
|
||||
} ;
|
||||
whoPl_IP = {
|
||||
s = table {NPAcc => "ketkä" ; c => kukaInt ! Pl ! npform2case Pl c} ;
|
||||
s = table {NPAcc => "ketkä" ; c => kukaInt ! Pl ! npform2case Pl c} ;
|
||||
n = Pl
|
||||
} ;
|
||||
why_IAdv = ss "miksi" ;
|
||||
without_Prep = prePrep partitive "ilman" ;
|
||||
with_Prep = postGenPrep "kanssa" ;
|
||||
yes_Utt = ss "kyllä" ;
|
||||
youSg_Pron = mkPronoun "sinä" "sinun" "sinua" "sinuna" "sinuun" Sg P2 ;
|
||||
youPl_Pron = mkPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 ;
|
||||
yes_Utt = 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 =
|
||||
let p = mkPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 in
|
||||
let p = mkPronoun "te" "teidän" "teitä" "teinä" "teihin" Pl P2 in
|
||||
{s = p.s ; a = AgPol ; hasPoss = True ; poss = p.poss} ;
|
||||
|
||||
oper
|
||||
@@ -201,16 +201,16 @@ oper
|
||||
} in
|
||||
table {
|
||||
Sg => table {
|
||||
Nom => "mikä" ;
|
||||
Gen => "minkä" ;
|
||||
Part => "mitä" ;
|
||||
Nom => "mikä" ;
|
||||
Gen => "minkä" ;
|
||||
Part => "mitä" ;
|
||||
Illat => "mihin" ;
|
||||
c => mi.s ! NCase Sg c
|
||||
} ;
|
||||
Pl => table {
|
||||
Nom => "mitkä" ;
|
||||
Gen => "minkä" ;
|
||||
Part => "mitä" ;
|
||||
Nom => "mitkä" ;
|
||||
Gen => "minkä" ;
|
||||
Part => "mitä" ;
|
||||
Illat => "mihin" ;
|
||||
c => mi.s ! NCase Sg c
|
||||
}
|
||||
@@ -218,55 +218,55 @@ oper
|
||||
|
||||
kukaInt : MorphoFin.Number => (MorphoFin.Case) => Str =
|
||||
let
|
||||
kuka = snoun2nounBind (mkN "kuka" "kenen" "ketä" "kenä" "keneen"
|
||||
"keiden" "keitä" "keinä" "keissä" "keihin") ;
|
||||
kuka = snoun2nounBind (mkN "kuka" "kenen" "ketä" "kenä" "keneen"
|
||||
"keiden" "keitä" "keinä" "keissä" "keihin") ;
|
||||
in
|
||||
table {
|
||||
Sg => table {
|
||||
c => kuka.s ! NCase Sg c
|
||||
} ;
|
||||
Pl => table {
|
||||
Nom => "ketkä" ;
|
||||
Nom => "ketkä" ;
|
||||
c => kuka.s ! NCase Pl c
|
||||
}
|
||||
} ;
|
||||
mikaanPron : MorphoFin.Number => (MorphoFin.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"
|
||||
<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 : MorphoFin.Number => (MorphoFin.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"
|
||||
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"
|
||||
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"
|
||||
}
|
||||
} ;
|
||||
|
||||
@@ -300,10 +300,10 @@ lin
|
||||
isPron = False ; isNeg = True
|
||||
} ;
|
||||
|
||||
at_least_AdN = ss "vähintään" ;
|
||||
at_most_AdN = ss "enintään" ;
|
||||
at_least_AdN = ss "vähintään" ;
|
||||
at_most_AdN = ss "enintään" ;
|
||||
|
||||
as_CAdv = X.mkCAdv "yhtä" "kuin" ;
|
||||
as_CAdv = X.mkCAdv "yhtä" "kuin" ;
|
||||
|
||||
except_Prep = postPrep partitive "lukuunottamatta" ;
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ concrete TerminologyFin of Terminology = CatFin ** open
|
||||
Prelude,
|
||||
HTML
|
||||
in {
|
||||
flags coding=utf8 ;
|
||||
|
||||
|
||||
lincat
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
--1 Verb Phrases in Finnish
|
||||
|
||||
--# -coding=latin1
|
||||
concrete VerbFin of Verb = CatFin ** open Prelude, ResFin, StemFin in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
coding=utf8 ;
|
||||
|
||||
lin
|
||||
UseV = predSV ;
|
||||
@@ -22,8 +22,8 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin, StemFin in {
|
||||
(\\_,b,a => infVP v.sc b a vp (vvtype2infform v.vi))
|
||||
(predSV {s = v.s ;
|
||||
sc = case vp.s.sc of {
|
||||
SCNom => v.sc ; -- minun täytyy pestä auto
|
||||
c => c -- minulla täytyy olla auto
|
||||
SCNom => v.sc ; -- minun täytyy pestä auto
|
||||
c => c -- minulla täytyy olla auto
|
||||
} ;
|
||||
h = v.h ; p = v.p
|
||||
}
|
||||
@@ -71,8 +71,8 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin, StemFin in {
|
||||
(\\_,b,a => infVP v.sc b a vp v.vi)
|
||||
(predSV {s = v.s ;
|
||||
sc = case vp.s.sc of {
|
||||
NPCase Nom => v.sc ; -- minun täytyy pestä auto
|
||||
c => c -- minulla täytyy olla auto
|
||||
NPCase Nom => v.sc ; -- minun täytyy pestä auto
|
||||
c => c -- minulla täytyy olla auto
|
||||
} ;
|
||||
h = v.h ; p = v.p
|
||||
}
|
||||
@@ -108,7 +108,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin, StemFin in {
|
||||
let
|
||||
n = complNumAgr agr ;
|
||||
c = case n of {
|
||||
Sg => Nom ; -- minä olen iso ; te olette iso
|
||||
Sg => Nom ; -- minä olen iso ; te olette iso
|
||||
Pl => Part -- me olemme isoja ; te olette isoja
|
||||
} --- definiteness of NP ?
|
||||
in ap.s ! False ! (NCase n c)
|
||||
@@ -118,7 +118,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin, StemFin in {
|
||||
let
|
||||
n = complNumAgr agr ;
|
||||
c = case n of {
|
||||
Sg => Nom ; -- minä olen iso ; te olette iso
|
||||
Sg => Nom ; -- minä olen iso ; te olette iso
|
||||
Pl => Part -- me olemme isoja ; te olette isoja
|
||||
} --- definiteness of NP ?
|
||||
in cn.s ! (NCase n c)
|
||||
@@ -136,13 +136,13 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin, StemFin in {
|
||||
-- The work is done jointly in ResFin.infVP and appCompl.
|
||||
-- Cases to test: l -table (to see negated forms)
|
||||
--```
|
||||
-- minun täytyy ostaa auto
|
||||
-- minun täytyy ostaa auto
|
||||
-- PredVP (UsePron i_Pron) (ComplVV must_VV
|
||||
-- (ComplV2 buy_V2 (DetCN (DetSg (SgQuant DefArt) NoOrd) (UseN car_N))))
|
||||
-- minä tahdon ostaa auton
|
||||
-- minä tahdon ostaa auton
|
||||
-- PredVP (UsePron i_Pron) (ComplVV want_VV
|
||||
-- (ComplV2 buy_V2 (DetCN (DetSg (SgQuant DefArt) NoOrd) (UseN car_N))))
|
||||
-- minulla täytyy olla auto
|
||||
-- minulla täytyy olla auto
|
||||
-- PredVP (UsePron i_Pron) (ComplVV must_VV
|
||||
-- (ComplV2 have_V2 (DetCN (DetSg (SgQuant DefArt) NoOrd) (UseN car_N))))
|
||||
--```
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
--# -path=.:..:../../abstract:../../common:../../english:../kotus
|
||||
--# -coding=latin1
|
||||
|
||||
resource WNKotus = open Kotus, MorphoFin, ParadigmsFin, CatFin, StemFin, Prelude in {
|
||||
|
||||
flags coding=utf8 ;
|
||||
-- interpretations of paradigms in KOTUS word list, used in DictFin built with the Finnish Wordnet
|
||||
|
||||
oper vowelHarmony = vowHarmony ;
|
||||
@@ -33,7 +33,7 @@ oper
|
||||
mkWN : NForms -> Str -> Str -> N = \s,t,u -> separateN (t ++ u) (lin N (nforms2snoun s)) ;
|
||||
mkWN : (_ : N) -> N = \n -> n ;
|
||||
mkWN : N -> Str -> N = \n,s -> separateN s n ; --- emansipaation kannattaja
|
||||
mkWN : N -> (_,_ : Str) -> N = \n,s,t -> separateN (s ++ t) n ; --- silmäluomien synnynnäinen puuttuminen
|
||||
mkWN : N -> (_,_ : Str) -> N = \n,s,t -> separateN (s ++ t) n ; --- silmäluomien synnynnäinen puuttuminen
|
||||
} ;
|
||||
|
||||
mkWA = overload {
|
||||
@@ -43,7 +43,7 @@ oper
|
||||
mkWN : NForms -> Str -> A = \s,t -> mkA (separateN t (lin N (nforms2snoun s))) ;
|
||||
mkWA : (_ : N) -> A = \n -> mkA n ;
|
||||
mkWA : N -> Str -> A = \n,s -> mkA (separateN s n) ; --- emansipaation kannattaja
|
||||
mkWA : N -> (_,_ : Str) -> A = \n,s,t -> mkA (separateN (s ++ t) n) ; --- silmäluomien synnynnäinen puuttuminen
|
||||
mkWA : N -> (_,_ : Str) -> A = \n,s,t -> mkA (separateN (s ++ t) n) ; --- silmäluomien synnynnäinen puuttuminen
|
||||
} ;
|
||||
|
||||
mkWAdv = overload {
|
||||
@@ -143,61 +143,61 @@ oper
|
||||
|
||||
-- kotus paradigms
|
||||
|
||||
k1 : Str -> NForms -- 1780 öljy
|
||||
k1 : Str -> NForms -- 1780 öljy
|
||||
= \s -> dUkko s (s + "n") ;
|
||||
k1A : Str -> NForms -- 166 yökkö
|
||||
k1A : Str -> NForms -- 166 yökkö
|
||||
= \s -> dUkko s (weakGrade s + "n") ;
|
||||
k2 : Str -> NForms -- 1189 ääntely
|
||||
k2 : Str -> NForms -- 1189 ääntely
|
||||
= \s -> dSilakka s (s + "n") (s + "j" + getHarmony (last s)) ;
|
||||
k3 : Str -> NForms -- 481 ääntiö
|
||||
k3 : Str -> NForms -- 481 ääntiö
|
||||
= \s -> dSilakka s (s + "n") (s + "it" + vowelHarmony s) ;
|
||||
k4A : Str -> NForms -- 273 äpärikkö
|
||||
k4A : Str -> NForms -- 273 äpärikkö
|
||||
= \s -> let ws = weakGrade s in
|
||||
dSilakka s (ws + "n") (ws + "it" + getHarmony (last s)) ;
|
||||
k5 : Str -> NForms -- 3212 öljymaali
|
||||
k5 : Str -> NForms -- 3212 öljymaali
|
||||
= \s -> case last s of {
|
||||
"i" => dPaatti s (s + "n") ;
|
||||
_ => dUnix s
|
||||
} ;
|
||||
k5A : Str -> NForms -- 1959 öylätti
|
||||
k5A : Str -> NForms -- 1959 öylätti
|
||||
= \s -> dPaatti s (weakGrade s + "n") ;
|
||||
k6 : Str -> NForms -- 1231 öykkäri
|
||||
k6 : Str -> NForms -- 1231 öykkäri
|
||||
= \s -> dTohtori s ;
|
||||
k7 : Str -> NForms -- 81 vuoksi
|
||||
= \s -> dArpi s (init s + "en") ;
|
||||
k7A : Str -> NForms -- 70 väki
|
||||
k7A : Str -> NForms -- 70 väki
|
||||
= \s -> dArpi s (init (weakGrade s) + "en") ;
|
||||
k8 : Str -> NForms -- 99 à la carte
|
||||
k8 : Str -> NForms -- 99 à la carte
|
||||
= \s -> dNukke s (s + "n") ;
|
||||
k8A : Str -> NForms -- 5 vinaigrette
|
||||
= \s -> dNukke s (weakGrade s + "n") ;
|
||||
k9 : Str -> NForms -- 696 ääriraja
|
||||
k9 : Str -> NForms -- 696 ääriraja
|
||||
= \s -> let a = last s in dSilakka s
|
||||
(s + "n")
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ;
|
||||
k9A : Str -> NForms -- 1040 ääniraita
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ;
|
||||
k9A : Str -> NForms -- 1040 ääniraita
|
||||
= \s -> let a = last s in dSilakka s
|
||||
(weakGrade s + "n")
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ;
|
||||
k10 : Str -> NForms -- 2119 äänittäjä
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ;
|
||||
k10 : Str -> NForms -- 2119 äänittäjä
|
||||
= \s -> dSilakka s (s + "n") (init s + "i" + vowelHarmony (last s)) ;
|
||||
k10A : Str -> NForms -- 284 änkkä
|
||||
k10A : Str -> NForms -- 284 änkkä
|
||||
= \s -> dSilakka s (weakGrade s + "n") (init s + "i" + vowelHarmony (last s)) ;
|
||||
k11 : Str -> NForms -- 46 ödeema
|
||||
k11 : Str -> NForms -- 46 ödeema
|
||||
= \s -> dSilakka s (weakGrade s + "n") (init s + "i" + vowelHarmony (last s)) ;
|
||||
k12 : Str -> NForms -- 1125 örinä
|
||||
k12 : Str -> NForms -- 1125 örinä
|
||||
= \s -> let a = vowelHarmony (last s) in
|
||||
dSilakka s (s + "n")
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "it" + a) ;
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "it" + a) ;
|
||||
k13 : Str -> NForms -- 157 virtaska
|
||||
= \s -> let a = vowelHarmony (last s) in
|
||||
dSilakka s (s + "n")
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ;
|
||||
k14A : Str -> NForms -- 244 ötökkä
|
||||
(init s + case a of {"a" => "o" ; _ => "ö"} + "j" + a) ;
|
||||
k14A : Str -> NForms -- 244 ötökkä
|
||||
= \s -> let a = vowelHarmony (last s) ; ws = weakGrade s in
|
||||
dSilakka s (ws + "n")
|
||||
(init ws + case a of {"a" => "o" ; _ => "ö"} + "it" + a) ;
|
||||
k15 : Str -> NForms -- 170 äreä
|
||||
(init ws + case a of {"a" => "o" ; _ => "ö"} + "it" + a) ;
|
||||
k15 : Str -> NForms -- 170 äreä
|
||||
= dKorkea ;
|
||||
k16 : Str -> NForms -- 2 kumpikin --?
|
||||
= \s -> let kumpi = Predef.take 5 s ; kin = Predef.drop 5 s in
|
||||
@@ -206,13 +206,13 @@ oper
|
||||
= dSuurempi ;
|
||||
k17 : Str -> NForms -- 38 virkkuu
|
||||
= dPaluu ;
|
||||
k18 : Str -> NForms -- voi, tee, sää
|
||||
k18 : Str -> NForms -- voi, tee, sää
|
||||
= dPuu ;
|
||||
k19 : Str -> NForms -- 6 yö
|
||||
k19 : Str -> NForms -- 6 yö
|
||||
= dSuo ;
|
||||
k20 : Str -> NForms -- 46 voodoo
|
||||
= dPaluu ;
|
||||
k21 : Str -> NForms -- 22 tax-free --? rosé
|
||||
k21 : Str -> NForms -- 22 tax-free --? rosé
|
||||
= dPuu ;
|
||||
k22 : Str -> NForms -- 13 tournedos
|
||||
= \s -> nForms10
|
||||
@@ -224,20 +224,20 @@ oper
|
||||
= \s -> dArpi s (init s + "en") ;
|
||||
k25 : Str -> NForms -- 9 tuomi
|
||||
= \s -> dArpi s (init s + "en") ;
|
||||
k26 : Str -> NForms -- 113 ääri
|
||||
k26 : Str -> NForms -- 113 ääri
|
||||
= \s -> dArpi s (init s + "en") ;
|
||||
k27 : Str -> NForms -- 23 vuosi
|
||||
= \s -> dArpi s (Predef.tk 2 s + "den") ;
|
||||
k28 : Str -> NForms -- 13 virsi
|
||||
= \s -> dArpi s (Predef.tk 2 s + "ren") ;
|
||||
k28A : Str -> NForms -- 1 jälsi
|
||||
k28A : Str -> NForms -- 1 jälsi
|
||||
= \s -> dArpi s (Predef.tk 2 s + "len") ;
|
||||
k29 : Str -> NForms -- 1 lapsi
|
||||
= \s -> let lapsi = dArpi s (init s + "en") in
|
||||
table {2 => Predef.tk 3 s + "ta" ; i => lapsi ! i} ;
|
||||
k30 : Str -> NForms -- 2 veitsi
|
||||
= \s -> let lapsi = dArpi s (init s + "en") in
|
||||
table {2 => Predef.tk 3 s + "stä" ; i => lapsi ! i} ;
|
||||
table {2 => Predef.tk 3 s + "stä" ; i => lapsi ! i} ;
|
||||
k31 : Str -> NForms -- 3 yksi
|
||||
= \s -> let
|
||||
y = Predef.tk 3 s ;
|
||||
@@ -247,9 +247,9 @@ oper
|
||||
(s + "en") (s + a) (s + "n" + a) (s + "ss" + a) (s + "in") ;
|
||||
k32 : Str -> NForms -- 20 uumen
|
||||
= \s -> dPiennar s (s + "en") ;
|
||||
k32A : Str -> NForms -- 54 ystävätär
|
||||
k32A : Str -> NForms -- 54 ystävätär
|
||||
= \s -> dPiennar s (strongGrade (init s) + last s + "en") ;
|
||||
k33 : Str -> NForms -- 168 väistin
|
||||
k33 : Str -> NForms -- 168 väistin
|
||||
= \s -> dLiitin s (init s + "men") ;
|
||||
k33A : Str -> NForms -- 181 yllytin
|
||||
= \s -> dLiitin s (strongGrade (init s) + "men") ;
|
||||
@@ -259,14 +259,14 @@ oper
|
||||
s (alastom + "an") (s + "ta") (alastom + "ana") (alastom + "aan")
|
||||
(alastom + "ien") (alastom + "ia") (alastom + "ina") (alastom + "issa")
|
||||
(alastom + "iin") ;
|
||||
k34A : Str -> NForms -- 569 ääretön
|
||||
k34A : Str -> NForms -- 569 ääretön
|
||||
= dOnneton ;
|
||||
k35A : Str -> NForms -- 1 lämmin
|
||||
= \s -> let lämpim = strongGrade (init s) + "m" in
|
||||
k35A : Str -> NForms -- 1 lämmin
|
||||
= \s -> let lämpim = strongGrade (init s) + "m" in
|
||||
nForms10
|
||||
s (lämpim + "än") (s + "tä") (lämpim + "änä") (lämpim + "ään")
|
||||
(lämpim + "ien") (lämpim + "iä") (lämpim + "inä") (lämpim + "issä")
|
||||
(lämpim + "iin") ;
|
||||
s (lämpim + "än") (s + "tä") (lämpim + "änä") (lämpim + "ään")
|
||||
(lämpim + "ien") (lämpim + "iä") (lämpim + "inä") (lämpim + "issä")
|
||||
(lämpim + "iin") ;
|
||||
k36 : Str -> NForms -- 11 ylin
|
||||
= dSuurin ;
|
||||
k37 : Str -> NForms -- 1 vasen
|
||||
@@ -275,32 +275,32 @@ oper
|
||||
s (vasem + "man") (s + "ta") (vasem + "pana") (vasem + "paan")
|
||||
(vasem + "pien") (vasem + "pia") (vasem + "pina") (vasem + "missa")
|
||||
(vasem + "piin") ;
|
||||
k38 : Str -> NForms -- 4195 öykkärimäinen
|
||||
k38 : Str -> NForms -- 4195 öykkärimäinen
|
||||
= dNainen ;
|
||||
k39 : Str -> NForms -- 2730 örähdys
|
||||
k39 : Str -> NForms -- 2730 örähdys
|
||||
= dJalas ;
|
||||
k40 : Str -> NForms -- 2482 öykkärimäisyys
|
||||
k40 : Str -> NForms -- 2482 öykkärimäisyys
|
||||
= dLujuus ;
|
||||
k41 : Str -> NForms -- 127 äyräs
|
||||
k41 : Str -> NForms -- 127 äyräs
|
||||
= \s -> let is = init s in dRae s (is + last is + "n") ;
|
||||
k41A : Str -> NForms -- 401 öljykangas
|
||||
k41A : Str -> NForms -- 401 öljykangas
|
||||
= \s -> let is = init s in dRae s (strongGrade is + last is + "n") ;
|
||||
k42 : Str -> NForms -- 1 mies
|
||||
= \s -> let mieh = init s + "h" in
|
||||
nForms10
|
||||
s (mieh + "en") (s + "tä") (mieh + "enä") (mieh + "een")
|
||||
(s + "ten") (mieh + "iä") (mieh + "inä") (mieh + "issä")
|
||||
s (mieh + "en") (s + "tä") (mieh + "enä") (mieh + "een")
|
||||
(s + "ten") (mieh + "iä") (mieh + "inä") (mieh + "issä")
|
||||
(mieh + "iin") ;
|
||||
k43 : Str -> NForms -- 11 tiehyt
|
||||
= \s -> dRae s (init s + "en") ;
|
||||
k43A : Str -> NForms -- 1 immyt
|
||||
= \s -> dRae s (strongGrade (init s) + "en") ;
|
||||
k44 : Str -> NForms -- 1 kevät
|
||||
= \s -> let kevä = init s in
|
||||
k44 : Str -> NForms -- 1 kevät
|
||||
= \s -> let kevä = init s in
|
||||
nForms10
|
||||
s (kevä + "än") (s + "tä") (kevä + "änä") (kevä + "äseen")
|
||||
(s + "iden") (kevä + "itä") (kevä + "inä") (kevä + "issä")
|
||||
(kevä + "isiin") ;
|
||||
s (kevä + "än") (s + "tä") (kevä + "änä") (kevä + "äseen")
|
||||
(s + "iden") (kevä + "itä") (kevä + "inä") (kevä + "issä")
|
||||
(kevä + "isiin") ;
|
||||
k45 : Str -> NForms -- 23 yhdes
|
||||
= \s -> let yhde = init s ; a = vowelHarmony s in
|
||||
nForms10
|
||||
@@ -315,9 +315,9 @@ oper
|
||||
(tuha + "nsiin") ;
|
||||
k47 : Str -> NForms -- 46 ylirasittunut
|
||||
= dOttanut ;
|
||||
k48 : Str -> NForms -- 346 äpäre
|
||||
k48 : Str -> NForms -- 346 äpäre
|
||||
= \s -> dRae s (s + last s + "n") ;
|
||||
k48A : Str -> NForms -- 481 äänne
|
||||
k48A : Str -> NForms -- 481 äänne
|
||||
= \s -> dRae s (strongGrade s + "en") ;
|
||||
k49 : Str -> NForms -- 31 vempele
|
||||
= \s -> case last s of {
|
||||
@@ -327,27 +327,27 @@ oper
|
||||
k49A : Str -> NForms -- 11 vemmel
|
||||
= \s -> dPiennar s (strongGrade (init s) + "len") ;
|
||||
|
||||
k52 : Str -> VForms -- 667 ärjyä
|
||||
k52 : Str -> VForms -- 667 ärjyä
|
||||
= \s -> cHukkua s (init s + "n") ;
|
||||
k52A : Str -> VForms -- 1568 öljyyntyä
|
||||
k52A : Str -> VForms -- 1568 öljyyntyä
|
||||
= \s -> cHukkua s (weakGrade (init s) + "n") ;
|
||||
k53 : Str -> VForms -- 605 äänestää
|
||||
k53 : Str -> VForms -- 605 äänestää
|
||||
= \s -> let ott = Predef.tk 2 s in
|
||||
cOttaa s (init s + "n") (ott + "in") (ott + "i") ;
|
||||
k53A : Str -> VForms -- 2121 örähtää
|
||||
k53A : Str -> VForms -- 2121 örähtää
|
||||
= \s -> let ota = weakGrade (init s) in
|
||||
cOttaa s (ota + "n") (init ota + "in") (Predef.tk 2 s + "i") ;
|
||||
k54 : Str -> VForms -- 2 pieksää
|
||||
k54 : Str -> VForms -- 2 pieksää
|
||||
= \s -> let ott = Predef.tk 2 s in
|
||||
cOttaa s (init s + "n") (ott + "in") (ott + "i") ;
|
||||
k54A : Str -> VForms -- 316 ääntää
|
||||
k54A : Str -> VForms -- 316 ääntää
|
||||
= \s -> let ota = weakGrade (init s) ; o = Predef.tk 2 ota in
|
||||
cOttaa s (ota + "n") (o + "sin") (o + "si") ;
|
||||
k55A : Str -> VForms -- 7 yltää
|
||||
k55A : Str -> VForms -- 7 yltää
|
||||
= c54A ; --? diff: variation ylti/ylsi
|
||||
k56 : Str -> VForms -- 22 valaa
|
||||
= \s -> let val = Predef.tk 2 s in
|
||||
cOttaa s (init s + "n") (val + "oin") (val + "oi") ; -- never ö
|
||||
cOttaa s (init s + "n") (val + "oin") (val + "oi") ; -- never ö
|
||||
k56A : Str -> VForms -- 28 virkkaa
|
||||
= \s -> let ota = weakGrade (init s) ; ot = init ota in
|
||||
cOttaa s (ota + "n") (ot + "oin") (ot + "oi") ;
|
||||
@@ -362,69 +362,69 @@ oper
|
||||
vForms12 s (tunne + "n") (tunte + "e") (tunte + "vat") (tunte + "kaa") (tunne + "taan")
|
||||
(tuns + "in") (tuns + "i") (init tunte + "isi") (tunte + "nut") (tunne + "ttu")
|
||||
(tunte + "nee") ; -- just one verb
|
||||
k60A : Str -> VForms -- 1 lähteä
|
||||
= c58A ; --? diff lähti/läksi, just one verb
|
||||
k61 : Str -> VForms -- 249 äyskiä
|
||||
k60A : Str -> VForms -- 1 lähteä
|
||||
= c58A ; --? diff lähti/läksi, just one verb
|
||||
k61 : Str -> VForms -- 249 äyskiä
|
||||
= \s -> cHukkua s (init s + "n") ;
|
||||
k61A : Str -> VForms -- 153 vääntelehtiä
|
||||
k61A : Str -> VForms -- 153 vääntelehtiä
|
||||
= \s -> cHukkua s (weakGrade (init s) + "n") ;
|
||||
k62 : Str -> VForms -- 684 öykkäröidä
|
||||
k62 : Str -> VForms -- 684 öykkäröidä
|
||||
= \s -> cJuoda s ;
|
||||
k63 : Str -> VForms -- 3 saada
|
||||
= c62 ;
|
||||
k64 : Str -> VForms -- 8 viedä
|
||||
k64 : Str -> VForms -- 8 viedä
|
||||
= c62 ;
|
||||
k65 : Str -> VForms -- 1 käydä
|
||||
k65 : Str -> VForms -- 1 käydä
|
||||
= \s -> let kay = Predef.tk 2 s ; kavi = init kay + "vi" in
|
||||
vForms12 s (kay + "n") kay (kay + "vät") (kay + "kää") (kay + "dään")
|
||||
vForms12 s (kay + "n") kay (kay + "vät") (kay + "kää") (kay + "dään")
|
||||
(kavi + "n") kavi (kavi + "si") (kay + "nyt") (kay + "tty")
|
||||
(kay + "nee") ; -- just one verb
|
||||
k66 : Str -> VForms -- 268 öristä
|
||||
k66 : Str -> VForms -- 268 öristä
|
||||
= \s -> cKuunnella s (Predef.tk 2 s + "in") ;
|
||||
k66A : Str -> VForms -- 3 vavista
|
||||
= \s -> cKuunnella s (strongGrade (Predef.tk 3 s) + "sin") ;
|
||||
k67 : Str -> VForms -- 704 ällistellä
|
||||
k67 : Str -> VForms -- 704 ällistellä
|
||||
= \s -> cKuunnella s (Predef.tk 2 s + "in") ;
|
||||
k67A : Str -> VForms -- 634 äännellä
|
||||
k67A : Str -> VForms -- 634 äännellä
|
||||
= \s -> cKuunnella s (strongGrade (Predef.tk 3 s) + "lin") ;
|
||||
k68 : Str -> VForms -- 49 viheriöidä
|
||||
= c62 ; -- diff viheriöin/viheriöitsen
|
||||
k69 : Str -> VForms -- 48 villitä
|
||||
k68 : Str -> VForms -- 49 viheriöidä
|
||||
= c62 ; -- diff viheriöin/viheriöitsen
|
||||
k69 : Str -> VForms -- 48 villitä
|
||||
= \s -> cHarkita s ;
|
||||
k70 : Str -> VForms -- 3 syöstä
|
||||
k70 : Str -> VForms -- 3 syöstä
|
||||
= \s -> cJuosta s (Predef.tk 3 s + "ksen") ;
|
||||
k71 : Str -> VForms -- 2 tehdä
|
||||
k71 : Str -> VForms -- 2 tehdä
|
||||
= \s -> let te = Predef.tk 3 s in
|
||||
vForms12 s (te + "en") (te + "kee") (te + "kevät") (te + "hkää") (te + "hdään")
|
||||
vForms12 s (te + "en") (te + "kee") (te + "kevät") (te + "hkää") (te + "hdään")
|
||||
(te + "en") (te + "ki") (te + "kisi") (te + "hnyt") (te + "hty")
|
||||
(te + "hnee") ; -- just two verbs: nähdä, tehdä
|
||||
k72 : Str -> VForms -- 93 yletä
|
||||
(te + "hnee") ; -- just two verbs: nähdä, tehdä
|
||||
k72 : Str -> VForms -- 93 yletä
|
||||
= \s -> cValjeta s (Predef.tk 2 s + "ni") ;
|
||||
k72A : Str -> VForms -- 52 yhdetä
|
||||
k72A : Str -> VForms -- 52 yhdetä
|
||||
= \s -> cValjeta s (strongGrade (Predef.tk 2 s) + "ni") ;
|
||||
k73 : Str -> VForms -- 600 äkseerata
|
||||
k73 : Str -> VForms -- 600 äkseerata
|
||||
= \s -> cPudota s (Predef.tk 2 s + "si") ;
|
||||
k73A : Str -> VForms -- 313 änkätä
|
||||
k73A : Str -> VForms -- 313 änkätä
|
||||
= \s -> cPudota s (strongGrade (Predef.tk 2 s) + "si") ;
|
||||
k74 : Str -> VForms -- 99 öljytä
|
||||
k74 : Str -> VForms -- 99 öljytä
|
||||
= \s -> cPudota s (Predef.tk 2 s + "si") ;
|
||||
k74A : Str -> VForms -- 72 ängetä
|
||||
k74A : Str -> VForms -- 72 ängetä
|
||||
= \s -> cPudota s (strongGrade (Predef.tk 2 s) + "si") ;
|
||||
k75 : Str -> VForms -- 39 viritä
|
||||
k75 : Str -> VForms -- 39 viritä
|
||||
= \s -> cPudota s (Predef.tk 2 s + "si") ;
|
||||
k75A : Str -> VForms -- 9 siitä
|
||||
k75A : Str -> VForms -- 9 siitä
|
||||
= \s -> cPudota s (strongGrade (Predef.tk 2 s) + "si") ;
|
||||
k76A : Str -> VForms -- 2 tietää
|
||||
k76A : Str -> VForms -- 2 tietää
|
||||
= \s -> let tieta = init s ; tieda = weakGrade tieta ; ties = Predef.tk 2 tieta + "s" in
|
||||
cOttaa s (tieda + "n") (ties + "in") (ties + "i") ; -- only tietaa, taitaa
|
||||
-- defective verbs
|
||||
k77 : Str -> VForms -- 3 vipajaa
|
||||
= c56A ; ----
|
||||
k78 : Str -> VForms -- 31 ähkää
|
||||
k78 : Str -> VForms -- 31 ähkää
|
||||
= c56A ; ----
|
||||
k78A : Str -> VForms -- 1 tuikkaa
|
||||
= c56A ; ----
|
||||
k99 : Str -> Str -- 5453 öykkärimäisesti
|
||||
k99 : Str -> Str -- 5453 öykkärimäisesti
|
||||
= \s -> s ;
|
||||
|
||||
k101 : Str -> Str -- pronouns etc
|
||||
@@ -440,7 +440,7 @@ oper
|
||||
|
||||
---- remnants of erroneous annotations
|
||||
|
||||
k50 : Str -> N ---- Forms -- 520 vääräsääri
|
||||
k50 : Str -> N ---- Forms -- 520 vääräsääri
|
||||
= \s -> mkN s ;
|
||||
k51 : Str -> N ---- Forms -- 62 vierasmies
|
||||
= \s -> mkN s ;
|
||||
|
||||
Reference in New Issue
Block a user