summaryrefslogtreecommitdiff
path: root/examples/phrasebook/WordsJpn.gf
diff options
context:
space:
mode:
authorJohn J. Camilleri <john@digitalgrammars.com>2018-07-04 10:09:58 +0200
committerJohn J. Camilleri <john@digitalgrammars.com>2018-07-04 10:09:58 +0200
commitc6f4edaea5f1074ba682fac5d711016f0136998f (patch)
treebb49b8bac2e3cafd3c1f997115bf5bb841554eab /examples/phrasebook/WordsJpn.gf
parent00476ae38687fb7d33081130822cbd4e8f34cfd3 (diff)
Remove examples directory; these now live in gf-contrib
All changes have been reflected in the gf-contrib repository: https://github.com/GrammaticalFramework/gf-contrib Now, for WebSetup to build the example grammars, one must have gf-contrib cloned in the same top-level directory as GF. When this isn't the case, WebSetup displays a notice without failing.
Diffstat (limited to 'examples/phrasebook/WordsJpn.gf')
-rw-r--r--examples/phrasebook/WordsJpn.gf385
1 files changed, 0 insertions, 385 deletions
diff --git a/examples/phrasebook/WordsJpn.gf b/examples/phrasebook/WordsJpn.gf
deleted file mode 100644
index 6cc406a45..000000000
--- a/examples/phrasebook/WordsJpn.gf
+++ /dev/null
@@ -1,385 +0,0 @@
---2 Implementations of Words, with Jpnlish as example
-
-concrete WordsJpn of Words = SentencesJpn **
- open
- SyntaxJpn,
- ParadigmsJpn,
- (L = LexiconJpn),
- (P = ParadigmsJpn),
- (R = ResJpn),
--- IrregJpn,
- ExtraJpn,
- Prelude in {
-
-flags coding = utf8 ;
-
- lin
-
--- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "チーズ" R.Inanim) ; -- "chiizu"
- Chicken = mkCN (mkN "鶏" R.Inanim "切れ" False) ; -- "tori" "kire"
- Coffee = mkCN (mkN "コーヒー" R.Inanim "杯" False) ; -- "koohi" "hai" (cups of)
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "肉" R.Inanim "切れ" False) ; -- "niku" "kire"
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "ピザ" R.Inanim "枚" False) ; -- "piza" "mai" (smth flat)
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "お茶" R.Inanim "杯" False) ; -- "ocha" "hai" (cups of)
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
-
- Bad = L.bad_A ;
- Boring = mkA "つまらない" ;
- Cheap = mkA "安い" ; -- "yasui"
- Cold = L.cold_A ;
- Delicious = mkA "美味しい" ; -- "oishii"
- Expensive = mkA "高い" ; -- "takai"
- Fresh = mkA "新鮮な" ; -- "shinsenna"
- Good = L.good_A ;
- Suspect = mkA "怪しい" ; -- "ayashii"
- Warm = L.warm_A ;
-
--- Places require different prepositions to express location; in some languages
--- also the directional preposition varies, but in English we use $to$, as
--- defined by $mkPlace$.
-
- Airport = mkPlace "空港" "で" ; -- "kuukou" "de"
- AmusementPark = mkPlace "遊園地" "で" ; -- "yuuenchi" "de"
- Bank = mkPlace "銀行" "で" ; -- "ginkou" "de"
- Bar = mkPlace "バー" "で" ; -- "baa" "de"
- Cafeteria = mkPlace "食堂" "で" ; -- "shokudou" "de"
- Center = mkPlace "センター" "で" ; -- "sentaa" "de"
- Cinema = mkPlace "映画館" "で" ; -- "eigakan" "de"
- Church = mkPlace "教会" "で" ; -- "kyoukai" "de"
- Disco = mkPlace "ディスコ" "で" ; -- "disuko" "de"
- Hospital = mkPlace "病院" "で" ; -- "byouin" "de"
- Hotel = mkPlace "ホテル" "で" ; -- "hoteru" "de"
- Museum = mkPlace "博物館" "で" ; -- "hakubutsukan" "de"
- Park = mkPlace "公園" "で" ; -- "kouen" "de"
- Parking = mkPlace "駐車場" "で" ; -- "chuushajou" "de"
- Pharmacy = mkPlace "薬局" "で" ; -- "kyoukai" "de"
- PostOffice = mkPlace "郵便局" "で" ; -- "yuubinkyoku" "de"
- Pub = mkPlace "パブ" "で" ; -- "pabu" "de"
- Restaurant = mkPlace "レストラン" "で" ; -- "resutoran" "de"
- School = mkPlace "学校" "で" ; -- "gakkou" "de"
- Shop = mkPlace "商店" "で" ; -- "mise" "de"
- Station = mkPlace "駅" "で" ; -- "eki" "de"
- Supermarket = mkPlace "スーパー" "で" ; -- "suupaa" "de"
- Theatre = mkPlace "劇場" "で" ; -- "gekijou" "de"
- Toilet = mkPlace "お手洗い" "で" ; -- "otearai" "de"
- University = mkPlace "大学" "で" ; -- "daigaku" "de"
- Zoo = mkPlace "動物園" "で" ; -- "doubutsuen" "de"
-
- CitRestaurant cit = mkCNPlace (mkCN cit.prop (mkN "レストラン")) in_Prep to_Prep ; -- "resutoran"
-
-
--- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
-
- DanishCrown = mkCur "デンマーク・クローネ" | mkCur "クローナ" ; -- "denmaaku kuroune"
- Dollar = mkCur "ドル" ; -- "doru"
- Euro = mkCur "ユーロ" ; -- "yuuro"
- Lei = mkCur "レウ" ; -- "reu"
- Leva = mkCur "レフ" ; -- "refu"
- NorwegianCrown = mkCur "ノルウェー・クローネ" | mkCur "クローナ" ; -- "noruwee kuroune"
- Pound = mkCur "ポンド" ; -- "pondo"
- Rouble = mkCur "ルーブル" ; -- "ruuburu"
- Rupee = mkCur "ルピ" ; -- "rupii"
- SwedishCrown = mkCur "スウェーデン・クローナ" | mkCur "クローナ" ; -- "Suu~eeden kurouna"
- Zloty = mkCur "ズロティ" ; -- "zuroti"
- Yuan = mkCur "元" ; -- "gen"
-
--- Nationalities
-
- Belgian = {prop = mkA "ベルギー の" ; citizenship = mkNP (mkN "ベルギー 人")} ; -- "berugii no"
- Belgium = mkNP (mkPN "ベルギー") ; -- "berugii"
- Bulgarian = mkNat "ブルガリア" ; -- "burugaria"
- Catalan = mkNat "カタロニア" ; -- "kataronia"
- Chinese = mkNat"中国" ; -- "chuugoku"
- Danish = mkNat "デンマーク" ; -- "denmaaku"
- Dutch = mkNat "オランダ" ; -- "oranda"
- English = mkNPNationality (mkNP (mkPN "英語")) (mkNP (mkPN "イギリス")) -- "eigo"
- (mkA "イギリスの") (mkNP (mkPN "イギリス人")) ;
- Finnish = mkNat "フィンランド" ; -- "finrando"
- Flemish = mkNP (mkPN "フラマン 語") ; -- "furaman go"
- French = mkNat "フランス" ; -- "furansu"
- German = mkNat "ドイツ" ; -- "doitsu"
- Hindi = mkNP (mkPN "ヒンディー語") ; -- "hindii"
- India = mkNP (mkPN "インド") ; -- "indo"
- Indian = {prop = mkA "インドの" ; citizenship = mkNP (mkN "インド人")} ; -- "indo no"
- Italian = mkNat "イタリア" ; -- "itaria"
- Norwegian = mkNat "ノルウェー" ; -- "noruwee"
- Polish = mkNat "ポーランド" ; -- "porando"
- Romanian = mkNat "ルーマニア" ; -- "ruumania"
- Russian = mkNat "ロシア" ; -- "roshia"
- Spanish = mkNat "スペイン" ; -- "supein"
- Swedish = mkNat "スウェーデン" ; -- "suweeden"
-
--- Means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN "バス") ; -- "basu"
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "フェリー") ; -- "ferii"
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "地下鉄") ; -- "chikatetsu"
- Taxi = mkTransport (mkN "タクシー") ; -- "takushii"
- Train = mkTransport (mkN "電車") ; -- "densha"
- Tram = mkTransport (mkN "市電") ; -- "shiden"
-
- ByFoot = P.mkAdv "徒歩で" ; -- "toho de"
-
--- Actions: the predication patterns are very often language-dependent.
-
- AHasAge p num = mkCl p.name (mkNP num (mkNounWOCounter "歳")) ;
- AHasChildren p num = mkCl p.name (mkV2 "いる" "が" R.Gr2) (mkNP num L.child_N) ;
- AHasName p name = mkCl (nameOf p) name ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "部屋")) (SyntaxJpn.mkAdv for_Prep (mkNP num (mkNounWOCounter "人")))) ; -- "heya"
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "テーブル")) (SyntaxJpn.mkAdv for_Prep (mkNP num (mkNounWOCounter "人")))) ;
- AHungry p = mkCl p.name (P.mkV "お腹が空いている" R.Gr1) ; -- "onaka ga suite iru"
- AIll p = mkCl p.name (mkA "病気の") ;
- AKnow p = mkCl p.name mkKnow ;
- ALike p item = mkCl p.name (mkA2 "好きな" "が") item ;
- ALive p co = mkCl p.name (mkVP (mkVP (mkV "住んでいる" R.Gr2)) (SyntaxJpn.mkAdv in_Prep co)) ; -- "sundeiru"
- ALove p q = mkCl p.name (mkV2 "愛している" "を" R.Gr2) q.name ; -- "aishiteiru"
- AMarried p = mkCl p.name (mkA "結婚している" "既婚の") ; -- "kekkonshiteiru" "kikonno"
- AReady p = mkCl p.name L.ready_A ;
- AScared p = mkCl p.name (mkA "怖い") ;
- ASpeak p lang = mkCl p.name L.speak_V2 lang ;
- AThirsty p = mkCl p.name (mkA "喉が乾いている" "渇した") ;
- -- "nodo ga kawaiteiru" "kasshita"
- ATired p = mkCl p.name (mkA "疲れている" "疲れた") ;
- -- "tsukareteiru" "tsukareta"
- AUnderstand p = case p.name.meaning of {
- R.SomeoneElse => mkCl p.name (v2toVP L.understand_V2) ;
- R.Me => mkCl p.name (mkV "分かる" R.Gr1) -- "wakaru"
- } ;
- AWant p obj = case (p.name).meaning of {
- R.Me => mkCl p.name (mkA2 "欲しい" "が") obj ;
- R.SomeoneElse => mkCl p.name (mkA2 "欲しがっている" "欲しい" "が") obj
- } ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl (mkIComp whatSg_IP) (nameOf p)) ;
- QWhatAge p = mkQS (mkQCl howOld_IAdv (mkCl p.name R.mkCopula)) ;
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "かかる"))) ;
- ItCost item price = mkCl item (mkV2 "かかる" "" R.Gr1) price ;
-
- PropOpen p = mkCl p.name mkOpen ;
- PropClosed p = mkCl p.name mkClosed ;
- PropOpenDate p d = mkCl p.name (mkVP (mkVP mkOpen) d) ;
- PropClosedDate p d = mkCl p.name (mkVP (mkVP mkClosed) d) ;
- PropOpenDay p d = mkCl p.name (mkVP (mkVP mkOpen) d.habitual) ;
- PropClosedDay p d = mkCl p.name (mkVP (mkVP mkClosed) d.habitual) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (mkPhrase (mkUtt d)) (lin Text (ss ("会いましょう"))) ; -- "aimashou"
- PSeeYouPlace p = mkText (mkPhrase (mkUtt p.at)) (lin Text (ss ("会いましょう"))) ; -- "aimashou"
- PSeeYouPlaceDate p d =
- mkText (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d)))
- (lin Text (ss ("会いましょう"))) ; -- "aimashou"
-
--- Relations are expressed as "my wife" or "my son's wife", as defined by $xOf$
--- below. Languages without productive genitives must use an equivalent of
--- "the wife of my son" for non-pronouns.
-
- Wife = xOf (mkN "妻" "奥さん" R.Anim "人" False "妻たち") ; -- "tsuma" "okusan"
- Husband = xOf (mkN "夫" "ご主人" R.Anim "人" False "夫たち") ; -- "otto" "goshujin"
- Son = xOf (mkN "息子" "息子さん" R.Anim "人" False "息子たち") ; -- "musuko"
- Daughter = xOf (mkN "娘" "お嬢さん" R.Anim "人" False "娘たち") ; -- "musume" "ojousan"
- Children = xOf L.child_N ;
-
--- week days
-
- Monday = mkDay "月曜日" ; -- "getsuyoubi"
- Tuesday = mkDay "火曜日" ; -- "kayoubi"
- Wednesday = mkDay "水曜日" ; -- "suiyoubi"
- Thursday = mkDay "木曜日" ; -- "mokuyoubi"
- Friday = mkDay "金曜日" ; -- "kin'youbi"
- Saturday = mkDay "土曜日" ; -- "doyoubi"
- Sunday = mkDay "日曜日" ; -- "nichiyoubi"
-
- Tomorrow = P.mkAdv "明日" ; -- "ashita"
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "安い") ; -- "yasui"
- TheMostExpensive = mkSuperl (mkA "高い") ; -- "takai"
- TheMostPopular = mkSuperl (mkA "盛んな") ; -- "sakanna"
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
--- transports
-
- HowFar place = mkQS (mkQCl howFar_IAdv (mkCl place.name (mkA "遠い"))) ;
- HowFarFrom x y =
- mkQS (mkQCl howFar_IAdv (mkCl (mkNP y.name (SyntaxJpn.mkAdv from_Prep x.name)) (mkA "遠い"))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl howFar_IAdv (mkCl
- (mkNP y.name (SyntaxJpn.mkAdv from_Prep (mkNP x.name t))) (mkA "遠い"))) ;
- HowFarBy y t = mkQS (mkQCl howFar_IAdv (mkCl (mkNP y.name t) (mkA "遠い"))) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
-
-
--- auxiliaries
-
- oper
-
- mkNat : Str -> NPNationality = \co ->
- mkNPNationality (mkNP (mkPN (co + "語"))) (mkNP (mkPN co))
- (mkA (co + "の")) (mkNP (mkPN (co + "人"))) ; ---- mkA ...
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day : NP = mkNP (mkPN d) in
- mkNPDay day (SyntaxJpn.mkAdv in_Prep day)
- (SyntaxJpn.mkAdv in_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
-
- mkCompoundPlace : Str -> Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \comp, p, i ->
- mkCNPlace (mkCN (P.mkN (comp + p))) (P.mkPrep i) to_Prep ;
-
- mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN (mkN p)) (P.mkPrep i) to_Prep ;
-
- xOf : N -> NPPerson -> NPPerson = \f,p ->
- {name = mkNP the_Det (mkCN f (SyntaxJpn.mkAdv possess_Prep p.name)) ;
- isPron = False ; poss = the_Quant} ; ---- poss not used
-
- mkOpen : A = mkA "開いている" "開いた" ; -- "aiteiru"
- mkClosed : A = mkA "閉まっている" "閉まった" ; -- "shimatteiru"
-
- nameOf : NPPerson -> NP = \p -> (xOf (mkN "名前") p).name ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxJpn.mkAdv by8means_Prep (mkNP n)
- } ;
-
- mkSuperl : A -> Det = \a -> SyntaxJpn.mkDet the_Art (SyntaxJpn.mkOrd a) ;
-
- howFar_IAdv : IAdv = lin IAdv {s = \\st => "どのくらい" ; particle = "" ; wh8re = False} ;
-
- howOld_IAdv : IAdv = lin IAdv {s = \\st => "何歳" ; particle = "" ; wh8re = False} ;
-
- mkCur : Str -> Currency = \c -> lin Currency (lin CN {
- s = \\n,st => c ;
- anim = R.Inanim ;
- counter = c ;
- counterReplace = True ;
- counterTsu, hasAttr = False ;
- object, prepositive = \\st => ""
- } ) ;
-
- mkNounWOCounter : Str -> CN = \noun -> lin CN {
- s = \\n,st => noun ;
- anim = R.Inanim ;
- counter = noun ;
- counterReplace = True ;
- counterTsu, hasAttr = False ;
- object, prepositive = \\st => ""
- } ;
-
- mkKnow : V = lin V {
- s = table {
- R.Resp => table {
- (R.TPres|R.TFut) => table {
- R.Pos => "知っています" ;
- R.Neg => "知りません"
- } ;
- R.TPast => table {
- R.Pos => "知っていました" ;
- R.Neg => "知りませんでした"
- }
- } ;
- R.Plain => table {
- (R.TPres|R.TFut) => table {
- R.Pos => "知っている" ;
- R.Neg => "知らない"
- } ;
- R.TPast => table {
- R.Pos => "知っていた" ;
- R.Neg => "知らなかった"
- }
- }
- } ;
- te = table {
- R.Pos => "知って" ;
- R.Neg => "知らないで"
- } ;
- a_stem = "知ら" ;
- i_stem = "知り" ;
- ba = table {
- R.Pos => "知れば" ;
- R.Neg => "知らなければ"
- } ;
- needSubject = True
- } ;
-
---------------------------------------------------
--- New 30/11/2011 AR
---------------------------------------------------
-
- lin
- Thai = mkNat "タイ" ; -- "tai"
- Baht = mkCur "バーツ" ; -- "baatsu"
-
- Rice = mkCN (mkN "ご飯") ; -- "gohan"
- Pork = mkCN (mkN "豚肉") ; -- "butaniku"
- Beef = mkCN (mkN "牛肉") ; -- "gyuuniku"
- Egg = mkCN L.egg_N ;
- Noodles = mkCN (mkN "ヌードル") ; -- "nuudoru"
- Shrimps = mkCN (mkN "海老") ; -- "ebi"
- Chili = mkCN (mkN "チリ") ; -- "chiri"
- Garlic = mkCN (mkN "大蒜") ; -- "ninniku"
- Durian = mkCN (mkN "ドリアン") ; -- "dorian"
- Mango = mkCN (mkN "マンゴ") ; -- "mango"
- Pineapple = mkCN (mkN "パイナップル") ; -- "painappuru"
- Coke = mkCN (mkN "コーク") ; -- "kooku"
- IceCream = mkCN (mkN "アイスクリーム") ; -- "aisukuriimu"
- Salad = mkCN (mkN "サラダ") ; -- "sarada"
- OrangeJuice = mkCN (mkN "オレンジジュース") ; -- "orenjijuusu"
- Lemonade = mkCN (mkN "レモネード") ; -- "remoneedo"
-
- Beach = mkPlace "beach" "on" ;
-
- ItsRaining = mkCl (mkVP R.mkRain) ;
- ItsCold = mkCl (mkVP L.cold_A) ;
- ItsWarm = mkCl (mkVP L.warm_A) ;
- ItsWindy = mkCl (mkVP (P.mkA "風が強い")) ;
- SunShine = mkCl (mkNP L.sun_N) (mkVP (mkV "輝いている" R.Gr2)) ;
- -- "taiyou wa kagayaite iru"
-
- Smoke = mkVP (P.mkV "煙草を吸う" R.Gr1) ; -- "tabako o suu"
-
- ADoctor = mkProfession (mkN "医者") ; -- "isha"
- AProfessor = mkProfession (mkN "教授") ; -- "kyouju"
- ALawyer = mkProfession (mkN "弁護士") ; -- "bengoshi"
- AEngineer = mkProfession (mkN "技術者") ; -- "gijutsusha"
- ATeacher = mkProfession (mkN "先生") ; -- "sensei"
- ACook = mkProfession (mkN "料理人") ; -- "ryourinin"
- AStudent = mkProfession (mkN "学生") ; -- "gakusei"
- ABusinessman = mkProfession (mkN "実業家") ; -- "jitsugyouka"
-
- oper
- mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name n ;
-}