diff --git a/examples/peacekeeping/EXAMPLES b/examples/peacekeeping/EXAMPLES index 021ddd088..3438fc262 100644 --- a/examples/peacekeeping/EXAMPLES +++ b/examples/peacekeeping/EXAMPLES @@ -1,15 +1,51 @@ -Working now: +== Working now == + +Yes. -Landmines are dangerous. -Are you cold? Who coughs? -Show me the landmine! -We are your friends. -Give your weapon to the soldier! -Do you need medicine? +Who owns this building? +Who needs water? +Who gives weapons to the soldiers? +Who gives water to the children? Who is hungry? +Where do you sleep? +Where do you see the landmine? -Should work: +The doctor sleeps. +I see a small girl. +Soldiers don't eat corpses. +Do you need medicine? +We don't give weapons to dangerous soldiers. +We give food to children. +Are you cold? +Landmines are dangerous. +We are your friends. +These soldiers aren't your enemies. + +Walk! +Don't eat your friend! +Drink cold water! +Give your weapon to the soldier! +Show me the landmine! +Give water to the boy! + + +== Should work == Where is the factory? (no QuestIAdv_NP) +Drink this water! (can't modify MassCN) +Drink! (drink is V2) + + +== English == + +=== Variants that should work === + +don't / do not +doesn't / does not +isn't / is not +aren't / are not + +corpse / dead body +give X to Y / give Y X diff --git a/examples/peacekeeping/PeaceKeep.gf b/examples/peacekeeping/PeaceKeep.gf index b6a6b50fa..4f951deae 100644 --- a/examples/peacekeeping/PeaceKeep.gf +++ b/examples/peacekeeping/PeaceKeep.gf @@ -10,18 +10,26 @@ abstract PeaceKeep = Cat, PeaceLex ** { 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 ; @@ -30,7 +38,9 @@ abstract PeaceKeep = Cat, PeaceLex ** { 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 ; diff --git a/examples/peacekeeping/PeaceKeepI.gf b/examples/peacekeeping/PeaceKeepI.gf index a1a06c2d4..81459a68f 100644 --- a/examples/peacekeeping/PeaceKeepI.gf +++ b/examples/peacekeeping/PeaceKeepI.gf @@ -16,10 +16,15 @@ incomplete concrete PeaceKeepI of PeaceKeep = open Lang in { 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)))); @@ -31,6 +36,7 @@ incomplete concrete PeaceKeepI of PeaceKeep = open Lang in { 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)) ; @@ -39,7 +45,9 @@ incomplete concrete PeaceKeepI of PeaceKeep = open Lang in { 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; diff --git a/examples/peacekeeping/PeaceLex.gf b/examples/peacekeeping/PeaceLex.gf index f9f9fc613..3a5464f16 100644 --- a/examples/peacekeeping/PeaceLex.gf +++ b/examples/peacekeeping/PeaceLex.gf @@ -71,6 +71,7 @@ abstract PeaceLex = Cat ** { boat_N : N ; boy_N : N ; child_N : N ; + corpse_N : N ; building_N : N ; car_N : N ; doctor_N : N ; @@ -88,6 +89,7 @@ abstract PeaceLex = Cat ** { medicine_N : MassN ; man_N : N ; road_N : N ; + skin_N : MassN ; soldier_N : N ; water_N : MassN ; weapon_N : N ; @@ -100,8 +102,10 @@ abstract PeaceLex = Cat ** { 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/PeaceLex_Eng.gf b/examples/peacekeeping/PeaceLex_Eng.gf index 65c164272..4e21ee370 100644 --- a/examples/peacekeeping/PeaceLex_Eng.gf +++ b/examples/peacekeeping/PeaceLex_Eng.gf @@ -70,6 +70,7 @@ concrete PeaceLex_Eng of PeaceLex = CatEng ** open LangEng, ParadigmsEng in { 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 ; @@ -85,6 +86,7 @@ concrete PeaceLex_Eng of PeaceLex = CatEng ** open LangEng, ParadigmsEng in { 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"; @@ -97,8 +99,10 @@ concrete PeaceLex_Eng of PeaceLex = CatEng ** open LangEng, ParadigmsEng in { 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"); + show_V3 = dirdirV3 (regV "show") ; + sleep_V = sleep_V ; walk_V = walk_V ; }