Files
gf-core/examples/phrasebook/DisambPhrasebookEng.gf

85 lines
3.2 KiB
Plaintext

--# -path=.:present
concrete DisambPhrasebookEng of Phrasebook = PhrasebookEng -
[
PGreetingMale, PGreetingFemale,
IMale, IFemale,
YouFamMale, YouFamFemale,
YouPolMale, YouPolFemale,
LangNat, -- CitiNat,
GExcuse, GExcusePol,
GSorry, GSorryPol,
GPleaseGive, GPleaseGivePol,
GNiceToMeetYou, -- GNiceToMeetYouPol,
PYes, PYesToNo, ObjMass,
MKnow,
WeMale, WeFemale,
YouPlurFamMale, YouPlurFamFemale,
YouPlurPolMale, YouPlurPolFemale,
TheyMale, TheyFemale,
PImperativeFamPos,
PImperativeFamNeg,
PImperativePolPos,
PImperativePolNeg,
PImperativePlurPos,
PImperativePlurNeg
]
** open SyntaxEng, ParadigmsEng, IrregEng, Prelude in {
lin
PGreetingMale g = mkText (lin Text g) (lin Text (ss "(by male)")) ;
PGreetingFemale g = mkText (lin Text g) (lin Text (ss "(by female)")) ;
IMale = mkP i_Pron "(male)" ;
IFemale = mkP i_Pron "(female)" ;
WeMale = mkP we_Pron "(male)" ;
WeFemale = mkP we_Pron "(female)" ;
YouFamMale = mkP youSg_Pron "(singular,familiar,male)" ;
YouFamFemale = mkP youSg_Pron "(singular,familiar,female)" ;
YouPolMale = mkP youPol_Pron "(singular,polite,male)" ;
YouPolFemale = mkP youPol_Pron "(singular,polite,female)" ;
YouPlurFamMale = mkP youSg_Pron "(plural,familiar,male)" ;
YouPlurFamFemale = mkP youSg_Pron "(plural,familiar,female)" ;
YouPlurPolMale = mkP youPol_Pron "(plural,polite,male)" ;
YouPlurPolFemale = mkP youPol_Pron "(plural,polite,female)" ;
TheyMale = mkP they_Pron "(male)" ;
TheyFemale = mkP they_Pron "(female)" ;
MKnow = mkVV (partV know_V "how") ; ---
LangNat nat = mkNP nat.lang (ParadigmsEng.mkAdv "(language)") ;
-- CitiNat nat = nat.prop ;
GExcuse = fam "excuse me" ;
GExcusePol = pol "excuse me" ;
GSorry = fam "sorry" ;
GSorryPol = pol "sorry" ;
GPleaseGive = fam "please" ;
GPleaseGivePol = pol "please" ;
GNiceToMeetYou = fam "nice to meet you" ;
-- GNiceToMeetYouPol = pol "nice to meet you" ;
PYes = mkPhrase (lin Utt (ss "yes (answer to positive question)")) ;
PYesToNo = mkPhrase (lin Utt (ss "yes (answer to negative question)")) ;
ObjMass x = mkNP (mkNP x) (ParadigmsEng.mkAdv "(a portion of)") ;
PImperativeFamPos v = phrasePlease (mkUtt (mkImp (addAdv ("singular,familiar") v))) ;
PImperativeFamNeg v = phrasePlease (mkUtt negativePol (mkImp (addAdv ("singular,familiar") v))) ;
PImperativePolPos v = phrasePlease (mkUtt politeImpForm (mkImp (addAdv ("singular,polite") v))) ;
PImperativePolNeg v = phrasePlease (mkUtt politeImpForm negativePol (mkImp (addAdv ("singular,polite") v))) ;
PImperativePlurPos v = phrasePlease (mkUtt pluralImpForm (mkImp (addAdv ("plural,familiar") v))) ;
PImperativePlurNeg v = phrasePlease (mkUtt pluralImpForm negativePol (mkImp (addAdv ("plural,familiar") v))) ;
oper
fam : Str -> SS = \s -> postfixSS "(familiar)" (ss s) ;
pol : Str -> SS = \s -> postfixSS "(polite)" (ss s) ;
mkP : Pron -> Str -> {name : NP ; isPron : Bool ; poss : Quant} = \p,s ->
{name = mkNP (mkNP p) (ParadigmsEng.mkAdv s) ;
isPron = False ; -- to show the disambiguation
poss = SyntaxEng.mkQuant youSg_Pron
} ;
addAdv : Str -> VP -> VP = \s,vp -> mkVP vp (ParadigmsEng.mkAdv ("("+s+")")) ;
}