1
0
forked from GitHub/gf-core

reordered and documented Cat modules

This commit is contained in:
aarne
2006-01-07 22:30:36 +00:00
parent cbf3bd088b
commit 3e5d7ce229
5 changed files with 249 additions and 161 deletions

View File

@@ -2,78 +2,95 @@ abstract Cat = {
cat cat
Text ; -- Top-level units constructed in $Phrase$.
Phr ;
Utt ;
Imp ;
S ; Text ; -- text consisting of several phrases
QS ; Phr ; -- phrase in a text e.g. "But be quiet my darling."
RS ; Utt ; -- sentence, question, "one-word utterance"... e.g. "be quiet"
Voc ; -- vocative or "please" e.g. "my darling"
Cl ; -- Tensed sentences constructed in $Tensed$ and, with just present forms, in $Untensed$.
QCl ;
RCl ;
Slash ; S ; -- declarative sentence e.g. "she lived here"
QS ; -- question e.g. "where did she live"
RS ; -- relative e.g. "in which she lived"
VP ; -- Clauses constructed in $Sentence$.
V ; Cl ; -- declarative clause, with all tense forms e.g. "she looks at this"
V2 ; Slash ; -- clause lacking object (S/NP in GPSG) e.g. "she looks at"
V3 ; Imp ; -- imperative e.g. "look at this"
VV ; -- Questions and interrogatives, constructed in $Question$.
VS ;
VQ ;
VA ; QCl ; -- question clause, with all tense forms e.g. "why does she walk"
V2A ; IP ; -- interrogative pronoun e.g. "who"
IAdv ; -- interrogative adverb e.g. "why"
IDet ; -- interrogative determiner e.g. "which"
AP ; -- Relatives, constructed in $Relative$.
Comp ; RCl ; -- relative clause, with all tense forms e.g. "in which she lives"
SC ; RP ; -- relative pronoun e.g. "in which"
A ; -- Verb phrases, constructed in $Verb$.
A2 ;
Adv ; VP ; -- verb phrase e.g. "is very warm"
AdV ; Comp ; -- complement of copula, e.g. AP, NP e.g. "very warm"
AdA ; SC ; -- sentential noun phrase: e.g. 'that' clause e.g. "that it rains"
AdS ;
AdN ;
CN ; -- Adjectival phrases, constructed in $Adjective$.
N ;
N2 ;
N3 ;
NP ; AP ; -- adjectival phrase e.g. "very warm"
PN ;
Pron ;
Det ;
Predet ;
Quant ;
Num ;
Ord ;
Prep ; -- Nouns and noun phrases, constructed in $Noun$ (many also in $Structural$).
IP ; CN ; -- common noun (needs determiner to make NP) e.g. "red house"
IAdv ; NP ; -- noun phrase (usable as subject or object) e.g. "the red house"
IDet ; Pron ; -- personal pronoun e.g. "she"
Det ; -- determiner phrase e.g. "all the seven"
Predet; -- predeterminer (prefixed to a quantifier) e.g. "all"
Quant ; -- quantifier (the 'kernel' of a determiner) e.g. "the"
Num ; -- cardinal number (used in a determiner) e.g. "seven"
Ord ; -- ordinal number (used in a determiner) e.g. "first"
RP ; -- relative pronoun -- Adverbs, constructed in $Adverb$ (many also in $Structural$).
Adv ; -- verb-phrase-modifying adverb, e.g. "in the house"
AdV ; -- sentential adverb, typically close to verb e.g. "always"
AdA ; -- adjective-modifying adverb, e.g. "very"
AdN ; -- numeral-modifying adverb, e.g. "more than"
-- Numeral with cardinal and ordinal forms, constructed in $Numeral$.
Numeral;-- cardinal or ordinal, e.g. "five/fifth" Numeral;-- cardinal or ordinal, e.g. "five/fifth"
-- Structural words, constructed in $Structural$.
Conj ; -- conjunction, e.g. "and" Conj ; -- conjunction, e.g. "and"
DConj ; -- distributed conj. e.g. "both - and" DConj ; -- distributed conj. e.g. "both - and"
PConj ; -- phrase-beginning conj. PConj ; -- phrase-beginning conj. e.g. "therefore"
CAdv ; -- comparative adverb e.g. "more", "less" CAdv ; -- comparative adverb e.g. "more"
Subj ; -- subjunction, e.g. "if", "when" Subj ; -- subjunction, e.g. "if"
Prep ; -- preposition, or just a case in some langs e.g. "in"
Voc ; -- vocative or "please" -- Words of open classes, constructed in $Basic$ and in additional lexicon modules.
V ; -- one-place verb e.g. "sleep"
V2 ; -- two-place verb e.g. "love"
V3 ; -- three-place verb e.g. "show"
VV ; -- verb-phrase-complement verb e.g. "want"
VS ; -- sentence-complement verb e.g. "claim"
VQ ; -- question-complement verb e.g. "ask"
VA ; -- adjective-complement verb e.g. "look"
V2A ; -- verb with NP and AP complement e.g. "paint"
A ; -- one-place adjective e.g. "warm"
A2 ; -- two-place adjective e.g. "divisible"
N ; -- common noun e.g. "house"
N2 ; -- relational noun e.g. "son"
N3 ; -- three-place relational noun e.g. "connection"
PN ; -- proper name e.g. "Paris"
} }

