1
0
forked from GitHub/gf-core
Files
gf-core/lib/resource/doc/gfdoc/ParadigmsFin.html
2007-12-12 20:30:11 +00:00

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 -&gt; Str -&gt; Prep ; -- ilman, partitive
postPrep : Case -&gt; Str -&gt; Prep ; -- takana, genitive
postGenPrep : Str -&gt; Prep ; -- takana
casePrep : Case -&gt; 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) -&gt; N ;
mkN : (savi,savia : Str) -&gt; N ;
mkN : (vesi,veden,vesiä : Str) -&gt; N ;
mkN : (olo,oln,olona,oloa,oloon,oloina,oloissa,olojen,oloja,oloihin : Str) -&gt; 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) -&gt; (merta : Str) -&gt; N ;
nMeri : (meri : Str) -&gt; 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) -&gt; 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) -&gt; 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) -&gt; 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) -&gt; N ;
nSylki : (sylki : Str) -&gt; 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) -&gt; 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) -&gt; 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) -&gt; N ;
</PRE>
<P></P>
<P>
The following covers nouns with partitive <I>ta</I>,<I></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) -&gt; 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) -&gt; 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) -&gt; 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) -&gt; 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) -&gt; N ;
</PRE>
<P></P>
<P>
Special case:
</P>
<PRE>
nKulaus : (kulaus : Str) -&gt; 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) -&gt; 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 -&gt; N -&gt; 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 -&gt; N2 = genN2 ;
mkN2 : N -&gt; Prep -&gt; N2 = mmkN2
} ;
mkN3 : N -&gt; Prep -&gt; Prep -&gt; 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 -&gt; PN ;
mkPN : N -&gt; 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 -&gt; A ;
mkA : N -&gt; A ;
mkA : N -&gt; (kivempaa,kivinta : Str) -&gt; A
} ;
</PRE>
<P></P>
<P>
Two-place adjectives need a case for the second argument.
</P>
<PRE>
mkA2 : A -&gt; Prep -&gt; 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) -&gt; V ;
mkV : (soutaa,souti : Str) -&gt; V ;
mkV : (soutaa,soudan,souti : Str) -&gt; V ;
mkV : (tulla,tulee,tulen,tulevat,tulkaa,tullaan,tuli,tulin,tulisi,tullut,tultu,tullun : Str) -&gt; V ;
</PRE>
<P></P>
<P>
The subject case of verbs is by default nominative. This function can change it.
</P>
<PRE>
mkV : V -&gt; Case -&gt; 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) -&gt; 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) -&gt; 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) -&gt; 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) -&gt; 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) -&gt; 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 -&gt; V -&gt; 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 -&gt; V2 ;
mkV2 : V -&gt; V2 ;
mkV2 : V -&gt; Case -&gt; V2 ;
mkV2 : V -&gt; Prep -&gt; 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 -&gt; Prep -&gt; Prep -&gt; V3 ; -- puhua, allative, elative
dirV3 : V -&gt; Case -&gt; V3 ; -- siirtää, (accusative), illative
dirdirV3 : V -&gt; 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 -&gt; V0 ;
mkVS : V -&gt; VS ;
mkV2S : V -&gt; Prep -&gt; V2S ;
mkVV : V -&gt; VV ;
mkV2V : V -&gt; Prep -&gt; V2V ;
mkVA : V -&gt; Prep -&gt; VA ;
mkV2A : V -&gt; Prep -&gt; Prep -&gt; V2A ;
mkVQ : V -&gt; VQ ;
mkV2Q : V -&gt; Prep -&gt; V2Q ;
mkAS : A -&gt; AS ;
mkA2S : A -&gt; Prep -&gt; A2S ;
mkAV : A -&gt; AV ;
mkA2V : A -&gt; Prep -&gt; 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>