mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-01 23:32:51 -06:00
188 lines
4.5 KiB
Plaintext
188 lines
4.5 KiB
Plaintext
--# -path=.:../abstract:../prelude:../common
|
|
|
|
--1 Mongolian Lexical Paradigms
|
|
|
|
-- This is an API for 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 $MorphoMon.gf$ is that the result types referred
|
|
-- to are compiled resource grammar types, i.e. wrapped with $lin Cat$.
|
|
|
|
interface ParadigmsMonI = open Prelude, MorphoMon, CatMon in {
|
|
|
|
flags coding=utf8 ; optimize=all ;
|
|
|
|
oper
|
|
regV : Str -> Verb ;
|
|
-- Auxiliary categories not in abstract/Cat.gf
|
|
|
|
-- Categories $V0, AS, A2S, AV, A2V$ are just $A$, $V0$ is just $V$;
|
|
-- the second argument is treated as adverb.
|
|
|
|
V0, AS, AV, A2S, A2V : Type ;
|
|
|
|
-- Parameters
|
|
|
|
-- To abstract over case names, we define the following case names, following
|
|
-- the case order standard for Mongolian textbooks.
|
|
|
|
RCase : Type ;
|
|
nominative : RCase ;
|
|
genitive : RCase ;
|
|
dative : RCase ;
|
|
accusative : RCase ;
|
|
ablative : RCase ;
|
|
instrumental : RCase ;
|
|
comitative : RCase ;
|
|
directive : RCase ;
|
|
|
|
-- To abstract over number names, we define the following.
|
|
|
|
Number : Type ;
|
|
singular : Number ;
|
|
plural : Number ;
|
|
|
|
-- Preposition
|
|
|
|
mkPrep : RCase -> Str -> Prep ;
|
|
noPrep : RCase -> Prep ;
|
|
|
|
-- Conjunctions
|
|
|
|
mkConj : Str -> ConjType -> Conj ;
|
|
|
|
mkSubj : Str -> Subj ;
|
|
|
|
-- Nouns
|
|
|
|
mkN : overload { mkN : (nNomSg : Str) -> Noun ;
|
|
mkN : (nNomSg,nNomPl : Str) -> Noun } ;
|
|
-- Foreign nouns, which are inflected differently.
|
|
|
|
mkLN : overload { mkLN : Str -> Noun ;
|
|
mkLN : (_,_ : Str) -> Noun } ;
|
|
|
|
-- Compound nouns constructed with an adjective; only the noun part is inflected.
|
|
|
|
mk2N : (adj : Str) -> Noun -> Noun ;
|
|
|
|
mkN2 : N -> N2 ;
|
|
|
|
mkN3 : Noun -> Prep -> Prep -> N3 ;
|
|
|
|
-- Proper names and Noun Phrases.
|
|
|
|
mkPN : Str -> PN ;
|
|
mkNP : Str -> Def -> NP ;
|
|
|
|
-- Adjectives
|
|
|
|
-- Mongolian adjectives have only a positive form.
|
|
|
|
mkA : (positive : Str) -> A ;
|
|
|
|
-- Two-place adjectives need a case as an extra argument.
|
|
|
|
mkA2 : A -> RCase -> A2 ;
|
|
|
|
-- Adverbs
|
|
|
|
-- Adverbs are not inflected.
|
|
|
|
mkAdv : Str -> Adv ;
|
|
|
|
-- Verbs
|
|
|
|
-- In our lexicon description there are so far 120 forms:
|
|
-- 5 Voice * 4 Aspect * 6 indicative tensed Mood
|
|
|
|
Voice: Type;
|
|
active : Voice ;
|
|
causative : Voice ;
|
|
passive : Voice ;
|
|
communal : Voice ;
|
|
adversative : Voice ;
|
|
|
|
Aspect: Type;
|
|
simple : Aspect ;
|
|
quick : Aspect ;
|
|
complete : Aspect ;
|
|
collective : Aspect ;
|
|
|
|
Imperative : Type ;
|
|
intention : Imperative ;
|
|
decision : Imperative ;
|
|
command : Imperative ;
|
|
request : Imperative ;
|
|
demand : Imperative ;
|
|
admonition : Imperative ;
|
|
appeal : Imperative ;
|
|
permission : Imperative ;
|
|
hope : Imperative ;
|
|
blessing : Imperative ;
|
|
|
|
Subordination : Type ;
|
|
conditional : Subordination ;
|
|
concessive : Subordination ;
|
|
immediatsucceeding : Subordination ;
|
|
logicalsucceeding : Subordination ;
|
|
intending : Subordination ;
|
|
limiting : Subordination ;
|
|
progressive : Subordination ;
|
|
succeeding : Subordination ;
|
|
|
|
Bool: Type;
|
|
true : Bool;
|
|
false : Bool;
|
|
|
|
-- One-place verbs.
|
|
|
|
mkV : Str -> Verb ;
|
|
|
|
-- Two-place and three-place verbs:
|
|
|
|
mkV2 : overload { mkV2 : Verb -> V2 ;
|
|
mkV2 : Verb -> Prep -> V2 } ;
|
|
|
|
mkV3 : overload { mkV3 : Verb -> V3 ;
|
|
mkV3 : Verb -> Prep -> Prep -> V3 } ;
|
|
|
|
-- Determiners and quantifiers
|
|
|
|
mkOrd : Str -> Ord ;
|
|
|
|
-- Other complement patterns
|
|
|
|
-- Verbs and adjectives can take complements such as sentences,
|
|
-- questions, verb phrases, and adjectives.
|
|
|
|
mkVA : Verb -> VA ;
|
|
mkV0 : Verb -> V0 ;
|
|
mkVS : Verb -> VS ;
|
|
mkVV : {s : VVVerbForm => Str} -> VV ;
|
|
mkVQ : Verb -> VQ ;
|
|
mkV2S : Verb -> Prep -> V2S ;
|
|
mkV2V : Verb -> Prep -> V2V ;
|
|
mkV2A : Verb -> Prep -> V2A ;
|
|
mkV2Q : Verb -> Prep -> V2Q ;
|
|
mkAS : Adjective -> AS ;
|
|
mkA2S : Adjective -> Prep -> A2S ;
|
|
mkAV : Adjective -> AV ;
|
|
mkA2V : Adjective -> Prep -> A2V ;
|
|
|
|
-- Definitions of parameters and paradigms should not bother the user of the API.
|
|
|
|
-- We separate the definitions that should be compiled with optimize=all into
|
|
-- ParadigmsMonO.gf, those which should be compiled with optimize=noexpand into
|
|
-- ParadigmsMon.gf.
|
|
|
|
-- Implementation: Why is it much slower if the definitions that should be optimized
|
|
-- are contained here?
|
|
|
|
} ;
|
|
|