1
0
forked from GitHub/gf-rgl
Files
gf-rgl/src/somali/CatSom.gf
2019-09-27 11:14:23 +02:00

131 lines
3.5 KiB
Plaintext

concrete CatSom of Cat = CommonX - [Adv,IAdv] ** open ResSom, Prelude in {
flags optimize=all_subs ;
lincat
--2 Sentences and clauses
-- Constructed in SentenceSom, and also in IdiomSom
S = ResSom.Sentence ;
QS = SS ;
RS = {s : State => GenNum => Case => Str} ;
-- relative sentence. Tense and polarity fixed,
-- but agreement may depend on the CN/NP it modifies.
Cl = ResSom.ClSlash ;
ClSlash = ResSom.ClSlash ;
SSlash = ResSom.Sentence ; -- sentence missing NP; e.g. "she has looked at"
Imp = {s : Number => Polarity => Str} ; -- imperative e.g. "look at this"
--2 Questions and interrogatives
-- Constructed in QuestionSom.
QCl = ResSom.QClause ;
IComp = SS ; -- interrogative complement of copula e.g. "where"
IDet = ResSom.Determiner ; -- interrogative determiner e.g. "how many"
IQuant = ResSom.Quant ; -- interrogative quantifier e.g. "which"
IP = ResSom.NounPhrase ** {contractSTM : Bool} ; -- like NP but may contract with STM
IAdv = ResSom.IAdv ;
--2 Subord clauses and pronouns
RCl = ResSom.RClause ;
RP = SS ;
--2 Verb phrases
-- Constructed in VerbSom.
VP = ResSom.VerbPhrase ;
VPSlash = ResSom.VPSlash ;
Comp = ResSom.Complement ;
--2 Adjectival phrases
-- Constructed in AdjectiveSom.
AP = ResSom.AdjPhrase ;
--2 Nouns and noun phrases
-- Constructed in NounSom.
-- Many atomic noun phrases e.g. "everybody"
-- are constructed in StructuralSom.
-- The determiner structure is
-- ``` Predet (QuantSg | QuantPl Num) Ord
-- as defined in NounSom.
CN = ResSom.CNoun ;
NP = ResSom.NounPhrase ;
Pron = ResSom.Pronoun ; --Pronouns need enough info to turn it into NP or Quant.
Det = ResSom.Determiner ;
Predet = {s : Str ; da : DefArticle ; isPoss : Bool} ;
Quant = ResSom.Quant ;
Num = ResSom.Num ;
Ord = {
s : AForm => Str ; -- Ord can came from AP and become AP again
n : Number -- Ord can come from Num, which has inherent number
} ;
DAP = ResSom.Determiner ;
--2 Numerals
-- Constructed in NumeralSom.
Card = BaseNum ;
Numeral = ResSom.Numeral ;
Digits = {s : CardOrd => Str ; n : Number} ;
--2 Structural words
-- Constructed in StructuralSom.
Conj = {s2 : State => Str ; s1 : Str ; n : Number } ;
Subj = SS ;
Prep = ResSom.Prep ;
--2 Words of open classes
-- These are constructed in LexiconSom and in
-- additional lexicon modules.
VS, -- sentence-complement verb e.g. "claim"
-- TODO: eventually different lincats
VQ, -- question-complement verb e.g. "wonder"
VA, -- adjective-complement verb e.g. "look"
V = ResSom.Verb ;
VV = ResSom.VV ; -- verb-phrase-complement verb e.g. "want"
V2A, -- verb with NP and AP complement e.g. "paint"
V2V, -- verb with NP and V complement e.g. "cause"
V2S, -- verb with NP and S complement e.g. "tell"
V2Q, -- verb with NP and Q complement e.g. "ask"
V2 = ResSom.Verb2 ;
V3 = ResSom.Verb3 ;
A = ResSom.Adjective ;
A2 = ResSom.Adjective2 ;
N = ResSom.Noun ;
N2 = ResSom.Noun2 ;
N3 = ResSom.Noun3 ;
PN = ResSom.PNoun ;
Adv = ResSom.Adverb ; -- Preposition of an adverbial can merge with obligatory complements of the verb.
linref
-- Cl = linCl ;
VP = infVP ;
CN = linCN ;
Prep = \prep -> prep.s ! P3_Prep ++ prep.sii ++ prep.dhex ++ prep.hoostiisa ! Sg3 Masc ;
}