diff --git a/lib/resource-1.0/doc/gfdoc/ParadigmsFin.html b/lib/resource-1.0/doc/gfdoc/ParadigmsFin.html new file mode 100644 index 000000000..3af26d9b5 --- /dev/null +++ b/lib/resource-1.0/doc/gfdoc/ParadigmsFin.html @@ -0,0 +1,532 @@ + + +
+ + + + + + ++Author: +Last update: Tue Feb 7 19:04:51 2006 +
++Produced by +gfdoc - a rudimentary GF document generator. +(c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL. +
++== +
++# -path=.:../abstract:../common:../../prelude +
+ ++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 ; ++ + +
+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 + accusative : Prep ; ++ + +
+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 ; ++ +
+For convenience, we define 1-argument paradigms as producing the +nonhuman gender; the following function changes this: +
++ humanN : N -> 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 ; ++ + +
+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.
+
+ regADeg : (punainen : Str) -> A ; ++ + +
+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 (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 ++ + +
+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. +
+ + + +