View File

@@ -1,60 +1,86 @@
concrete CatEng of Cat = open ResEng, Prelude in { concrete CatEng of Cat = open ResEng, Prelude in {
lincat flags optimize=all_subs ;
Text, Phr, Utt = {s : Str} ;
Imp = {s : Polarity => Number => Str} ; lincat
-- Phrase
Text, Phr, Utt, Voc = {s : Str} ;
-- Tensed/Untensed
S = {s : Str} ; S = {s : Str} ;
QS = {s : QForm => Str} ; QS = {s : QForm => Str} ;
RS = {s : Agr => Str} ; RS = {s : Agr => Str} ;
-- Sentence
Cl = {s : Tense => Anteriority => Polarity => Order => Str} ; Cl = {s : Tense => Anteriority => Polarity => Order => Str} ;
Slash = {s : Tense => Anteriority => Polarity => Order => Str} ** {c2 : Str} ; Slash = {s : Tense => Anteriority => Polarity => Order => Str} ** {c2 : Str} ;
Imp = {s : Polarity => Number => Str} ;
-- Question
QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ; QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ;
IP = {s : Case => Str ; n : Number} ;
IAdv = {s : Str} ;
IDet = {s : Str ; n : Number} ;
-- Relative
RCl = {s : Tense => Anteriority => Polarity => Agr => Str} ; RCl = {s : Tense => Anteriority => Polarity => Agr => Str} ;
RP = {s : Case => Str ; a : RAgr} ;
-- Verb
VP = { VP = {
s : Tense => Anteriority => Polarity => Order => Agr => {fin, inf : Str} ; s : Tense => Anteriority => Polarity => Order => Agr => {fin, inf : Str} ;
s2 : Agr => Str s2 : Agr => Str
} ; } ;
Comp = {s : Agr => Str} ;
SC = {s : Str} ;
-- Adjective
AP = {s : Agr => Str ; isPre : Bool} ;
-- Noun
CN = {s : Number => Case => Str} ;
NP, Pron = {s : Case => Str ; a : Agr} ;
Det, Quant = {s : Str ; n : Number} ;
Predet, Num, Ord = {s : Str} ;
-- Adverb
Adv, AdV, AdA, AdS, AdN = {s : Str} ;
-- Numeral
Numeral = {s : CardOrd => Str ; n : Number} ;
-- Structural
Conj = {s : Str ; n : Number} ;
DConj = {s1,s2 : Str ; n : Number} ;
PConj = {s : Str} ;
CAdv = {s : Str} ;
Subj = {s : Str} ;
Prep = {s : Str} ;
-- Open lexical classes, e.g. Basic
V, VS, VQ, VA = Verb ; -- = {s : VForm => Str} ; V, VS, VQ, VA = Verb ; -- = {s : VForm => Str} ;
V2, VV, V2A = Verb ** {c2 : Str} ; V2, VV, V2A = Verb ** {c2 : Str} ;
V3 = Verb ** {c2, c3 : Str} ; V3 = Verb ** {c2, c3 : Str} ;
AP = {s : Agr => Str ; isPre : Bool} ;
Comp = {s : Agr => Str} ;
SC = {s : Str} ;
A = {s : AForm => Str} ; A = {s : AForm => Str} ;
A2 = {s : AForm => Str ; c2 : Str} ; A2 = {s : AForm => Str ; c2 : Str} ;
Adv, AdV, AdA, AdS, AdN = {s : Str} ; N = {s : Number => Case => Str} ;
Prep = {s : Str} ;
Det, Quant = {s : Str ; n : Number} ;
Predet, Num, Ord = {s : Str} ;
CN,N = {s : Number => Case => Str} ;
PN = {s : Case => Str} ;
Pron, NP = {s : Case => Str ; a : Agr} ;
N2 = {s : Number => Case => Str} ** {c2 : Str} ; N2 = {s : Number => Case => Str} ** {c2 : Str} ;
N3 = {s : Number => Case => Str} ** {c2,c3 : Str} ; N3 = {s : Number => Case => Str} ** {c2,c3 : Str} ;
PN = {s : Case => Str} ;
IP = {s : Case => Str ; n : Number} ;
IDet = {s : Str ; n : Number} ;
IAdv = {s : Str} ;
RP = {s : Case => Str ; a : RAgr} ;
Numeral = {s : CardOrd => Str ; n : Number} ;
CAdv = {s : Str} ;
Conj = {s : Str ; n : Number} ;
DConj = {s1,s2 : Str ; n : Number} ;
} }

