From 5b905390b625fff8b7537745b113a8c16bde516b Mon Sep 17 00:00:00 2001 From: Arianna Masciolini Date: Tue, 25 Mar 2025 12:11:40 +0100 Subject: [PATCH] WIP lab 1 --- .../grammar => grammar}/abstract/MicroLang.gf | 0 .../abstract/MicroLang.labels | 0 .../abstract/MiniGrammar.gf | 0 .../grammar => grammar}/abstract/MiniLang.gf | 0 .../abstract/MiniLang.labels | 0 .../abstract/MiniLexicon.gf | 0 {lab1/grammar => grammar}/api/MiniSyntax.gf | 0 .../grammar => grammar}/api/MiniSyntaxEng.gf | 0 .../english/MicroLangEng.gf | 0 .../english/MicroLangEng.labels | 0 .../english/MicroResEng.gf | 0 .../english/MiniGrammarEng.gf | 0 .../english/MiniLangEng.gf | 0 .../english/MiniLangEng.labels | 0 .../english/MiniLexiconEng.gf | 0 .../english/MiniParadigmsEng.gf | 0 .../grammar => grammar}/english/MiniResEng.gf | 0 {lab1/grammar => grammar}/foods/Foods.gf | 0 .../functor/MicroLangFunctor.gf | 0 .../functor/MicroLangFunctorEng.gf | 0 .../functor/MicroLangFunctorSwe.gf | 0 .../functor/MiniLangFunctor.gf | 0 .../functor/MiniLangFunctorEng.gf | 0 .../functor/MiniLangFunctorSwe.gf | 0 .../grammar => grammar}/intro/MicroLangEng.gf | 0 .../grammar => grammar}/intro/MicroResEng.gf | 0 .../italian/MicroLangIta.gf | 0 .../italian/MicroLangIta.gfo | Bin .../italian/MicroResIta.gf | 0 .../italian/MicroResIta.gfo | Bin .../myproject/MicroLangEng.gf | 0 .../myproject/MicroLangEng.gfo | Bin .../myproject/MicroLangSwe.gf | 0 .../myproject/MicroLangSwe.gfo | Bin .../myproject/MicroResEng.gf | 0 .../myproject/MicroResEng.gfo | Bin .../myproject/MicroResSwe.gf | 0 .../myproject/MicroResSwe.gfo | Bin {lab1/grammar => grammar}/test.gfs | 0 lab1/README.md | 16 +-- lab1/grammar/application-2022/Doctor.gf | 92 -------------- lab1/grammar/application-2022/DoctorEng.gf | 110 ---------------- .../grammar/application-2022/DoctorMiniEng.gf | 117 ------------------ 43 files changed, 5 insertions(+), 330 deletions(-) rename {lab1/grammar => grammar}/abstract/MicroLang.gf (100%) rename {lab1/grammar => grammar}/abstract/MicroLang.labels (100%) rename {lab1/grammar => grammar}/abstract/MiniGrammar.gf (100%) rename {lab1/grammar => grammar}/abstract/MiniLang.gf (100%) rename {lab1/grammar => grammar}/abstract/MiniLang.labels (100%) rename {lab1/grammar => grammar}/abstract/MiniLexicon.gf (100%) rename {lab1/grammar => grammar}/api/MiniSyntax.gf (100%) rename {lab1/grammar => grammar}/api/MiniSyntaxEng.gf (100%) rename {lab1/grammar => grammar}/english/MicroLangEng.gf (100%) rename {lab1/grammar => grammar}/english/MicroLangEng.labels (100%) rename {lab1/grammar => grammar}/english/MicroResEng.gf (100%) rename {lab1/grammar => grammar}/english/MiniGrammarEng.gf (100%) rename {lab1/grammar => grammar}/english/MiniLangEng.gf (100%) rename {lab1/grammar => grammar}/english/MiniLangEng.labels (100%) rename {lab1/grammar => grammar}/english/MiniLexiconEng.gf (100%) rename {lab1/grammar => grammar}/english/MiniParadigmsEng.gf (100%) rename {lab1/grammar => grammar}/english/MiniResEng.gf (100%) rename {lab1/grammar => grammar}/foods/Foods.gf (100%) rename {lab1/grammar => grammar}/functor/MicroLangFunctor.gf (100%) rename {lab1/grammar => grammar}/functor/MicroLangFunctorEng.gf (100%) rename {lab1/grammar => grammar}/functor/MicroLangFunctorSwe.gf (100%) rename {lab1/grammar => grammar}/functor/MiniLangFunctor.gf (100%) rename {lab1/grammar => grammar}/functor/MiniLangFunctorEng.gf (100%) rename {lab1/grammar => grammar}/functor/MiniLangFunctorSwe.gf (100%) rename {lab1/grammar => grammar}/intro/MicroLangEng.gf (100%) rename {lab1/grammar => grammar}/intro/MicroResEng.gf (100%) rename {lab1/grammar => grammar}/italian/MicroLangIta.gf (100%) rename {lab1/grammar => grammar}/italian/MicroLangIta.gfo (100%) rename {lab1/grammar => grammar}/italian/MicroResIta.gf (100%) rename {lab1/grammar => grammar}/italian/MicroResIta.gfo (100%) rename {lab1/grammar => grammar}/myproject/MicroLangEng.gf (100%) rename {lab1/grammar => grammar}/myproject/MicroLangEng.gfo (100%) rename {lab1/grammar => grammar}/myproject/MicroLangSwe.gf (100%) rename {lab1/grammar => grammar}/myproject/MicroLangSwe.gfo (100%) rename {lab1/grammar => grammar}/myproject/MicroResEng.gf (100%) rename {lab1/grammar => grammar}/myproject/MicroResEng.gfo (100%) rename {lab1/grammar => grammar}/myproject/MicroResSwe.gf (100%) rename {lab1/grammar => grammar}/myproject/MicroResSwe.gfo (100%) rename {lab1/grammar => grammar}/test.gfs (100%) delete mode 100644 lab1/grammar/application-2022/Doctor.gf delete mode 100644 lab1/grammar/application-2022/DoctorEng.gf delete mode 100644 lab1/grammar/application-2022/DoctorMiniEng.gf diff --git a/lab1/grammar/abstract/MicroLang.gf b/grammar/abstract/MicroLang.gf similarity index 100% rename from lab1/grammar/abstract/MicroLang.gf rename to grammar/abstract/MicroLang.gf diff --git a/lab1/grammar/abstract/MicroLang.labels b/grammar/abstract/MicroLang.labels similarity index 100% rename from lab1/grammar/abstract/MicroLang.labels rename to grammar/abstract/MicroLang.labels diff --git a/lab1/grammar/abstract/MiniGrammar.gf b/grammar/abstract/MiniGrammar.gf similarity index 100% rename from lab1/grammar/abstract/MiniGrammar.gf rename to grammar/abstract/MiniGrammar.gf diff --git a/lab1/grammar/abstract/MiniLang.gf b/grammar/abstract/MiniLang.gf similarity index 100% rename from lab1/grammar/abstract/MiniLang.gf rename to grammar/abstract/MiniLang.gf diff --git a/lab1/grammar/abstract/MiniLang.labels b/grammar/abstract/MiniLang.labels similarity index 100% rename from lab1/grammar/abstract/MiniLang.labels rename to grammar/abstract/MiniLang.labels diff --git a/lab1/grammar/abstract/MiniLexicon.gf b/grammar/abstract/MiniLexicon.gf similarity index 100% rename from lab1/grammar/abstract/MiniLexicon.gf rename to grammar/abstract/MiniLexicon.gf diff --git a/lab1/grammar/api/MiniSyntax.gf b/grammar/api/MiniSyntax.gf similarity index 100% rename from lab1/grammar/api/MiniSyntax.gf rename to grammar/api/MiniSyntax.gf diff --git a/lab1/grammar/api/MiniSyntaxEng.gf b/grammar/api/MiniSyntaxEng.gf similarity index 100% rename from lab1/grammar/api/MiniSyntaxEng.gf rename to grammar/api/MiniSyntaxEng.gf diff --git a/lab1/grammar/english/MicroLangEng.gf b/grammar/english/MicroLangEng.gf similarity index 100% rename from lab1/grammar/english/MicroLangEng.gf rename to grammar/english/MicroLangEng.gf diff --git a/lab1/grammar/english/MicroLangEng.labels b/grammar/english/MicroLangEng.labels similarity index 100% rename from lab1/grammar/english/MicroLangEng.labels rename to grammar/english/MicroLangEng.labels diff --git a/lab1/grammar/english/MicroResEng.gf b/grammar/english/MicroResEng.gf similarity index 100% rename from lab1/grammar/english/MicroResEng.gf rename to grammar/english/MicroResEng.gf diff --git a/lab1/grammar/english/MiniGrammarEng.gf b/grammar/english/MiniGrammarEng.gf similarity index 100% rename from lab1/grammar/english/MiniGrammarEng.gf rename to grammar/english/MiniGrammarEng.gf diff --git a/lab1/grammar/english/MiniLangEng.gf b/grammar/english/MiniLangEng.gf similarity index 100% rename from lab1/grammar/english/MiniLangEng.gf rename to grammar/english/MiniLangEng.gf diff --git a/lab1/grammar/english/MiniLangEng.labels b/grammar/english/MiniLangEng.labels similarity index 100% rename from lab1/grammar/english/MiniLangEng.labels rename to grammar/english/MiniLangEng.labels diff --git a/lab1/grammar/english/MiniLexiconEng.gf b/grammar/english/MiniLexiconEng.gf similarity index 100% rename from lab1/grammar/english/MiniLexiconEng.gf rename to grammar/english/MiniLexiconEng.gf diff --git a/lab1/grammar/english/MiniParadigmsEng.gf b/grammar/english/MiniParadigmsEng.gf similarity index 100% rename from lab1/grammar/english/MiniParadigmsEng.gf rename to grammar/english/MiniParadigmsEng.gf diff --git a/lab1/grammar/english/MiniResEng.gf b/grammar/english/MiniResEng.gf similarity index 100% rename from lab1/grammar/english/MiniResEng.gf rename to grammar/english/MiniResEng.gf diff --git a/lab1/grammar/foods/Foods.gf b/grammar/foods/Foods.gf similarity index 100% rename from lab1/grammar/foods/Foods.gf rename to grammar/foods/Foods.gf diff --git a/lab1/grammar/functor/MicroLangFunctor.gf b/grammar/functor/MicroLangFunctor.gf similarity index 100% rename from lab1/grammar/functor/MicroLangFunctor.gf rename to grammar/functor/MicroLangFunctor.gf diff --git a/lab1/grammar/functor/MicroLangFunctorEng.gf b/grammar/functor/MicroLangFunctorEng.gf similarity index 100% rename from lab1/grammar/functor/MicroLangFunctorEng.gf rename to grammar/functor/MicroLangFunctorEng.gf diff --git a/lab1/grammar/functor/MicroLangFunctorSwe.gf b/grammar/functor/MicroLangFunctorSwe.gf similarity index 100% rename from lab1/grammar/functor/MicroLangFunctorSwe.gf rename to grammar/functor/MicroLangFunctorSwe.gf diff --git a/lab1/grammar/functor/MiniLangFunctor.gf b/grammar/functor/MiniLangFunctor.gf similarity index 100% rename from lab1/grammar/functor/MiniLangFunctor.gf rename to grammar/functor/MiniLangFunctor.gf diff --git a/lab1/grammar/functor/MiniLangFunctorEng.gf b/grammar/functor/MiniLangFunctorEng.gf similarity index 100% rename from lab1/grammar/functor/MiniLangFunctorEng.gf rename to grammar/functor/MiniLangFunctorEng.gf diff --git a/lab1/grammar/functor/MiniLangFunctorSwe.gf b/grammar/functor/MiniLangFunctorSwe.gf similarity index 100% rename from lab1/grammar/functor/MiniLangFunctorSwe.gf rename to grammar/functor/MiniLangFunctorSwe.gf diff --git a/lab1/grammar/intro/MicroLangEng.gf b/grammar/intro/MicroLangEng.gf similarity index 100% rename from lab1/grammar/intro/MicroLangEng.gf rename to grammar/intro/MicroLangEng.gf diff --git a/lab1/grammar/intro/MicroResEng.gf b/grammar/intro/MicroResEng.gf similarity index 100% rename from lab1/grammar/intro/MicroResEng.gf rename to grammar/intro/MicroResEng.gf diff --git a/lab1/grammar/italian/MicroLangIta.gf b/grammar/italian/MicroLangIta.gf similarity index 100% rename from lab1/grammar/italian/MicroLangIta.gf rename to grammar/italian/MicroLangIta.gf diff --git a/lab1/grammar/italian/MicroLangIta.gfo b/grammar/italian/MicroLangIta.gfo similarity index 100% rename from lab1/grammar/italian/MicroLangIta.gfo rename to grammar/italian/MicroLangIta.gfo diff --git a/lab1/grammar/italian/MicroResIta.gf b/grammar/italian/MicroResIta.gf similarity index 100% rename from lab1/grammar/italian/MicroResIta.gf rename to grammar/italian/MicroResIta.gf diff --git a/lab1/grammar/italian/MicroResIta.gfo b/grammar/italian/MicroResIta.gfo similarity index 100% rename from lab1/grammar/italian/MicroResIta.gfo rename to grammar/italian/MicroResIta.gfo diff --git a/lab1/grammar/myproject/MicroLangEng.gf b/grammar/myproject/MicroLangEng.gf similarity index 100% rename from lab1/grammar/myproject/MicroLangEng.gf rename to grammar/myproject/MicroLangEng.gf diff --git a/lab1/grammar/myproject/MicroLangEng.gfo b/grammar/myproject/MicroLangEng.gfo similarity index 100% rename from lab1/grammar/myproject/MicroLangEng.gfo rename to grammar/myproject/MicroLangEng.gfo diff --git a/lab1/grammar/myproject/MicroLangSwe.gf b/grammar/myproject/MicroLangSwe.gf similarity index 100% rename from lab1/grammar/myproject/MicroLangSwe.gf rename to grammar/myproject/MicroLangSwe.gf diff --git a/lab1/grammar/myproject/MicroLangSwe.gfo b/grammar/myproject/MicroLangSwe.gfo similarity index 100% rename from lab1/grammar/myproject/MicroLangSwe.gfo rename to grammar/myproject/MicroLangSwe.gfo diff --git a/lab1/grammar/myproject/MicroResEng.gf b/grammar/myproject/MicroResEng.gf similarity index 100% rename from lab1/grammar/myproject/MicroResEng.gf rename to grammar/myproject/MicroResEng.gf diff --git a/lab1/grammar/myproject/MicroResEng.gfo b/grammar/myproject/MicroResEng.gfo similarity index 100% rename from lab1/grammar/myproject/MicroResEng.gfo rename to grammar/myproject/MicroResEng.gfo diff --git a/lab1/grammar/myproject/MicroResSwe.gf b/grammar/myproject/MicroResSwe.gf similarity index 100% rename from lab1/grammar/myproject/MicroResSwe.gf rename to grammar/myproject/MicroResSwe.gf diff --git a/lab1/grammar/myproject/MicroResSwe.gfo b/grammar/myproject/MicroResSwe.gfo similarity index 100% rename from lab1/grammar/myproject/MicroResSwe.gfo rename to grammar/myproject/MicroResSwe.gfo diff --git a/lab1/grammar/test.gfs b/grammar/test.gfs similarity index 100% rename from lab1/grammar/test.gfs rename to grammar/test.gfs diff --git a/lab1/README.md b/lab1/README.md index 54136de..c0a7bbd 100644 --- a/lab1/README.md +++ b/lab1/README.md @@ -1,24 +1,18 @@ -# Lab 2: Multilingual generation and translation +# Lab 1: Multilingual generation and translation -This lab corresponds to Chapters 5 to 9 of the Notes, but follows them only loosely. -Therefore we will structure it according to the exercise sessions -rather than chapters. +In this lab, you will implement the concrete syntax of a grammar for a language of your choice. +The abstract syntax is given in the directory [`../grammar/abstract/`](../grammar/abstract/) and an example concrete syntax for English can be found in [`../grammar/english/`](../grammar/english/). -The abstract syntax is given in the subdirectory grammars/abstract/ +## Part 1: design the morphological types of the major parts of speech in your selected language 1. Go to [universaldependencies.org](https://universaldependencies.org/) and download Version 2.7+ treebanks 2. Look up the Parallel UD treebanks for those 21 languages that have it. They are named e.g. `UD_English-PUD/` 3. Select a language to compare with English. 4. Make statistics about the frequencies of POS tags and dependency labels in your language compared with English: find the top-20 tags/labels and their number of occurrences. What does this tell you about the language? (This can be done with shell or Python programming or, more easily, with the [deptreepy](https://github.com/aarneranta/deptreepy/) or [gf-ud](https://github.com/grammaticalFramework/gf-ud) tools. The latter is also available on the eduserv server.) -1. Draw word alignments for some non-trivial example in the PUD treebank, on paper. - Use the same trees as in the previous question. - What can you say about the syntactic differences between the languages? - - ## Chapter 2: design the morpological types of the major parts of speech in your selected language - 1. It is enough to cover NOUN, ADJ, and VERB. 2. Use a traditional grammar book or a Wikipedia article to identify the inflectional and inherent features. 3. Then use data from PUD to check which morphological features actually occur in the treebank for that language. + ## After lecture 6 1. Design a morphology for the main lexical types (N, A, V) with parameters and a couple of paradigms. diff --git a/lab1/grammar/application-2022/Doctor.gf b/lab1/grammar/application-2022/Doctor.gf deleted file mode 100644 index 15d33a1..0000000 --- a/lab1/grammar/application-2022/Doctor.gf +++ /dev/null @@ -1,92 +0,0 @@ -abstract Doctor = { - -flags startcat = Phrase ; - -cat - Phrase ; -- has she slept? - Fact ; -- she sleeps - Action ; -- sleep - Property ; -- be a doctor - Profession ; -- doctor - Person ; -- she - Place ; -- the hospital - Substance ; -- drugs - Illness ; -- fever - -fun - presPosPhrase : Fact -> Phrase ; -- she sleeps - presNegPhrase : Fact -> Phrase ; -- she doesn't sleep - pastPosPhrase : Fact -> Phrase ; -- she has slept - pastNegPhrase : Fact -> Phrase ; -- she has not slept - presQuestionPhrase : Fact -> Phrase ; -- does she sleep - pastQuestionPhrase : Fact -> Phrase ; -- has she slept - - impPosPhrase : Action -> Phrase ; -- eat - impNegPhrase : Action -> Phrase ; -- don't eat - - actionFact : Person -> Action -> Fact ; -- she vaccinates you - propertyFact : Person -> Property -> Fact ; -- she is a doctor - - isProfessionProperty : Profession -> Property ; -- be a doctor - isAtPlaceProperty : Place -> Property ; -- be at the hospital - haveIllnessProperty : Illness -> Property ; -- have a fever - needProfessionProperty : Profession -> Property ; -- need a doctor - - theProfessionPerson : Profession -> Person ; -- the doctor - - iMascPerson : Person ; - iFemPerson : Person ; - youMascPerson : Person ; - youFemPerson : Person ; - hePerson : Person ; - shePerson : Person ; - - goToAction : Place -> Action ; -- go to the hospital - stayAtAction : Place -> Action ; -- stay at home - vaccinateAction : Person -> Action ; -- vaccinate you - examineAction : Person -> Action ; -- examine you - takeSubstanceAction : Substance -> Action ; -- take drugs - - coughAction : Action ; - breatheAction : Action ; - vomitAction : Action ; - sleepAction : Action ; - undressAction : Action ; - dressAction : Action ; - eatAction : Action ; - drinkAction : Action ; - smokeAction : Action ; - measureTemperatureAction : Action ; - measureBloodPressureAction : Action ; - - hospitalPlace : Place ; - homePlace : Place ; - schoolPlace : Place ; - workPlace : Place ; - - doctorProfession : Profession ; - nurseProfession : Profession ; - interpreterProfession : Profession ; - - bePregnantProperty : Property ; - beIllProperty : Property ; - beWellProperty : Property ; - beDeadProperty : Property ; - haveAllergiesProperty : Property ; - havePainsProperty : Property ; - haveChildrenProperty : Property ; - - feverIllness : Illness ; - fluIllness : Illness ; - headacheIllness : Illness ; - diarrheaIllness : Illness ; - heartDiseaseIllness : Illness ; - lungDiseaseIllness : Illness ; - hypertensionIllness : Illness ; - - alcoholSubstance : Substance ; - medicineSubstance : Substance ; - drugsSubstance : Substance ; - - -} diff --git a/lab1/grammar/application-2022/DoctorEng.gf b/lab1/grammar/application-2022/DoctorEng.gf deleted file mode 100644 index a72e996..0000000 --- a/lab1/grammar/application-2022/DoctorEng.gf +++ /dev/null @@ -1,110 +0,0 @@ -concrete DoctorEng of Doctor = - open - SyntaxEng, - ParadigmsEng, - Prelude - in { - --- application using standard RGL - -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 = mkUtt (mkQS (mkQCl fact)) ; - pastQuestionPhrase fact = mkUtt (mkQS anteriorAnt (mkQCl fact)) ; - - 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 = you_NP ; - youFemPerson = you_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 "cough") ; - breatheAction = mkVP (mkV "breathe") ; - vomitAction = mkVP (mkV "vomit") ; - sleepAction = mkVP (mkV "sleep" "slept" "slept") ; - undressAction = mkVP (mkVP take_V2 (mkNP thePl_Det (mkN "clothe"))) (pAdv "off") ; - dressAction = mkVP (mkVP put_V2 (mkNP thePl_Det (mkN "clothe"))) (pAdv "on") ; - eatAction = mkVP (mkV "eat" "ate" "eaten") ; - drinkAction = mkVP (mkV "drink" "drank" "drunk") ; - smokeAction = mkVP (mkV "smoke") ; - measureTemperatureAction = mkVP (mkV2 (mkV "measure")) (mkNP the_Det (mkN "body temperature")) ; - measureBloodPressureAction = mkVP (mkV2 (mkV "measure")) (mkNP the_Det (mkN "blood pressure")) ; - - hospitalPlace = {at = pAdv "at the hospital" ; to = pAdv "to the hospital"} ; - homePlace = {at = pAdv "at home" ; to = pAdv "home"} ; - schoolPlace = {at = pAdv "at school" ; to = pAdv "to school"} ; - workPlace = {at = pAdv "at work" ; to = pAdv "to work"} ; - - doctorProfession = mkCN (mkN "doctor") ; - nurseProfession = mkCN (mkN "nurse") ; - interpreterProfession = mkCN (mkN "interpreter") ; - - bePregnantProperty = mkVP (mkA "pregnant") ; - beIllProperty = mkVP (mkA "ill") ; - beWellProperty = mkVP (mkA "well") ; - beDeadProperty = mkVP (mkA "dead") ; - haveAllergiesProperty = mkVP have_V2 (mkNP aPl_Det (mkN "allergy")) ; - havePainsProperty = mkVP have_V2 (mkNP aPl_Det (mkN "pain")) ; - haveChildrenProperty = mkVP have_V2 (mkNP aPl_Det (mkN "child" "children")) ; - - feverIllness = mkNP a_Det (mkN "fever") ; - fluIllness = mkNP a_Det (mkN "flu") ; - headacheIllness = mkNP a_Det (mkN "headache") ; - diarrheaIllness = mkNP a_Det (mkN "diarrhea") ; - heartDiseaseIllness = mkNP a_Det (mkN "heart disease") ; - lungDiseaseIllness = mkNP a_Det (mkN "lung disease") ; - hypertensionIllness = mkNP (mkN "hypertension") ; - - alcoholSubstance = mkNP (mkN "alcohol") ; - medicineSubstance = mkNP a_Det (mkN "drug") ; - drugsSubstance = mkNP aPl_Det (mkN "drug") ; - -oper - pAdv : Str -> Adv = ParadigmsEng.mkAdv ; - - go_V = mkV "go" "went" "gone" ; - stay_V = mkV "stay" ; - need_V2 = mkV2 (mkV "need") ; - take_V2 = mkV2 (mkV "take" "took" "taken") ; - put_V2 = mkV2 (mkV "put" "put" "put") ; - vaccinate_V2 = mkV2 (mkV "vaccinate") ; - examine_V2 = mkV2 (mkV "examine") ; - -} diff --git a/lab1/grammar/application-2022/DoctorMiniEng.gf b/lab1/grammar/application-2022/DoctorMiniEng.gf deleted file mode 100644 index 8358bb2..0000000 --- a/lab1/grammar/application-2022/DoctorMiniEng.gf +++ /dev/null @@ -1,117 +0,0 @@ ---# -path=.:../abstract:../english:../api - --- model implementation using Mini RGL - -concrete DoctorMiniEng of Doctor = - open - MiniSyntaxEng, - MiniParadigmsEng, - Prelude - 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 = mkUtt (mkQS (mkQCl fact)) ; - -- pastQuestionPhrase fact = mkUtt (mkQS anteriorAnt (mkQCl 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 = you_NP ; - youFemPerson = you_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 "cough") ; - breatheAction = mkVP (mkV "breathe") ; - vomitAction = mkVP (mkV "vomit") ; - sleepAction = mkVP (mkV "sleep" "slept" "slept") ; - undressAction = mkVP (mkVP take_V2 (mkNP thePl_Det (mkN "clothe"))) (pAdv "off") ; - dressAction = mkVP (mkVP put_V2 (mkNP thePl_Det (mkN "clothe"))) (pAdv "on") ; - eatAction = mkVP (mkV "eat" "ate" "eaten") ; - drinkAction = mkVP (mkV "drink" "drank" "drunk") ; - smokeAction = mkVP (mkV "smoke") ; - measureTemperatureAction = mkVP (mkV2 (mkV "measure")) (mkNP the_Det (mkN "body temperature")) ; - measureBloodPressureAction = mkVP (mkV2 (mkV "measure")) (mkNP the_Det (mkN "blood pressure")) ; - - hospitalPlace = {at = pAdv "at the hospital" ; to = pAdv "to the hospital"} ; - homePlace = {at = pAdv "at home" ; to = pAdv "home"} ; - schoolPlace = {at = pAdv "at school" ; to = pAdv "to school"} ; - workPlace = {at = pAdv "at work" ; to = pAdv "to work"} ; - - doctorProfession = mkCN (mkN "doctor") ; - nurseProfession = mkCN (mkN "nurse") ; - interpreterProfession = mkCN (mkN "interpreter") ; - - bePregnantProperty = mkVP (mkA "pregnant") ; - beIllProperty = mkVP (mkA "ill") ; - beWellProperty = mkVP (mkA "well") ; - beDeadProperty = mkVP (mkA "dead") ; - haveAllergiesProperty = mkVP have_V2 (mkNP aPl_Det (mkN "allergy")) ; - havePainsProperty = mkVP have_V2 (mkNP aPl_Det (mkN "pain")) ; - haveChildrenProperty = mkVP have_V2 (mkNP aPl_Det (mkN "child" "children")) ; - - feverIllness = mkNP a_Det (mkN "fever") ; - fluIllness = mkNP a_Det (mkN "flu") ; - headacheIllness = mkNP a_Det (mkN "headache") ; - diarrheaIllness = mkNP a_Det (mkN "diarrhea") ; - heartDiseaseIllness = mkNP a_Det (mkN "heart disease") ; - lungDiseaseIllness = mkNP a_Det (mkN "lung disease") ; - hypertensionIllness = mkNP (mkN "hypertension") ; - - alcoholSubstance = mkNP (mkN "alcohol") ; - medicineSubstance = mkNP a_Det (mkN "drug") ; - drugsSubstance = mkNP aPl_Det (mkN "drug") ; - -oper - pAdv : Str -> Adv = MiniParadigmsEng.mkAdv ; - - go_V = mkV "go" "went" "gone" ; - stay_V = mkV "stay" ; - need_V2 = mkV2 (mkV "need") ; - take_V2 = mkV2 (mkV "take" "took" "taken") ; - put_V2 = mkV2 (mkV "put" "put" "put") ; - vaccinate_V2 = mkV2 (mkV "vaccinate") ; - examine_V2 = mkV2 (mkV "examine") ; - -}