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

# -path=.:../abstract:../../prelude

Swedish Lexical Paradigms

Aarne Ranta 2003

This is an API to the user of the resource grammar for adding lexical items. It give shortcuts for forming expressions of basic categories: nouns, adjectives, verbs. Closed categories (determiners, pronouns, conjunctions) are accessed through the resource syntax API, Structural.gf.

The main difference with MorphoSwe.gf is that the types referred to are compiled resource grammar types. We have moreover had the design principle of always having existing forms, not stems, as string arguments of the paradigms.

The following modules are presupposed:

  resource ParadigmsSwe = open (Predef=Predef), Prelude, SyntaxSwe, ResourceSwe in {

Parameters

To abstract over gender names, we define the following identifiers.

  oper
    utrum   : Gender ;
    neutrum : Gender ;
  
    masculine    : Sex ;
    nonmasculine : Sex ;
To abstract over case names, we define the following.
    nominative : Case ;
    genitive   : Case ;
To abstract over number names, we define the following.
    singular : Number ;
    plural   : Number ;

Nouns

Worst case: give all nominative forms and the gender. The genitive is formed automatically, even when the nominative ends with an s.
    mkN  : (_,_,_,_ : Str) -> Gender -> Sex -> N ; 
                                   -- man, mannen, män, männen
Here are some common patterns, corresponding to school-gramamr declensions. Except nPojke, nKarl, and nMurare, they are defined to be nonmasculine, which means that they don't create the definite adjective form with e but with a.
    nApa    : Str -> N ;   -- apa    (apan, apor, aporna) ; utrum
    nBil    : Str -> N ;   -- bil    (bilen, bilar, bilarna) ; utrum
    nKarl   : Str -> N ;   -- karl   (karlen, karlar, karlarna) ; utrum ; masculine
    nPojke  : Str -> N ;   -- pojke  (pojken, pojkar, pojkarna) ; utrum ; masculine
    nNyckel : Str -> N ;   -- nyckel (nyckeln, nycklar, nycklarna) ; utrum
    nRisk   : Str -> N ;   -- risk   (risken, risker, riskerna) ; utrum
    nDike   : Str -> N ;   -- dike   (diket, diken, dikena) ; neutrum
    nRep    : Str -> N ;   -- rep    (repet, rep, repen) ; neutrum
    nPapper : Str -> N ;   -- papper (pappret, papper, pappren) ; neutrum
    nMurare : Str -> N ;   -- murare (muraren, murare, murarna) ; utrum ; masculine
    nKikare : Str -> N ;   -- kikare (kikaren, kikare, kikarna) ; utrum
Nouns used as functions need a preposition. The most common ones are av, , and till. A preposition is a string.
    mkFun   : N -> Str -> Fun ;
    funAv   : N -> Fun ;
    funPaa  : N -> Fun ;
    funTill : N -> Fun ;
Proper names, with their possibly irregular genitive. The regular genitive is s, omitted after s.
    mkPN  : (_,_ : Str) -> Gender -> Sex -> PN ;  -- Karolus, Karoli
    pnReg : Str -> Gender -> Sex -> PN ;          -- Johan,Johans ; Johannes, Johannes
    pnS   : Str -> Gender -> Sex -> PN ;          -- "Burger King(s)"
On the top level, it is maybe CN that is used rather than N, and NP rather than PN.
    mkCN  : N -> CN ;
    mkNP  : (Karolus, Karoli : Str) -> Gender -> NP ;
  
    npReg : Str -> Gender -> NP ;   -- Johann, Johanns

Adjectives

Non-comparison one-place adjectives need four forms in the worst case: strong singular, weak singular, plural.
    mkAdj1 : (_,_,_,_ : Str) -> Adj1 ; -- liten, litet, lilla, små
Special cases needing one form each are: regular adjectives, adjectives with unstressed e in the last syllable, those ending with n as a further special case, and invariable adjectives.
    adjReg    : Str -> Adj1 ;          -- billig (billigt, billiga, billiga)
    adjNykter : Str -> Adj1 ;          -- nykter (nyktert, nyktra, nyktra) 
    adjGalen  : Str -> Adj1 ;          -- galen  (galet, galna, galna) 
    adjInvar  : Str -> Adj1 ;          -- bra
Two-place adjectives need a preposition and a case as extra arguments.
    mkAdj2    : Adj1 -> Str -> Adj2 ;  -- delbar, med
    mkAdj2Reg : Str  -> Str -> Adj2 ;  -- 
Comparison adjectives may need the three four forms for the positive case, plus three more forms for the comparison cases.
    mkAdjDeg : (liten, litet, lilla, sma, mindre, minst, minsta : Str) -> AdjDeg ;
Some comparison adjectives are completely regular.
    aReg : Str -> AdjDeg ;
On top level, there are adjectival phrases. The most common case is just to use a one-place adjective. The variation in adjGen is taken into account.
    apReg : Str -> AP ;

Adverbs

Adverbs are not inflected. Most lexical ones have position not before the verb. Some can be preverbal (e.g. alltid).
    mkAdv : Str -> AdV ;
    mkAdvPre : Str -> AdV ;
Adverbs modifying adjectives and sentences can also be formed.
    mkAdA : Str -> AdA ;
    mkAdS : Str -> AdS ;
Prepositional phrases are another productive form of adverbials.
    mkPP : Str -> NP -> AdV ;

Verbs

The fragment only has present tense so far. The worst case needs three forms: the infinitive, the indicative, and the imperative.

    mkV : (_,_,_ : Str) -> V ;   -- vara, är, var; trivas, trivs, trivs
The main conjugations need one string each.
    vKoka   : Str -> V ;          -- tala (talar, tala)
    vSteka  : Str -> V ;          -- leka (leker, lek)
    vBo     : Str -> V ;          -- bo   (bor, bo)
  
    vAndas  : Str -> V ;          -- andas [all forms the same: also "slåss"]
    vTrivas : Str -> V ;          -- trivas (trivs, trivs)
The verbs 'be' and 'have' are special.
    vVara  : V ;
    vHa    : V ;
Particle verbs are formed by putting together a verb and a particle. If the verb already has a particle, it is replaced by the new one.
    mkPartV : V -> Str -> V ;     -- stänga av ;
Two-place verbs, and the special case with direct object.
    mkTV     : V -> Str -> TV ;   -- tycka, om
    tvDir    : V -> TV ;          -- gilla
Ditransitive verbs.
    mkV3     : V -> Str -> Str -> V3 ;   -- prata, med, om
    v3Dir    : V -> Str -> V3 ;          -- ge,_,till
    v3DirDir : V -> V3 ;                 -- ge,_,_
The definitions should not bother the user of the API. So they are hidden from the document.