View File

@@ -4,61 +4,84 @@ concrete CatGer of Cat = open ResGer, Prelude in {
lincat lincat
Text, Phr, Utt = {s : Str} ; -- Phrase
Imp = {s : Polarity => Number => Str} ; Text, Phr, Utt, Voc = {s : Str} ;
-- Tensed/Untensed
S = {s : Order => Str} ; S = {s : Order => Str} ;
QS = {s : QForm => Str} ; QS = {s : QForm => Str} ;
RS = {s : GenNum => Str} ; RS = {s : GenNum => Str} ;
-- Sentence
Cl = {s : Tense => Anteriority => Polarity => Order => Str} ; Cl = {s : Tense => Anteriority => Polarity => Order => Str} ;
Slash = {s : Tense => Anteriority => Polarity => Order => Str} ** {c2 : Preposition} ; Slash = {s : Tense => Anteriority => Polarity => Order => Str} ** {c2 : Preposition} ;
Imp = {s : Polarity => Number => Str} ;
-- Question
QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ; QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ;
IP = {s : Case => Str ; n : Number} ;
IAdv = {s : Str} ;
IDet = {s : Gender => Case => Str ; n : Number} ;
-- Relative
RCl = {s : Tense => Anteriority => Polarity => GenNum => Str} ; RCl = {s : Tense => Anteriority => Polarity => GenNum => Str} ;
RP = {s : GenNum => Case => Str ; a : RAgr} ;
-- Verb
VP = ResGer.VP ; VP = ResGer.VP ;
V, VS, VQ, VA = ResGer.Verb ; -- = {s : VForm => Str} ;
VV = Verb ** {part : Str} ;
V2, V2A = Verb ** {c2 : Preposition} ;
V3 = Verb ** {c2, c3 : Preposition} ;
AP = {s : AForm => Str ; isPre : Bool} ;
Comp = {s : Agr => Str} ; Comp = {s : Agr => Str} ;
SC = {s : Str} ; SC = {s : Str} ;
A = {s : Degree => AForm => Str} ; -- Adjective
A2 = {s : Degree => AForm => Str ; c2 : Preposition} ;
Adv, AdV, AdA, AdS, AdN = {s : Str} ; AP = {s : AForm => Str ; isPre : Bool} ;
Prep = {s : Str ; c : Case} ;
-- Noun
CN = {s : Adjf => Number => Case => Str ; g : Gender} ;
NP = {s : Case => Str ; a : Agr} ;
Pron = {s : NPForm => Str ; a : Agr} ;
Det, Quant = {s : Gender => Case => Str ; n : Number ; a : Adjf} ; Det, Quant = {s : Gender => Case => Str ; n : Number ; a : Adjf} ;
Predet = {s : Number => Gender => Case => Str} ; Predet = {s : Number => Gender => Case => Str} ;
Num = {s : Gender => Case => Str} ; Num = {s : Gender => Case => Str} ;
Ord = {s : AForm => Str} ; Ord = {s : AForm => Str} ;
CN = {s : Adjf => Number => Case => Str ; g : Gender} ; -- Adverb
N = {s : Number => Case => Str ; g : Gender} ;
PN = {s : Case => Str} ;
Pron = {s : NPForm => Str ; a : Agr} ;
NP = {s : Case => Str ; a : Agr} ;
N2 = {s : Number => Case => Str ; g : Gender} ** {c2 : Preposition} ;
N3 = {s : Number => Case => Str ; g : Gender} ** {c2,c3 : Preposition} ;
IP = {s : Case => Str ; n : Number} ; Adv, AdV, AdA, AdS, AdN = {s : Str} ;
IDet = {s : Gender => Case => Str ; n : Number} ;
IAdv = {s : Str} ;
RP = {s : GenNum => Case => Str ; a : RAgr} ; -- Numeral
Numeral = {s : CardOrd => Str ; n : Number} ; Numeral = {s : CardOrd => Str ; n : Number} ;
CAdv = {s : Str} ; -- Structural
Conj = {s : Str ; n : Number} ; Conj = {s : Str ; n : Number} ;
DConj = {s1,s2 : Str ; n : Number} ; DConj = {s1,s2 : Str ; n : Number} ;
PConj = {s : Str} ;
CAdv = {s : Str} ;
Subj = {s : Str} ;
Prep = {s : Str ; c : Case} ;
-- Open lexical classes, e.g. Basic
V, VS, VQ, VA = ResGer.Verb ; -- = {s : VForm => Str} ;
VV = Verb ** {part : Str} ;
V2, V2A = Verb ** {c2 : Preposition} ;
V3 = Verb ** {c2, c3 : Preposition} ;
A = {s : Degree => AForm => Str} ;
A2 = {s : Degree => AForm => Str ; c2 : Preposition} ;
N = {s : Number => Case => Str ; g : Gender} ;
N2 = {s : Number => Case => Str ; g : Gender} ** {c2 : Preposition} ;
N3 = {s : Number => Case => Str ; g : Gender} ** {c2,c3 : Preposition} ;
PN = {s : Case => Str} ;
} }

