mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-23 09:52:55 -06:00
patchJpn
This commit is contained in:
@@ -1,27 +1,30 @@
|
|||||||
concrete GreetingsJpn of Greetings = SentencesJpn [Greeting,mkGreeting] ** open Prelude in {
|
concrete GreetingsJpn of Greetings = SentencesJpn [Greeting,mkGreeting] ** open Prelude in {
|
||||||
|
|
||||||
|
flags coding = utf8 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
GBye = mkGreeting "bye" ;
|
GBye = mkGreeting "バイ" ;
|
||||||
GCheers = mkGreeting "cheers" ;
|
GCheers = mkGreeting "かんぱい" ;
|
||||||
GDamn = mkGreeting "damn" ;
|
GDamn = mkGreeting "くそ" ;
|
||||||
GExcuse, GExcusePol = mkGreeting "excuse me" ;
|
GExcuse, GExcusePol = mkGreeting "すみません" ;
|
||||||
GGoodDay = mkGreeting "good afternoon" ; ----
|
GGoodDay, GHello = mkGreeting "こんにちは" ; ----
|
||||||
GGoodEvening = mkGreeting "good evening" ;
|
GGoodEvening = mkGreeting "こんばんは" ;
|
||||||
GGoodMorning = mkGreeting "good morning" ;
|
GGoodMorning = mkGreeting "おはようございます" ;
|
||||||
GGoodNight = mkGreeting "good night" ;
|
GGoodNight = mkGreeting "おやすみなさい" ;
|
||||||
GGoodbye = mkGreeting "goodbye" ;
|
GGoodbye = mkGreeting "さようなら" ;
|
||||||
GHello = mkGreeting "hello" ;
|
GHelp = mkGreeting "助けて" ;
|
||||||
GHelp = mkGreeting "help" ;
|
GHowAreYou = mkGreeting "お元気ですか" ;
|
||||||
GHowAreYou = mkGreeting "how are you" ;
|
GLookOut = mkGreeting "危ない" ;
|
||||||
GLookOut = mkGreeting "look out" ;
|
GNiceToMeetYou = mkGreeting "初めまして" ;
|
||||||
GNiceToMeetYou, GNiceToMeetYouPol = mkGreeting "nice to meet you" ;
|
GPleaseGive = mkGreeting "ください" ;
|
||||||
GPleaseGive, GPleaseGivePol = mkGreeting "please" ;
|
GPleaseGivePol = mkGreeting "お願いします" ;
|
||||||
GSeeYouSoon = mkGreeting "see you soon" ;
|
GSeeYouSoon = mkGreeting "またね" ;
|
||||||
GSorry, GSorryPol = mkGreeting "sorry" ;
|
GSorry = mkGreeting "ごめんなさい" ;
|
||||||
GThanks = mkGreeting "thank you" ;
|
GSorryPol = mkGreeting "申し訳ありません" ;
|
||||||
GTheCheck = mkGreeting "the bill" ;
|
GThanks = mkGreeting "ありがとう" ;
|
||||||
GCongratulations = mkGreeting "congratulations";
|
GTheCheck = mkGreeting "会計" ;
|
||||||
GHappyBirthday = mkGreeting "happy birthday" ;
|
GCongratulations = mkGreeting "お目出度うご座います";
|
||||||
GGoodLuck = mkGreeting "good luck" ;
|
GHappyBirthday = mkGreeting "お誕生日おめでとうございます" ;
|
||||||
GWhatTime = mkGreeting "what time is it" | mkGreeting "what is the time" ;
|
GGoodLuck = mkGreeting "がんばってください" ;
|
||||||
|
GWhatTime = mkGreeting "今何時ですか" ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,21 @@ concrete SentencesJpn of Sentences = NumeralJpn **
|
|||||||
VDrink,VEat,VRead,VWait,VWrite,
|
VDrink,VEat,VRead,VWait,VWrite,
|
||||||
phrasePlease, mkSentence, mkPhrase,
|
phrasePlease, mkSentence, mkPhrase,
|
||||||
NameNN,
|
NameNN,
|
||||||
PSentence, PQuestion, GObjectPlease
|
PSentence, PQuestion, GObjectPlease,
|
||||||
|
ACitizen, Citizenship, CitiNat, Nationality, NPNationality, mkNPNationality, PropCit, PCitizenship
|
||||||
]
|
]
|
||||||
with
|
with
|
||||||
(Syntax = SyntaxJpn),
|
(Syntax = SyntaxJpn),
|
||||||
-- (Symbolic = SymbolicJpn),
|
-- (Symbolic = SymbolicJpn),
|
||||||
(Lexicon = LexiconJpn) ** open SyntaxJpn, ParadigmsJpn in {
|
(Lexicon = LexiconJpn) ** open SyntaxJpn, ParadigmsJpn in {
|
||||||
|
|
||||||
|
flags coding = utf8 ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
|
||||||
|
Citizenship = NPCitizenship ;
|
||||||
|
Nationality = NPNationality ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
VDrink = v2toVP drink_V2 ;
|
VDrink = v2toVP drink_V2 ;
|
||||||
VEat = v2toVP eat_V2 ;
|
VEat = v2toVP eat_V2 ;
|
||||||
@@ -25,6 +32,14 @@ lin
|
|||||||
|
|
||||||
GObjectPlease o = lin Text (mkPhr noPConj (mkUtt o) please_Voc) | lin Text (mkPhr (mkUtt o)) ;
|
GObjectPlease o = lin Text (mkPhr noPConj (mkUtt o) please_Voc) | lin Text (mkPhr (mkUtt o)) ;
|
||||||
|
|
||||||
|
ACitizen p n = mkCl p.name n.citizenship ;
|
||||||
|
|
||||||
|
CitiNat n = {prop = n.prop ; citizenship = n.citizenship} ;
|
||||||
|
|
||||||
|
PropCit c = c.prop ;
|
||||||
|
|
||||||
|
PCitizenship x = mkPhrase (mkUtt x.citizenship) ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
v2toVP : V2 -> VP = \v2 -> mkVP <lin V (v2 ** {needSubject = True}) : V> ;
|
v2toVP : V2 -> VP = \v2 -> mkVP <lin V (v2 ** {needSubject = True}) : V> ;
|
||||||
|
|
||||||
@@ -33,4 +48,15 @@ oper
|
|||||||
mkPhrase : Utt -> Text = \u -> lin Text (mkPhr u) ; -- no punctuation
|
mkPhrase : Utt -> Text = \u -> lin Text (mkPhr u) ; -- no punctuation
|
||||||
mkSentence : Utt -> Text = \t -> lin Text (postfixSS "." (mkPhr t) | (mkPhr t)) ; -- optional .
|
mkSentence : Utt -> Text = \t -> lin Text (postfixSS "." (mkPhr t) | (mkPhr t)) ; -- optional .
|
||||||
|
|
||||||
|
NPCitizenship : Type = {prop : A ; citizenship : NP} ;
|
||||||
|
|
||||||
|
NPNationality : Type = NPCitizenship ** {lang : NP ; country : NP} ;
|
||||||
|
|
||||||
|
mkNPNationality : NP -> NP -> A -> NP -> NPNationality = \la,co,pro,ci ->
|
||||||
|
{lang = la ;
|
||||||
|
country = co ;
|
||||||
|
prop = pro ;
|
||||||
|
citizenship = ci
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,9 +6,13 @@ concrete WordsJpn of Words = SentencesJpn **
|
|||||||
ParadigmsJpn,
|
ParadigmsJpn,
|
||||||
(L = LexiconJpn),
|
(L = LexiconJpn),
|
||||||
(P = ParadigmsJpn),
|
(P = ParadigmsJpn),
|
||||||
|
(R = ResJpn),
|
||||||
-- IrregJpn,
|
-- IrregJpn,
|
||||||
ExtraJpn,
|
ExtraJpn,
|
||||||
Prelude in {
|
Prelude in {
|
||||||
|
|
||||||
|
flags coding = utf8 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
-- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
|
-- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
|
||||||
@@ -16,197 +20,205 @@ concrete WordsJpn of Words = SentencesJpn **
|
|||||||
Apple = mkCN L.apple_N ;
|
Apple = mkCN L.apple_N ;
|
||||||
Beer = mkCN L.beer_N ;
|
Beer = mkCN L.beer_N ;
|
||||||
Bread = mkCN L.bread_N ;
|
Bread = mkCN L.bread_N ;
|
||||||
Cheese = mkCN (mkN "cheese") ;
|
Cheese = mkCN (mkN "チーズ" R.Inanim) ; -- "chiizu"
|
||||||
Chicken = mkCN (mkN "chicken") ;
|
Chicken = mkCN (mkN "鶏" R.Inanim "切れ" False) ; -- "tori" "kire"
|
||||||
Coffee = mkCN (mkN "coffee") ;
|
Coffee = mkCN (mkN "コーヒー" R.Inanim "杯" False) ; -- "koohi" "hai" (cups of)
|
||||||
Fish = mkCN L.fish_N ;
|
Fish = mkCN L.fish_N ;
|
||||||
Meat = mkCN (mkN "meat") ;
|
Meat = mkCN (mkN "肉" R.Inanim "切れ" False) ; -- "niku" "kire"
|
||||||
Milk = mkCN L.milk_N ;
|
Milk = mkCN L.milk_N ;
|
||||||
Pizza = mkCN (mkN "pizza") ;
|
Pizza = mkCN (mkN "ピザ" R.Inanim "枚" False) ; -- "piza" "mai" (smth flat)
|
||||||
Salt = mkCN L.salt_N ;
|
Salt = mkCN L.salt_N ;
|
||||||
Tea = mkCN (mkN "tea") ;
|
Tea = mkCN (mkN "お茶" R.Inanim "杯" False) ; -- "ocha" "hai" (cups of)
|
||||||
Water = mkCN L.water_N ;
|
Water = mkCN L.water_N ;
|
||||||
Wine = mkCN L.wine_N ;
|
Wine = mkCN L.wine_N ;
|
||||||
|
|
||||||
-- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
|
-- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
|
||||||
|
|
||||||
Bad = L.bad_A ;
|
Bad = L.bad_A ;
|
||||||
-- Boring = mkA "boring" ;
|
Boring = mkA "つまらない" ;
|
||||||
-- Cheap = mkA "cheap" ;
|
Cheap = mkA "安い" ; -- "yasui"
|
||||||
Cold = L.cold_A ;
|
Cold = L.cold_A ;
|
||||||
-- Delicious = mkA "delicious" ;
|
Delicious = mkA "美味しい" ; -- "oishii"
|
||||||
-- Expensive = mkA "expensive" ;
|
Expensive = mkA "高い" ; -- "takai"
|
||||||
-- Fresh = mkA "fresh" ;
|
Fresh = mkA "新鮮な" ; -- "shinsenna"
|
||||||
Good = L.good_A ;
|
Good = L.good_A ;
|
||||||
-- Suspect = mkA "suspect" ;
|
Suspect = mkA "怪しい" ; -- "ayashii"
|
||||||
Warm = L.warm_A ;
|
Warm = L.warm_A ;
|
||||||
|
|
||||||
-- Places require different prepositions to express location; in some languages
|
-- Places require different prepositions to express location; in some languages
|
||||||
-- also the directional preposition varies, but in English we use $to$, as
|
-- also the directional preposition varies, but in English we use $to$, as
|
||||||
-- defined by $mkPlace$.
|
-- defined by $mkPlace$.
|
||||||
|
|
||||||
Airport = mkPlace "airport" "at" ;
|
Airport = mkPlace "空港" "で" ; -- "kuukou" "de"
|
||||||
AmusementPark = mkCompoundPlace "amusement" "park" "at" ;
|
AmusementPark = mkPlace "遊園地" "で" ; -- "yuuenchi" "de"
|
||||||
Bank = mkPlace "bank" "at" ;
|
Bank = mkPlace "銀行" "で" ; -- "ginkou" "de"
|
||||||
Bar = mkPlace "bar" "in" ;
|
Bar = mkPlace "バー" "で" ; -- "baa" "de"
|
||||||
Cafeteria = mkPlace "canteen" "in" ;
|
Cafeteria = mkPlace "食堂" "で" ; -- "shokudou" "de"
|
||||||
Center = mkPlace "center" "in" ;
|
Center = mkPlace "センター" "で" ; -- "sentaa" "de"
|
||||||
Cinema = mkPlace "cinema" "at" ;
|
Cinema = mkPlace "映画館" "で" ; -- "eigakan" "de"
|
||||||
Church = mkPlace "church" "in" ;
|
Church = mkPlace "教会" "で" ; -- "kyoukai" "de"
|
||||||
Disco = mkPlace "disco" "at" ;
|
Disco = mkPlace "ディスコ" "で" ; -- "disuko" "de"
|
||||||
Hospital = mkPlace "hospital" "in" ;
|
Hospital = mkPlace "病院" "で" ; -- "byouin" "de"
|
||||||
Hotel = mkPlace "hotel" "in" ;
|
Hotel = mkPlace "ホテル" "で" ; -- "hoteru" "de"
|
||||||
Museum = mkPlace "museum" "at" ;
|
Museum = mkPlace "博物館" "で" ; -- "hakubutsukan" "de"
|
||||||
Park = mkPlace "park" "in" ;
|
Park = mkPlace "公園" "で" ; -- "kouen" "de"
|
||||||
Parking = mkCompoundPlace "car" "park" "in" ;
|
Parking = mkPlace "駐車場" "で" ; -- "chuushajou" "de"
|
||||||
Pharmacy = mkPlace "pharmacy" "at" ;
|
Pharmacy = mkPlace "薬局" "で" ; -- "kyoukai" "de"
|
||||||
PostOffice = mkCompoundPlace "post" "office" "at" ;
|
PostOffice = mkPlace "郵便局" "で" ; -- "yuubinkyoku" "de"
|
||||||
Pub = mkPlace "pub" "at" ;
|
Pub = mkPlace "パブ" "で" ; -- "pabu" "de"
|
||||||
Restaurant = mkPlace "restaurant" "in" ;
|
Restaurant = mkPlace "レストラン" "で" ; -- "resutoran" "de"
|
||||||
School = mkPlace "school" "at" ;
|
School = mkPlace "学校" "で" ; -- "gakkou" "de"
|
||||||
Shop = mkPlace "shop" "at" ;
|
Shop = mkPlace "商店" "で" ; -- "mise" "de"
|
||||||
Station = mkPlace "station" "at" ;
|
Station = mkPlace "駅" "で" ; -- "eki" "de"
|
||||||
Supermarket = mkPlace "supermarket" "at" ;
|
Supermarket = mkPlace "スーパー" "で" ; -- "suupaa" "de"
|
||||||
Theatre = mkPlace "theatre" "at" ;
|
Theatre = mkPlace "劇場" "で" ; -- "gekijou" "de"
|
||||||
Toilet = mkPlace "toilet" "in" ;
|
Toilet = mkPlace "お手洗い" "で" ; -- "otearai" "de"
|
||||||
University = mkPlace "university" "at" ;
|
University = mkPlace "大学" "で" ; -- "daigaku" "de"
|
||||||
Zoo = mkPlace "zoo" "at" ;
|
Zoo = mkPlace "動物園" "で" ; -- "doubutsuen" "de"
|
||||||
|
|
||||||
CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant")) in_Prep to_Prep ;
|
CitRestaurant cit = mkCNPlace (mkCN cit.prop (mkN "レストラン")) in_Prep to_Prep ; -- "resutoran"
|
||||||
|
|
||||||
|
|
||||||
-- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
|
-- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
|
||||||
|
|
||||||
---- DanishCrown = mkCN (mkA "Danish") (mkN "crown") | mkCN (mkN "crown") ;
|
DanishCrown = mkCur "デンマーク・クローネ" | mkCur "クローナ" ; -- "denmaaku kuroune"
|
||||||
Dollar = mkCN (mkN "dollar") ;
|
Dollar = mkCur "ドル" ; -- "doru"
|
||||||
Euro = mkCN (mkN "euro") ; -- to prevent euroes
|
Euro = mkCur "ユーロ" ; -- "yuuro"
|
||||||
Lei = mkCN (mkN "leu") ;
|
Lei = mkCur "レウ" ; -- "reu"
|
||||||
Leva = mkCN (mkN "lev") ;
|
Leva = mkCur "レフ" ; -- "refu"
|
||||||
---- NorwegianCrown = mkCN (mkA "Norwegian") (mkN "crown") | mkCN (mkN "crown") ;
|
NorwegianCrown = mkCur "ノルウェー・クローネ" | mkCur "クローナ" ; -- "noruwee kuroune"
|
||||||
Pound = mkCN (mkN "pound") ;
|
Pound = mkCur "ポンド" ; -- "pondo"
|
||||||
Rouble = mkCN (mkN "rouble") ;
|
Rouble = mkCur "ルーブル" ; -- "ruuburu"
|
||||||
Rupee = mkCN (mkN "rupee") ;
|
Rupee = mkCur "ルピ" ; -- "rupii"
|
||||||
---- SwedishCrown = mkCN (mkA "Swedish") (mkN "crown") | mkCN (mkN "crown") ;
|
SwedishCrown = mkCur "スウェーデン・クローナ" | mkCur "クローナ" ; -- "Suu~eeden kurouna"
|
||||||
Zloty = mkCN (mkN "zloty") ;
|
Zloty = mkCur "ズロティ" ; -- "zuroti"
|
||||||
Yuan = mkCN (mkN "yuan") ;
|
Yuan = mkCur "元" ; -- "gen"
|
||||||
|
|
||||||
-- Nationalities
|
-- Nationalities
|
||||||
|
|
||||||
-- Belgian = mkA "Belgian" ;
|
Belgian = {prop = mkA "ベルギー の" ; citizenship = mkNP (mkN "ベルギー 人")} ; -- "berugii no"
|
||||||
Belgium = mkNP (mkPN "Belgium") ;
|
Belgium = mkNP (mkPN "ベルギー") ; -- "berugii"
|
||||||
Bulgarian = mkNat "Bulgarian" "Bulgaria" ;
|
Bulgarian = mkNat "ブルガリア" ; -- "burugaria"
|
||||||
---- Catalan = mkNPNationality (mkNP (mkPN "Catalan")) (mkNP (mkPN "Catalonia")) (mkA "Catalonian") ;
|
Catalan = mkNat "カタロニア" ; -- "kataronia"
|
||||||
Chinese = mkNat "Chinese" "China" ;
|
Chinese = mkNat"中国" ; -- "chuugoku"
|
||||||
Danish = mkNat "Danish" "Denmark" ;
|
Danish = mkNat "デンマーク" ; -- "denmaaku"
|
||||||
---- Dutch = mkNPNationality (mkNP (mkPN "Dutch")) (mkNP the_Quant (mkN "Netherlands")) (mkA "Dutch") ;
|
Dutch = mkNat "オランダ" ; -- "oranda"
|
||||||
English = mkNat "English" "England" ;
|
English = mkNPNationality (mkNP (mkPN "英語")) (mkNP (mkPN "イギリス")) -- "eigo"
|
||||||
Finnish = mkNat "Finnish" "Finland" ;
|
(mkA "イギリスの") (mkNP (mkPN "イギリス人")) ;
|
||||||
Flemish = mkNP (mkPN "Flemish") ;
|
Finnish = mkNat "フィンランド" ; -- "finrando"
|
||||||
French = mkNat "French" "France" ;
|
Flemish = mkNP (mkPN "フラマン 語") ; -- "furaman go"
|
||||||
German = mkNat "German" "Germany" ;
|
French = mkNat "フランス" ; -- "furansu"
|
||||||
Hindi = mkNP (mkPN "Hindi") ;
|
German = mkNat "ドイツ" ; -- "doitsu"
|
||||||
India = mkNP (mkPN "India") ;
|
Hindi = mkNP (mkPN "ヒンディー語") ; -- "hindii"
|
||||||
---- Indian = mkA "Indian" ;
|
India = mkNP (mkPN "インド") ; -- "indo"
|
||||||
Italian = mkNat "Italian" "Italy" ;
|
Indian = {prop = mkA "インドの" ; citizenship = mkNP (mkN "インド人")} ; -- "indo no"
|
||||||
Norwegian = mkNat "Norwegian" "Norway" ;
|
Italian = mkNat "イタリア" ; -- "itaria"
|
||||||
Polish = mkNat "Polish" "Poland" ;
|
Norwegian = mkNat "ノルウェー" ; -- "noruwee"
|
||||||
Romanian = mkNat "Romanian" "Romania" ;
|
Polish = mkNat "ポーランド" ; -- "porando"
|
||||||
Russian = mkNat "Russian" "Russia" ;
|
Romanian = mkNat "ルーマニア" ; -- "ruumania"
|
||||||
Spanish = mkNat "Spanish" "Spain" ;
|
Russian = mkNat "ロシア" ; -- "roshia"
|
||||||
Swedish = mkNat "Swedish" "Sweden" ;
|
Spanish = mkNat "スペイン" ; -- "supein"
|
||||||
|
Swedish = mkNat "スウェーデン" ; -- "suweeden"
|
||||||
|
|
||||||
-- Means of transportation
|
-- Means of transportation
|
||||||
|
|
||||||
Bike = mkTransport L.bike_N ;
|
Bike = mkTransport L.bike_N ;
|
||||||
Bus = mkTransport (mkN "bus") ;
|
Bus = mkTransport (mkN "バス") ; -- "basu"
|
||||||
Car = mkTransport L.car_N ;
|
Car = mkTransport L.car_N ;
|
||||||
Ferry = mkTransport (mkN "ferry") ;
|
Ferry = mkTransport (mkN "フェリー") ; -- "ferii"
|
||||||
Plane = mkTransport L.airplane_N ;
|
Plane = mkTransport L.airplane_N ;
|
||||||
Subway = mkTransport (mkN "subway") ;
|
Subway = mkTransport (mkN "地下鉄") ; -- "chikatetsu"
|
||||||
Taxi = mkTransport (mkN "taxi") ;
|
Taxi = mkTransport (mkN "タクシー") ; -- "takushii"
|
||||||
Train = mkTransport (mkN "train") ;
|
Train = mkTransport (mkN "電車") ; -- "densha"
|
||||||
Tram = mkTransport (mkN "tram") ;
|
Tram = mkTransport (mkN "市電") ; -- "shiden"
|
||||||
|
|
||||||
ByFoot = P.mkAdv "by foot" ;
|
ByFoot = P.mkAdv "徒歩で" ; -- "toho de"
|
||||||
|
|
||||||
-- Actions: the predication patterns are very often language-dependent.
|
-- Actions: the predication patterns are very often language-dependent.
|
||||||
|
|
||||||
AHasAge p num = mkCl p.name (mkNP (mkNP num L.year_N) (ParadigmsJpn.mkAdv "old"));
|
AHasAge p num = mkCl p.name (mkNP num (mkNounWOCounter "歳")) ;
|
||||||
AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
|
AHasChildren p num = mkCl p.name (mkV2 "いる" "が" R.Gr2) (mkNP num L.child_N) ;
|
||||||
AHasRoom p num = mkCl p.name have_V2
|
|
||||||
(mkNP (mkNP a_Det (mkN "room")) (SyntaxJpn.mkAdv for_Prep (mkNP num (mkN "person")))) ;
|
|
||||||
AHasTable p num = mkCl p.name have_V2
|
|
||||||
(mkNP (mkNP a_Det (mkN "table")) (SyntaxJpn.mkAdv for_Prep (mkNP num (mkN "person")))) ;
|
|
||||||
AHasName p name = mkCl (nameOf p) name ;
|
AHasName p name = mkCl (nameOf p) name ;
|
||||||
-- AHungry p = mkCl p.name (mkA "hungry") ;
|
AHasRoom p num = mkCl p.name have_V2
|
||||||
-- AIll p = mkCl p.name (mkA "ill") ;
|
(mkNP (mkNP a_Det (mkN "部屋")) (SyntaxJpn.mkAdv for_Prep (mkNP num (mkNounWOCounter "人")))) ; -- "heya"
|
||||||
AKnow p = mkCl p.name (v2toVP L.know_V2) ;
|
AHasTable p num = mkCl p.name have_V2
|
||||||
ALike p item = mkCl p.name L.like_V2 item ;
|
(mkNP (mkNP a_Det (mkN "テーブル")) (SyntaxJpn.mkAdv for_Prep (mkNP num (mkNounWOCounter "人")))) ;
|
||||||
ALive p co = mkCl p.name (mkVP (mkVP L.live_V) (SyntaxJpn.mkAdv in_Prep co)) ;
|
AHungry p = mkCl p.name (P.mkV "お腹が空いている" R.Gr1) ; -- "onaka ga suite iru"
|
||||||
ALove p q = mkCl p.name L.love_V2 q.name ;
|
AIll p = mkCl p.name (mkA "病気の") ;
|
||||||
-- AMarried p = mkCl p.name (mkA "married") ;
|
AKnow p = mkCl p.name mkKnow ;
|
||||||
-- AReady p = mkCl p.name (mkA "ready") ;
|
ALike p item = mkCl p.name (mkA2 "好きな" "が") item ;
|
||||||
-- AScared p = mkCl p.name (mkA "scared") ;
|
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 ;
|
ASpeak p lang = mkCl p.name L.speak_V2 lang ;
|
||||||
-- AThirsty p = mkCl p.name (mkA "thirsty") ;
|
AThirsty p = mkCl p.name (mkA "喉が乾いている" "渇した") ;
|
||||||
-- ATired p = mkCl p.name (mkA "tired") ;
|
-- "nodo ga kawaiteiru" "kasshita"
|
||||||
AUnderstand p = mkCl p.name (v2toVP L.understand_V2) ;
|
ATired p = mkCl p.name (mkA "疲れている" "疲れた") ;
|
||||||
AWant p obj = mkCl p.name (mkV2 "want") obj ;
|
-- "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) ;
|
AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
|
||||||
|
|
||||||
-- miscellaneous
|
-- miscellaneous
|
||||||
|
|
||||||
QWhatName p = mkQS (mkQCl (mkIComp whatSg_IP) (nameOf p)) ;
|
QWhatName p = mkQS (mkQCl (mkIComp whatSg_IP) (nameOf p)) ;
|
||||||
-- QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
|
QWhatAge p = mkQS (mkQCl howOld_IAdv (mkCl p.name R.mkCopula)) ;
|
||||||
-- QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
|
HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "かかる"))) ;
|
||||||
HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "cost"))) ;
|
ItCost item price = mkCl item (mkV2 "かかる" "" R.Gr1) price ;
|
||||||
ItCost item price = mkCl item (mkV2 "cost") price ;
|
|
||||||
|
|
||||||
PropOpen p = mkCl p.name open_Adv ;
|
PropOpen p = mkCl p.name mkOpen ;
|
||||||
PropClosed p = mkCl p.name closed_Adv ;
|
PropClosed p = mkCl p.name mkClosed ;
|
||||||
PropOpenDate p d = mkCl p.name (mkVP (mkVP open_Adv) d) ;
|
PropOpenDate p d = mkCl p.name (mkVP (mkVP mkOpen) d) ;
|
||||||
PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_Adv) d) ;
|
PropClosedDate p d = mkCl p.name (mkVP (mkVP mkClosed) d) ;
|
||||||
PropOpenDay p d = mkCl p.name (mkVP (mkVP open_Adv) d.habitual) ;
|
PropOpenDay p d = mkCl p.name (mkVP (mkVP mkOpen) d.habitual) ;
|
||||||
PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_Adv) d.habitual) ;
|
PropClosedDay p d = mkCl p.name (mkVP (mkVP mkClosed) d.habitual) ;
|
||||||
|
|
||||||
-- Building phrases from strings is complicated: the solution is to use
|
-- Building phrases from strings is complicated: the solution is to use
|
||||||
-- mkText : Text -> Text -> Text ;
|
-- mkText : Text -> Text -> Text ;
|
||||||
|
|
||||||
PSeeYouDate d = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt d)) ;
|
PSeeYouDate d = mkText (mkPhrase (mkUtt d)) (lin Text (ss ("会いましょう"))) ; -- "aimashou"
|
||||||
PSeeYouPlace p = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt p.at)) ;
|
PSeeYouPlace p = mkText (mkPhrase (mkUtt p.at)) (lin Text (ss ("会いましょう"))) ; -- "aimashou"
|
||||||
PSeeYouPlaceDate p d =
|
PSeeYouPlaceDate p d =
|
||||||
mkText (lin Text (ss ("see you")))
|
mkText (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d)))
|
||||||
(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$
|
-- 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
|
-- below. Languages without productive genitives must use an equivalent of
|
||||||
-- "the wife of my son" for non-pronouns.
|
-- "the wife of my son" for non-pronouns.
|
||||||
|
|
||||||
Wife = xOf (mkN "wife") ;
|
Wife = xOf (mkN "妻" "奥さん" R.Anim "人" False "妻たち") ; -- "tsuma" "okusan"
|
||||||
Husband = xOf (mkN "husband") ;
|
Husband = xOf (mkN "夫" "ご主人" R.Anim "人" False "夫たち") ; -- "otto" "goshujin"
|
||||||
Son = xOf (mkN "son") ;
|
Son = xOf (mkN "息子" "息子さん" R.Anim "人" False "息子たち") ; -- "musuko"
|
||||||
Daughter = xOf (mkN "daughter") ;
|
Daughter = xOf (mkN "娘" "お嬢さん" R.Anim "人" False "娘たち") ; -- "musume" "ojousan"
|
||||||
Children = xOf L.child_N ;
|
Children = xOf L.child_N ;
|
||||||
|
|
||||||
-- week days
|
-- week days
|
||||||
|
|
||||||
Monday = mkDay "Monday" ;
|
Monday = mkDay "月曜日" ; -- "getsuyoubi"
|
||||||
Tuesday = mkDay "Tuesday" ;
|
Tuesday = mkDay "火曜日" ; -- "kayoubi"
|
||||||
Wednesday = mkDay "Wednesday" ;
|
Wednesday = mkDay "水曜日" ; -- "suiyoubi"
|
||||||
Thursday = mkDay "Thursday" ;
|
Thursday = mkDay "木曜日" ; -- "mokuyoubi"
|
||||||
Friday = mkDay "Friday" ;
|
Friday = mkDay "金曜日" ; -- "kin'youbi"
|
||||||
Saturday = mkDay "Saturday" ;
|
Saturday = mkDay "土曜日" ; -- "doyoubi"
|
||||||
Sunday = mkDay "Sunday" ;
|
Sunday = mkDay "日曜日" ; -- "nichiyoubi"
|
||||||
|
|
||||||
Tomorrow = P.mkAdv "tomorrow" ;
|
Tomorrow = P.mkAdv "明日" ; -- "ashita"
|
||||||
|
|
||||||
-- modifiers of places
|
-- modifiers of places
|
||||||
|
|
||||||
TheBest = mkSuperl L.good_A ;
|
TheBest = mkSuperl L.good_A ;
|
||||||
TheClosest = mkSuperl L.near_A ;
|
TheClosest = mkSuperl L.near_A ;
|
||||||
---- TheCheapest = mkSuperl (mkA "cheap") ;
|
TheCheapest = mkSuperl (mkA "安い") ; -- "yasui"
|
||||||
---- TheMostExpensive = mkSuperl (mkA "expensive") ;
|
TheMostExpensive = mkSuperl (mkA "高い") ; -- "takai"
|
||||||
---- TheMostPopular = mkSuperl (mkA "popular") ;
|
TheMostPopular = mkSuperl (mkA "盛んな") ; -- "sakanna"
|
||||||
TheWorst = mkSuperl L.bad_A ;
|
TheWorst = mkSuperl L.bad_A ;
|
||||||
|
|
||||||
SuperlPlace sup p = placeNP sup p ;
|
SuperlPlace sup p = placeNP sup p ;
|
||||||
@@ -214,14 +226,14 @@ concrete WordsJpn of Words = SentencesJpn **
|
|||||||
|
|
||||||
-- transports
|
-- transports
|
||||||
|
|
||||||
{-
|
HowFar place = mkQS (mkQCl howFar_IAdv (mkCl place.name (mkA "遠い"))) ;
|
||||||
HowFar place = mkQS (mkQCl far_IAdv place.name) ;
|
|
||||||
HowFarFrom x y =
|
HowFarFrom x y =
|
||||||
mkQS (mkQCl far_IAdv (mkCl y.name (SyntaxJpn.mkAdv from_Prep x.name))) ;
|
mkQS (mkQCl howFar_IAdv (mkCl (mkNP y.name (SyntaxJpn.mkAdv from_Prep x.name)) (mkA "遠い"))) ;
|
||||||
HowFarFromBy x y t =
|
HowFarFromBy x y t =
|
||||||
mkQS (mkQCl far_IAdv (mkCl y.name (SyntaxJpn.mkAdv from_Prep (mkNP x.name t)))) ;
|
mkQS (mkQCl howFar_IAdv (mkCl
|
||||||
HowFarBy y t = mkQS (mkQCl far_IAdv (mkCl y.name t)) ;
|
(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 =
|
WhichTranspPlace trans place =
|
||||||
mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
|
mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
|
||||||
|
|
||||||
@@ -234,13 +246,14 @@ concrete WordsJpn of Words = SentencesJpn **
|
|||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
mkNat : Str -> Str -> NPNationality = \nat,co ->
|
mkNat : Str -> NPNationality = \co ->
|
||||||
mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) L.good_A ; ---- mkA ...
|
mkNPNationality (mkNP (mkPN (co + "語"))) (mkNP (mkPN co))
|
||||||
|
(mkA (co + "の")) (mkNP (mkPN (co + "人"))) ; ---- mkA ...
|
||||||
|
|
||||||
mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
|
mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
|
||||||
let day : NP = mkNP (mkPN d) in
|
let day : NP = mkNP (mkPN d) in
|
||||||
mkNPDay day (SyntaxJpn.mkAdv on_Prep day)
|
mkNPDay day (SyntaxJpn.mkAdv in_Prep day)
|
||||||
(SyntaxJpn.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
|
(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 ->
|
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 ;
|
mkCNPlace (mkCN (P.mkN (comp + p))) (P.mkPrep i) to_Prep ;
|
||||||
@@ -248,16 +261,14 @@ concrete WordsJpn of Words = SentencesJpn **
|
|||||||
mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
|
mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
|
||||||
mkCNPlace (mkCN (mkN p)) (P.mkPrep i) to_Prep ;
|
mkCNPlace (mkCN (mkN p)) (P.mkPrep i) to_Prep ;
|
||||||
|
|
||||||
open_Adv = P.mkAdv "open" ;
|
|
||||||
closed_Adv = P.mkAdv "closed" ;
|
|
||||||
|
|
||||||
xOf : N -> NPPerson -> NPPerson = \f,p ->
|
xOf : N -> NPPerson -> NPPerson = \f,p ->
|
||||||
{name = mkNP the_Det (mkCN f (SyntaxJpn.mkAdv possess_Prep p.name)) ;
|
{name = mkNP the_Det (mkCN f (SyntaxJpn.mkAdv possess_Prep p.name)) ;
|
||||||
isPron = False ; poss = the_Quant} ; ---- poss not used
|
isPron = False ; poss = the_Quant} ; ---- poss not used
|
||||||
|
|
||||||
|
mkOpen : A = mkA "開いている" "開いた" ; -- "aiteiru"
|
||||||
|
mkClosed : A = mkA "閉まっている" "閉まった" ; -- "shimatteiru"
|
||||||
|
|
||||||
nameOf : NPPerson -> NP = \p -> (xOf (mkN "name") p).name ;
|
nameOf : NPPerson -> NP = \p -> (xOf (mkN "名前") p).name ;
|
||||||
|
|
||||||
|
|
||||||
mkTransport : N -> {name : CN ; by : Adv} = \n -> {
|
mkTransport : N -> {name : CN ; by : Adv} = \n -> {
|
||||||
name = mkCN n ;
|
name = mkCN n ;
|
||||||
@@ -266,51 +277,108 @@ concrete WordsJpn of Words = SentencesJpn **
|
|||||||
|
|
||||||
mkSuperl : A -> Det = \a -> SyntaxJpn.mkDet the_Art (SyntaxJpn.mkOrd a) ;
|
mkSuperl : A -> Det = \a -> SyntaxJpn.mkDet the_Art (SyntaxJpn.mkOrd a) ;
|
||||||
|
|
||||||
far_IAdv = lin IAdv (ss "how far") ;
|
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
|
-- New 30/11/2011 AR
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
|
|
||||||
lin
|
lin
|
||||||
Thai = mkNat "Thai" "Thailand" ;
|
Thai = mkNat "タイ" ; -- "tai"
|
||||||
Baht = mkCN (mkN "baht" "baht") ;
|
Baht = mkCur "バーツ" ; -- "baatsu"
|
||||||
|
|
||||||
Rice = mkCN (mkN "rice") ;
|
Rice = mkCN (mkN "ご飯") ; -- "gohan"
|
||||||
Pork = mkCN (mkN "pork") ;
|
Pork = mkCN (mkN "豚肉") ; -- "butaniku"
|
||||||
Beef = mkCN (mkN "beef") ;
|
Beef = mkCN (mkN "牛肉") ; -- "gyuuniku"
|
||||||
Egg = mkCN L.egg_N ;
|
Egg = mkCN L.egg_N ;
|
||||||
Noodles = mkCN (mkN "noodle") ;
|
Noodles = mkCN (mkN "ヌードル") ; -- "nuudoru"
|
||||||
Shrimps = mkCN (mkN "shrimp") ;
|
Shrimps = mkCN (mkN "海老") ; -- "ebi"
|
||||||
Chili = mkCN (mkN "chili") ;
|
Chili = mkCN (mkN "チリ") ; -- "chiri"
|
||||||
Garlic = mkCN (mkN "garlic") ;
|
Garlic = mkCN (mkN "大蒜") ; -- "ninniku"
|
||||||
Durian = mkCN (mkN "durian") ;
|
Durian = mkCN (mkN "ドリアン") ; -- "dorian"
|
||||||
Mango = mkCN (mkN "mango") ;
|
Mango = mkCN (mkN "マンゴ") ; -- "mango"
|
||||||
Pineapple = mkCN (mkN "pineapple") ;
|
Pineapple = mkCN (mkN "パイナップル") ; -- "painappuru"
|
||||||
Coke = mkCN (mkN "coke") ;
|
Coke = mkCN (mkN "コーク") ; -- "kooku"
|
||||||
IceCream = mkCN (mkN "ice cream") ;
|
IceCream = mkCN (mkN "アイスクリーム") ; -- "aisukuriimu"
|
||||||
Salad = mkCN (mkN "salad") ;
|
Salad = mkCN (mkN "サラダ") ; -- "sarada"
|
||||||
OrangeJuice = mkCN (mkN "orange juice") ;
|
OrangeJuice = mkCN (mkN "オレンジジュース") ; -- "orenjijuusu"
|
||||||
Lemonade = mkCN (mkN "lemonade") ;
|
Lemonade = mkCN (mkN "レモネード") ; -- "remoneedo"
|
||||||
|
|
||||||
Beach = mkPlace "beach" "on" ;
|
Beach = mkPlace "beach" "on" ;
|
||||||
|
|
||||||
ItsRaining = mkCl (progressiveVP (mkVP L.rain_V0)) ;
|
ItsRaining = mkCl (mkVP R.mkRain) ;
|
||||||
ItsCold = mkCl (mkVP L.cold_A) ;
|
ItsCold = mkCl (mkVP L.cold_A) ;
|
||||||
ItsWarm = mkCl (mkVP L.warm_A) ;
|
ItsWarm = mkCl (mkVP L.warm_A) ;
|
||||||
ItsWindy = mkCl (mkVP (P.mkA "windy")) ;
|
ItsWindy = mkCl (mkVP (P.mkA "風が強い")) ;
|
||||||
SunShine = mkCl (mkNP the_Det L.sun_N) (progressiveVP (mkVP (mkV "shine"))) ;
|
SunShine = mkCl (mkNP L.sun_N) (mkVP (mkV "輝いている" R.Gr2)) ;
|
||||||
|
-- "taiyou wa kagayaite iru"
|
||||||
|
|
||||||
Smoke = mkVP (P.mkV "smoke") ;
|
Smoke = mkVP (P.mkV "煙草を吸う" R.Gr1) ; -- "tabako o suu"
|
||||||
|
|
||||||
ADoctor = mkProfession (mkN "doctor") ;
|
ADoctor = mkProfession (mkN "医者") ; -- "isha"
|
||||||
AProfessor = mkProfession (mkN "professor") ;
|
AProfessor = mkProfession (mkN "教授") ; -- "kyouju"
|
||||||
ALawyer = mkProfession (mkN "lawyer") ;
|
ALawyer = mkProfession (mkN "弁護士") ; -- "bengoshi"
|
||||||
AEngineer = mkProfession (mkN "engineer") ;
|
AEngineer = mkProfession (mkN "技術者") ; -- "gijutsusha"
|
||||||
ATeacher = mkProfession (mkN "teacher") ;
|
ATeacher = mkProfession (mkN "先生") ; -- "sensei"
|
||||||
ACook = mkProfession (mkN "cook") ;
|
ACook = mkProfession (mkN "料理人") ; -- "ryourinin"
|
||||||
AStudent = mkProfession (mkN "student") ;
|
AStudent = mkProfession (mkN "学生") ; -- "gakusei"
|
||||||
ABusinessman = mkProfession (mkN "businessman" "businessmen") ;
|
ABusinessman = mkProfession (mkN "実業家") ; -- "jitsugyouka"
|
||||||
|
|
||||||
oper
|
oper
|
||||||
mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name n ;
|
mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name n ;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ flags coding = utf8 ;
|
|||||||
|
|
||||||
SC = {s : Particle => Style => Str ; isVP : Bool} ;
|
SC = {s : Particle => Style => Str ; isVP : Bool} ;
|
||||||
|
|
||||||
Adv = Adverb ; -- {s : Style => Str ; prepositive : Bool ; compar : ComparSense} ;
|
Adv = Adverb ; -- {s : Style => Str ; prepositive : Bool} ;
|
||||||
|
|
||||||
AdN = {s : Str ; postposition : Bool} ;
|
AdN = {s : Str ; postposition : Bool} ;
|
||||||
|
|
||||||
|
|||||||
@@ -77,6 +77,13 @@ concrete ConjunctionJpn of Conjunction = CatJpn ** open ResJpn, Prelude in {
|
|||||||
prepositive = adv.prepositive
|
prepositive = adv.prepositive
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
ConjAdV conj adv = {
|
||||||
|
s = case conj.type of {
|
||||||
|
(And | Both) => conj.null ++ adv.and ;
|
||||||
|
Or => conj.null ++ adv.or
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
ConjNP conj np = {
|
ConjNP conj np = {
|
||||||
s = \\st => case conj.type of {
|
s = \\st => case conj.type of {
|
||||||
And => conj.null ++ np.and ! st ;
|
And => conj.null ++ np.and ! st ;
|
||||||
@@ -215,6 +222,16 @@ concrete ConjunctionJpn of Conjunction = CatJpn ** open ResJpn, Prelude in {
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
BaseAdV x y = {
|
||||||
|
and = x.s ++ y.s ;
|
||||||
|
or = x.s ++ "か" ++ y.s
|
||||||
|
} ;
|
||||||
|
|
||||||
|
ConsAdV x xs = {
|
||||||
|
and = x.s ++ xs.and ;
|
||||||
|
or = x.s ++ "か" ++ xs.or
|
||||||
|
} ;
|
||||||
|
|
||||||
BaseNP x y = {
|
BaseNP x y = {
|
||||||
and = \\st => x.s ! st ++ "と" ++ y.s ! st ;
|
and = \\st => x.s ! st ++ "と" ++ y.s ! st ;
|
||||||
or = \\st => x.s ! st ++ "か" ++ y.s ! st ;
|
or = \\st => x.s ! st ++ "か" ++ y.s ! st ;
|
||||||
@@ -344,6 +361,8 @@ concrete ConjunctionJpn of Conjunction = CatJpn ** open ResJpn, Prelude in {
|
|||||||
|
|
||||||
[Adv] = {and, or : Style => Str ; prepositive : Bool} ;
|
[Adv] = {and, or : Style => Str ; prepositive : Bool} ;
|
||||||
|
|
||||||
|
[AdV] = {and, or : Str} ;
|
||||||
|
|
||||||
[NP] = {and, or, both : Style => Str ; prepositive : Style => Str ;
|
[NP] = {and, or, both : Style => Str ; prepositive : Style => Str ;
|
||||||
needPart : Bool ; changePolar : Bool ; meaning : Speaker ; anim : Animateness} ;
|
needPart : Bool ; changePolar : Bool ; meaning : Speaker ; anim : Animateness} ;
|
||||||
|
|
||||||
|
|||||||
@@ -7,26 +7,26 @@ flags coding = utf8 ;
|
|||||||
ImpersCl vp = case vp.needSubject of {
|
ImpersCl vp = case vp.needSubject of {
|
||||||
True => {
|
True => {
|
||||||
s = table {
|
s = table {
|
||||||
Wa => \\st,t,p => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
Wa => \\st,t,p => vp.prepositive ! st ++ vp.obj ! st ++
|
||||||
vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ;
|
vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ;
|
||||||
Ga => \\st,t,p => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++
|
Ga => \\st,t,p => vp.prepositive ! st ++ vp.obj ! st ++
|
||||||
vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p
|
vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p
|
||||||
} ;
|
} ;
|
||||||
te = table {
|
te = table {
|
||||||
Wa => \\st,p => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
Wa => \\st,p => vp.prepositive ! st ++ vp.obj ! st ++
|
||||||
vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p ;
|
vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p ;
|
||||||
Ga => \\st,p => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++
|
Ga => \\st,p => vp.prepositive ! st ++ vp.obj ! st ++
|
||||||
vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p
|
vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p
|
||||||
} ;
|
} ;
|
||||||
ba = table {
|
ba = table {
|
||||||
Wa => \\st,p => vp.prepositive ! st ++ "これは" ++ vp.obj ! st ++
|
Wa => \\st,p => vp.prepositive ! st ++ vp.obj ! st ++
|
||||||
vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p ;
|
vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p ;
|
||||||
Ga => \\st,p => vp.prepositive ! st ++ "これが" ++ vp.obj ! st ++
|
Ga => \\st,p => vp.prepositive ! st ++ vp.obj ! st ++
|
||||||
vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p
|
vp.prep ++ vp.ba ! SomeoneElse ! Inanim ! st ! p
|
||||||
} ;
|
} ;
|
||||||
subj = table {
|
subj = table {
|
||||||
Wa => \\st => vp.prepositive ! st ++ "これは" ;
|
Wa => \\st => vp.prepositive ! st ;
|
||||||
Ga => \\st => vp.prepositive ! st ++ "これが"
|
Ga => \\st => vp.prepositive ! st
|
||||||
} ;
|
} ;
|
||||||
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ;
|
pred = \\st,t,p => vp.obj ! st ++ vp.prep ++ vp.verb ! SomeoneElse ! Inanim ! st ! t ! p ;
|
||||||
pred_te = \\st,p => vp.obj ! st ++ vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p ;
|
pred_te = \\st,p => vp.obj ! st ++ vp.prep ++ vp.te ! SomeoneElse ! Inanim ! st ! p ;
|
||||||
@@ -135,6 +135,50 @@ flags coding = utf8 ;
|
|||||||
changePolar = False
|
changePolar = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
ExistNPAdv np adv = case np.needPart of {
|
||||||
|
True => {
|
||||||
|
s = \\part,st,t,p => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||||
|
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
|
||||||
|
te = \\part,st,p => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||||
|
mkExistV.te ! SomeoneElse ! np.anim ! st ! p ;
|
||||||
|
ba = \\part,st,p => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ++
|
||||||
|
mkExistV.ba ! SomeoneElse ! np.anim ! st ! p ;
|
||||||
|
subj = \\part,st => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++ "が" ;
|
||||||
|
pred = \\st,t,p => mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
|
||||||
|
pred_te = \\st,p => mkExistV.te ! SomeoneElse ! np.anim ! st ! p ;
|
||||||
|
pred_ba = \\st,p => mkExistV.ba ! SomeoneElse ! np.anim ! st ! p ;
|
||||||
|
changePolar = np.changePolar
|
||||||
|
} ;
|
||||||
|
False => {
|
||||||
|
s = \\part,st,t,p => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++
|
||||||
|
mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
|
||||||
|
te = \\part,st,p => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++
|
||||||
|
mkExistV.te ! SomeoneElse ! np.anim ! st ! p ;
|
||||||
|
ba = \\part,st,p => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ++
|
||||||
|
mkExistV.ba ! SomeoneElse ! np.anim ! st ! p ;
|
||||||
|
subj = \\part,st => adv.s ! st ++ np.prepositive ! st ++ np.s ! st ;
|
||||||
|
pred = \\st,t,p => mkExistV.verb ! SomeoneElse ! np.anim ! st ! t ! p ;
|
||||||
|
pred_te = \\st,p => mkExistV.te ! SomeoneElse ! np.anim ! st ! p ;
|
||||||
|
pred_ba = \\st,p => mkExistV.ba ! SomeoneElse ! np.anim ! st ! p ;
|
||||||
|
changePolar = np.changePolar
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
ExistIPAdv ip adv = {
|
||||||
|
s = \\part,st,t,p => case ip.how8many of {
|
||||||
|
True => adv.s ! st ++ ip.s_subj ! st ++ mkExistV.verb ! SomeoneElse ! ip.anim ! st ! t ! p ++ "か" ;
|
||||||
|
False => adv.s ! st ++ ip.s_subj ! st ++ "が" ++ mkExistV.verb ! SomeoneElse ! ip.anim ! st ! t ! p
|
||||||
|
++ "か"
|
||||||
|
} ;
|
||||||
|
s_plain_pred = \\part,st,t,p => case ip.how8many of {
|
||||||
|
True => adv.s ! st ++ ip.s_subj ! st ++
|
||||||
|
mkExistV.verb ! SomeoneElse ! ip.anim ! Plain ! t ! p ++ "か" ;
|
||||||
|
False => adv.s ! st ++ ip.s_subj ! st ++ "が" ++
|
||||||
|
mkExistV.verb ! SomeoneElse ! ip.anim ! Plain ! t ! p ++ "か"
|
||||||
|
} ;
|
||||||
|
changePolar = False
|
||||||
|
} ;
|
||||||
|
|
||||||
ProgrVP vp = {
|
ProgrVP vp = {
|
||||||
verb = \\sp,a,st,t,p => vp.te ! sp ! a ! st ! Pos ++ (mkVerb "いる" Gr2).s ! st ! t ! p ;
|
verb = \\sp,a,st,t,p => vp.te ! sp ! a ! st ! Pos ++ (mkVerb "いる" Gr2).s ! st ! t ! p ;
|
||||||
te = \\sp,a,st,p => vp.te ! sp ! a ! st ! Pos ++ mkExistV.te ! SomeoneElse ! Anim ! st ! p ;
|
te = \\sp,a,st,p => vp.te ! sp ! a ! st ! Pos ++ mkExistV.te ! SomeoneElse ! Anim ! st ! p ;
|
||||||
@@ -159,4 +203,27 @@ flags coding = utf8 ;
|
|||||||
} ;
|
} ;
|
||||||
type = Imper
|
type = Imper
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
SelfAdvVP vp = {
|
||||||
|
verb = \\sp,a,st,t,p => "自分 は" ++ vp.verb ! sp ! a ! st ! t ! p ;
|
||||||
|
a_stem = \\sp,a,st => "自分 は" ++ vp.a_stem ! sp ! a ! st ;
|
||||||
|
i_stem = \\sp,a,st => "自分 は" ++ vp.i_stem ! sp ! a ! st ;
|
||||||
|
te = \\sp,a,st,p => "自分 は" ++ vp.te ! sp ! a ! st ! p ;
|
||||||
|
ba = \\sp,a,st,p => "自分 は" ++ vp.ba ! sp ! a ! st ! p ;
|
||||||
|
prep = vp.prep ;
|
||||||
|
obj = vp.obj ;
|
||||||
|
prepositive = vp.prepositive ;
|
||||||
|
needSubject = vp.needSubject
|
||||||
|
} ;
|
||||||
|
|
||||||
|
SelfAdVVP = SelfAdvVP ;
|
||||||
|
|
||||||
|
SelfNP np = {
|
||||||
|
s = \\st => np.s ! st ++ "自分 は" ;
|
||||||
|
prepositive = np.prepositive ;
|
||||||
|
needPart = np.needPart ;
|
||||||
|
changePolar = np.changePolar ;
|
||||||
|
meaning = np.meaning ;
|
||||||
|
anim = np.anim
|
||||||
|
} ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ lin
|
|||||||
add_V3 = mkV3 "加える" "に" "を" Gr2 ; -- "kuwaeru"
|
add_V3 = mkV3 "加える" "に" "を" Gr2 ; -- "kuwaeru"
|
||||||
airplane_N = mkN "飛行機" Inanim "機" False ; -- "hikouki" "ki"
|
airplane_N = mkN "飛行機" Inanim "機" False ; -- "hikouki" "ki"
|
||||||
alas_Interj = ss "残念です" ; -- "zannendesu"
|
alas_Interj = ss "残念です" ; -- "zannendesu"
|
||||||
already_Adv = mkAdv "すでに" ; -- "sudeni"
|
already_Adv = ResJpn.mkAdv "すでに" ; -- "sudeni"
|
||||||
animal_N = mkN "動物" Anim "疋" True ; -- "doubutsu" "hiki"
|
animal_N = mkN "動物" Anim "疋" True ; -- "doubutsu" "hiki"
|
||||||
answer_V2S = mkV "答える" Gr2 ; -- "kotaeru"
|
answer_V2S = mkV "答える" Gr2 ; -- "kotaeru"
|
||||||
apartment_N = mkN "アパート" Inanim ; -- "apaato"
|
apartment_N = mkN "アパート" Inanim ; -- "apaato"
|
||||||
@@ -57,7 +57,7 @@ lin
|
|||||||
ceiling_N = mkN "天井" Inanim ; -- "tenjou"
|
ceiling_N = mkN "天井" Inanim ; -- "tenjou"
|
||||||
chair_N = mkN "椅子" Inanim "脚" False ; -- "isu" "kyaku"
|
chair_N = mkN "椅子" Inanim "脚" False ; -- "isu" "kyaku"
|
||||||
cheese_N = mkN "チーズ" Inanim ; -- "chiizu"
|
cheese_N = mkN "チーズ" Inanim ; -- "chiizu"
|
||||||
child_N = mkN "子供" Anim "人" False "子供たち" ; -- "kodomo"
|
child_N = mkN "子供" Anim "人" False ; -- "kodomo"
|
||||||
church_N = mkN "教会" Inanim "軒" False ; -- "kyoukai" "ken"
|
church_N = mkN "教会" Inanim "軒" False ; -- "kyoukai" "ken"
|
||||||
city_N = mkN "都市" Inanim ; -- "toshi"
|
city_N = mkN "都市" Inanim ; -- "toshi"
|
||||||
clean_A = mkA "奇麗な" ; -- "kireina" ;
|
clean_A = mkA "奇麗な" ; -- "kireina" ;
|
||||||
@@ -97,7 +97,7 @@ lin
|
|||||||
eye_N = mkN "目" Inanim ; -- "me"
|
eye_N = mkN "目" Inanim ; -- "me"
|
||||||
factory_N = mkN "工場" Inanim ; -- "koujou"
|
factory_N = mkN "工場" Inanim ; -- "koujou"
|
||||||
fall_V = mkV "落ちる" Gr2 ; -- "ochiru"
|
fall_V = mkV "落ちる" Gr2 ; -- "ochiru"
|
||||||
far_Adv = mkAdv "遠くに" ; -- "tookuni"
|
far_Adv = ResJpn.mkAdv "遠くに" ; -- "tookuni"
|
||||||
father_N2 = mkN2 "お父さん" Anim "人" False "お父さんたち" "の" ; -- "otousan"
|
father_N2 = mkN2 "お父さん" Anim "人" False "お父さんたち" "の" ; -- "otousan"
|
||||||
fat_N = mkN "脂" Inanim ; -- "abura"
|
fat_N = mkN "脂" Inanim ; -- "abura"
|
||||||
fear_VS = mkV2 "恐れる" "ことを" Gr2 ; -- "osoreru"
|
fear_VS = mkV2 "恐れる" "ことを" Gr2 ; -- "osoreru"
|
||||||
@@ -179,7 +179,7 @@ lin
|
|||||||
like_V2 = mkV2 "好く" "を" Gr1 ; -- "suku"
|
like_V2 = mkV2 "好く" "を" Gr1 ; -- "suku"
|
||||||
listen_V2 = mkV2 "聞く" "を" Gr1 ; -- "kiku"
|
listen_V2 = mkV2 "聞く" "を" Gr1 ; -- "kiku"
|
||||||
liver_N = mkN "肝臓" Inanim ; -- "kanzou"
|
liver_N = mkN "肝臓" Inanim ; -- "kanzou"
|
||||||
live_V = mkV "生きる" Gr2 ; -- "ikiru"
|
live_V = mkV "住む" Gr1 ; -- "sumu"
|
||||||
long_A = mkA "長い" ; -- "nagai"
|
long_A = mkA "長い" ; -- "nagai"
|
||||||
lose_V2 = mkV2 "失う" "を" Gr1 ; -- "ushinau"
|
lose_V2 = mkV2 "失う" "を" Gr1 ; -- "ushinau"
|
||||||
louse_N = mkN "虱" Anim "匹" False ; -- "shirami" "hiki"
|
louse_N = mkN "虱" Anim "匹" False ; -- "shirami" "hiki"
|
||||||
@@ -202,7 +202,7 @@ lin
|
|||||||
newspaper_N = mkN "新聞" Inanim "部" False ; -- "shimbun" "bu"
|
newspaper_N = mkN "新聞" Inanim "部" False ; -- "shimbun" "bu"
|
||||||
night_N = mkN "夜" Inanim "夜" True ; -- "yoru" "ya"
|
night_N = mkN "夜" Inanim "夜" True ; -- "yoru" "ya"
|
||||||
nose_N = mkN "鼻" Inanim ; -- "hana"
|
nose_N = mkN "鼻" Inanim ; -- "hana"
|
||||||
now_Adv = mkAdv "今" ; -- "ima"
|
now_Adv = ResJpn.mkAdv "今" ; -- "ima"
|
||||||
number_N = mkN "数" Inanim "数" True ; -- "kazu" "suu"
|
number_N = mkN "数" Inanim "数" True ; -- "kazu" "suu"
|
||||||
oil_N = mkN "油" Inanim ; -- "abura"
|
oil_N = mkN "油" Inanim ; -- "abura"
|
||||||
old_A = mkA "古い" ; -- "furui"
|
old_A = mkA "古い" ; -- "furui"
|
||||||
@@ -314,7 +314,7 @@ lin
|
|||||||
think_V = mkV "考える" Gr2 ; -- "kangaeru"
|
think_V = mkV "考える" Gr2 ; -- "kangaeru"
|
||||||
throw_V2 = mkV2 "投げる" "を" Gr2 ; -- "nageru"
|
throw_V2 = mkV2 "投げる" "を" Gr2 ; -- "nageru"
|
||||||
tie_V2 = mkV2 "結ぶ" "を" Gr1 ; -- "musubu"
|
tie_V2 = mkV2 "結ぶ" "を" Gr1 ; -- "musubu"
|
||||||
today_Adv = mkAdv "今日" ; -- "kyou" ;
|
today_Adv = ResJpn.mkAdv "今日" ; -- "kyou" ;
|
||||||
tongue_N = mkN "舌" Inanim ; -- "shita"
|
tongue_N = mkN "舌" Inanim ; -- "shita"
|
||||||
tooth_N = mkN "歯" Inanim ; -- "ha"
|
tooth_N = mkN "歯" Inanim ; -- "ha"
|
||||||
train_N = mkN "電車" Inanim "列車" True ; -- "densha" "ressha"
|
train_N = mkN "電車" Inanim "列車" True ; -- "densha" "ressha"
|
||||||
|
|||||||
@@ -18,7 +18,11 @@ oper
|
|||||||
(men : Str) -> N = \n,a,c,b,pl -> lin N (numberNoun n a c b pl False) ;
|
(men : Str) -> N = \n,a,c,b,pl -> lin N (numberNoun n a c b pl False) ;
|
||||||
mkN : (kane,okane : Str) -> (anim : Animateness) -> (counter : Str) ->
|
mkN : (kane,okane : Str) -> (anim : Animateness) -> (counter : Str) ->
|
||||||
(counterReplace : Bool) -> N
|
(counterReplace : Bool) -> N
|
||||||
= \kane,okane,a,c,b -> lin N (styleNoun kane okane a c b False)
|
= \kane,okane,a,c,b -> lin N (styleNoun kane okane a c b False) ;
|
||||||
|
mkN : (tsuma,okusan : Str) -> (anim : Animateness) -> (counter : Str) ->
|
||||||
|
(counterReplace : Bool) -> (tsumatachi : Str) -> N
|
||||||
|
= \tsuma,okusan,a,c,b,tsumatachi ->
|
||||||
|
lin N (mkNoun tsuma okusan tsumatachi tsumatachi a c b False)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkN2 : (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) ->
|
mkN2 : (man : Str) -> (anim : Animateness) -> (counter : Str) -> (counterReplace : Bool) ->
|
||||||
|
|||||||
@@ -13,12 +13,14 @@ flags coding = utf8 ;
|
|||||||
} ;
|
} ;
|
||||||
VocPres => case utt.type of {
|
VocPres => case utt.type of {
|
||||||
ImpPolite => voc.s ! Resp ++ "、" ++ pconj.s ++ utt.s ! Wa ! Resp ;
|
ImpPolite => voc.s ! Resp ++ "、" ++ pconj.s ++ utt.s ! Wa ! Resp ;
|
||||||
Imper => voc.s ! Plain ++ "、" ++ pconj.s ++ utt.s ! Wa ! Plain ;
|
(Imper|NoImp) => voc.s ! Resp ++ "、" ++ pconj.s ++ utt.s ! Wa ! Resp
|
||||||
NoImp => voc.s ! Plain ++ "、" ++ pconj.s ++ utt.s ! Wa ! Plain
|
-- 1) change default style here
|
||||||
} ;
|
} ;
|
||||||
VocAbs => case utt.type of {
|
VocAbs => case utt.type of {
|
||||||
(Imper|ImpPolite) => voc.s ! Plain ++ pconj.s ++ utt.s ! Wa ! Plain ;
|
(Imper|ImpPolite) => voc.s ! Resp ++ pconj.s ++ utt.s ! Wa ! Resp ;
|
||||||
NoImp => voc.s ! Plain ++ pconj.s ++ utt.s ! Wa ! Plain
|
-- 2) here
|
||||||
|
NoImp => voc.s ! Resp ++ pconj.s ++ utt.s ! Wa ! Resp
|
||||||
|
-- 3) and here
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -335,7 +335,7 @@ oper
|
|||||||
prep2 = p2
|
prep2 = p2
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkCopula = {
|
mkCopula : Verb = {
|
||||||
s = table {
|
s = table {
|
||||||
Resp => table {
|
Resp => table {
|
||||||
(TPres|TFut) => table {
|
(TPres|TFut) => table {
|
||||||
@@ -365,7 +365,9 @@ oper
|
|||||||
ba = table {
|
ba = table {
|
||||||
Pos => "であれば" ;
|
Pos => "であれば" ;
|
||||||
Neg => "でなければ"
|
Neg => "でなければ"
|
||||||
}
|
} ;
|
||||||
|
a_stem, i_stem = "で" ; -- not used
|
||||||
|
needSubject = True -- not used
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkExistV : VP = {
|
mkExistV : VP = {
|
||||||
@@ -685,16 +687,16 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkRain : Verb = {
|
mkRain : Verb = {
|
||||||
s = \\st,t,p => "雨が" ++ (mkVerb "降る" Gr1).s ! st ! t ! p ; -- "ame ga furu"
|
s = \\st,t,p => "雨が" ++ (mkVerb "降っている" Gr2).s ! st ! t ! p ; -- "ame ga furu"
|
||||||
te = table {
|
te = table {
|
||||||
Pos => "雨が降って" ;
|
Pos => "雨が降っていて" ;
|
||||||
Neg => "雨が降らないで"
|
Neg => "雨が降っていないで"
|
||||||
} ;
|
} ;
|
||||||
a_stem = "雨が降ら" ;
|
a_stem = "雨が降ってい" ;
|
||||||
i_stem = "雨が降り" ;
|
i_stem = "雨が降ってい" ;
|
||||||
ba = table {
|
ba = table {
|
||||||
Pos => "雨が降れば" ;
|
Pos => "雨が降っていれば" ;
|
||||||
Neg => "雨が降らなければ"
|
Neg => "雨が降っていなければ"
|
||||||
} ;
|
} ;
|
||||||
needSubject = False
|
needSubject = False
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -1,115 +1,115 @@
|
|||||||
concrete StructuralJpn of Structural = CatJpn ** open ResJpn, ParadigmsJpn, Prelude in {
|
concrete StructuralJpn of Structural = CatJpn ** open (R = ResJpn), ParadigmsJpn, Prelude in {
|
||||||
|
|
||||||
flags coding = utf8 ;
|
flags coding = utf8 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
above_Prep = mkPrep "の上に" ; -- "noueni"
|
above_Prep = R.mkPrep "の上に" ; -- "noueni"
|
||||||
after_Prep = mkPrep "の後に" ; -- "noatoni"
|
after_Prep = R.mkPrep "の後に" ; -- "noatoni"
|
||||||
all_Predet = {s = "全部" ; not = False} ;
|
all_Predet = {s = "全部" ; not = False} ;
|
||||||
almost_AdA = ss "殆ど" ; -- "hotondo"
|
almost_AdA = ss "殆ど" ; -- "hotondo"
|
||||||
almost_AdN = {s = "殆ど" ; postposition = False} ;
|
almost_AdN = {s = "殆ど" ; postposition = False} ;
|
||||||
although_Subj = mkSubj "のに" OtherSubj ;
|
although_Subj = R.mkSubj "のに" R.OtherSubj ;
|
||||||
always_AdV = ss "いつも" ;
|
always_AdV = ss "いつも" ;
|
||||||
and_Conj = mkConj "そして" And ;
|
and_Conj = R.mkConj "そして" R.And ;
|
||||||
because_Subj = mkSubj "から" OtherSubj ;
|
because_Subj = R.mkSubj "から" R.OtherSubj ;
|
||||||
before_Prep = mkPrep "の前に" ; -- "nomaeni"
|
before_Prep = R.mkPrep "の前に" ; -- "nomaeni"
|
||||||
behind_Prep = mkPrep "後ろに" ; -- "ushironi"
|
behind_Prep = R.mkPrep "後ろに" ; -- "ushironi"
|
||||||
between_Prep = mkPrep "の間に" ; -- "noaidani"
|
between_Prep = R.mkPrep "の間に" ; -- "noaidani"
|
||||||
both7and_DConj = mkConj "そして" Both ;
|
both7and_DConj = R.mkConj "そして" R.Both ;
|
||||||
by8agent_Prep = mkPrep "に" ;
|
by8agent_Prep = R.mkPrep "に" ;
|
||||||
by8means_Prep = mkPrep "によって" ;
|
by8means_Prep = R.mkPrep "で" ;
|
||||||
but_PConj = ss "けれども" ;
|
but_PConj = ss "けれども" ;
|
||||||
can8know_VV = mkCan ;
|
can8know_VV = R.mkCan ;
|
||||||
can_VV = can8know_VV ;
|
can_VV = can8know_VV ;
|
||||||
during_Prep = mkPrep "の間に" ; -- "noaidani"
|
during_Prep = R.mkPrep "の間に" ; -- "noaidani"
|
||||||
either7or_DConj = mkConj "それとも" Or ;
|
either7or_DConj = R.mkConj "それとも" R.Or ;
|
||||||
every_Det = mkDet "全ての" "全て" Sg ; -- "subeteno"
|
every_Det = R.mkDet "全ての" "全て" R.Sg ; -- "subeteno"
|
||||||
everybody_NP = mkNP "皆" True False Anim ; -- "minna"
|
everybody_NP = R.mkNP "皆" True False R.Anim ; -- "minna"
|
||||||
everything_NP = mkNP "全て" True False Inanim ; -- "subete"
|
everything_NP = R.mkNP "全て" True False R.Inanim ; -- "subete"
|
||||||
everywhere_Adv = mkAdv "どこでも" ; -- "dokodemo"
|
everywhere_Adv = R.mkAdv "どこでも" ; -- "dokodemo"
|
||||||
first_Ord = mkFirst ;
|
-- first_Ord = R.mkFirst ;
|
||||||
few_Det = mkDet "少数の" "少数" Pl ; -- "shoosuuno"
|
few_Det = R.mkDet "少数の" "少数" R.Pl ; -- "shoosuuno"
|
||||||
for_Prep = mkPrep "のために" ;
|
for_Prep = R.mkPrep "用" ; -- "you" "のために"
|
||||||
from_Prep = mkPrep "から" ;
|
from_Prep = R.mkPrep "から" ;
|
||||||
he_Pron = mkPron "彼" False Anim ; -- "kare"
|
he_Pron = mkPron "彼" False R.Anim ; -- "kare"
|
||||||
here_Adv = mkAdv "ここで" ;
|
here_Adv = R.mkAdv "ここで" ;
|
||||||
here7to_Adv = mkAdv "ここに" ;
|
here7to_Adv = R.mkAdv "ここに" ;
|
||||||
here7from_Adv = mkAdv "ここから" ;
|
here7from_Adv = R.mkAdv "ここから" ;
|
||||||
how_IAdv = {s = \\st => "どのように" ; particle = "" ; wh8re = False} ;
|
how_IAdv = {s = \\st => "どのように" ; particle = "" ; wh8re = False} ;
|
||||||
how8many_IDet = {s = "いくつ" ; n = Pl ; how8many = True ; inclCard = False} ;
|
how8many_IDet = {s = "いくつ" ; n = R.Pl ; how8many = True ; inclCard = False} ;
|
||||||
how8much_IAdv = {s = \\st => "いくら" ; particle = "" ; wh8re = False} ;
|
how8much_IAdv = {s = \\st => "いくら" ; particle = "" ; wh8re = False} ;
|
||||||
i_Pron = mkPron "私" "私" True Anim ; -- "watashi"
|
i_Pron = mkPron "私" "私" True R.Anim ; -- "watashi"
|
||||||
if_Subj = mkSubj "" If ;
|
if_Subj = R.mkSubj "" R.If ;
|
||||||
in8front_Prep = mkPrep "の前に" ; -- "nomaeni"
|
in8front_Prep = R.mkPrep "の前に" ; -- "nomaeni"
|
||||||
in_Prep = mkPrep "に" ;
|
in_Prep = R.mkPrep "に" ;
|
||||||
it_Pron = mkPron "それ" False Inanim ;
|
it_Pron = mkPron "それ" False R.Inanim ;
|
||||||
less_CAdv = {s = "より" ; less = True ; s_adn = "以下"} ; -- "ika"
|
less_CAdv = {s = "より" ; less = True ; s_adn = "以下"} ; -- "ika"
|
||||||
many_Det = mkDet "多くの" "多く" Pl ; -- "ookuno"
|
many_Det = R.mkDet "多くの" "多く" R.Pl ; -- "ookuno"
|
||||||
more_CAdv = {s = "より" ; less = False ; s_adn = "以上"} ; -- "ijou"
|
more_CAdv = {s = "より" ; less = False ; s_adn = "以上"} ; -- "ijou"
|
||||||
most_Predet = {s = "ほとんどの" ; not = False} ;
|
most_Predet = {s = "ほとんどの" ; not = False} ;
|
||||||
much_Det = mkDet "多くの" "多量" Sg ; -- "ookuno" "taryou"
|
much_Det = R.mkDet "多くの" "多量" R.Sg ; -- "ookuno" "taryou"
|
||||||
must_VV = mkMust ;
|
must_VV = R.mkMust ;
|
||||||
no_Phr = {s = "いいえ"} ;
|
-- no_Phr = {s = "いいえ"} ;
|
||||||
no_Utt = {s = \\part,st => "いいえ" ; type = NoImp} ;
|
no_Utt = {s = \\part,st => "いいえ" ; type = R.NoImp} ;
|
||||||
on_Prep = mkPrep "の上に" ; -- "noueni"
|
on_Prep = R.mkPrep "の上に" ; -- "noueni"
|
||||||
only_Predet = {s = "ほんの" ; not = False} ;
|
only_Predet = {s = "ほんの" ; not = False} ;
|
||||||
or_Conj = mkConj "それとも" Or ;
|
or_Conj = R.mkConj "それとも" R.Or ;
|
||||||
otherwise_PConj = ss "そうしなければ" ;
|
otherwise_PConj = ss "そうしなければ" ;
|
||||||
part_Prep = mkPrep "の" ;
|
part_Prep = R.mkPrep "の" ;
|
||||||
please_Voc = {s = \\st => "ください" ; type = Please ; null = ""} ;
|
please_Voc = {s = \\st => "ください" ; type = R.Please ; null = ""} ;
|
||||||
possess_Prep = mkPrep "の" ;
|
possess_Prep = R.mkPrep "の" ;
|
||||||
quite_Adv = ss "可成" ; -- "kanari"
|
quite_Adv = ss "可成" ; -- "kanari"
|
||||||
she_Pron = mkPron "彼女" False Anim ; -- "kanojo"
|
she_Pron = mkPron "彼女" False R.Anim ; -- "kanojo"
|
||||||
so_AdA = ss "非常に" ; -- "hijooni"
|
so_AdA = ss "非常に" ; -- "hijooni"
|
||||||
someSg_Det = mkDet "多少の" "幾らか" Sg ; -- "tashoono" "ikuraka"
|
someSg_Det = R.mkDet "多少の" "幾らか" R.Sg ; -- "tashoono" "ikuraka"
|
||||||
somePl_Det = mkDet "いくつかの" "幾らか" Pl ; -- "ikuraka"
|
somePl_Det = R.mkDet "いくつかの" "幾らか" R.Pl ; -- "ikuraka"
|
||||||
somebody_NP = mkNP "誰か" False False Anim ; -- "dareka"
|
somebody_NP = R.mkNP "誰か" False False R.Anim ; -- "dareka"
|
||||||
something_NP = mkNP "何か" False False Inanim ; -- "nanika"
|
something_NP = R.mkNP "何か" False False R.Inanim ; -- "nanika"
|
||||||
somewhere_Adv = mkAdv "どこかに" ;
|
somewhere_Adv = R.mkAdv "どこかに" ;
|
||||||
that_Quant = {s = \\st => "その" ; sp = \\st => "それ" ; no = False} ;
|
that_Quant = {s = \\st => "その" ; sp = \\st => "それ" ; no = False} ;
|
||||||
that_Subj = mkSubj "ことを" That ;
|
that_Subj = R.mkSubj "ことを" R.That ;
|
||||||
there_Adv = mkAdv "そこで" ;
|
there_Adv = R.mkAdv "そこで" ;
|
||||||
there7to_Adv = mkAdv "そこに" ;
|
there7to_Adv = R.mkAdv "そこに" ;
|
||||||
there7from_Adv = mkAdv "そこから" ;
|
there7from_Adv = R.mkAdv "そこから" ;
|
||||||
therefore_PConj = ss "それで" ;
|
therefore_PConj = ss "それで" ;
|
||||||
they_Pron = mkPron "彼ら" "あの人達" False Anim ; -- "karera" "ano hito-tachi"
|
they_Pron = mkPron "彼ら" "あの人達" False R.Anim ; -- "karera" "ano hito-tachi"
|
||||||
this_Quant = {s = \\st => "この" ; sp = \\st => "これ" ; no = False} ;
|
this_Quant = {s = \\st => "この" ; sp = \\st => "これ" ; no = False} ;
|
||||||
through_Prep = mkPrep "を通じて" ; -- "otsuujite"
|
through_Prep = R.mkPrep "を通じて" ; -- "otsuujite"
|
||||||
to_Prep = mkPrep "に" ;
|
to_Prep = R.mkPrep "に" ;
|
||||||
too_AdA = ss "あまりにも" ;
|
too_AdA = ss "あまりにも" ;
|
||||||
under_Prep = mkPrep "の下に" ; -- "noshitani"
|
under_Prep = R.mkPrep "の下に" ; -- "noshitani"
|
||||||
very_AdA = ss "とても" ;
|
very_AdA = ss "とても" ;
|
||||||
want_VV = mkWant ;
|
want_VV = R.mkWant ;
|
||||||
we_Pron = mkPron "私達" False Anim ; -- "watashitachi"
|
we_Pron = mkPron "私達" False R.Anim ; -- "watashitachi"
|
||||||
whatPl_IP = {s_subj, s_obj = \\st => "何" ; anim = Inanim ; how8many = False} ; -- "nani"
|
whatPl_IP = {s_subj, s_obj = \\st => "何" ; anim = R.Inanim ; how8many = False} ; -- "nani"
|
||||||
whatSg_IP = {s_subj, s_obj = \\st => "何" ; anim = Inanim ; how8many = False} ;
|
whatSg_IP = {s_subj, s_obj = \\st => "何" ; anim = R.Inanim ; how8many = False} ;
|
||||||
when_IAdv = {s = \\st => "いつ" ; particle = "" ; wh8re = False} ;
|
when_IAdv = {s = \\st => "いつ" ; particle = "" ; wh8re = False} ;
|
||||||
when_Subj = mkSubj "と" OtherSubj ;
|
when_Subj = R.mkSubj "と" R.OtherSubj ;
|
||||||
where_IAdv = {s = \\st => "どこ" ; particle = "で" ; wh8re = True} ;
|
where_IAdv = {s = \\st => "どこ" ; particle = "で" ; wh8re = True} ;
|
||||||
which_IQuant = ss "どの" ;
|
which_IQuant = ss "どの" ;
|
||||||
whoPl_IP = {s_subj, s_obj = \\st => "誰" ; anim = Anim ; how8many = False} ; -- "dare"
|
whoPl_IP = {s_subj, s_obj = \\st => "誰" ; anim = R.Anim ; how8many = False} ; -- "dare"
|
||||||
whoSg_IP = {s_subj, s_obj = \\st => "誰" ; anim = Anim ; how8many = False} ;
|
whoSg_IP = {s_subj, s_obj = \\st => "誰" ; anim = R.Anim ; how8many = False} ;
|
||||||
why_IAdv = {s = \\st => "どうして" ; particle = "" ; wh8re = False} ;
|
why_IAdv = {s = \\st => "どうして" ; particle = "" ; wh8re = False} ;
|
||||||
with_Prep = mkPrep "と" ;
|
with_Prep = R.mkPrep "と" ;
|
||||||
without_Prep = mkPrep "無しで" ; -- "nashide"
|
without_Prep = R.mkPrep "無しで" ; -- "nashide"
|
||||||
yes_Phr = {s = "はい"} ;
|
-- yes_Phr = {s = "はい"} ;
|
||||||
yes_Utt = {s = \\part,st => "はい" ; type = NoImp} ;
|
yes_Utt = {s = \\part,st => "はい" ; type = R.NoImp} ;
|
||||||
youSg_Pron = mkPron "あなた" "あなた" False Anim ;
|
youSg_Pron = mkPron "あなた" "あなた" False R.Anim ;
|
||||||
youPl_Pron = mkPron "あなた達" "あなた方" False Anim ; -- "anatatachi" "anatagata"
|
youPl_Pron = mkPron "あなた達" "あなた方" False R.Anim ; -- "anatatachi" "anatagata"
|
||||||
youPol_Pron = mkPron "あなた" False Anim ;
|
youPol_Pron = mkPron "あなた" False R.Anim ;
|
||||||
|
|
||||||
no_Quant = {s = \\st => "" ; sp = \\st => "何も" ; no = True} ; -- "nanimo"
|
no_Quant = {s = \\st => "" ; sp = \\st => "何も" ; no = True} ; -- "nanimo"
|
||||||
not_Predet = {s = "" ; not = True} ;
|
not_Predet = {s = "" ; not = True} ;
|
||||||
at_least_AdN = {s = "少なくとも" ; postposition = False} ; -- "sukunakutomo"
|
at_least_AdN = {s = "少なくとも" ; postposition = False} ; -- "sukunakutomo"
|
||||||
at_most_AdN = {s = "せいぜい" ; postposition = False} ;
|
at_most_AdN = {s = "せいぜい" ; postposition = False} ;
|
||||||
nobody_NP = mkNP "誰も" False True Anim ; -- "daremo"
|
nobody_NP = R.mkNP "誰も" False True R.Anim ; -- "daremo"
|
||||||
nothing_NP = mkNP "何も" False True Inanim ; -- "nanimo"
|
nothing_NP = R.mkNP "何も" False True R.Inanim ; -- "nanimo"
|
||||||
except_Prep = mkPrep "を除いて" ;
|
except_Prep = R.mkPrep "を除いて" ;
|
||||||
|
|
||||||
as_CAdv = {s = "と同じぐらい" ; less = False ; s_adn = "もの"} ;
|
as_CAdv = {s = "と同じぐらい" ; less = False ; s_adn = "もの"} ;
|
||||||
|
|
||||||
have_V2 = mkV2 "持っている" "を" Gr2 ;
|
have_V2 = mkV2 "持っている" "を" R.Gr2 ;
|
||||||
|
|
||||||
language_title_Utt = {s = \\part,st => "日本語" ; type = NoImp} ; -- "nihongo"
|
language_title_Utt = {s = \\part,st => "日本語" ; type = R.NoImp} ; -- "nihongo"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -322,6 +322,8 @@ concrete VerbJpn of Verb = CatJpn ** open ResJpn, Prelude in {
|
|||||||
needSubject = vp.needSubject
|
needSubject = vp.needSubject
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
ExtAdvVP = AdvVP ;
|
||||||
|
|
||||||
AdVVP adv vp = {
|
AdVVP adv vp = {
|
||||||
verb = vp.verb ;
|
verb = vp.verb ;
|
||||||
te = vp.te ;
|
te = vp.te ;
|
||||||
|
|||||||
Reference in New Issue
Block a user