diff options
| author | aarne <unknown> | 2003-11-19 17:33:06 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2003-11-19 17:33:06 +0000 |
| commit | 1ca5e5398abd42fe71d4fe541e84318df0351e20 (patch) | |
| tree | 5fe4564ed8270aaedc30f0ca070ae5195f4b9efa /grammars/database | |
| parent | 18dfde370ec276835c99a3bac9754d5562d6ff7b (diff) | |
Extending resource.
Diffstat (limited to 'grammars/database')
| -rw-r--r-- | grammars/database/Database.gf | 33 | ||||
| -rw-r--r-- | grammars/database/DatabaseEng.gf | 43 | ||||
| -rw-r--r-- | grammars/database/DatabaseEngRes.gf | 11 | ||||
| -rw-r--r-- | grammars/database/Restaurant.gf | 16 | ||||
| -rw-r--r-- | grammars/database/RestaurantEng.gf | 30 |
5 files changed, 133 insertions, 0 deletions
diff --git a/grammars/database/Database.gf b/grammars/database/Database.gf new file mode 100644 index 000000000..eb0c08d9f --- /dev/null +++ b/grammars/database/Database.gf @@ -0,0 +1,33 @@ +abstract Database = { + +flags startcat=Query ; + +cat + Query ; + Category ; Subject ; Value ; Property ; Relation ; Comparison ; Name ; + Feature ; + +fun + WhichAre : Category -> Property -> Query ; + IsThere : Category -> Query ; + AreThere : Category -> Query ; + IsIt : Subject -> Property -> Query ; + WhatIs : Value -> Query ; + + MoreThan : Comparison -> Subject -> Property ; + TheMost : Comparison -> Category -> Value ; + Relatively : Comparison -> Category -> Property ; + + RelatedTo : Relation -> Subject -> Property ; + + Individual : Name -> Subject ; + AllN : Category -> Subject ; + Any : Category -> Subject ; + MostN : Category -> Subject ; + EveryN : Category -> Subject ; + + FeatureOf : Feature -> Subject -> Subject ; + ValueOf : Feature -> Name -> Value ; + + WithProperty : Category -> Property -> Category ; +} ; diff --git a/grammars/database/DatabaseEng.gf b/grammars/database/DatabaseEng.gf new file mode 100644 index 000000000..9abc21879 --- /dev/null +++ b/grammars/database/DatabaseEng.gf @@ -0,0 +1,43 @@ +--# -path=.:../resource/nabstract:../resource/nenglish:../prelude + +concrete DatabaseEng of Database = open Prelude, ResEng in { + +flags lexer=text ; unlexer=text ; + +lincat + Query = Phr ; + Subject = NP ; + Category = CN ; + Property = AP ; + Comparison = AdjDeg ; + Relation = Adj2 ; + Feature = Fun ; + Value = NP ; + Name = PN ; + +lin + WhichAre A B = QuestPhrase (IntVP (NounIPMany A) (PosA B)) ; + IsThere A = QuestPhrase (IsThereCN A) ; + AreThere A = QuestPhrase (AreThereCN A) ; + WhatIs val = QuestPhrase (IntVP WhatOne (PosNP val)) ; + IsIt Q A = QuestPhrase (QuestVP Q (PosA A)) ; + + MoreThan = ComparAdjP ; + TheMost = SuperlNP ; + Relatively C _ = PositAdjP C ; + + RelatedTo = ComplAdj ; + + FeatureOf f x = DefOneNP (AppFun f x) ; + ValueOf f x = DefOneNP (AppFun f (UsePN x)) ; + + WithProperty A B = ModAdj B A ; + + Individual = UsePN ; + + AllN = DetNP AllDet ; + MostN = DetNP MostDet ; + EveryN = DetNP EveryDet ; + Any = DetNP AnysDet ; + +} ; diff --git a/grammars/database/DatabaseEngRes.gf b/grammars/database/DatabaseEngRes.gf new file mode 100644 index 000000000..e00501a47 --- /dev/null +++ b/grammars/database/DatabaseEngRes.gf @@ -0,0 +1,11 @@ +resource DatabaseEngRes = open Prelude in { +oper + mkSent : SS -> SS -> SS1 Bool = \long, short -> + {s = table {b => if_then_else Str b long.s short.s}} ; + + mkSentPrel : Str -> SS -> SS1 Bool = \prel, matter -> + mkSent (ss (prel ++ matter.s)) matter ; + + mkSentSame : SS -> SS1 Bool = \s -> + mkSent s s ; +} ; diff --git a/grammars/database/Restaurant.gf b/grammars/database/Restaurant.gf new file mode 100644 index 000000000..16ebcf53b --- /dev/null +++ b/grammars/database/Restaurant.gf @@ -0,0 +1,16 @@ +abstract Restaurant = Database ** { + +fun + Restaurant, Bar : Category ; + French, Italian, Indian, Japanese : Property ; + address, phone, priceLevel : Feature ; + Cheap, Expensive : Comparison ; + + WhoRecommend : Name -> Query ; + WhoHellRecommend : Name -> Query ; + +-- examples of restaurant names + LucasCarton : Name ; + LaCoupole : Name ; + BurgerKing : Name ; +} ; diff --git a/grammars/database/RestaurantEng.gf b/grammars/database/RestaurantEng.gf new file mode 100644 index 000000000..04e89a5b6 --- /dev/null +++ b/grammars/database/RestaurantEng.gf @@ -0,0 +1,30 @@ +--# -path=.:../resource/nabstract:../resource/nenglish:../prelude + +concrete RestaurantEng of Restaurant = + DatabaseEng ** open Prelude,ParadigmsEng in { + +lin + Restaurant = cnNonhuman "restaurant" ; + Bar = cnNonhuman "bar" ; + French = apReg "French" ; + Italian = apReg "Italian" ; + Indian = apReg "Indian" ; + Japanese = apReg "Japanese" ; + + address = funNonhuman "address" ; + phone = funNonhuman ["number"] ; --- phone + priceLevel = funNonhuman ["level"] ; --- price + + Cheap = aReg "cheap" ; + Expensive = aRidiculous "expensive" ; + + WhoRecommend rest = + ss (["who recommended"] ++ rest.s ! nominative) ** {lock_Phr = <>} ; + WhoHellRecommend rest = + ss (["who the hell recommended"] ++ rest.s ! nominative) ** {lock_Phr = <>} ; + + LucasCarton = pnReg ["Lucas Carton"] ; + LaCoupole = pnReg ["La Coupole"] ; + BurgerKing = pnReg ["Burger King"] ; + +} ; |