View File

@@ -1,22 +1,39 @@
incomplete concrete CatScand of Cat = incomplete concrete CatScand of Cat =
open ResScand, Prelude, DiffScand, (R = ParamX) in { open ResScand, Prelude, DiffScand, (R = ParamX) in {
lincat flags optimize=all_subs ;
Text, Phr, Utt = {s : Str} ;
Imp = {s : Polarity => Number => Str} ; lincat
-- Phrase
Text, Phr, Utt, Voc = {s : Str} ;
-- Tensed/Untensed
S = {s : Order => Str} ; S = {s : Order => Str} ;
QS = {s : QForm => Str} ; QS = {s : QForm => Str} ;
RS = {s : Agr => Str} ; RS = {s : Agr => Str} ;
-- Sentence
Cl = {s : Tense => Anteriority => Polarity => Order => Str} ; Cl = {s : Tense => Anteriority => Polarity => Order => Str} ;
Slash = {s : Tense => Anteriority => Polarity => Order => Str} ** {c2 : Str} ; Slash = {s : Tense => Anteriority => Polarity => Order => Str} ** {c2 : Str} ;
Imp = {s : Polarity => Number => Str} ;
-- Question
QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ; QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ;
RCl = {s : Tense => Anteriority => Polarity => Agr => Str} ; IP = {s : NPForm => Str ; gn : GenNum} ;
IAdv = {s : Str} ;
IDet = {s : Gender => Str ; n : Number ; det : DetSpecies} ;
-- Constructed in $Verb$. -- Relative
RCl = {s : Tense => Anteriority => Polarity => Agr => Str} ;
RP = {s : GenNum => RCase => Str ; a : RAgr} ;
-- Verb
VP = { VP = {
s : VPForm => { s : VPForm => {
@@ -29,49 +46,54 @@ incomplete concrete CatScand of Cat =
ext : Str ; -- S-Ext att hon går ---s7 ext : Str ; -- S-Ext att hon går ---s7
en2,ea2,eext : Bool -- indicate if the field exists en2,ea2,eext : Bool -- indicate if the field exists
} ; } ;
V, VS, VQ, VA = Verb ;
V2, VV, V2A = Verb ** {c2 : Str} ;
V3 = Verb ** {c2,c3 : Str} ;
AP = {s : AFormPos => Str ; isPre : Bool} ;
Comp = {s : AFormPos => Str} ; Comp = {s : AFormPos => Str} ;
SC = {s : Str} ; -- always Sub SC = {s : Str} ; -- always Sub
A = Adjective ;
-- {s : AForm => Str} ;
A2 = Adjective ** {c2 : Str} ;
Adv, AdV, AdA, AdS, AdN = {s : Str} ; -- Adjective
Prep = {s : Str} ;
-- Constructed in $Noun$. AP = {s : AFormPos => Str ; isPre : Bool} ;
-- Noun
CN = {s : Number => DetSpecies => Case => Str ; g : Gender} ;
NP,Pron = {s : NPForm => Str ; a : Agr} ;
Det, Quant = {s : Gender => Str ; n : Number ; det : DetSpecies} ; Det, Quant = {s : Gender => Str ; n : Number ; det : DetSpecies} ;
Predet = {s : GenNum => Str} ; Predet = {s : GenNum => Str} ;
Num = {s : Gender => Str} ; Num = {s : Gender => Str} ;
Ord = {s : Str} ; Ord = {s : Str} ;
N = Noun ; -- Adverb
-- {s : Number => Species => Case => Str ; g : Gender} ;
CN = {s : Number => DetSpecies => Case => Str ; g : Gender} ;
PN = {s : Case => Str ; g : Gender} ;
Pron, NP = {s : NPForm => Str ; a : Agr} ;
N2 = Noun ** {c2 : Str} ;
N3 = Noun ** {c2,c3 : Str} ;
IP = {s : NPForm => Str ; gn : GenNum} ; Adv, AdV, AdA, AdS, AdN = {s : Str} ;
IDet = {s : Gender => Str ; n : Number ; det : DetSpecies} ;
IAdv = {s : Str} ;
RP = {s : GenNum => RCase => Str ; a : RAgr} ; -- Numeral
Numeral = {s : CardOrd => Str ; n : Number} ; Numeral = {s : CardOrd => Str ; n : Number} ;
CAdv = {s : Str} ; -- Structural
Conj = {s : Str ; n : Number} ; Conj = {s : Str ; n : Number} ;
DConj = {s1,s2 : Str ; n : Number} ; DConj = {s1,s2 : Str ; n : Number} ;
PConj = {s : Str} ;
CAdv = {s : Str} ;
Subj = {s : Str} ;
Prep = {s : Str} ;
-- Open lexical classes, e.g. Basic
V, VS, VQ, VA = Verb ;
V2, VV, V2A = Verb ** {c2 : Str} ;
V3 = Verb ** {c2,c3 : Str} ;
A = Adjective ;
-- {s : AForm => Str} ;
A2 = Adjective ** {c2 : Str} ;
N = Noun ;
-- {s : Number => Species => Case => Str ; g : Gender} ;
N2 = Noun ** {c2 : Str} ;
N3 = Noun ** {c2,c3 : Str} ;
PN = {s : Case => Str ; g : Gender} ;
} }