From a1e2767dbe912467ecb1dfe7d33bf173244b99b7 Mon Sep 17 00:00:00 2001 From: bringert Date: Thu, 20 Apr 2006 17:55:46 +0000 Subject: Reorganized the peacekeeping grammar. --- examples/peacekeeping/Peace.gf | 1 + examples/peacekeeping/PeaceCat.gf | 6 ++ examples/peacekeeping/PeaceCatI.gf | 6 ++ examples/peacekeeping/PeaceKeep.gf | 57 ----------- examples/peacekeeping/PeaceKeepI.gf | 87 ---------------- examples/peacekeeping/PeaceKeep_Eng.gf | 5 - examples/peacekeeping/PeaceLex.gf | 111 --------------------- examples/peacekeeping/PeaceLexCommon.gf | 85 ++++++++++++++++ examples/peacekeeping/PeaceLexCommonI.gf | 82 +++++++++++++++ examples/peacekeeping/PeaceLexExt.gf | 37 +++++++ examples/peacekeeping/PeaceLex_Eng.gf | 108 -------------------- examples/peacekeeping/PeaceSyntax.gf | 59 +++++++++++ examples/peacekeeping/PeaceSyntaxI.gf | 87 ++++++++++++++++ examples/peacekeeping/english/PeaceCat_Eng.gf | 3 + .../peacekeeping/english/PeaceLexCommon_Eng.gf | 5 + examples/peacekeeping/english/PeaceLexExt_Eng.gf | 37 +++++++ examples/peacekeeping/english/PeaceSyntax_Eng.gf | 5 + examples/peacekeeping/english/Peace_Eng.gf | 3 + 18 files changed, 416 insertions(+), 368 deletions(-) create mode 100644 examples/peacekeeping/Peace.gf create mode 100644 examples/peacekeeping/PeaceCat.gf create mode 100644 examples/peacekeeping/PeaceCatI.gf delete mode 100644 examples/peacekeeping/PeaceKeep.gf delete mode 100644 examples/peacekeeping/PeaceKeepI.gf delete mode 100644 examples/peacekeeping/PeaceKeep_Eng.gf delete mode 100644 examples/peacekeeping/PeaceLex.gf create mode 100644 examples/peacekeeping/PeaceLexCommon.gf create mode 100644 examples/peacekeeping/PeaceLexCommonI.gf create mode 100644 examples/peacekeeping/PeaceLexExt.gf delete mode 100644 examples/peacekeeping/PeaceLex_Eng.gf create mode 100644 examples/peacekeeping/PeaceSyntax.gf create mode 100644 examples/peacekeeping/PeaceSyntaxI.gf create mode 100644 examples/peacekeeping/english/PeaceCat_Eng.gf create mode 100644 examples/peacekeeping/english/PeaceLexCommon_Eng.gf create mode 100644 examples/peacekeeping/english/PeaceLexExt_Eng.gf create mode 100644 examples/peacekeeping/english/PeaceSyntax_Eng.gf create mode 100644 examples/peacekeeping/english/Peace_Eng.gf diff --git a/examples/peacekeeping/Peace.gf b/examples/peacekeeping/Peace.gf new file mode 100644 index 000000000..13546fa08 --- /dev/null +++ b/examples/peacekeeping/Peace.gf @@ -0,0 +1 @@ +abstract Peace = PeaceSyntax, PeaceLexCommon, PeaceLexExt ** {} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceCat.gf b/examples/peacekeeping/PeaceCat.gf new file mode 100644 index 000000000..ac75334ad --- /dev/null +++ b/examples/peacekeeping/PeaceCat.gf @@ -0,0 +1,6 @@ +abstract PeaceCat = Cat ** { + + cat + MassN ; + +} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceCatI.gf b/examples/peacekeeping/PeaceCatI.gf new file mode 100644 index 000000000..9b19b319b --- /dev/null +++ b/examples/peacekeeping/PeaceCatI.gf @@ -0,0 +1,6 @@ +incomplete concrete PeaceCatI of PeaceCat = Cat ** open Cat in { + + lincat + MassN = N ; + +} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceKeep.gf b/examples/peacekeeping/PeaceKeep.gf deleted file mode 100644 index 2278385f1..000000000 --- a/examples/peacekeeping/PeaceKeep.gf +++ /dev/null @@ -1,57 +0,0 @@ -abstract PeaceKeep = Cat, PeaceLex ** { - - cat - Sent ; Quest; MassCN ; - - fun - PhrPos : Sent -> Phr ; - PhrNeg : Sent -> Phr ; - PhrQuest : Quest -> Phr ; - PhrImp : Imp -> Phr ; - PhrImpNeg : Imp -> Phr ; - - PhrYes : Phr ; - PhrNo : Phr ; - - QuestSent : Sent -> Quest ; - - QuestIP_V : V -> IP -> Quest ; - QuestIP_V2 : V2 -> IP -> NP -> Quest ; - QuestIP_V2Mass : V2 -> IP -> MassCN -> Quest ; - QuestIP_V3 : V3 -> IP -> NP -> NP -> Quest ; - QuestIP_V3Mass : V3 -> IP -> MassCN -> NP -> Quest ; - QuestIP_A : A -> IP -> Quest ; - QuestIAdv_V : V -> NP -> IAdv -> Quest ; - QuestIAdv_V2 : V2 -> NP -> NP -> IAdv -> Quest ; - QuestIAdv_NP : NP -> IAdv -> Quest ; - - SentV : V -> NP -> Sent ; - SentV2 : V2 -> NP -> NP -> Sent ; - SentV2Mass : V2 -> NP -> MassCN -> Sent ; - SentV3 : V3 -> NP -> NP -> NP -> Sent ; - SentV3Mass : V3 -> NP -> MassCN -> NP -> Sent ; - SentA : A -> NP -> Sent ; - SentNP : NP -> NP -> Sent ; - - SentAdvV : V -> NP -> Adv -> Sent ; - SentAdvV2 : V2 -> NP -> NP -> Adv -> Sent ; - - ImpV : V -> Imp ; - ImpV2 : V2 -> NP -> Imp ; - ImpV2Mass : V2 -> MassCN -> Imp ; - ImpV3 : V3 -> NP -> NP -> Imp ; - ImpV3Mass : V3 -> MassCN -> NP -> Imp ; - - UsePron : Pron -> NP ; - PossPronCNSg : Pron -> CN -> NP ; - PossPronCNPl : Pron -> CN -> NP ; - DetCN : Det -> CN -> NP ; - NumCN : Num -> CN -> NP ; - - UseN : N -> CN ; - ModCN : A -> CN -> CN ; - - UseMassN : MassN -> MassCN ; - ModMass : A -> MassCN -> MassCN ; - -} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceKeepI.gf b/examples/peacekeeping/PeaceKeepI.gf deleted file mode 100644 index a57cd03ee..000000000 --- a/examples/peacekeeping/PeaceKeepI.gf +++ /dev/null @@ -1,87 +0,0 @@ -incomplete concrete PeaceKeepI of PeaceKeep = open Lang in { - - flags - startcat = Phr ; optimize = all_subs ; - unlexer = text ; lexer = text ; - - lincat - Sent = {s : SForm => Str} ; - Quest = { s : Str } ; - MassCN = CN ; - - lin - PhrPos sent = {s = sent.s ! SPos ++ "."} ; - PhrNeg sent = {s = sent.s ! SNeg ++ "."} ; - PhrQuest q = {s = q.s ++ "?" } ; - PhrImp imp = {s = (PhrUtt NoPConj (UttImpSg PPos imp) NoVoc).s ++ "!"} ; - PhrImpNeg imp = {s = (PhrUtt NoPConj (UttImpSg PNeg imp) NoVoc).s ++ "!"} ; - - PhrYes = { s = yes_Phr.s ++ "." } ; - PhrNo = { s = no_Phr.s ++ "." } ; - - QuestSent sent = {s = sent.s ! SQuest } ; - QuestIP_V v ip = mkQuest (QuestVP ip (UseV v)) ; - QuestIP_V2 v ip x = mkQuest (QuestVP ip (ComplV2 v x)) ; - QuestIP_V2Mass v ip x = mkQuest (QuestVP ip (ComplV2 v (massNP x))) ; - QuestIP_V3 v ip x y = mkQuest (QuestVP ip (ComplV3 v x y)) ; - QuestIP_V3Mass v ip x y = mkQuest (QuestVP ip (ComplV3 v (massNP x) y)) ; - QuestIP_A : A -> IP -> Phr ; - QuestIP_A a ip = mkQuest (QuestVP ip (UseComp (CompAP (PositA a)))); - QuestIAdv_NP x ia = mkQuest (QuestIComp (CompIAdv ia) x); - - QuestIAdv_V v x ia = mkQuest (QuestIAdv ia (PredVP x (UseV v))); - QuestIAdv_V2 v x y ia = mkQuest (QuestIAdv ia (PredVP x (ComplV2 v y))); - - SentV v np = mkSent np (UseV v) ; - - SentV2 v x y = mkSent x (ComplV2 v y) ; - SentV2Mass v x y = mkSent x (ComplV2 v (massNP y)) ; - SentV3 v x y z = mkSent x (ComplV3 v y z) ; - SentV3Mass v x y z = mkSent x (ComplV3 v (massNP y) z) ; - SentA a x = mkSent x (UseComp (CompAP (PositA a))) ; - SentNP a x = mkSent x (UseComp (CompNP a)) ; - - SentAdvV v np adv = mkSent np (AdvVP (UseV v) adv) ; - SentAdvV2 v x y adv = mkSent x (AdvVP (ComplV2 v y) adv) ; - - ImpV v = ImpVP (UseV v) ; - ImpV2 v x = ImpVP (ComplV2 v x) ; - ImpV2Mass v x = ImpVP (ComplV2 v (massNP x)) ; - ImpV3 v x y = ImpVP (ComplV3 v x y) ; - ImpV3Mass v x y = ImpVP (ComplV3 v (massNP x) y) ; - - UsePron p = UsePron p ; - PossPronCNSg p n = DetCN (DetSg (SgQuant (PossPron p)) NoOrd) n; - PossPronCNPl p n = DetCN (DetPl (PlQuant (PossPron p)) NoNum NoOrd) n; - DetCN d n = DetCN d n ; - NumCN k cn = DetCN (DetPl (PlQuant IndefArt) k NoOrd) cn ; - - UseN n = UseN n ; - ModCN a cn = AdjCN (PositA a) cn ; - - UseMassN mn = UseN mn ; - ModMass a cn = AdjCN (PositA a) cn ; - - param - SForm = SPos | SNeg | SQuest ; - - oper - mkSent : NP -> VP -> Sent ; - mkSent np vp = - let cl = PredVP np vp - in { - s = table { - SPos => Predef.toStr S (UseCl TPres ASimul PPos cl) ; - SNeg => Predef.toStr S (UseCl TPres ASimul PNeg cl) ; - SQuest => Predef.toStr QS (UseQCl TPres ASimul PPos (QuestCl cl)) - } ; - lock_Sent = <> - } ; - - massNP : CN -> NP = \mcn -> DetCN (DetSg MassDet NoOrd) mcn ; - - mkQuest : QCl -> Quest ; - mkQuest q = { s = Predef.toStr QS (UseQCl TPres ASimul PPos q); - lock_Quest = <> } ; - -} diff --git a/examples/peacekeeping/PeaceKeep_Eng.gf b/examples/peacekeeping/PeaceKeep_Eng.gf deleted file mode 100644 index 3b1faec72..000000000 --- a/examples/peacekeeping/PeaceKeep_Eng.gf +++ /dev/null @@ -1,5 +0,0 @@ ---# -path=.:present:prelude - -concrete PeaceKeep_Eng of PeaceKeep = CatEng, PeaceLex_Eng ** PeaceKeepI with - (Lang = LangEng) ; - diff --git a/examples/peacekeeping/PeaceLex.gf b/examples/peacekeeping/PeaceLex.gf deleted file mode 100644 index 71c3fc491..000000000 --- a/examples/peacekeeping/PeaceLex.gf +++ /dev/null @@ -1,111 +0,0 @@ -abstract PeaceLex = Cat ** { - - cat - MassN ; - - fun - - -- Pronouns - - i_Pron : Pron ; - youSg_Pron : Pron ; - he_Pron : Pron ; - we_Pron : Pron ; - youPl_Pron : Pron ; - they_Pron : Pron ; - whoPl_IP : IP ; - whoSg_IP : IP ; - whatPl_IP : IP ; - whatSg_IP : IP ; - - -- Determiners - - aSg_Det : Det ; - aPl_Det : Det ; - theSg_Det : Det ; - thePl_Det : Det ; - that_Det : Det ; - those_Det : Det ; - this_Det : Det ; - these_Det : Det ; - - -- Adverbs - - here_Adv : Adv ; - there_Adv : Adv ; - where_IAdv : IAdv ; - when_IAdv : IAdv ; - - -- Numerals - - one_Det : Det ; - two_Num : Num ; - three_Num : Num ; - four_Num : Num ; - five_Num : Num ; - - -- Adjectives - - black_A : A ; - blue_A : A ; - cold_A : A ; - dangerous_A : A ; - dead_A : A ; - green_A : A ; - hot_A : A ; - hungry_A : A ; - large_A : A ; - red_A : A ; - sick_A : A ; - small_A : A ; - white_A : A ; - yellow_A : A ; - - -- Nouns - - air_N : MassN ; - airplane_N : N ; - arm_N : N ; - animal_N : N ; - blood_N : MassN ; - boat_N : N ; - boy_N : N ; - child_N : N ; - corpse_N : N ; - building_N : N ; - car_N : N ; - doctor_N : N ; - enemy_N : N ; - factory_N : N ; - food_N : MassN ; - foot_N : N ; - friend_N : N ; - girl_N : N ; - hand_N : N ; - head_N : N ; - house_N : N ; - landmine_N : N ; - leg_N : N ; - medicine_N : MassN ; - man_N : N ; - road_N : N ; - skin_N : MassN ; - soldier_N : N ; - water_N : MassN ; - weapon_N : N ; - woman_N : N; - - -- Verbs - cough_V : V ; - eat_V2 : V2 ; - drink_V2 : V2 ; - give_V3 : V3 ; - have_V2 : V2; - need_V2 : V2; - own_V2 : V2 ; - see_V2 : V2 ; - show_V3 : V3 ; - sleep_V : V ; - walk_V : V ; - -} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceLexCommon.gf b/examples/peacekeeping/PeaceLexCommon.gf new file mode 100644 index 000000000..35bdf35b6 --- /dev/null +++ b/examples/peacekeeping/PeaceLexCommon.gf @@ -0,0 +1,85 @@ +abstract PeaceLexCommon = PeaceCat ** { + + fun + + -- Pronouns + + i_Pron : Pron ; + youSg_Pron : Pron ; + he_Pron : Pron ; + we_Pron : Pron ; + youPl_Pron : Pron ; + they_Pron : Pron ; + whoPl_IP : IP ; + whoSg_IP : IP ; + whatPl_IP : IP ; + whatSg_IP : IP ; + + -- Determiners + + aSg_Det : Det ; + aPl_Det : Det ; + theSg_Det : Det ; + thePl_Det : Det ; + that_Det : Det ; + those_Det : Det ; + this_Det : Det ; + these_Det : Det ; + + -- Adverbs + + here_Adv : Adv ; + there_Adv : Adv ; + where_IAdv : IAdv ; + when_IAdv : IAdv ; + + -- Numerals + + one_Det : Det ; + two_Num : Num ; + three_Num : Num ; + four_Num : Num ; + five_Num : Num ; + + -- Adjectives + + black_A : A ; + blue_A : A ; + cold_A : A ; + green_A : A ; + hot_A : A ; + red_A : A ; + small_A : A ; + white_A : A ; + yellow_A : A ; + + -- Nouns + + airplane_N : N ; + animal_N : N ; + blood_N : MassN ; + boat_N : N ; + boy_N : N ; + child_N : N ; + factory_N : N ; + foot_N : N ; + girl_N : N ; + hand_N : N ; + head_N : N ; + house_N : N ; + leg_N : N ; + man_N : N ; + road_N : N ; + water_N : MassN ; + woman_N : N; + + -- Verbs + eat_V2 : V2 ; + drink_V2 : V2 ; + give_V3 : V3 ; + have_V2 : V2; + see_V2 : V2 ; + sleep_V : V ; + walk_V : V ; + +} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceLexCommonI.gf b/examples/peacekeeping/PeaceLexCommonI.gf new file mode 100644 index 000000000..ba4347dbf --- /dev/null +++ b/examples/peacekeeping/PeaceLexCommonI.gf @@ -0,0 +1,82 @@ +incomplete concrete PeaceLexCommonI of PeaceLexCommon = PeaceCatI ** open Lang in { + + lin + + -- Pronouns + + i_Pron = i_Pron ; + youSg_Pron = youSg_Pron ; + he_Pron = he_Pron ; + we_Pron = we_Pron ; + youPl_Pron = youPl_Pron ; + they_Pron = they_Pron ; + whoPl_IP = whoPl_IP ; + whoSg_IP = whoSg_IP ; + whatPl_IP = whatPl_IP ; + whatSg_IP = whatSg_IP ; + + -- Determiners + + aSg_Det = DetSg (SgQuant IndefArt) NoOrd; + aPl_Det = DetPl (PlQuant IndefArt) NoNum NoOrd; + theSg_Det = DetSg (SgQuant DefArt) NoOrd ; + thePl_Det = DetPl (PlQuant DefArt) NoNum NoOrd ; + that_Det = DetSg (SgQuant that_Quant) NoOrd ; + those_Det = DetPl (PlQuant that_Quant) NoNum NoOrd ; + this_Det = DetSg (SgQuant this_Quant) NoOrd ; + these_Det = DetPl (PlQuant this_Quant) NoNum NoOrd ; + + + -- Adverbs + here_Adv = here_Adv; + there_Adv = there_Adv; + where_IAdv = where_IAdv; + when_IAdv = when_IAdv; + + -- Numerals + one_Det = DetSg one_Quant NoOrd ; + two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; + three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; + four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; + five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; + + -- Adjectives + black_A = black_A ; + blue_A = blue_A ; + cold_A = cold_A ; + green_A = green_A ; + hot_A = hot_A ; + red_A = red_A ; + small_A = small_A ; + white_A = white_A ; + yellow_A = yellow_A ; + + -- Nouns + airplane_N = airplane_N ; + animal_N = animal_N ; + blood_N = blood_N ; + boat_N = boat_N ; + boy_N = boy_N ; + child_N = child_N ; + factory_N = factory_N ; + foot_N = foot_N ; + girl_N = girl_N ; + hand_N = hand_N ; + head_N = head_N ; + house_N = house_N ; + leg_N = leg_N ; + man_N = man_N ; + road_N = road_N ; + water_N = water_N ; + woman_N = woman_N ; + + -- Verbs + drink_V2 = drink_V2 ; + eat_V2 = eat_V2 ; + give_V3 = give_V3; + have_V2 = have_V2; + see_V2 = see_V2 ; + sleep_V = sleep_V ; + walk_V = walk_V ; + +} diff --git a/examples/peacekeeping/PeaceLexExt.gf b/examples/peacekeeping/PeaceLexExt.gf new file mode 100644 index 000000000..1e4e777ad --- /dev/null +++ b/examples/peacekeeping/PeaceLexExt.gf @@ -0,0 +1,37 @@ +abstract PeaceLexExt = PeaceCat ** { + + fun + + -- Adjectives + + dangerous_A : A ; + dead_A : A ; + hungry_A : A ; + large_A : A ; + sick_A : A ; + + -- Nouns + + air_N : MassN ; + arm_N : N ; + building_N : N ; + car_N : N ; + corpse_N : N ; + doctor_N : N ; + doctor_N : N ; + enemy_N : N ; + food_N : MassN ; + friend_N : N ; + landmine_N : N ; + medicine_N : MassN ; + skin_N : MassN ; + soldier_N : N ; + weapon_N : N; + + -- Verbs + cough_V : V ; + need_V2 : V2; + own_V2 : V2 ; + show_V3 : V3 ; + +} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceLex_Eng.gf b/examples/peacekeeping/PeaceLex_Eng.gf deleted file mode 100644 index 4e21ee370..000000000 --- a/examples/peacekeeping/PeaceLex_Eng.gf +++ /dev/null @@ -1,108 +0,0 @@ -concrete PeaceLex_Eng of PeaceLex = CatEng ** open LangEng, ParadigmsEng in { - - lincat - MassN = N ; - - lin - - -- Pronouns - - i_Pron = i_Pron ; - youSg_Pron = youSg_Pron ; - he_Pron = he_Pron ; - we_Pron = we_Pron ; - youPl_Pron = youPl_Pron ; - they_Pron = they_Pron ; - whoPl_IP = whoPl_IP ; - whoSg_IP = whoSg_IP ; - whatPl_IP = whatPl_IP ; - whatSg_IP = whatSg_IP ; - - -- Determiners - - aSg_Det = DetSg (SgQuant IndefArt) NoOrd; - aPl_Det = DetPl (PlQuant IndefArt) NoNum NoOrd; - theSg_Det = DetSg (SgQuant DefArt) NoOrd ; - thePl_Det = DetPl (PlQuant DefArt) NoNum NoOrd ; - that_Det = DetSg (SgQuant that_Quant) NoOrd ; - those_Det = DetPl (PlQuant that_Quant) NoNum NoOrd ; - this_Det = DetSg (SgQuant this_Quant) NoOrd ; - these_Det = DetPl (PlQuant this_Quant) NoNum NoOrd ; - - - -- Adverbs - here_Adv = here_Adv; - there_Adv = there_Adv; - where_IAdv = where_IAdv; - when_IAdv = when_IAdv; - - -- Numerals - one_Det = DetSg one_Quant NoOrd ; - two_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ; - three_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ; - four_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ; - five_Num = NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ; - - -- Adjectives - black_A = black_A ; - blue_A = blue_A ; - cold_A = cold_A ; - dangerous_A = regA "dangerous" ; - dead_A = regA "dead" ; - green_A = green_A ; - hot_A = hot_A ; - hungry_A = regA "hungry" ; - large_A = regA "large" ; - red_A = red_A ; - sick_A = regA "sick" ; - small_A = small_A ; - white_A = white_A ; - yellow_A = yellow_A ; - - -- Nouns - air_N = regN "air" ; - airplane_N = airplane_N ; - animal_N = animal_N ; - arm_N = regN "arm" ; - blood_N = blood_N ; - boat_N = boat_N ; - boy_N = boy_N ; - building_N = regN "building" ; - car_N = regN "car" ; - child_N = child_N ; - corpse_N = regN "corpse" ; - doctor_N = regN "doctor"; - enemy_N = regN "enemy"; - factory_N = factory_N ; - food_N = regN "food"; - foot_N = foot_N ; - friend_N = regN "friend"; - girl_N = girl_N ; - hand_N = hand_N ; - head_N = head_N ; - house_N = house_N ; - landmine_N = regN "landmine" ; - leg_N = leg_N ; - man_N = man_N ; - medicine_N = regN "medicine" ; - road_N = road_N ; - skin_N = regN "skin" ; - soldier_N = regN "soldier" ; - water_N = water_N ; - weapon_N = regN "weapon"; - woman_N = woman_N ; - - -- Verbs - cough_V = regV "cough" ; - drink_V2 = drink_V2 ; - eat_V2 = eat_V2 ; - give_V3 = give_V3; - have_V2 = have_V2; - need_V2 = dirV2 (regV "need"); - own_V2 = dirV2 (regV "own") ; - see_V2 = see_V2 ; - show_V3 = dirdirV3 (regV "show") ; - sleep_V = sleep_V ; - walk_V = walk_V ; - -} diff --git a/examples/peacekeeping/PeaceSyntax.gf b/examples/peacekeeping/PeaceSyntax.gf new file mode 100644 index 000000000..00da55ad2 --- /dev/null +++ b/examples/peacekeeping/PeaceSyntax.gf @@ -0,0 +1,59 @@ +abstract PeaceSyntax = PeaceCat ** { + + cat + Sent ; + Quest ; + MassCN ; + + fun + PhrPos : Sent -> Phr ; + PhrNeg : Sent -> Phr ; + PhrQuest : Quest -> Phr ; + PhrImp : Imp -> Phr ; + PhrImpNeg : Imp -> Phr ; + + PhrYes : Phr ; + PhrNo : Phr ; + + QuestSent : Sent -> Quest ; + + QuestIP_V : V -> IP -> Quest ; + QuestIP_V2 : V2 -> IP -> NP -> Quest ; + QuestIP_V2Mass : V2 -> IP -> MassCN -> Quest ; + QuestIP_V3 : V3 -> IP -> NP -> NP -> Quest ; + QuestIP_V3Mass : V3 -> IP -> MassCN -> NP -> Quest ; + QuestIP_A : A -> IP -> Quest ; + QuestIAdv_V : V -> NP -> IAdv -> Quest ; + QuestIAdv_V2 : V2 -> NP -> NP -> IAdv -> Quest ; + QuestIAdv_NP : NP -> IAdv -> Quest ; + + SentV : V -> NP -> Sent ; + SentV2 : V2 -> NP -> NP -> Sent ; + SentV2Mass : V2 -> NP -> MassCN -> Sent ; + SentV3 : V3 -> NP -> NP -> NP -> Sent ; + SentV3Mass : V3 -> NP -> MassCN -> NP -> Sent ; + SentA : A -> NP -> Sent ; + SentNP : NP -> NP -> Sent ; + + SentAdvV : V -> NP -> Adv -> Sent ; + SentAdvV2 : V2 -> NP -> NP -> Adv -> Sent ; + + ImpV : V -> Imp ; + ImpV2 : V2 -> NP -> Imp ; + ImpV2Mass : V2 -> MassCN -> Imp ; + ImpV3 : V3 -> NP -> NP -> Imp ; + ImpV3Mass : V3 -> MassCN -> NP -> Imp ; + + UsePron : Pron -> NP ; + PossPronCNSg : Pron -> CN -> NP ; + PossPronCNPl : Pron -> CN -> NP ; + DetCN : Det -> CN -> NP ; + NumCN : Num -> CN -> NP ; + + UseN : N -> CN ; + ModCN : A -> CN -> CN ; + + UseMassN : MassN -> MassCN ; + ModMass : A -> MassCN -> MassCN ; + +} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceSyntaxI.gf b/examples/peacekeeping/PeaceSyntaxI.gf new file mode 100644 index 000000000..a2cb13484 --- /dev/null +++ b/examples/peacekeeping/PeaceSyntaxI.gf @@ -0,0 +1,87 @@ +incomplete concrete PeaceSyntaxI of PeaceSyntax = PeaceCatI ** open Lang in { + + flags + startcat = Phr ; optimize = all_subs ; + unlexer = text ; lexer = text ; + + lincat + Sent = {s : SForm => Str} ; + Quest = { s : Str } ; + MassCN = CN ; + + lin + PhrPos sent = {s = sent.s ! SPos ++ "."} ; + PhrNeg sent = {s = sent.s ! SNeg ++ "."} ; + PhrQuest q = {s = q.s ++ "?" } ; + PhrImp imp = {s = (PhrUtt NoPConj (UttImpSg PPos imp) NoVoc).s ++ "!"} ; + PhrImpNeg imp = {s = (PhrUtt NoPConj (UttImpSg PNeg imp) NoVoc).s ++ "!"} ; + + PhrYes = { s = yes_Phr.s ++ "." } ; + PhrNo = { s = no_Phr.s ++ "." } ; + + QuestSent sent = {s = sent.s ! SQuest } ; + QuestIP_V v ip = mkQuest (QuestVP ip (UseV v)) ; + QuestIP_V2 v ip x = mkQuest (QuestVP ip (ComplV2 v x)) ; + QuestIP_V2Mass v ip x = mkQuest (QuestVP ip (ComplV2 v (massNP x))) ; + QuestIP_V3 v ip x y = mkQuest (QuestVP ip (ComplV3 v x y)) ; + QuestIP_V3Mass v ip x y = mkQuest (QuestVP ip (ComplV3 v (massNP x) y)) ; + QuestIP_A : A -> IP -> Phr ; + QuestIP_A a ip = mkQuest (QuestVP ip (UseComp (CompAP (PositA a)))); + QuestIAdv_NP x ia = mkQuest (QuestIComp (CompIAdv ia) x); + + QuestIAdv_V v x ia = mkQuest (QuestIAdv ia (PredVP x (UseV v))); + QuestIAdv_V2 v x y ia = mkQuest (QuestIAdv ia (PredVP x (ComplV2 v y))); + + SentV v np = mkSent np (UseV v) ; + + SentV2 v x y = mkSent x (ComplV2 v y) ; + SentV2Mass v x y = mkSent x (ComplV2 v (massNP y)) ; + SentV3 v x y z = mkSent x (ComplV3 v y z) ; + SentV3Mass v x y z = mkSent x (ComplV3 v (massNP y) z) ; + SentA a x = mkSent x (UseComp (CompAP (PositA a))) ; + SentNP a x = mkSent x (UseComp (CompNP a)) ; + + SentAdvV v np adv = mkSent np (AdvVP (UseV v) adv) ; + SentAdvV2 v x y adv = mkSent x (AdvVP (ComplV2 v y) adv) ; + + ImpV v = ImpVP (UseV v) ; + ImpV2 v x = ImpVP (ComplV2 v x) ; + ImpV2Mass v x = ImpVP (ComplV2 v (massNP x)) ; + ImpV3 v x y = ImpVP (ComplV3 v x y) ; + ImpV3Mass v x y = ImpVP (ComplV3 v (massNP x) y) ; + + UsePron p = UsePron p ; + PossPronCNSg p n = DetCN (DetSg (SgQuant (PossPron p)) NoOrd) n; + PossPronCNPl p n = DetCN (DetPl (PlQuant (PossPron p)) NoNum NoOrd) n; + DetCN d n = DetCN d n ; + NumCN k cn = DetCN (DetPl (PlQuant IndefArt) k NoOrd) cn ; + + UseN n = UseN n ; + ModCN a cn = AdjCN (PositA a) cn ; + + UseMassN mn = UseN mn ; + ModMass a cn = AdjCN (PositA a) cn ; + + param + SForm = SPos | SNeg | SQuest ; + + oper + mkSent : NP -> VP -> Sent ; + mkSent np vp = + let cl = PredVP np vp + in { + s = table { + SPos => Predef.toStr S (UseCl TPres ASimul PPos cl) ; + SNeg => Predef.toStr S (UseCl TPres ASimul PNeg cl) ; + SQuest => Predef.toStr QS (UseQCl TPres ASimul PPos (QuestCl cl)) + } ; + lock_Sent = <> + } ; + + massNP : CN -> NP = \mcn -> DetCN (DetSg MassDet NoOrd) mcn ; + + mkQuest : QCl -> Quest ; + mkQuest q = { s = Predef.toStr QS (UseQCl TPres ASimul PPos q); + lock_Quest = <> } ; + +} diff --git a/examples/peacekeeping/english/PeaceCat_Eng.gf b/examples/peacekeeping/english/PeaceCat_Eng.gf new file mode 100644 index 000000000..ac1d9a7dd --- /dev/null +++ b/examples/peacekeeping/english/PeaceCat_Eng.gf @@ -0,0 +1,3 @@ +--# -path=.:present:prelude + +concrete PeaceCat_Eng of PeaceCat = CatEng ** PeaceCatI with (Cat = CatEng); \ No newline at end of file diff --git a/examples/peacekeeping/english/PeaceLexCommon_Eng.gf b/examples/peacekeeping/english/PeaceLexCommon_Eng.gf new file mode 100644 index 000000000..fc3ab664d --- /dev/null +++ b/examples/peacekeeping/english/PeaceLexCommon_Eng.gf @@ -0,0 +1,5 @@ +--# -path=.:present:prelude + +concrete PeaceLexCommon_Eng of PeaceLexCommon = + PeaceCat_Eng ** PeaceLexCommonI with (Lang = LangEng) ; + diff --git a/examples/peacekeeping/english/PeaceLexExt_Eng.gf b/examples/peacekeeping/english/PeaceLexExt_Eng.gf new file mode 100644 index 000000000..413cb02e5 --- /dev/null +++ b/examples/peacekeeping/english/PeaceLexExt_Eng.gf @@ -0,0 +1,37 @@ +--# -path=.:present:prelude + +concrete PeaceLexExt_Eng of PeaceLexExt = + PeaceCat_Eng ** open ParadigmsEng in { + + lin + + -- Adjectives + dangerous_A = regA "dangerous" ; + dead_A = regA "dead" ; + hungry_A = regA "hungry" ; + large_A = regA "large" ; + sick_A = regA "sick" ; + + -- Nouns + air_N = regN "air" ; + arm_N = regN "arm" ; + building_N = regN "building" ; + car_N = regN "car" ; + corpse_N = regN "corpse" ; + doctor_N = regN "doctor"; + enemy_N = regN "enemy"; + food_N = regN "food"; + friend_N = regN "friend"; + landmine_N = regN "landmine" ; + medicine_N = regN "medicine" ; + skin_N = regN "skin" ; + soldier_N = regN "soldier" ; + weapon_N = regN "weapon"; + + -- Verbs + cough_V = regV "cough" ; + need_V2 = dirV2 (regV "need"); + own_V2 = dirV2 (regV "own") ; + show_V3 = dirdirV3 (regV "show") ; + +} diff --git a/examples/peacekeeping/english/PeaceSyntax_Eng.gf b/examples/peacekeeping/english/PeaceSyntax_Eng.gf new file mode 100644 index 000000000..674e1e123 --- /dev/null +++ b/examples/peacekeeping/english/PeaceSyntax_Eng.gf @@ -0,0 +1,5 @@ +--# -path=.:present:prelude + +concrete PeaceSyntax_Eng of PeaceSyntax = PeaceCat_Eng ** PeaceSyntaxI with + (Lang = LangEng) ; + diff --git a/examples/peacekeeping/english/Peace_Eng.gf b/examples/peacekeeping/english/Peace_Eng.gf new file mode 100644 index 000000000..c4432a593 --- /dev/null +++ b/examples/peacekeeping/english/Peace_Eng.gf @@ -0,0 +1,3 @@ +--# -path=.:present:prelude + +concrete Peace_Eng of Peace = PeaceSyntax_Eng, PeaceLexCommon_Eng, PeaceLexExt_Eng ** {} \ No newline at end of file -- cgit v1.2.3