forked from GitHub/gf-core
started a grammar for grammatical terms, covering the cats of the RGL
This commit is contained in:
143
examples/grammar-terms/GrammarTermsEng.gf
Normal file
143
examples/grammar-terms/GrammarTermsEng.gf
Normal file
@@ -0,0 +1,143 @@
|
||||
--# -path=.:present
|
||||
|
||||
concrete GrammarTermsEng of GrammarTerms =
|
||||
open SyntaxEng, (S = SyntaxEng), ParadigmsEng, (P = ParadigmsEng) in {
|
||||
|
||||
lincat
|
||||
Rule = Utt ;
|
||||
Cat = CN ;
|
||||
ParamType = CN ;
|
||||
ParamValue = NP ;
|
||||
Language = {name : CN ; adj : AP} ;
|
||||
[Cat] = NP ;
|
||||
[ParamType] = {indef, bare : NP} ;
|
||||
|
||||
lin
|
||||
RuleFun c cs =
|
||||
mkUtt (mkS (mkCl (mkNP a_Det c) (mkVP can_VV
|
||||
(mkVP (passiveVP construct_V2) (S.mkAdv from_Prep cs))))) ;
|
||||
RuleInherent c ps =
|
||||
mkUtt (mkS (mkCl (mkNP aPl_Det c) have_V2 ps.indef)) ;
|
||||
RuleVariable c ps =
|
||||
mkUtt (mkS (mkCl (mkNP aPl_Det c)
|
||||
(mkVP (passiveVP inflect_V2) (S.mkAdv for_Prep ps.bare)))) ;
|
||||
|
||||
oper
|
||||
construct_V2 = mkV2 "construct" ;
|
||||
inflect_V2 = mkV2 "inflect" ;
|
||||
|
||||
lin
|
||||
BaseCat c = mkNP a_Det c ;
|
||||
ConsCat c cs = mkNP and_Conj (mkNP a_Det c) cs ;
|
||||
|
||||
BaseParamType c = {
|
||||
indef = mkNP a_Det c ;
|
||||
bare = mkNP c
|
||||
} ;
|
||||
ConsParamType c cs = {
|
||||
indef = mkNP and_Conj (mkNP a_Det c) cs.indef ;
|
||||
bare = mkNP and_Conj (mkNP c) cs.bare
|
||||
} ;
|
||||
|
||||
lin
|
||||
CatA = mkCN (mkN "adjective") ;
|
||||
CatA2 = mkCN (mkN "two-place adjective") ;
|
||||
CatAP = mkCN (mkA "adjectival") (mkN "phrase") ;
|
||||
CatAdA = mkCN (mkA "adjective-modifying") (mkN "adverb") ;
|
||||
CatAdN = mkCN (mkN "numeral-modifying adverb") ;
|
||||
CatAdV = mkCN (mkN "sentential adverb") ;
|
||||
CatAdv = mkCN (mkN "verb-phrase-modifying adverb") ;
|
||||
CatAnt = mkCN (mkN "anteriority") ;
|
||||
CatCAdv = mkCN (mkN "comparative adverb") ;
|
||||
CatCN = mkCN (mkN "common noun phrase") ;
|
||||
CatCard = mkCN (mkN "cardinal number") ;
|
||||
CatCl = mkCN (mkN "declarative clause") ;
|
||||
CatClSlash = slash (mkCN (mkN "clause")) ;
|
||||
CatComp = funOf (mkN "complement") (mkN "copula") ;
|
||||
CatConj = mkCN (mkN "conjunction") ;
|
||||
CatDet = mkCN (mkN "determiner phrase") ;
|
||||
CatDig = mkCN (mkN "digit") ;
|
||||
CatDigits = funOfPl (mkN "sequence") (mkN "digit") ;
|
||||
CatIAdv = mkCN (mkN "interrogative adverb") ;
|
||||
CatIComp =
|
||||
mkCN (mkA "interrogative") (funOf (mkN "complement") (mkN "copula")) ;
|
||||
CatIDet = mkCN (mkN "interrogative determiner") ;
|
||||
CatIP = mkCN (mkN "interrogative pronoun") ;
|
||||
CatIQuant = mkCN (mkN "interrogative quantifier") ;
|
||||
CatImp = mkCN (mkN "imperative") ;
|
||||
CatImpForm = funOf (mkN "form") (mkN "imperative") ;
|
||||
CatInterj = mkCN (mkN "interjection") ;
|
||||
CatListAP = funOfPl (mkN "list") (mkN "adjectival phrase") ;
|
||||
CatListAdv = funOfPl (mkN "list") (mkN "adverb") ;
|
||||
CatListNP = funOfPl (mkN "list") (mkN "noun phrase") ;
|
||||
CatListRS = funOfPl (mkN "list") (mkN "relative clause") ;
|
||||
CatListS = funOfPl (mkN "list") (mkN "sentence") ;
|
||||
CatN = mkCN (mkN "noun") ;
|
||||
CatN2 = mkCN (mkN "two-place relational noun") ;
|
||||
CatN3 = mkCN (mkN "three-place relational noun") ;
|
||||
CatNP = mkCN (mkN "noun phrase") ;
|
||||
CatNum = mkCN (mkN "number-determining element") ;
|
||||
CatNumeral = mkCN (mkN "numeral expression") ;
|
||||
CatOrd = mkCN (mkN "ordinal") ;
|
||||
CatPConj = mkCN (mkN "phrase conjunction") ;
|
||||
CatPN = mkCN (mkN "proper name") ;
|
||||
CatPhr = mkCN (mkN "phrase") (S.mkAdv in_Prep (mkNP a_Det (mkN "text"))) ;
|
||||
CatPol = mkCN (mkN "polarity") ;
|
||||
CatPredet = mkCN (mkN "predeterminer") ;
|
||||
CatPrep = mkCN (mkN "preposition") ;
|
||||
CatPron = mkCN (mkN "personal pronoun") ;
|
||||
CatPunct = mkCN (mkN "punctuation mark") ;
|
||||
CatQCl = mkCN (mkN "question clause") ;
|
||||
CatQS = mkCN (mkN "question") ;
|
||||
CatQuant = mkCN (mkN "quantifier") ;
|
||||
CatRCl = mkCN (mkN "relative clause") ;
|
||||
CatRP = mkCN (mkN "relative pronoun") ;
|
||||
CatRS = mkCN (mkN "relative sentence") ;
|
||||
CatS = mkCN (mkN "declarative sentence") ;
|
||||
CatSC = mkCN (mkN "embedded clause") ;
|
||||
CatSSlash = slash (mkCN (mkN "sentence")) ;
|
||||
CatSub100 = mkCN (mkN "numeral") (S.mkAdv under_Prep (mkNP (mkPN "100"))) ;
|
||||
CatSub1000 = mkCN (mkN "numeral") (S.mkAdv under_Prep (mkNP (mkPN "1000"))) ;
|
||||
CatSubj = mkCN (mkN "subjunction") ;
|
||||
CatTemp = mkCN (mkN "temporal and aspectual feature") ;
|
||||
CatTense = mkCN (mkN "tense") ;
|
||||
CatText = mkCN (mkN "text") ;
|
||||
CatUnit = mkCN (mkN "numeral") (S.mkAdv under_Prep (mkNP (mkPN "10"))) ;
|
||||
CatUtt = mkCN (mkN "utterance") ;
|
||||
CatV = mkCN (mkN "intransitive verb") ;
|
||||
CatV2 = mkCN (mkN "two-place verb") ;
|
||||
CatV2A =
|
||||
mkCN (mkN "verb") (P.mkAdv "with noun phrase and adjective complements") ;
|
||||
CatV2Q =
|
||||
mkCN (mkN "verb") (P.mkAdv "with noun phrase and question complements") ;
|
||||
CatV2S =
|
||||
mkCN (mkN "verb") (P.mkAdv "with noun phrase and sentence complements") ;
|
||||
CatV2V =
|
||||
mkCN (mkN "verb") (P.mkAdv "with noun phrase and verb phrase complements") ;
|
||||
CatV3 = mkCN (mkN "three-place verb") ;
|
||||
CatVA =
|
||||
mkCN (mkN "verb") (P.mkAdv "with an adjective complement") ;
|
||||
CatVP = mkCN (mkN "verb phrase") ;
|
||||
CatVPSlash = slash (mkCN (mkN "verb phrase")) ;
|
||||
CatVQ =
|
||||
mkCN (mkN "verb") (P.mkAdv "with a question complement") ;
|
||||
CatVS =
|
||||
mkCN (mkN "verb") (P.mkAdv "with a sentence complement") ;
|
||||
CatVV =
|
||||
mkCN (mkN "verb") (P.mkAdv "with a verb-phrase complement") ;
|
||||
CatVoc = mkCN (mkN "vocative") ;
|
||||
|
||||
PTGender = mkCN (mkN "gender") ;
|
||||
PTNumber = mkCN (mkN "number") ;
|
||||
PTCase = mkCN (mkN "case") ;
|
||||
PTTense = mkCN (mkN "tense") ;
|
||||
|
||||
oper
|
||||
slash : CN -> CN = \cn ->
|
||||
mkCN (mkAP (mkA2 (mkA "missing") []) (mkNP a_Det (mkN "noun phrase"))) cn ;
|
||||
|
||||
funOf : N -> N -> CN = \f,x ->
|
||||
mkCN (mkN2 f possess_Prep) (mkNP a_Det x) ;
|
||||
funOfPl : N -> N -> CN = \f,x ->
|
||||
mkCN (mkN2 f possess_Prep) (mkNP aPl_Det x) ;
|
||||
}
|
||||
Reference in New Issue
Block a user