# Finnish Lexical Paradigms

Last update: 2006-03-07 21:08:18 CET

- Parameters
- Nouns
- Adjectives
- Verbs
  - Three-place verbs
  - Other complement patterns

Produced by gfdoc - a rudimentary GF document generator. (c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.

Aarne Ranta 2003--2005

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.

Closed categories (determiners, pronouns, conjunctions) are accessed through the resource syntax API, `Structural.gf`.

The main difference with `MorphoFin.gf` 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.

The structure of functions for each word class `C` is the following: first we give a handful of patterns that aim to cover all regular cases. Then we give a worst-case function `mkC`, which serves as an escape to construct the most irregular words of type `C`. However, this function should only seldom be needed: we have a separate module `IrregularFin`, which covers all irregularly inflected words.

The following modules are presupposed:

        resource ParadigmsFin = open
          (Predef=Predef),
          Prelude,
          MorphoFin,
          CatFin
          in {

flags optimize=all ;

          flags optimize=noexpand ;

## Parameters

To abstract over gender, number, and (some) case names, we define the following identifiers. The application programmer should always use these constants instead of their definitions in `TypesInf`.

        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 ;

The following type is used for defining rection, 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.

          prePrep     : Case -> Str -> Prep ;  -- ilman, partitive
          postPrep    : Case -> Str -> Prep ;  -- takana, genitive
          postGenPrep :         Str -> Prep ;  -- takana
          casePrep    : Case ->        Prep ;  -- adessive

## Nouns

The worst case gives ten forms and the semantic gender. In practice just a couple of forms are needed, to define the different stems, vowel alternation, and vowel harmony.

        oper
          mkN : (talo,   talon,   talona, taloa, taloon,
                 taloina,taloissa,talojen,taloja,taloihin : Str) -> N ;

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 auto (whose genitive would become audon).

          regN : (talo : Str) -> N ;

If `regN` does not give the correct result, one can try and give two or three forms as follows. Examples of the use of these functions are given in `BasicFin`. Most notably, `reg2N` is used for nouns like kivi - kiviä, which would otherwise become like rivi - rivejä. `regN3` is used e.g. for sydän - sydämen - sydämiä, which would otherwise become sydän - sytämen.

          reg2N : (savi,savia : Str) -> N ;
          reg3N : (vesi,veden,vesiä : Str) -> N ;

Some nouns have an unexpected singular partitive, e.g. meri, lumi.

          sgpartN : (meri : N) -> (merta : Str) -> N ;
          nMeri   : (meri : Str) -> N ;

The rest of the noun paradigms are mostly covered by the three heuristics.

Nouns with partitive a///ä// are a large group. To determine for grade and vowel alternation, three forms are usually needed: singular nominative and genitive, and plural partitive. Examples: talo, kukko, huippu, koira, kukka, syylä, särki...

          nKukko : (kukko,kukon,kukkoja : Str) -> N ;

A special case are nouns with no alternations: the vowel harmony is inferred from the last letter, which must be one of o, u, ö, y.

          nTalo : (talo : Str) -> N ;

Another special case are nouns where the last two consonants undergo regular weak-grade alternation: kukko - kukon, rutto - ruton, hyppy - hypyn, sampo - sammon, kunto - kunnon, sisältö - sisällön, .

          nLukko : (lukko : Str) -> N ;

arpi - arven, sappi - sapen, kampi - kammen;sylki - syljen

          nArpi  : (arpi : Str) -> N ;
          nSylki : (sylki : Str) -> N ;

Foreign words ending in consonants are actually similar to words like malli///mallin/malleja, with the exception that the //i is not attached to the singular nominative. Examples: linux, savett, screen. The singular partitive form is used to get the vowel harmony. (N.B. more than 1-syllabic words ending in n would have variant plural genitive and partitive forms, like sultanien///sultaneiden//, which are not covered.)

          nLinux : (linuxia : Str) -> N ;

Nouns of at least 3 syllables ending with a or ä, like peruna, tavara, rytinä.

          nPeruna : (peruna : Str) -> N ;

The following paradigm covers both nouns ending in an aspirated e, such as rae, perhe, savuke, and also many ones ending in a consonant (rengas, kätkyt). The singular nominative and essive are given.

          nRae : (rae, rakeena : Str) -> N ;

The following covers nouns with partitive ta///tä//, such as susi, vesi, pieni. To get all stems and the vowel harmony, it takes the singular nominative, genitive, and essive.

          nSusi : (susi,suden,sutta : Str) -> N ;

Nouns ending with a long vowel, such as puu, pää, pii, leikkuu, are inflected according to the following.

          nPuu : (puu : Str) -> N ;

One-syllable diphthong nouns, such as suo, tie, työ, are inflected by the following.

          nSuo : (suo : Str) -> N ;

Many adjectives but also nouns have the nominative ending nen which in other cases becomes s: nainen, ihminen, keltainen. To capture the vowel harmony, we use the partitive form as the argument.

          nNainen : (naista : Str) -> N ;

The following covers some nouns ending with a consonant, e.g. tilaus, kaulin, paimen, laidun.

          nTilaus : (tilaus,tilauksena : Str) -> N ;

Special case:

          nKulaus : (kulaus : Str) -> N ;

The following covers nouns like nauris and adjectives like kallis, tyyris. The partitive form is taken to get the vowel harmony.

          nNauris : (naurista : Str) -> N ;

Separately-written compound nouns, like sambal oelek, Urho Kekkonen, have only their last part inflected.

          compN : Str -> N -> N ;

Nouns used as functions need a case, of which by far the commonest is the genitive.

          mkN2  : N -> Prep -> N2 ;
          genN2 : N -> N2 ;

          mkN3  : N -> Prep -> Prep -> N3 ;

Proper names can be formed by using declensions for nouns. The plural forms are filtered away by the compiler.

          mkPN  : N -> PN ;
          mkNP  : N -> Number -> NP ;

## Adjectives

Non-comparison one-place adjectives are just like nouns.

          mkA : N -> A ;

Two-place adjectives need a case for the second argument.

          mkA2 : A -> Prep -> A2 ;

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ä).

          mkADeg : (kiva : N) -> (kivempaa,kivinta : Str) -> A ;

The regular adjectives are based on `regN` in the positive.

          regA : (punainen : Str) -> A ;

## Verbs

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.

          mkV   : (tulla,tulee,tulen,tulevat,tulkaa,tullaan,
                   tuli,tulin,tulisi,tullut,tultu,tullun : Str) -> V ;

The following heuristics cover more and more verbs.

          regV  : (soutaa : Str) -> V ;
          reg2V : (soutaa,souti : Str) -> V ;
          reg3V : (soutaa,soudan,souti : Str) -> V ;

The subject case of verbs is by default nominative. This dunction can change it.

          subjcaseV : V -> Case -> V ;

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.

          vValua : (valua : Str) -> V ;

With two forms, the following function covers a variety of verbs, such as ottaa, käyttää, löytää, huoltaa, hiihtää, siirtää.

          vKattaa : (kattaa, katan : Str) -> V ;

When grade alternation is not present, just a one-form special case is needed (poistaa, ryystää).

          vOstaa : (ostaa : Str) -> V ;

The following covers juosta, piestä, nousta, rangaista, kävellä, surra, panna.

          vNousta : (nousta, nousen : Str) -> V ;

This is for one-syllable diphthong verbs like juoda, syödä.

          vTuoda : (tuoda : Str) -> V ;

All the patterns above have `nominative` as subject case. If another case is wanted, use the following.

          caseV : Case -> V -> V ;

The verbs be is special.

          vOlla : V ;

Two-place verbs need a case, and can have a pre- or postposition.

          mkV2 : V -> Prep -> V2 ;

If the complement needs just a case, the following special function can be used.

          caseV2 : V -> Case -> V2 ;

Verbs with a direct (accusative) object are special, since their complement case is finally decided in syntax. But this is taken care of by `ClauseFin`.

          dirV2 : V -> V2 ;

### Three-place verbs

Three-place (ditransitive) verbs need two prepositions, of which the first one or both can be absent.

          mkV3     : V -> Prep -> Prep -> V3 ;    -- speak, with, about
          dirV3    : V -> Case -> V3 ;            -- give,_,to
          dirdirV3 : V         -> V3 ;            -- acc, allat

### Other complement patterns

Verbs and adjectives can take complements such as sentences, questions, verb phrases, and adjectives.

          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 ;

Notice: categories `V2S, V2V, V2Q` are in v 1.0 treated just as synonyms of `V2`, and the second argument is given as an adverb. Likewise `AS, A2S, AV, A2V` are just `A`. `V0` is just `V`.

          V0, V2S, V2V, V2Q : Type ;
          AS, A2S, AV, A2V : Type ;

The definitions should not bother the user of the API. So they are hidden from the document.