# -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ä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,
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 ; -- 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 ;
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, 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.