From 137133b742f38c76d2354047ecc9d4af88826d42 Mon Sep 17 00:00:00 2001 From: bjorn Date: Fri, 15 Aug 2008 20:21:12 +0000 Subject: [PATCH] Added peacekeeping example back in. Doesn't compile yet. --- examples/peacekeeping/EXAMPLES | 66 ++++++++++++++ examples/peacekeeping/Peace.gf | 4 + examples/peacekeeping/PeaceCat.gf | 13 +++ examples/peacekeeping/PeaceCatI.gf | 22 +++++ examples/peacekeeping/PeaceLexCommon.gf | 90 +++++++++++++++++++ examples/peacekeeping/PeaceLexCommonI.gf | 86 ++++++++++++++++++ examples/peacekeeping/PeaceLexExt.gf | 47 ++++++++++ examples/peacekeeping/PeacePhrases.gf | 9 ++ examples/peacekeeping/PeaceRes.gf | 11 +++ examples/peacekeeping/PeaceSpoken.gf | 1 + examples/peacekeeping/PeaceSyntax.gf | 59 ++++++++++++ examples/peacekeeping/PeaceSyntaxI.gf | 88 ++++++++++++++++++ examples/peacekeeping/README | 14 +++ examples/peacekeeping/english/PeaceCat_Eng.gf | 3 + .../english/PeaceLexCommon_Eng.gf | 5 ++ .../peacekeeping/english/PeaceLexExt_Eng.gf | 48 ++++++++++ .../peacekeeping/english/PeacePhrases_Eng.gf | 12 +++ .../peacekeeping/english/PeaceSpoken_Eng.gf | 8 ++ .../peacekeeping/english/PeaceSyntax_Eng.gf | 5 ++ examples/peacekeeping/english/Peace_Eng.gf | 10 +++ examples/peacekeeping/finnish/PeaceCat_Fin.gf | 3 + .../finnish/PeaceLexCommon_Fin.gf | 5 ++ .../peacekeeping/finnish/PeaceLexExt_Fin.gf | 44 +++++++++ .../peacekeeping/finnish/PeacePhrases_Fin.gf | 14 +++ .../peacekeeping/finnish/PeaceSpoken_Fin.gf | 8 ++ .../peacekeeping/finnish/PeaceSyntax_Fin.gf | 5 ++ examples/peacekeeping/finnish/Peace_Fin.gf | 10 +++ examples/peacekeeping/mkPeace.gfs | 4 + examples/peacekeeping/swedish/PeaceCat_Swe.gf | 3 + .../swedish/PeaceLexCommon_Swe.gf | 5 ++ .../peacekeeping/swedish/PeaceLexExt_Swe.gf | 48 ++++++++++ .../peacekeeping/swedish/PeacePhrases_Swe.gf | 12 +++ .../peacekeeping/swedish/PeaceSpoken_Swe.gf | 8 ++ .../peacekeeping/swedish/PeaceSyntax_Swe.gf | 5 ++ examples/peacekeeping/swedish/Peace_Swe.gf | 10 +++ 35 files changed, 785 insertions(+) create mode 100644 examples/peacekeeping/EXAMPLES create mode 100644 examples/peacekeeping/Peace.gf create mode 100644 examples/peacekeeping/PeaceCat.gf create mode 100644 examples/peacekeeping/PeaceCatI.gf create mode 100644 examples/peacekeeping/PeaceLexCommon.gf create mode 100644 examples/peacekeeping/PeaceLexCommonI.gf create mode 100644 examples/peacekeeping/PeaceLexExt.gf create mode 100644 examples/peacekeeping/PeacePhrases.gf create mode 100644 examples/peacekeeping/PeaceRes.gf create mode 100644 examples/peacekeeping/PeaceSpoken.gf create mode 100644 examples/peacekeeping/PeaceSyntax.gf create mode 100644 examples/peacekeeping/PeaceSyntaxI.gf create mode 100644 examples/peacekeeping/README 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/PeacePhrases_Eng.gf create mode 100644 examples/peacekeeping/english/PeaceSpoken_Eng.gf create mode 100644 examples/peacekeeping/english/PeaceSyntax_Eng.gf create mode 100644 examples/peacekeeping/english/Peace_Eng.gf create mode 100644 examples/peacekeeping/finnish/PeaceCat_Fin.gf create mode 100644 examples/peacekeeping/finnish/PeaceLexCommon_Fin.gf create mode 100644 examples/peacekeeping/finnish/PeaceLexExt_Fin.gf create mode 100644 examples/peacekeeping/finnish/PeacePhrases_Fin.gf create mode 100644 examples/peacekeeping/finnish/PeaceSpoken_Fin.gf create mode 100644 examples/peacekeeping/finnish/PeaceSyntax_Fin.gf create mode 100644 examples/peacekeeping/finnish/Peace_Fin.gf create mode 100644 examples/peacekeeping/mkPeace.gfs create mode 100644 examples/peacekeeping/swedish/PeaceCat_Swe.gf create mode 100644 examples/peacekeeping/swedish/PeaceLexCommon_Swe.gf create mode 100644 examples/peacekeeping/swedish/PeaceLexExt_Swe.gf create mode 100644 examples/peacekeeping/swedish/PeacePhrases_Swe.gf create mode 100644 examples/peacekeeping/swedish/PeaceSpoken_Swe.gf create mode 100644 examples/peacekeeping/swedish/PeaceSyntax_Swe.gf create mode 100644 examples/peacekeeping/swedish/Peace_Swe.gf diff --git a/examples/peacekeeping/EXAMPLES b/examples/peacekeeping/EXAMPLES new file mode 100644 index 000000000..822e649eb --- /dev/null +++ b/examples/peacekeeping/EXAMPLES @@ -0,0 +1,66 @@ +== Working now == + +Yes. + +Who coughs? +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? +Where are the weapons? + +The doctor sleeps. +I see a small girl. +Does your leg hurt? +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. +I am a police officer. +This is a translation machine. +Weapons aren't toys. +These soldiers aren't your enemies. + +Walk! +Breathe! +Don't eat your friend! +Drink cold water! +Give your weapon to the soldier! +Show me the landmine! +Give water to the boy! +Drop your weapon! +Cooperate with us! + +== Should work == + +Drink this water! (can't modify MassCN) +Drink! (drink is V2) + + +== How do we do these? == + +(without overgenerating too much) + +Turn around! + +plural-/singular-only nouns: clothes, ... + + +== 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/Peace.gf b/examples/peacekeeping/Peace.gf new file mode 100644 index 000000000..f7514ac8b --- /dev/null +++ b/examples/peacekeeping/Peace.gf @@ -0,0 +1,4 @@ +abstract Peace = + PeaceSyntax, PeaceLexCommon, + PeaceLexExt, PeacePhrases + ** {} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceCat.gf b/examples/peacekeeping/PeaceCat.gf new file mode 100644 index 000000000..103295396 --- /dev/null +++ b/examples/peacekeeping/PeaceCat.gf @@ -0,0 +1,13 @@ +abstract PeaceCat = Cat ** { + + cat + MassN ; + Phrase ; + PhraseWritten ; + PhraseSpoken ; + + fun + Written : Phrase -> PhraseWritten ; + Spoken : Phrase -> PhraseSpoken ; + +} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceCatI.gf b/examples/peacekeeping/PeaceCatI.gf new file mode 100644 index 000000000..312bc1b1e --- /dev/null +++ b/examples/peacekeeping/PeaceCatI.gf @@ -0,0 +1,22 @@ +incomplete concrete PeaceCatI of PeaceCat = + Cat ** open Lang, PeaceRes, Prelude in { + + lincat + MassN = N ; + Phrase = { s : Str; p : Punct } ; + PhraseWritten = { s : Str } ; + PhraseSpoken = { s : Str } ; + + lin + Written x = mkWritten x.s x.p ; + Spoken x = { s = x.s } ; + + oper + mkWritten : Str -> Punct -> { s : Str } ; + mkWritten x p = case p of { + FullStop => { s = x ++ "." } ; --TFullStop (ss s) TEmpty ; + QuestMark => { s = x ++ "?" } ; --TQuestMark (ss s) TEmpty ; + ExclMark => { s = x ++ "!" } --TExclMark (ss s) TEmpty + } ; + +} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceLexCommon.gf b/examples/peacekeeping/PeaceLexCommon.gf new file mode 100644 index 000000000..75abaebdf --- /dev/null +++ b/examples/peacekeeping/PeaceLexCommon.gf @@ -0,0 +1,90 @@ +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 ; + + this_NP : NP ; + that_NP : NP ; + + -- 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 + +-- Causes too much ambiguity +-- 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 + breathe_V : V ; + 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..b76949cb9 --- /dev/null +++ b/examples/peacekeeping/PeaceLexCommonI.gf @@ -0,0 +1,86 @@ +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 ; + + this_NP = this_NP ; + that_NP = that_NP ; + + -- 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 + breathe_V = breathe_V ; + 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..984440ef6 --- /dev/null +++ b/examples/peacekeeping/PeaceLexExt.gf @@ -0,0 +1,47 @@ +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 ; + face_N : N ; + food_N : MassN ; + friend_N : N ; + ground_N : N ; + knife_N : N ; + landmine_N : N ; + map_N : N ; + medicine_N : MassN ; + police8officer_N : N ; + skin_N : MassN ; + soldier_N : N ; + toy_N : N ; + translation8machine_N : N ; + weapon_N : N; + + -- Verbs + cooperate_V2 : V2 ; + cough_V : V ; + drop_V2 : V2 ; + hurt_V : V ; + need_V2 : V2; + own_V2 : V2 ; + show_V3 : V3 ; + +} \ No newline at end of file diff --git a/examples/peacekeeping/PeacePhrases.gf b/examples/peacekeeping/PeacePhrases.gf new file mode 100644 index 000000000..e883e9e19 --- /dev/null +++ b/examples/peacekeeping/PeacePhrases.gf @@ -0,0 +1,9 @@ +abstract PeacePhrases = PeaceCat ** { + + fun + Hello : Phrase ; + GoodMorning : Phrase ; + GoodEvening : Phrase ; + WhatIsNamePron : Pron -> Phrase ; + +} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceRes.gf b/examples/peacekeeping/PeaceRes.gf new file mode 100644 index 000000000..52d77ce3b --- /dev/null +++ b/examples/peacekeeping/PeaceRes.gf @@ -0,0 +1,11 @@ +resource PeaceRes = { + + param Punct = FullStop | QuestMark | ExclMark ; + + oper + stop, quest, excl : Str -> { s : Str; p : Punct } ; + stop x = { s = x; p = FullStop } ; + quest x = { s = x; p = QuestMark } ; + excl x = { s = x; p = ExclMark } ; + +} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceSpoken.gf b/examples/peacekeeping/PeaceSpoken.gf new file mode 100644 index 000000000..59d7210f3 --- /dev/null +++ b/examples/peacekeeping/PeaceSpoken.gf @@ -0,0 +1 @@ +abstract PeaceSpoken = Peace ** {} \ No newline at end of file diff --git a/examples/peacekeeping/PeaceSyntax.gf b/examples/peacekeeping/PeaceSyntax.gf new file mode 100644 index 000000000..21b852d63 --- /dev/null +++ b/examples/peacekeeping/PeaceSyntax.gf @@ -0,0 +1,59 @@ +abstract PeaceSyntax = PeaceCat ** { + + cat + Sent ; + Quest ; + MassCN ; + + fun + PhrPos : Sent -> Phrase ; + PhrNeg : Sent -> Phrase ; + PhrQuest : Quest -> Phrase ; + PhrImp : Imp -> Phrase ; + PhrImpNeg : Imp -> Phrase ; + + PhrYes : Phrase ; + PhrNo : Phrase ; + + 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..89517d735 --- /dev/null +++ b/examples/peacekeeping/PeaceSyntaxI.gf @@ -0,0 +1,88 @@ +incomplete concrete PeaceSyntaxI of PeaceSyntax = + PeaceCatI ** open Lang,PeaceRes in { + + flags +-- optimize = all_subs ; + optimize = share ; + unlexer = text ; lexer = text ; + + lincat + Sent = {s : SForm => Str} ; + Quest = { s : Str } ; + MassCN = CN ; + + lin + PhrPos sent = stop (sent.s!SPos) ; + PhrNeg sent = stop (sent.s!SNeg) ; + PhrQuest q = quest q.s ; + PhrImp imp = excl (PhrUtt NoPConj (UttImpSg PPos imp) NoVoc).s; + PhrImpNeg imp = excl (PhrUtt NoPConj (UttImpSg PNeg imp) NoVoc).s; + + PhrYes = stop yes_Phr.s ; + PhrNo = stop 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 = 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/README b/examples/peacekeeping/README new file mode 100644 index 000000000..f17025853 --- /dev/null +++ b/examples/peacekeeping/README @@ -0,0 +1,14 @@ + + + +Some things we could use for inspiration: + +Spanish Phrase Book for First-Aid Trained Activists +http://bostoncoop.net/balm/phrasebook1.pdf + +Emergency multilingual phrasebook +http://www.dh.gov.uk/PublicationsAndStatistics/Publications/PublicationsPolicyAndGuidance/PublicationsPolicyAndGuidanceArticle/fs/en?CONTENT_ID=4073230&chk=8XboAN + +Ogden's Basic English: + +http://ogden.basic-english.org/words.html \ No newline at end of file diff --git a/examples/peacekeeping/english/PeaceCat_Eng.gf b/examples/peacekeeping/english/PeaceCat_Eng.gf new file mode 100644 index 000000000..d73e1d581 --- /dev/null +++ b/examples/peacekeeping/english/PeaceCat_Eng.gf @@ -0,0 +1,3 @@ +--# -path=.:present:prelude + +concrete PeaceCat_Eng of PeaceCat = CatEng ** PeaceCatI with (Lang = LangEng); \ 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..6ecfcf341 --- /dev/null +++ b/examples/peacekeeping/english/PeaceLexExt_Eng.gf @@ -0,0 +1,48 @@ +--# -path=.:present:prelude + +concrete PeaceLexExt_Eng of PeaceLexExt = + PeaceCat_Eng ** open ParadigmsEng, IrregEng, + LexiconEng, StructuralEng 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"; + face_N = regN "face" ; + food_N = regN "food"; + friend_N = regN "friend"; + ground_N = regN "ground" ; + knife_N = mk2N "knife" "knives" ; + landmine_N = regN "landmine" ; + map_N = regN "map" ; + medicine_N = regN "medicine" ; + police8officer_N = compoundN "police" (regN "officer") ; + skin_N = regN "skin" ; + soldier_N = regN "soldier" ; + toy_N = regN "toy" ; + translation8machine_N = compoundN "translation" (regN "machine") ; + weapon_N = regN "weapon"; + + -- Verbs + cooperate_V2 = mkV2 (regV "cooperate") (mkPrep "with") ; + cough_V = regV "cough" ; + drop_V2 = dirV2 (regDuplV "drop") ; + hurt_V = hurt_V ; + need_V2 = dirV2 (regV "need"); + own_V2 = dirV2 (regV "own") ; + show_V3 = dirdirV3 (regV "show") ; + +} diff --git a/examples/peacekeeping/english/PeacePhrases_Eng.gf b/examples/peacekeeping/english/PeacePhrases_Eng.gf new file mode 100644 index 000000000..8bcf41ce0 --- /dev/null +++ b/examples/peacekeeping/english/PeacePhrases_Eng.gf @@ -0,0 +1,12 @@ +--# -path=.:..:present:prelude + +concrete PeacePhrases_Eng of PeacePhrases = + PeaceCat_Eng ** open ResEng, PeaceRes in { + +lin + Hello = stop "hello" ; + GoodMorning = stop ["good morning"]; + GoodEvening = stop ["good evening"] ; + WhatIsNamePron p = quest (["what is"] ++ p.s!Gen ++ "name") ; + +} \ No newline at end of file diff --git a/examples/peacekeeping/english/PeaceSpoken_Eng.gf b/examples/peacekeeping/english/PeaceSpoken_Eng.gf new file mode 100644 index 000000000..bdd81bd9f --- /dev/null +++ b/examples/peacekeeping/english/PeaceSpoken_Eng.gf @@ -0,0 +1,8 @@ +--# -path=.:..:present:prelude + +concrete PeaceSpoken_Eng of PeaceSpoken = + Peace_Eng ** { + + flags startcat = PhraseSpoken ; + +} 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..dff33298b --- /dev/null +++ b/examples/peacekeeping/english/Peace_Eng.gf @@ -0,0 +1,10 @@ +--# -path=.:..:present:prelude + +concrete Peace_Eng of Peace = + PeaceSyntax_Eng, PeaceLexCommon_Eng, + PeaceLexExt_Eng, PeacePhrases_Eng + ** { + + flags startcat = PhraseWritten ; + +} diff --git a/examples/peacekeeping/finnish/PeaceCat_Fin.gf b/examples/peacekeeping/finnish/PeaceCat_Fin.gf new file mode 100644 index 000000000..b5e73aaf1 --- /dev/null +++ b/examples/peacekeeping/finnish/PeaceCat_Fin.gf @@ -0,0 +1,3 @@ +--# -path=.:present:prelude + +concrete PeaceCat_Fin of PeaceCat = CatFin ** PeaceCatI with (Lang = LangFin); diff --git a/examples/peacekeeping/finnish/PeaceLexCommon_Fin.gf b/examples/peacekeeping/finnish/PeaceLexCommon_Fin.gf new file mode 100644 index 000000000..aad047909 --- /dev/null +++ b/examples/peacekeeping/finnish/PeaceLexCommon_Fin.gf @@ -0,0 +1,5 @@ +--# -path=.:present:prelude + +concrete PeaceLexCommon_Fin of PeaceLexCommon = + PeaceCat_Fin ** PeaceLexCommonI with (Lang = LangFin) ; + diff --git a/examples/peacekeeping/finnish/PeaceLexExt_Fin.gf b/examples/peacekeeping/finnish/PeaceLexExt_Fin.gf new file mode 100644 index 000000000..eade50a49 --- /dev/null +++ b/examples/peacekeeping/finnish/PeaceLexExt_Fin.gf @@ -0,0 +1,44 @@ +--# -path=.:present:prelude + +concrete PeaceLexExt_Fin of PeaceLexExt = + PeaceCat_Fin ** open ParadigmsFin in { + + lin + + -- Adjectives + dangerous_A = regA "vaarallinen" ; + dead_A = mkA (nRae "kuollut" "kuolleena") ; + hungry_A = regA "nälkäinen" ; + large_A = regA "iso" ; + sick_A = regA "sairas" ; + + -- Nouns + air_N = regN "ilma" ; + arm_N = reg3N "käsi" "käden" "käsiä" ; + building_N = regN "rakennus" ; + car_N = regN "auto" ; + corpse_N = regN "ruumis" ; + doctor_N = regN "lääkäri"; + enemy_N = regN "vihollinen"; + face_N = regN "naama" ; ---- kasvot + food_N = regN "ruoka"; + friend_N = regN "ystävä"; + ground_N = regN "maa" ; + knife_N = reg2N "veitsi" "veitsiä" ; ---- veistä + landmine_N = regN "maamiina" ; + map_N = regN "kartta" ; + medicine_N = regN "lääke" ; + police8officer_N = regN "poliisi" ; + skin_N = regN "iho" ; + soldier_N = regN "sotilas" ; + weapon_N = regN "ase"; + + -- Verbs + cough_V = regV "yskiä" ; + drop_V2 = dirV2 (regV "pudottaa") ; + hurt_V = regV "sattua" ; + need_V2 = dirV2 (regV "tarvita"); + own_V2 = dirV2 (regV "omistaa") ; + show_V3 = dirdirV3 (regV "näyttää") ; + +} diff --git a/examples/peacekeeping/finnish/PeacePhrases_Fin.gf b/examples/peacekeeping/finnish/PeacePhrases_Fin.gf new file mode 100644 index 000000000..bd528c36b --- /dev/null +++ b/examples/peacekeeping/finnish/PeacePhrases_Fin.gf @@ -0,0 +1,14 @@ +--# -path=.:..:present:prelude + +concrete PeacePhrases_Fin of PeacePhrases = + PeaceCat_Fin ** open LangFin, ParadigmsFin, PeaceRes in { + +lin + Hello = stop "terve" ; + GoodMorning = stop ["hyvää huomenta"] ; + GoodEvening = stop ["hyvää iltaa"] ; + WhatIsNamePron p = quest (PhrUtt NoPConj (UttQS (UseQCl TPres ASimul PPos + (QuestVP whatSg_IP (UseComp (CompNP (DetCN (DetSg (SgQuant (PossPron p)) NoOrd) + (UseN (reg2N "nimi" "nimiä")))))))) NoVoc).s ; + +} \ No newline at end of file diff --git a/examples/peacekeeping/finnish/PeaceSpoken_Fin.gf b/examples/peacekeeping/finnish/PeaceSpoken_Fin.gf new file mode 100644 index 000000000..98a23732b --- /dev/null +++ b/examples/peacekeeping/finnish/PeaceSpoken_Fin.gf @@ -0,0 +1,8 @@ +--# -path=.:..:present:prelude + +concrete PeaceSpoken_Fin of PeaceSpoken = + Peace_Fin ** { + + flags startcat = PhraseSpoken ; + +} diff --git a/examples/peacekeeping/finnish/PeaceSyntax_Fin.gf b/examples/peacekeeping/finnish/PeaceSyntax_Fin.gf new file mode 100644 index 000000000..80bd821c4 --- /dev/null +++ b/examples/peacekeeping/finnish/PeaceSyntax_Fin.gf @@ -0,0 +1,5 @@ +--# -path=.:present:prelude + +concrete PeaceSyntax_Fin of PeaceSyntax = PeaceCat_Fin ** PeaceSyntaxI with + (Lang = LangFin) ; + diff --git a/examples/peacekeeping/finnish/Peace_Fin.gf b/examples/peacekeeping/finnish/Peace_Fin.gf new file mode 100644 index 000000000..f8e19d2b6 --- /dev/null +++ b/examples/peacekeeping/finnish/Peace_Fin.gf @@ -0,0 +1,10 @@ +--# -path=.:..:present:prelude + +concrete Peace_Fin of Peace = + PeaceSyntax_Fin, PeaceLexCommon_Fin, + PeaceLexExt_Fin, PeacePhrases_Fin + ** { + + flags startcat = PhraseWritten ; + optimize = all_subs ; +} diff --git a/examples/peacekeeping/mkPeace.gfs b/examples/peacekeeping/mkPeace.gfs new file mode 100644 index 000000000..169cc8480 --- /dev/null +++ b/examples/peacekeeping/mkPeace.gfs @@ -0,0 +1,4 @@ +i -optimize=share english/Peace_Eng.gf +i -optimize=share swedish/Peace_Swe.gf +s +pm | wf peace.gfcm diff --git a/examples/peacekeeping/swedish/PeaceCat_Swe.gf b/examples/peacekeeping/swedish/PeaceCat_Swe.gf new file mode 100644 index 000000000..5ccfb2ed5 --- /dev/null +++ b/examples/peacekeeping/swedish/PeaceCat_Swe.gf @@ -0,0 +1,3 @@ +--# -path=.:present:prelude + +concrete PeaceCat_Swe of PeaceCat = CatSwe ** PeaceCatI with (Lang = LangSwe); \ No newline at end of file diff --git a/examples/peacekeeping/swedish/PeaceLexCommon_Swe.gf b/examples/peacekeeping/swedish/PeaceLexCommon_Swe.gf new file mode 100644 index 000000000..8f516ff7d --- /dev/null +++ b/examples/peacekeeping/swedish/PeaceLexCommon_Swe.gf @@ -0,0 +1,5 @@ +--# -path=.:present:prelude + +concrete PeaceLexCommon_Swe of PeaceLexCommon = + PeaceCat_Swe ** PeaceLexCommonI with (Lang = LangSwe) ; + diff --git a/examples/peacekeeping/swedish/PeaceLexExt_Swe.gf b/examples/peacekeeping/swedish/PeaceLexExt_Swe.gf new file mode 100644 index 000000000..5f40fc6b6 --- /dev/null +++ b/examples/peacekeeping/swedish/PeaceLexExt_Swe.gf @@ -0,0 +1,48 @@ +--# -path=.:present:prelude + +concrete PeaceLexExt_Swe of PeaceLexExt = + PeaceCat_Swe ** open ParadigmsSwe, IrregSwe, + LexiconSwe, StructuralSwe in { + + lin + + -- Adjectives + dangerous_A = regA "farlig" ; + dead_A = regA "död" ; + hungry_A = regA "hungrig" ; + large_A = big_A ; + sick_A = regA "sjuk" ; + + -- Nouns + air_N = regN "luft" ; + arm_N = regN "arm" ; + building_N = mk2N "byggnad" "byggnader" ; + car_N = regN "bil" ; + corpse_N = mk2N "lik" "lik" ; + doctor_N = mkN "doktor" "doktorn" "doktorer" "doktorerna"; + enemy_N = mk2N "fiende" "fiender" ; + face_N = regN "ansikte" ; + food_N = regN "mat"; + friend_N = mkN "vän" "vännen" "vänner" "vännerna" ; + ground_N = mk2N "mark" "marker"; + knife_N = regN "kniv" ; + landmine_N = regN "landmina" ; + map_N = regN "karta" ; + medicine_N = mk2N "medicin" "mediciner"; + police8officer_N = mk2N "polis" "poliser" ; + skin_N = mk2N "skinn" "skinn" ; + soldier_N = mk2N "soldat" "soldater" ; + toy_N = regN "leksak" ; + translation8machine_N = mk2N "översättningsmaskin" "översättningsmaskiner"; + weapon_N = mkN "vapen" "vapnet" "vapen" "vapnen" ; + + -- Verbs + cooperate_V2 = mkV2 (regV "samarbetar") (mkPrep "med") ; + cough_V = regV "hostar" ; + drop_V2 = dirV2 (regV "släpper") ; + hurt_V = partV göra_V "ont" ; -- FIXME: "Gör ont ditt ben?" + need_V2 = dirV2 (regV "behöver"); + own_V2 = dirV2 (regV "äger") ; + show_V3 = dirdirV3 (regV "visar") ; + +} diff --git a/examples/peacekeeping/swedish/PeacePhrases_Swe.gf b/examples/peacekeeping/swedish/PeacePhrases_Swe.gf new file mode 100644 index 000000000..7f9d88014 --- /dev/null +++ b/examples/peacekeeping/swedish/PeacePhrases_Swe.gf @@ -0,0 +1,12 @@ +--# -path=.:..:present:prelude + +concrete PeacePhrases_Swe of PeacePhrases = + PeaceCat_Swe ** open CommonScand, PeaceRes in { + +lin + Hello = stop "hej" ; + GoodMorning = stop ["god morgon"] ; + GoodEvening = stop ["god kväll"] ; + WhatIsNamePron p = stop (["vad heter"] ++ p.s!NPNom) ; + +} \ No newline at end of file diff --git a/examples/peacekeeping/swedish/PeaceSpoken_Swe.gf b/examples/peacekeeping/swedish/PeaceSpoken_Swe.gf new file mode 100644 index 000000000..d622a1c07 --- /dev/null +++ b/examples/peacekeeping/swedish/PeaceSpoken_Swe.gf @@ -0,0 +1,8 @@ +--# -path=.:..:present:prelude + +concrete PeaceSpoken_Swe of PeaceSpoken = + Peace_Swe ** { + + flags startcat = PhraseSpoken ; + +} diff --git a/examples/peacekeeping/swedish/PeaceSyntax_Swe.gf b/examples/peacekeeping/swedish/PeaceSyntax_Swe.gf new file mode 100644 index 000000000..4fd59e564 --- /dev/null +++ b/examples/peacekeeping/swedish/PeaceSyntax_Swe.gf @@ -0,0 +1,5 @@ +--# -path=.:present:prelude + +concrete PeaceSyntax_Swe of PeaceSyntax = PeaceCat_Swe ** PeaceSyntaxI with + (Lang = LangSwe) ; + diff --git a/examples/peacekeeping/swedish/Peace_Swe.gf b/examples/peacekeeping/swedish/Peace_Swe.gf new file mode 100644 index 000000000..c08e227d3 --- /dev/null +++ b/examples/peacekeeping/swedish/Peace_Swe.gf @@ -0,0 +1,10 @@ +--# -path=.:..:present:prelude + +concrete Peace_Swe of Peace = + PeaceSyntax_Swe, PeaceLexCommon_Swe, + PeaceLexExt_Swe, PeacePhrases_Swe + ** { + + flags startcat = PhraseWritten ; + +}