forked from GitHub/gf-core
485 lines
13 KiB
HTML
485 lines
13 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="generator" CONTENT="http://txt2tags.sf.net">
|
|
<TITLE> Finnish Lexical Paradigms</TITLE>
|
|
</HEAD><BODY BGCOLOR="white" TEXT="black">
|
|
<P ALIGN="center"><CENTER><H1> Finnish Lexical Paradigms</H1>
|
|
<FONT SIZE="4">
|
|
<I>Last update: 2007-07-08 15:18:54 CEST</I><BR>
|
|
</FONT></CENTER>
|
|
|
|
<P></P>
|
|
<HR NOSHADE SIZE=1>
|
|
<P></P>
|
|
<UL>
|
|
<LI><A HREF="#toc1">Parameters</A>
|
|
<LI><A HREF="#toc2">Nouns</A>
|
|
<LI><A HREF="#toc3">Adjectives</A>
|
|
<LI><A HREF="#toc4">Verbs</A>
|
|
<UL>
|
|
<LI><A HREF="#toc5">Two-place verbs</A>
|
|
<LI><A HREF="#toc6">Three-place verbs</A>
|
|
<LI><A HREF="#toc7">Other complement patterns</A>
|
|
</UL>
|
|
</UL>
|
|
|
|
<P></P>
|
|
<HR NOSHADE SIZE=1>
|
|
<P></P>
|
|
<P>
|
|
Produced by
|
|
gfdoc - a rudimentary GF document generator.
|
|
(c) Aarne Ranta (<A HREF="mailto:aarne@cs.chalmers.se">aarne@cs.chalmers.se</A>) 2002 under GNU GPL.
|
|
</P>
|
|
<P>
|
|
Aarne Ranta 2003--2005
|
|
</P>
|
|
<P>
|
|
This is an API to the user of the resource grammar
|
|
for adding lexical items. It gives functions for forming
|
|
expressions of open categories: nouns, adjectives, verbs.
|
|
</P>
|
|
<P>
|
|
Closed categories (determiners, pronouns, conjunctions) are
|
|
accessed through the resource syntax API, <CODE>Structural.gf</CODE>.
|
|
</P>
|
|
<P>
|
|
The main difference with <CODE>MorphoFin.gf</CODE> is that the types
|
|
referred to are compiled resource grammar types. We have moreover
|
|
had the design principle of always having existing forms, rather
|
|
than stems, as string arguments of the paradigms.
|
|
</P>
|
|
<P>
|
|
The structure of functions for each word class <CODE>C</CODE> is the following:
|
|
first we give a handful of patterns that aim to cover all
|
|
regular cases. Then we give a worst-case function <CODE>mkC</CODE>, which serves as an
|
|
escape to construct the most irregular words of type <CODE>C</CODE>.
|
|
However, this function should only seldom be needed.
|
|
</P>
|
|
<PRE>
|
|
resource ParadigmsFin = open
|
|
(Predef=Predef),
|
|
Prelude,
|
|
MorphoFin,
|
|
CatFin
|
|
in {
|
|
|
|
flags optimize=noexpand ;
|
|
</PRE>
|
|
<P></P>
|
|
<A NAME="toc1"></A>
|
|
<H2>Parameters</H2>
|
|
<P>
|
|
To abstract over gender, number, and (some) case names,
|
|
we define the following identifiers. The application programmer
|
|
should always use these constants instead of the constructors
|
|
defined in <CODE>ResFin</CODE>.
|
|
</P>
|
|
<PRE>
|
|
oper
|
|
Number : Type ;
|
|
|
|
singular : Number ;
|
|
plural : Number ;
|
|
|
|
Case : Type ;
|
|
nominative : Case ;
|
|
genitive : Case ;
|
|
partitive : Case ;
|
|
translative : Case ;
|
|
inessive : Case ;
|
|
elative : Case ;
|
|
illative : Case ;
|
|
adessive : Case ;
|
|
ablative : Case ;
|
|
allative : Case ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
The following type is used for defining <B>rection</B>, i.e. complements
|
|
of many-place verbs and adjective. A complement can be defined by
|
|
just a case, or a pre/postposition and a case.
|
|
</P>
|
|
<PRE>
|
|
prePrep : Case -> Str -> Prep ; -- ilman, partitive
|
|
postPrep : Case -> Str -> Prep ; -- takana, genitive
|
|
postGenPrep : Str -> Prep ; -- takana
|
|
casePrep : Case -> Prep ; -- adessive
|
|
</PRE>
|
|
<P></P>
|
|
<A NAME="toc2"></A>
|
|
<H2>Nouns</H2>
|
|
<P>
|
|
The worst case gives ten forms.
|
|
In practice just a couple of forms are needed to define the different
|
|
stems, vowel alternation, and vowel harmony.
|
|
</P>
|
|
<PRE>
|
|
oper
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
The regular noun heuristic takes just one form (singular
|
|
nominative) and analyses it to pick the correct paradigm.
|
|
It does automatic grade alternation, and is hence not usable
|
|
for words like <I>auto</I> (whose genitive would become <I>audon</I>).
|
|
</P>
|
|
<P>
|
|
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 <I>kivi - kiviä</I>, which would otherwise become like
|
|
<I>rivi - rivejä</I>. Three arguments are used e.g. for
|
|
<I>sydän - sydämen - sydämiä</I>, which would otherwise become
|
|
<I>sydän - sytämen</I>.
|
|
</P>
|
|
<PRE>
|
|
mkN : overload {
|
|
mkN : (talo : Str) -> N ;
|
|
mkN : (savi,savia : Str) -> N ;
|
|
mkN : (vesi,veden,vesiä : Str) -> N ;
|
|
mkN : (olo,oln,olona,oloa,oloon,oloina,oloissa,olojen,oloja,oloihin : Str) -> N
|
|
} ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
Some nouns have an unexpected singular partitive, e.g. <I>meri</I>, <I>lumi</I>.
|
|
</P>
|
|
<PRE>
|
|
sgpartN : (meri : N) -> (merta : Str) -> N ;
|
|
nMeri : (meri : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
The rest of the noun paradigms are mostly covered by the three
|
|
heuristics.
|
|
</P>
|
|
<P>
|
|
Nouns with partitive <I>a</I>,<I>ä</I> are a large group.
|
|
To determine for grade and vowel alternation, three forms are usually needed:
|
|
singular nominative and genitive, and plural partitive.
|
|
Examples: <I>talo</I>, <I>kukko</I>, <I>huippu</I>, <I>koira</I>, <I>kukka</I>, <I>syylä</I>, <I>särki</I>...
|
|
</P>
|
|
<PRE>
|
|
nKukko : (kukko,kukon,kukkoja : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
A special case:
|
|
the vowel harmony is inferred from the last letter,
|
|
which must be one of <I>o</I>, <I>u</I>, <I>ö</I>, <I>y</I>. Regular weak-grade alternation
|
|
is performed.
|
|
</P>
|
|
<PRE>
|
|
nTalo : (talo : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
Another special case are nouns where the last two consonants
|
|
undergo regular weak-grade alternation:
|
|
<I>kukko - kukon</I>, <I>rutto - ruton</I>, <I>hyppy - hypyn</I>, <I>sampo - sammon</I>,
|
|
<I>kunto - kunnon</I>, <I>sisältö - sisällön</I>, .
|
|
</P>
|
|
<PRE>
|
|
nLukko : (lukko : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
<I>arpi - arven</I>, <I>sappi - sapen</I>, <I>kampi - kammen</I>;<I>sylki - syljen</I>
|
|
</P>
|
|
<PRE>
|
|
nArpi : (arpi : Str) -> N ;
|
|
nSylki : (sylki : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
Foreign words ending in consonants are actually similar to words like
|
|
<I>malli</I>-<I>mallin</I>-<I>malleja</I>, with the exception that the <I>i</I> is not attached
|
|
to the singular nominative. Examples: <I>linux</I>, <I>savett</I>, <I>screen</I>.
|
|
The singular partitive form is used to get the vowel harmony.
|
|
(N.B. more than 1-syllabic words ending in <I>n</I> would have variant
|
|
plural genitive and partitive forms, like
|
|
<I>sultanien</I>, <I>sultaneiden</I>, which are not covered.)
|
|
</P>
|
|
<PRE>
|
|
nLinux : (linuxia : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
Nouns of at least 3 syllables ending with <I>a</I> or <I>ä</I>, like <I>peruna</I>, <I>tavara</I>,
|
|
<I>rytinä</I>.
|
|
</P>
|
|
<PRE>
|
|
nPeruna : (peruna : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
The following paradigm covers both nouns ending in an aspirated <I>e</I>, such as
|
|
<I>rae</I>, <I>perhe</I>, <I>savuke</I>, and also many ones ending in a consonant
|
|
(<I>rengas</I>, <I>kätkyt</I>). The singular nominative and essive are given.
|
|
</P>
|
|
<PRE>
|
|
nRae : (rae, rakeena : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
The following covers nouns with partitive <I>ta</I>,<I>tä</I>, such as
|
|
<I>susi</I>, <I>vesi</I>, <I>pieni</I>. To get all stems and the vowel harmony, it takes
|
|
the singular nominative, genitive, and essive.
|
|
</P>
|
|
<PRE>
|
|
nSusi : (susi,suden,sutta : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
Nouns ending with a long vowel, such as <I>puu</I>, <I>pää</I>, <I>pii</I>, <I>leikkuu</I>,
|
|
are inflected according to the following.
|
|
</P>
|
|
<PRE>
|
|
nPuu : (puu : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
One-syllable diphthong nouns, such as <I>suo</I>, <I>tie</I>, <I>työ</I>, are inflected by
|
|
the following.
|
|
</P>
|
|
<PRE>
|
|
nSuo : (suo : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
Many adjectives but also nouns have the nominative ending <I>nen</I> which in other
|
|
cases becomes <I>s</I>: <I>nainen</I>, <I>ihminen</I>, <I>keltainen</I>.
|
|
To capture the vowel harmony, we use the partitive form as the argument.
|
|
</P>
|
|
<PRE>
|
|
nNainen : (naista : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
The following covers some nouns ending with a consonant, e.g.
|
|
<I>tilaus</I>, <I>kaulin</I>, <I>paimen</I>, <I>laidun</I>.
|
|
</P>
|
|
<PRE>
|
|
nTilaus : (tilaus,tilauksena : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
Special case:
|
|
</P>
|
|
<PRE>
|
|
nKulaus : (kulaus : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
The following covers nouns like <I>nauris</I> and adjectives like <I>kallis</I>, <I>tyyris</I>.
|
|
The partitive form is taken to get the vowel harmony.
|
|
</P>
|
|
<PRE>
|
|
nNauris : (naurista : Str) -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
Separately-written compound nouns, like <I>sambal oelek</I>, <I>Urho Kekkonen</I>,
|
|
have only their last part inflected.
|
|
</P>
|
|
<PRE>
|
|
compN : Str -> N -> N ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
Nouns used as functions need a case, of which the default is
|
|
the genitive.
|
|
</P>
|
|
<PRE>
|
|
mkN2 = overload {
|
|
mkN2 : N -> N2 = genN2 ;
|
|
mkN2 : N -> Prep -> N2 = mmkN2
|
|
} ;
|
|
|
|
mkN3 : N -> Prep -> Prep -> N3 ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
Proper names can be formed by using declensions for nouns.
|
|
The plural forms are filtered away by the compiler.
|
|
</P>
|
|
<PRE>
|
|
mkPN : overload {
|
|
mkPN : Str -> PN ;
|
|
mkPN : N -> PN
|
|
} ;
|
|
</PRE>
|
|
<P></P>
|
|
<A NAME="toc3"></A>
|
|
<H2>Adjectives</H2>
|
|
<P>
|
|
Non-comparison one-place adjectives are just like nouns.
|
|
The regular adjectives are based on <CODE>regN</CODE> in the positive.
|
|
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 <I>paras</I> of <I>hyvä</I>).
|
|
</P>
|
|
<PRE>
|
|
mkA : overload {
|
|
mkA : Str -> A ;
|
|
mkA : N -> A ;
|
|
mkA : N -> (kivempaa,kivinta : Str) -> A
|
|
} ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
Two-place adjectives need a case for the second argument.
|
|
</P>
|
|
<PRE>
|
|
mkA2 : A -> Prep -> A2 ;
|
|
</PRE>
|
|
<P></P>
|
|
<A NAME="toc4"></A>
|
|
<H2>Verbs</H2>
|
|
<P>
|
|
The grammar does not cover the potential mood and some nominal
|
|
forms. One way to see the coverage is to linearize a verb to
|
|
a table.
|
|
The worst case needs twelve forms, as shown in the following.
|
|
The following heuristics cover more and more verbs.
|
|
</P>
|
|
<PRE>
|
|
mkV : overload {
|
|
mkV : (soutaa : Str) -> V ;
|
|
mkV : (soutaa,souti : Str) -> V ;
|
|
mkV : (soutaa,soudan,souti : Str) -> V ;
|
|
mkV : (tulla,tulee,tulen,tulevat,tulkaa,tullaan,tuli,tulin,tulisi,tullut,tultu,tullun : Str) -> V ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
The subject case of verbs is by default nominative. This function can change it.
|
|
</P>
|
|
<PRE>
|
|
mkV : V -> Case -> V
|
|
} ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
The rest of the paradigms are special cases mostly covered by the heuristics.
|
|
A simple special case is the one with just one stem and without grade alternation.
|
|
</P>
|
|
<PRE>
|
|
vValua : (valua : Str) -> V ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
With two forms, the following function covers a variety of verbs, such as
|
|
<I>ottaa</I>, <I>käyttää</I>, <I>löytää</I>, <I>huoltaa</I>, <I>hiihtää</I>, <I>siirtää</I>.
|
|
</P>
|
|
<PRE>
|
|
vKattaa : (kattaa, katan : Str) -> V ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
When grade alternation is not present, just a one-form special case is needed
|
|
(<I>poistaa</I>, <I>ryystää</I>).
|
|
</P>
|
|
<PRE>
|
|
vOstaa : (ostaa : Str) -> V ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
The following covers
|
|
<I>juosta</I>, <I>piestä</I>, <I>nousta</I>, <I>rangaista</I>, <I>kävellä</I>, <I>surra</I>, <I>panna</I>.
|
|
</P>
|
|
<PRE>
|
|
vNousta : (nousta, nousen : Str) -> V ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
This is for one-syllable diphthong verbs like <I>juoda</I>, <I>syödä</I>.
|
|
</P>
|
|
<PRE>
|
|
vTuoda : (tuoda : Str) -> V ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
All the patterns above have <CODE>nominative</CODE> as subject case.
|
|
If another case is wanted, use the following.
|
|
</P>
|
|
<PRE>
|
|
caseV : Case -> V -> V ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
The verbs <I>be</I> is special.
|
|
</P>
|
|
<PRE>
|
|
vOlla : V ;
|
|
</PRE>
|
|
<P></P>
|
|
<A NAME="toc5"></A>
|
|
<H3>Two-place verbs</H3>
|
|
<P>
|
|
Two-place verbs need an object case, and can have a pre- or postposition.
|
|
The default is direct (accusative) object. There is also a special case
|
|
with case only. The string-only argument case yields a regular verb with
|
|
accusative object.
|
|
</P>
|
|
<PRE>
|
|
mkV2 : overload {
|
|
mkV2 : Str -> V2 ;
|
|
mkV2 : V -> V2 ;
|
|
mkV2 : V -> Case -> V2 ;
|
|
mkV2 : V -> Prep -> V2 ;
|
|
} ;
|
|
</PRE>
|
|
<P></P>
|
|
<A NAME="toc6"></A>
|
|
<H3>Three-place verbs</H3>
|
|
<P>
|
|
Three-place (ditransitive) verbs need two prepositions, of which
|
|
the first one or both can be absent.
|
|
</P>
|
|
<PRE>
|
|
mkV3 : V -> Prep -> Prep -> V3 ; -- puhua, allative, elative
|
|
dirV3 : V -> Case -> V3 ; -- siirtää, (accusative), illative
|
|
dirdirV3 : V -> V3 ; -- antaa, (accusative), (allative)
|
|
</PRE>
|
|
<P></P>
|
|
<A NAME="toc7"></A>
|
|
<H3>Other complement patterns</H3>
|
|
<P>
|
|
Verbs and adjectives can take complements such as sentences,
|
|
questions, verb phrases, and adjectives.
|
|
</P>
|
|
<PRE>
|
|
mkV0 : V -> V0 ;
|
|
mkVS : V -> VS ;
|
|
mkV2S : V -> Prep -> V2S ;
|
|
mkVV : V -> VV ;
|
|
mkV2V : V -> Prep -> V2V ;
|
|
mkVA : V -> Prep -> VA ;
|
|
mkV2A : V -> Prep -> Prep -> V2A ;
|
|
mkVQ : V -> VQ ;
|
|
mkV2Q : V -> Prep -> V2Q ;
|
|
|
|
mkAS : A -> AS ;
|
|
mkA2S : A -> Prep -> A2S ;
|
|
mkAV : A -> AV ;
|
|
mkA2V : A -> Prep -> A2V ;
|
|
</PRE>
|
|
<P></P>
|
|
<P>
|
|
Notice: categories <CODE>V2S, V2V, V2Q</CODE> are in v 1.0 treated
|
|
just as synonyms of <CODE>V2</CODE>, and the second argument is given
|
|
as an adverb. Likewise <CODE>AS, A2S, AV, A2V</CODE> are just <CODE>A</CODE>.
|
|
<CODE>V0</CODE> is just <CODE>V</CODE>.
|
|
</P>
|
|
<PRE>
|
|
V0, V2S, V2V, V2Q : Type ;
|
|
AS, A2S, AV, A2V : Type ;
|
|
</PRE>
|
|
<P></P>
|
|
|
|
<!-- html code generated by txt2tags 2.3 (http://txt2tags.sf.net) -->
|
|
<!-- cmdline: txt2tags -thtml -\-toc finnish/ParadigmsFin.txt -->
|
|
</BODY></HTML>
|