# -path=.:../abstract:../../prelude
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 {
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 ;
mkN : (_,_,_,_ : Str) -> Gender -> Sex -> N ; -- man, mannen, män, männenHere 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) ; utrumNouns used as functions need a preposition. The most common ones are av, på, 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
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 ; -- braTwo-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 ;
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 ;
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, trivsThe 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 ; -- gillaDitransitive 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.