mirror of
https://github.com/GrammaticalFramework/comp-syntax-gu-mlt.git
synced 2026-02-09 14:51:06 -07:00
119 lines
4.4 KiB
Plaintext
119 lines
4.4 KiB
Plaintext
--# -path=.:../abstract:../english:../api
|
|
|
|
-- model implementation using Mini RGL
|
|
|
|
concrete DoctorFraMerle of Doctor =
|
|
open
|
|
SyntaxFre,
|
|
ParadigmsFre,
|
|
Prelude,
|
|
StructuralFre
|
|
in {
|
|
|
|
-- application using your own Mini* modules
|
|
|
|
lincat
|
|
Phrase = Utt ;
|
|
Fact = Cl ;
|
|
Action = VP ;
|
|
Property = VP ;
|
|
Profession = CN ;
|
|
Person = NP ;
|
|
Place = {at,to : Adv} ;
|
|
Substance = NP ;
|
|
Illness = NP ;
|
|
|
|
lin
|
|
presPosPhrase fact = mkUtt (mkS fact) ;
|
|
presNegPhrase fact = mkUtt (mkS negativePol fact) ;
|
|
pastPosPhrase fact = mkUtt (mkS anteriorAnt fact) ;
|
|
pastNegPhrase fact = mkUtt (mkS anteriorAnt negativePol fact) ;
|
|
presQuestionPhrase fact = let p : Utt = mkUtt (mkQS (mkQCl fact)) in p ** {s = p.s ++ SOFT_BIND ++ "?"} ;
|
|
pastQuestionPhrase fact = let p : Utt = mkUtt (mkQS anteriorAnt (mkQCl fact)) in p ** {s = p.s ++ SOFT_BIND ++ "?"} ;
|
|
|
|
|
|
impPosPhrase action = mkUtt (mkImp action) ;
|
|
impNegPhrase action = mkUtt negativePol (mkImp action) ;
|
|
|
|
actionFact person action = mkCl person action ;
|
|
propertyFact person property = mkCl person property ;
|
|
|
|
isProfessionProperty profession = mkVP (mkNP a_Det profession) ;
|
|
needProfessionProperty profession = mkVP need_V2 (mkNP a_Det profession) ;
|
|
isAtPlaceProperty place = mkVP place.at ;
|
|
haveIllnessProperty illness = mkVP have_V2 illness ;
|
|
|
|
theProfessionPerson profession = mkNP the_Det profession ;
|
|
|
|
iMascPerson = i_NP ;
|
|
iFemPerson = i_NP ;
|
|
youMascPerson = youPol_NP ;
|
|
youFemPerson = youPol_NP ;
|
|
hePerson = he_NP ;
|
|
shePerson = she_NP ;
|
|
|
|
goToAction place = mkVP (mkVP go_V) place.to ;
|
|
stayAtAction place = mkVP (mkVP stay_V) place.at ;
|
|
vaccinateAction person = mkVP vaccinate_V2 person ;
|
|
examineAction person = mkVP examine_V2 person ;
|
|
takeSubstanceAction substance = mkVP take_V2 substance ;
|
|
|
|
-- end of what could be a functor
|
|
--------------------------------
|
|
|
|
coughAction = mkVP (mkV "tousser") ;
|
|
breatheAction = mkVP (mkV "respirer") ;
|
|
vomitAction = mkVP (mkV "vomir") ;
|
|
sleepAction = mkVP (mkV "dormir" "dors" "dormons" "dorment" "dormit" "dormira" "dormi") ;
|
|
undressAction = mkVP (reflV (mkV "déshabiller")) ;
|
|
dressAction = mkVP (reflV (mkV "habiller")) ;
|
|
eatAction = mkVP (mkV "manger") ;
|
|
drinkAction = mkVP (mkV "boire" "bois" "buvons" "boivent" "but" "boira" "bu") ;
|
|
smokeAction = mkVP (mkV "fumer") ;
|
|
measureTemperatureAction = mkVP (mkV2 (mkV "mesurer")) (mkNP the_Det (mkN "temperatur du corps" feminine)) ;
|
|
measureBloodPressureAction = mkVP (mkV2 (mkV "mesurer")) (mkNP the_Det (mkN "tension artérielle")) ;
|
|
|
|
--these are identical for 'at' and 'to' in French
|
|
hospitalPlace = {at = pAdv "à l'hôpital" ; to = pAdv "à l'hôpital"} ;
|
|
homePlace = {at = pAdv "à la maison" ; to = pAdv "à la maison"} ;
|
|
schoolPlace = {at = pAdv "à l'école" ; to = pAdv "à l'école"} ;
|
|
workPlace = {at = pAdv "au travail" ; to = pAdv "au travail"} ;
|
|
|
|
doctorProfession = mkCN (mkN "médecin") ;
|
|
nurseProfession = mkCN ((mkN "infirmière") | (mkN "infermier")) ;
|
|
interpreterProfession = mkCN (mkN "interprète") ;
|
|
|
|
bePregnantProperty = mkVP (mkA "enceinte") ;
|
|
beIllProperty = mkVP (mkA "malade") ;
|
|
beWellProperty = mkVP (mkA "bien" "bien" "bien" "bien") ;
|
|
beDeadProperty = mkVP (mkA "mort") ;
|
|
haveAllergiesProperty = mkVP have_V2 (mkNP aPl_Det (mkN "allergie")) ;
|
|
havePainsProperty = mkVP have_V2 (mkNP aPl_Det (mkN "douleur")) ;
|
|
haveChildrenProperty = mkVP have_V2 (mkNP aPl_Det (mkN "enfant")) ;
|
|
|
|
feverIllness = mkNP (mkN "fièvre") ;
|
|
fluIllness = mkNP a_Det (mkN "grippe") ;
|
|
headacheIllness = mkNP a_Det (mkN "mal de crâne") ;
|
|
diarrheaIllness = mkNP (mkN "diarrhée") ;
|
|
heartDiseaseIllness = mkNP a_Det (mkN "cardiopathie") ;
|
|
lungDiseaseIllness = mkNP a_Det (mkN "maladie pulmonaire") ;
|
|
hypertensionIllness = mkNP (mkN "hypertension") ;
|
|
|
|
alcoholSubstance = mkNP (mkN "alcool") ;
|
|
medicineSubstance = mkNP a_Det (mkN "médicament") ;
|
|
drugsSubstance = mkNP aPl_Det (mkN "drogue") ;
|
|
|
|
oper
|
|
pAdv : Str -> Adv = ParadigmsFre.mkAdv ;
|
|
|
|
go_V = etreV (mkV "aller" "vais" "allons" "vont" "alla" "ira" "allé") ;
|
|
stay_V = etreV (mkV "rester") ;
|
|
need_V2 = mkV2 (mkV (mkV have_V2) "besoin d'") ;
|
|
--need_V2 = mkV2 (mkV "nécessiter") ;
|
|
take_V2 = mkV2 (mkV "prendre" "prends" "prenons" "prennent" "prit" "prendra" "pris") ;
|
|
put_V2 = mkV2 (mkV "mettre" "mets" "mettons" "mettent" "mit" "mettra" "mis") ;
|
|
vaccinate_V2 = mkV2 (mkV "vacciner") ;
|
|
examine_V2 = mkV2 (mkV "examiner") ;
|
|
|
|
}
|