diff options
| author | aarne <aarne@chalmers.se> | 2010-04-05 16:36:38 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2010-04-05 16:36:38 +0000 |
| commit | 2ced613d81b1fb93e3e60c974eee73a8872d7093 (patch) | |
| tree | 1cf145a675fc1e69210b41810cf50688493236a1 /examples/phrasebook/SentencesI.gf | |
| parent | c87fe6f0f6e95b5e9c1eddc7b83de4ce36b6958e (diff) | |
generalized and extended Phrasebook in many ways
Diffstat (limited to 'examples/phrasebook/SentencesI.gf')
| -rw-r--r-- | examples/phrasebook/SentencesI.gf | 67 |
1 files changed, 50 insertions, 17 deletions
diff --git a/examples/phrasebook/SentencesI.gf b/examples/phrasebook/SentencesI.gf index f830e6366..31e3a6885 100644 --- a/examples/phrasebook/SentencesI.gf +++ b/examples/phrasebook/SentencesI.gf @@ -2,24 +2,33 @@ incomplete concrete SentencesI of Sentences = Numeral ** open DiffPhrasebook, Syntax, + Lexicon, + Symbolic, -- for names as strings Prelude in { lincat Phrase = Text ; Sentence = S ; Question = QS ; + Proposition = Cl ; Item = NP ; Kind = CN ; Quality = AP ; Property = A ; Object = NP ; - Place = NP ; - PlaceKind = CN ; + Place = {name : NP ; at : Adv ; to : Adv} ; + PlaceKind = {name : CN ; at : Prep ; to : Prep} ; Currency = CN ; Price = NP ; Action = Cl ; - Person = NP ; + Person = {name : NP ; isPron : Bool ; poss : Det} ; + Nationality = {lang : NP ; prop : A ; country : NP} ; Language = NP ; + Citizenship = A ; + Country = NP ; + Day = {name : NP ; point : Adv ; habitual : Adv} ; + Date = Adv ; + Name = NP ; lin PSentence s = mkText s | lin Text (mkUtt s) ; -- optional '.' PQuestion s = mkText s | lin Text (mkUtt s) ; -- optional '?' @@ -28,23 +37,27 @@ incomplete concrete SentencesI of Sentences = Numeral ** PKind x = mkPhrase (mkUtt x) ; PQuality x = mkPhrase (mkUtt x) ; PNumeral x = mkPhrase (mkUtt (mkCard (x ** {lock_Numeral = <>}))) ; - PPlace x = mkPhrase (mkUtt x) ; - PPlaceKind x = mkPhrase (mkUtt x) ; + PPlace x = mkPhrase (mkUtt x.name) ; + PPlaceKind x = mkPhrase (mkUtt x.name) ; PCurrency x = mkPhrase (mkUtt x) ; PPrice x = mkPhrase (mkUtt x) ; PLanguage x = mkPhrase (mkUtt x) ; + PCountry x = mkPhrase (mkUtt x) ; + PCitizenship x = mkPhrase (mkUtt (mkAP x)) ; + PDay d = mkPhrase (mkUtt d.name) ; + + Is = mkCl ; - Is item quality = mkS (mkCl item quality) ; - IsNot item quality = mkS negativePol (mkCl item quality) ; - WhetherIs item quality = mkQS (mkQCl (mkCl item quality)) ; - WhereIs place = mkQS (mkQCl where_IAdv place) ; + SProp = mkS ; + SPropNot = mkS negativePol ; + QProp p = mkQS (mkQCl p) ; - SAction = mkS ; - SNotAction = mkS negativePol ; - QAction a = mkQS (mkQCl a) ; + WhereIs place = mkQS (mkQCl where_IAdv place.name) ; + + PropAction a = a ; HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item cost_V)) ; - ItCost item price = mkS (mkCl item cost_V2 price) ; + ItCost item price = mkCl item cost_V2 price ; AmountCurrency num curr = mkNP <lin Numeral num : Numeral> curr ; @@ -63,14 +76,34 @@ incomplete concrete SentencesI of Sentences = Numeral ** Very property = mkAP very_AdA (mkAP property) ; Too property = mkAP too_AdA (mkAP property) ; PropQuality property = mkAP property ; - ThePlace kind = mkNP the_Quant kind ; + ThePlace kind = + let name : NP = mkNP the_Quant kind.name in { + name = name ; + at = mkAdv kind.at name ; + to = mkAdv kind.to name + } ; + + IMale, IFemale = mkPerson i_Pron ; + YouFamMale, YouFamFemale = mkPerson youSg_Pron ; + YouPolMale, YouPolFemale = mkPerson youPol_Pron ; + + LangNat n = n.lang ; + CitiNat n = n.prop ; + CountryNat n = n.country ; + PropCit c = c ; + + OnDay d = d.point ; + Today = today_Adv ; - I = mkNP i_Pron ; - YouFam = mkNP youSg_Pron ; - YouPol = mkNP youPol_Pron ; + PersonName n = + {name = n ; isPron = False ; poss = mkDet he_Pron} ; -- poss not used +---- NameString s = symb s ; + NameNN = symb "NN" ; oper mkPhrase : Utt -> Text = \u -> lin Text u ; -- no punctuation + mkPerson : Pron -> {name : NP ; isPron : Bool ; poss : Det} = \p -> + {name = mkNP p ; isPron = True ; poss = mkDet p} ; } |
