From d98f4566bc856e04f2f6a7d9a7bf49e30867551e Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Sat, 17 Dec 2016 18:45:19 -0800 Subject: WIP --- ext/bg/data/deinflect.json | 2807 ++++++++++++++++++++++++++++++++++++++++++++ ext/bg/data/rules.json | 2807 -------------------------------------------- ext/bg/js/database.js | 18 +- ext/bg/js/deinflector.js | 46 +- ext/bg/js/templates.js | 12 +- ext/bg/js/translator.js | 68 +- ext/bg/js/util.js | 4 +- tmpl/kanji.html | 2 +- tmpl/term.html | 2 +- 9 files changed, 2881 insertions(+), 2885 deletions(-) create mode 100644 ext/bg/data/deinflect.json delete mode 100644 ext/bg/data/rules.json diff --git a/ext/bg/data/deinflect.json b/ext/bg/data/deinflect.json new file mode 100644 index 00000000..3fd45771 --- /dev/null +++ b/ext/bg/data/deinflect.json @@ -0,0 +1,2807 @@ +{ + "-ba": [ + { + "kanaIn": "えば", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "けば", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "げば", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "せば", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "てば", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ねば", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "べば", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "めば", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "れば", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "v5", + "vk", + "vs" + ] + }, + { + "kanaIn": "ければ", + "kanaOut": "い", + "tagsIn": [], + "tagsOut": [ + "adj-i" + ] + } + ], + "-chau": [ + { + "kanaIn": "ちゃう", + "kanaOut": "る", + "tagsIn": [ + "v5" + ], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "いじゃう", + "kanaOut": "ぐ", + "tagsIn": [ + "v5" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "いちゃう", + "kanaOut": "く", + "tagsIn": [ + "v5" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きちゃう", + "kanaOut": "くる", + "tagsIn": [ + "v5" + ], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "しちゃう", + "kanaOut": "す", + "tagsIn": [ + "v5" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しちゃう", + "kanaOut": "する", + "tagsIn": [ + "v5" + ], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "っちゃう", + "kanaOut": "う", + "tagsIn": [ + "v5" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "っちゃう", + "kanaOut": "く", + "tagsIn": [ + "v5" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "っちゃう", + "kanaOut": "つ", + "tagsIn": [ + "v5" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "っちゃう", + "kanaOut": "る", + "tagsIn": [ + "v5" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んじゃう", + "kanaOut": "ぬ", + "tagsIn": [ + "v5" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んじゃう", + "kanaOut": "ぶ", + "tagsIn": [ + "v5" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んじゃう", + "kanaOut": "む", + "tagsIn": [ + "v5" + ], + "tagsOut": [ + "v5" + ] + } + ], + "-nasai": [ + { + "kanaIn": "なさい", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "いなさい", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きなさい", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きなさい", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "ぎなさい", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しなさい", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しなさい", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "ちなさい", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "になさい", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "びなさい", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "みなさい", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "りなさい", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + } + ], + "-sou": [ + { + "kanaIn": "そう", + "kanaOut": "い", + "tagsIn": [], + "tagsOut": [ + "adj-i" + ] + }, + { + "kanaIn": "そう", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "いそう", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きそう", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きそう", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "ぎそう", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しそう", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しそう", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "ちそう", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "にそう", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "びそう", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "みそう", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "りそう", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + } + ], + "-sugiru": [ + { + "kanaIn": "すぎる", + "kanaOut": "い", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "adj-i" + ] + }, + { + "kanaIn": "すぎる", + "kanaOut": "る", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "いすぎる", + "kanaOut": "う", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きすぎる", + "kanaOut": "く", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きすぎる", + "kanaOut": "くる", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "ぎすぎる", + "kanaOut": "ぐ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しすぎる", + "kanaOut": "す", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しすぎる", + "kanaOut": "する", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "ちすぎる", + "kanaOut": "つ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "にすぎる", + "kanaOut": "ぬ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "びすぎる", + "kanaOut": "ぶ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "みすぎる", + "kanaOut": "む", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "りすぎる", + "kanaOut": "る", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + } + ], + "-tai": [ + { + "kanaIn": "たい", + "kanaOut": "る", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "いたい", + "kanaOut": "う", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きたい", + "kanaOut": "く", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きたい", + "kanaOut": "くる", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "ぎたい", + "kanaOut": "ぐ", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "したい", + "kanaOut": "す", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "したい", + "kanaOut": "する", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "ちたい", + "kanaOut": "つ", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "にたい", + "kanaOut": "ぬ", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "びたい", + "kanaOut": "ぶ", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "みたい", + "kanaOut": "む", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "りたい", + "kanaOut": "る", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + } + ], + "-tara": [ + { + "kanaIn": "たら", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "いたら", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "いだら", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きたら", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "したら", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "したら", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "ったら", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ったら", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ったら", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んだら", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んだら", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んだら", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "かったら", + "kanaOut": "い", + "tagsIn": [], + "tagsOut": [ + "adj-i" + ] + } + ], + "-tari": [ + { + "kanaIn": "たり", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "いたり", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "いだり", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きたり", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "したり", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "したり", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "ったり", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ったり", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ったり", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んだり", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んだり", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んだり", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "かったり", + "kanaOut": "い", + "tagsIn": [], + "tagsOut": [ + "adj-i" + ] + } + ], + "-te": [ + { + "kanaIn": "て", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "いて", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "いで", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きて", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "くて", + "kanaOut": "い", + "tagsIn": [], + "tagsOut": [ + "adj-i" + ] + }, + { + "kanaIn": "して", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "して", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "って", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "って", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "って", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "って", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んで", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んで", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んで", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + } + ], + "-zu": [ + { + "kanaIn": "ず", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "かず", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "がず", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "こず", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "さず", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "せず", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "たず", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "なず", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ばず", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "まず", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "らず", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "わず", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + } + ], + "-nu": [ + { + "kanaIn": "ぬ", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "かぬ", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "がぬ", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "こぬ", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "さぬ", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "せぬ", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "たぬ", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "なぬ", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ばぬ", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "まぬ", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "らぬ", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "わぬ", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + } + ], + "adv": [ + { + "kanaIn": "く", + "kanaOut": "い", + "tagsIn": [], + "tagsOut": [ + "adj-i" + ] + } + ], + "causative": [ + { + "kanaIn": "かせる", + "kanaOut": "く", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "がせる", + "kanaOut": "ぐ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "させる", + "kanaOut": "する", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "させる", + "kanaOut": "る", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "たせる", + "kanaOut": "つ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "なせる", + "kanaOut": "ぬ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ばせる", + "kanaOut": "ぶ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ませる", + "kanaOut": "む", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "らせる", + "kanaOut": "る", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "わせる", + "kanaOut": "う", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "こさせる", + "kanaOut": "くる", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "vk" + ] + } + ], + "imperative": [ + { + "kanaIn": "い", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "え", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "け", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "げ", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "せ", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "て", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ね", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "べ", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "め", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "よ", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "れ", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ろ", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "こい", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "しろ", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "せよ", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + } + ], + "imperative negative": [ + { + "kanaIn": "な", + "kanaOut": "", + "tagsIn": [], + "tagsOut": [ + "v1", + "v5", + "vk", + "vs" + ] + } + ], + "masu stem": [ + { + "kanaIn": "い", + "kanaOut": "いる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "い", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "え", + "kanaOut": "える", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "き", + "kanaOut": "きる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "き", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ぎ", + "kanaOut": "ぎる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "ぎ", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "け", + "kanaOut": "ける", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "げ", + "kanaOut": "げる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "し", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "じ", + "kanaOut": "じる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "せ", + "kanaOut": "せる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "ぜ", + "kanaOut": "ぜる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "ち", + "kanaOut": "ちる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "ち", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "て", + "kanaOut": "てる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "で", + "kanaOut": "でる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "に", + "kanaOut": "にる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "に", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ね", + "kanaOut": "ねる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "ひ", + "kanaOut": "ひる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "び", + "kanaOut": "びる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "び", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "へ", + "kanaOut": "へる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "べ", + "kanaOut": "べる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "み", + "kanaOut": "みる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "み", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "め", + "kanaOut": "める", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "り", + "kanaOut": "りる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + }, + { + "kanaIn": "り", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "れ", + "kanaOut": "れる", + "tagsIn": [], + "tagsOut": [ + "v1" + ] + } + ], + "negative": [ + { + "kanaIn": "ない", + "kanaOut": "る", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "かない", + "kanaOut": "く", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "がない", + "kanaOut": "ぐ", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "くない", + "kanaOut": "い", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "adj-i" + ] + }, + { + "kanaIn": "こない", + "kanaOut": "くる", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "さない", + "kanaOut": "す", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しない", + "kanaOut": "する", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "たない", + "kanaOut": "つ", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "なない", + "kanaOut": "ぬ", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ばない", + "kanaOut": "ぶ", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "まない", + "kanaOut": "む", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "らない", + "kanaOut": "る", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "わない", + "kanaOut": "う", + "tagsIn": [ + "adj-i" + ], + "tagsOut": [ + "v5" + ] + } + ], + "noun": [ + { + "kanaIn": "さ", + "kanaOut": "い", + "tagsIn": [], + "tagsOut": [ + "adj-i" + ] + } + ], + "passive": [ + { + "kanaIn": "かれる", + "kanaOut": "く", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "がれる", + "kanaOut": "ぐ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "される", + "kanaOut": "する", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "たれる", + "kanaOut": "つ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "なれる", + "kanaOut": "ぬ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ばれる", + "kanaOut": "ぶ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "まれる", + "kanaOut": "む", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "われる", + "kanaOut": "う", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + } + ], + "passive or causative": [ + { + "kanaIn": "される", + "kanaOut": "す", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + } + ], + "past": [ + { + "kanaIn": "た", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "いた", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "いだ", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きた", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "した", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "した", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "った", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "った", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "った", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "った", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んだ", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んだ", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "んだ", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "かった", + "kanaOut": "い", + "tagsIn": [], + "tagsOut": [ + "adj-i" + ] + } + ], + "polite": [ + { + "kanaIn": "ます", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "います", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きます", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きます", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "ぎます", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "します", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "します", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "ちます", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "にます", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "びます", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "みます", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ります", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + } + ], + "polite negative": [ + { + "kanaIn": "ません", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "いません", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きません", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きません", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "ぎません", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しません", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しません", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "ちません", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "にません", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "びません", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "みません", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "りません", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "くありません", + "kanaOut": "い", + "tagsIn": [], + "tagsOut": [ + "adj-i" + ] + } + ], + "polite past": [ + { + "kanaIn": "ました", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "いました", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きました", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きました", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "ぎました", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しました", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しました", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "ちました", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "にました", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "びました", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "みました", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "りました", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + } + ], + "polite past negative": [ + { + "kanaIn": "ませんでした", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "いませんでした", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きませんでした", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きませんでした", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "ぎませんでした", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しませんでした", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しませんでした", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "ちませんでした", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "にませんでした", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "びませんでした", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "みませんでした", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "りませんでした", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "くありませんでした", + "kanaOut": "い", + "tagsIn": [], + "tagsOut": [ + "adj-i" + ] + } + ], + "polite volitional": [ + { + "kanaIn": "ましょう", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "いましょう", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きましょう", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "きましょう", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "ぎましょう", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しましょう", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "しましょう", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + }, + { + "kanaIn": "ちましょう", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "にましょう", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "びましょう", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "みましょう", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "りましょう", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + } + ], + "potential": [ + { + "kanaIn": "える", + "kanaOut": "う", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ける", + "kanaOut": "く", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "げる", + "kanaOut": "ぐ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "せる", + "kanaOut": "す", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "てる", + "kanaOut": "つ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ねる", + "kanaOut": "ぬ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "べる", + "kanaOut": "ぶ", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "める", + "kanaOut": "む", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "れる", + "kanaOut": "る", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v1", + "v5", + "vk" + ] + }, + { + "kanaIn": "これる", + "kanaOut": "くる", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "vk" + ] + } + ], + "potential or passive": [ + { + "kanaIn": "られる", + "kanaOut": "る", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "v1", + "v5", + "vk" + ] + }, + { + "kanaIn": "こられる", + "kanaOut": "くる", + "tagsIn": [ + "v1" + ], + "tagsOut": [ + "vk" + ] + } + ], + "volitional": [ + { + "kanaIn": "おう", + "kanaOut": "う", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "こう", + "kanaOut": "く", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ごう", + "kanaOut": "ぐ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "そう", + "kanaOut": "す", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "とう", + "kanaOut": "つ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "のう", + "kanaOut": "ぬ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "ぼう", + "kanaOut": "ぶ", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "もう", + "kanaOut": "む", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "よう", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v1", + "vk" + ] + }, + { + "kanaIn": "ろう", + "kanaOut": "る", + "tagsIn": [], + "tagsOut": [ + "v5" + ] + }, + { + "kanaIn": "こよう", + "kanaOut": "くる", + "tagsIn": [], + "tagsOut": [ + "vk" + ] + }, + { + "kanaIn": "しよう", + "kanaOut": "する", + "tagsIn": [], + "tagsOut": [ + "vs" + ] + } + ] +} diff --git a/ext/bg/data/rules.json b/ext/bg/data/rules.json deleted file mode 100644 index 3fd45771..00000000 --- a/ext/bg/data/rules.json +++ /dev/null @@ -1,2807 +0,0 @@ -{ - "-ba": [ - { - "kanaIn": "えば", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "けば", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "げば", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "せば", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "てば", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ねば", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "べば", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "めば", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "れば", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "v5", - "vk", - "vs" - ] - }, - { - "kanaIn": "ければ", - "kanaOut": "い", - "tagsIn": [], - "tagsOut": [ - "adj-i" - ] - } - ], - "-chau": [ - { - "kanaIn": "ちゃう", - "kanaOut": "る", - "tagsIn": [ - "v5" - ], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いじゃう", - "kanaOut": "ぐ", - "tagsIn": [ - "v5" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "いちゃう", - "kanaOut": "く", - "tagsIn": [ - "v5" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きちゃう", - "kanaOut": "くる", - "tagsIn": [ - "v5" - ], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "しちゃう", - "kanaOut": "す", - "tagsIn": [ - "v5" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しちゃう", - "kanaOut": "する", - "tagsIn": [ - "v5" - ], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "っちゃう", - "kanaOut": "う", - "tagsIn": [ - "v5" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "っちゃう", - "kanaOut": "く", - "tagsIn": [ - "v5" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "っちゃう", - "kanaOut": "つ", - "tagsIn": [ - "v5" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "っちゃう", - "kanaOut": "る", - "tagsIn": [ - "v5" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んじゃう", - "kanaOut": "ぬ", - "tagsIn": [ - "v5" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んじゃう", - "kanaOut": "ぶ", - "tagsIn": [ - "v5" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んじゃう", - "kanaOut": "む", - "tagsIn": [ - "v5" - ], - "tagsOut": [ - "v5" - ] - } - ], - "-nasai": [ - { - "kanaIn": "なさい", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いなさい", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きなさい", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きなさい", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎなさい", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しなさい", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しなさい", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "ちなさい", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "になさい", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "びなさい", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "みなさい", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "りなさい", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - } - ], - "-sou": [ - { - "kanaIn": "そう", - "kanaOut": "い", - "tagsIn": [], - "tagsOut": [ - "adj-i" - ] - }, - { - "kanaIn": "そう", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いそう", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きそう", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きそう", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎそう", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しそう", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しそう", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "ちそう", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "にそう", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "びそう", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "みそう", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "りそう", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - } - ], - "-sugiru": [ - { - "kanaIn": "すぎる", - "kanaOut": "い", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "adj-i" - ] - }, - { - "kanaIn": "すぎる", - "kanaOut": "る", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いすぎる", - "kanaOut": "う", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きすぎる", - "kanaOut": "く", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きすぎる", - "kanaOut": "くる", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎすぎる", - "kanaOut": "ぐ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しすぎる", - "kanaOut": "す", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しすぎる", - "kanaOut": "する", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "ちすぎる", - "kanaOut": "つ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "にすぎる", - "kanaOut": "ぬ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "びすぎる", - "kanaOut": "ぶ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "みすぎる", - "kanaOut": "む", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "りすぎる", - "kanaOut": "る", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - } - ], - "-tai": [ - { - "kanaIn": "たい", - "kanaOut": "る", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いたい", - "kanaOut": "う", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きたい", - "kanaOut": "く", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きたい", - "kanaOut": "くる", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎたい", - "kanaOut": "ぐ", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "したい", - "kanaOut": "す", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "したい", - "kanaOut": "する", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "ちたい", - "kanaOut": "つ", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "にたい", - "kanaOut": "ぬ", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "びたい", - "kanaOut": "ぶ", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "みたい", - "kanaOut": "む", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "りたい", - "kanaOut": "る", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - } - ], - "-tara": [ - { - "kanaIn": "たら", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いたら", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "いだら", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きたら", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "したら", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "したら", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "ったら", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ったら", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ったら", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んだら", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んだら", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んだら", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "かったら", - "kanaOut": "い", - "tagsIn": [], - "tagsOut": [ - "adj-i" - ] - } - ], - "-tari": [ - { - "kanaIn": "たり", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いたり", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "いだり", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きたり", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "したり", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "したり", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "ったり", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ったり", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ったり", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んだり", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んだり", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んだり", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "かったり", - "kanaOut": "い", - "tagsIn": [], - "tagsOut": [ - "adj-i" - ] - } - ], - "-te": [ - { - "kanaIn": "て", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いて", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "いで", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きて", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "くて", - "kanaOut": "い", - "tagsIn": [], - "tagsOut": [ - "adj-i" - ] - }, - { - "kanaIn": "して", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "して", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "って", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "って", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "って", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "って", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んで", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んで", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んで", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - } - ], - "-zu": [ - { - "kanaIn": "ず", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "かず", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "がず", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "こず", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "さず", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "せず", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "たず", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "なず", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ばず", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "まず", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "らず", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "わず", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - } - ], - "-nu": [ - { - "kanaIn": "ぬ", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "かぬ", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "がぬ", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "こぬ", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "さぬ", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "せぬ", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "たぬ", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "なぬ", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ばぬ", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "まぬ", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "らぬ", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "わぬ", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - } - ], - "adv": [ - { - "kanaIn": "く", - "kanaOut": "い", - "tagsIn": [], - "tagsOut": [ - "adj-i" - ] - } - ], - "causative": [ - { - "kanaIn": "かせる", - "kanaOut": "く", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "がせる", - "kanaOut": "ぐ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "させる", - "kanaOut": "する", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "させる", - "kanaOut": "る", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "たせる", - "kanaOut": "つ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "なせる", - "kanaOut": "ぬ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ばせる", - "kanaOut": "ぶ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ませる", - "kanaOut": "む", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "らせる", - "kanaOut": "る", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "わせる", - "kanaOut": "う", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "こさせる", - "kanaOut": "くる", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "vk" - ] - } - ], - "imperative": [ - { - "kanaIn": "い", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "え", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "け", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "げ", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "せ", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "て", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ね", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "べ", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "め", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "よ", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "れ", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ろ", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "こい", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "しろ", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "せよ", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - } - ], - "imperative negative": [ - { - "kanaIn": "な", - "kanaOut": "", - "tagsIn": [], - "tagsOut": [ - "v1", - "v5", - "vk", - "vs" - ] - } - ], - "masu stem": [ - { - "kanaIn": "い", - "kanaOut": "いる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "い", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "え", - "kanaOut": "える", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "き", - "kanaOut": "きる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "き", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ぎ", - "kanaOut": "ぎる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "ぎ", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "け", - "kanaOut": "ける", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "げ", - "kanaOut": "げる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "し", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "じ", - "kanaOut": "じる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "せ", - "kanaOut": "せる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "ぜ", - "kanaOut": "ぜる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "ち", - "kanaOut": "ちる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "ち", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "て", - "kanaOut": "てる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "で", - "kanaOut": "でる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "に", - "kanaOut": "にる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "に", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ね", - "kanaOut": "ねる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "ひ", - "kanaOut": "ひる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "び", - "kanaOut": "びる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "び", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "へ", - "kanaOut": "へる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "べ", - "kanaOut": "べる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "み", - "kanaOut": "みる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "み", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "め", - "kanaOut": "める", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "り", - "kanaOut": "りる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - }, - { - "kanaIn": "り", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "れ", - "kanaOut": "れる", - "tagsIn": [], - "tagsOut": [ - "v1" - ] - } - ], - "negative": [ - { - "kanaIn": "ない", - "kanaOut": "る", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "かない", - "kanaOut": "く", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "がない", - "kanaOut": "ぐ", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "くない", - "kanaOut": "い", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "adj-i" - ] - }, - { - "kanaIn": "こない", - "kanaOut": "くる", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "さない", - "kanaOut": "す", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しない", - "kanaOut": "する", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "たない", - "kanaOut": "つ", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "なない", - "kanaOut": "ぬ", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ばない", - "kanaOut": "ぶ", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "まない", - "kanaOut": "む", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "らない", - "kanaOut": "る", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "わない", - "kanaOut": "う", - "tagsIn": [ - "adj-i" - ], - "tagsOut": [ - "v5" - ] - } - ], - "noun": [ - { - "kanaIn": "さ", - "kanaOut": "い", - "tagsIn": [], - "tagsOut": [ - "adj-i" - ] - } - ], - "passive": [ - { - "kanaIn": "かれる", - "kanaOut": "く", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "がれる", - "kanaOut": "ぐ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "される", - "kanaOut": "する", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "たれる", - "kanaOut": "つ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "なれる", - "kanaOut": "ぬ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ばれる", - "kanaOut": "ぶ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "まれる", - "kanaOut": "む", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "われる", - "kanaOut": "う", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - } - ], - "passive or causative": [ - { - "kanaIn": "される", - "kanaOut": "す", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - } - ], - "past": [ - { - "kanaIn": "た", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いた", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "いだ", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きた", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "した", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "した", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "った", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "った", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "った", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "った", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んだ", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んだ", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "んだ", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "かった", - "kanaOut": "い", - "tagsIn": [], - "tagsOut": [ - "adj-i" - ] - } - ], - "polite": [ - { - "kanaIn": "ます", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "います", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きます", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きます", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎます", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "します", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "します", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "ちます", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "にます", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "びます", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "みます", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ります", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - } - ], - "polite negative": [ - { - "kanaIn": "ません", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いません", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きません", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きません", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎません", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しません", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しません", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "ちません", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "にません", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "びません", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "みません", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "りません", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "くありません", - "kanaOut": "い", - "tagsIn": [], - "tagsOut": [ - "adj-i" - ] - } - ], - "polite past": [ - { - "kanaIn": "ました", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いました", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きました", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きました", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎました", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しました", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しました", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "ちました", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "にました", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "びました", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "みました", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "りました", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - } - ], - "polite past negative": [ - { - "kanaIn": "ませんでした", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いませんでした", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きませんでした", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きませんでした", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎませんでした", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しませんでした", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しませんでした", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "ちませんでした", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "にませんでした", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "びませんでした", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "みませんでした", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "りませんでした", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "くありませんでした", - "kanaOut": "い", - "tagsIn": [], - "tagsOut": [ - "adj-i" - ] - } - ], - "polite volitional": [ - { - "kanaIn": "ましょう", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いましょう", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きましょう", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "きましょう", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎましょう", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しましょう", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "しましょう", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - }, - { - "kanaIn": "ちましょう", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "にましょう", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "びましょう", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "みましょう", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "りましょう", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - } - ], - "potential": [ - { - "kanaIn": "える", - "kanaOut": "う", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ける", - "kanaOut": "く", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "げる", - "kanaOut": "ぐ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "せる", - "kanaOut": "す", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "てる", - "kanaOut": "つ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ねる", - "kanaOut": "ぬ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "べる", - "kanaOut": "ぶ", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "める", - "kanaOut": "む", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "れる", - "kanaOut": "る", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v1", - "v5", - "vk" - ] - }, - { - "kanaIn": "これる", - "kanaOut": "くる", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "vk" - ] - } - ], - "potential or passive": [ - { - "kanaIn": "られる", - "kanaOut": "る", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "v1", - "v5", - "vk" - ] - }, - { - "kanaIn": "こられる", - "kanaOut": "くる", - "tagsIn": [ - "v1" - ], - "tagsOut": [ - "vk" - ] - } - ], - "volitional": [ - { - "kanaIn": "おう", - "kanaOut": "う", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "こう", - "kanaOut": "く", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ごう", - "kanaOut": "ぐ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "そう", - "kanaOut": "す", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "とう", - "kanaOut": "つ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "のう", - "kanaOut": "ぬ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "ぼう", - "kanaOut": "ぶ", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "もう", - "kanaOut": "む", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "よう", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "ろう", - "kanaOut": "る", - "tagsIn": [], - "tagsOut": [ - "v5" - ] - }, - { - "kanaIn": "こよう", - "kanaOut": "くる", - "tagsIn": [], - "tagsOut": [ - "vk" - ] - }, - { - "kanaIn": "しよう", - "kanaOut": "する", - "tagsIn": [], - "tagsOut": [ - "vs" - ] - } - ] -} diff --git a/ext/bg/js/database.js b/ext/bg/js/database.js index 561da7d8..c8820f4e 100644 --- a/ext/bg/js/database.js +++ b/ext/bg/js/database.js @@ -117,15 +117,15 @@ class Database { } const tagMeta = this.tagMetaCache[dictionary] = {}; - const promise = this.db.tagMeta.where('dictionary').equals(dictionary).each(row => { - tagMeta[row.tag] = { - category: row.category, - notes: row.notes, - order: row.order - }; - }); - - promises.push(promise); + promises.push( + this.db.tagMeta.where('dictionary').equals(dictionary).each(row => { + tagMeta[row.tag] = { + category: row.category, + notes: row.notes, + order: row.order + }; + }) + ); } return Promise.all(promises).then(() => this.tagMetaCache); diff --git a/ext/bg/js/deinflector.js b/ext/bg/js/deinflector.js index 1474e56d..b8646e73 100644 --- a/ext/bg/js/deinflector.js +++ b/ext/bg/js/deinflector.js @@ -18,22 +18,22 @@ class Deinflection { - constructor(term, tags=[], rule='') { + constructor(term, rules=[], reason='') { this.children = []; this.term = term; - this.tags = tags; - this.rule = rule; + this.rules = rules; + this.reason = reason; } validate(validator) { return validator(this.term).then(sets => { - for (const tags of sets) { - if (this.tags.length === 0) { + for (const rules of sets) { + if (this.rules.length === 0) { return true; } - for (const tag of this.tags) { - if (tags.includes(tag)) { + for (const rule of this.rules) { + if (rules.includes(rule)) { return true; } } @@ -43,19 +43,19 @@ class Deinflection { }); } - deinflect(validator, rules) { + deinflect(validator, reasons) { const promises = [ this.validate(validator).then(valid => { - const child = new Deinflection(this.term, this.tags); + const child = new Deinflection(this.term, this.rules); this.children.push(child); }) ]; - for (const rule in rules) { - for (const variant of rules[rule]) { - let allowed = this.tags.length === 0; - for (const tag of this.tags) { - if (variant.tagsIn.includes(tag)) { + for (const reason in reasons) { + for (const variant of reasons[reason]) { + let allowed = this.rules.length === 0; + for (const rule of this.rules) { + if (variant.rulesIn.includes(rule)) { allowed = true; break; } @@ -70,9 +70,9 @@ class Deinflection { continue; } - const child = new Deinflection(term, variant.tagsOut, rule); + const child = new Deinflection(term, variant.rulesOut, reason); promises.push( - child.deinflect(validator, rules).then(valid => { + child.deinflect(validator, reasons).then(valid => { if (valid) { this.children.push(child); } @@ -88,14 +88,14 @@ class Deinflection { gather() { if (this.children.length === 0) { - return [{root: this.term, tags: this.tags, rules: []}]; + return [{root: this.term, rules: this.rules, reasons: []}]; } const paths = []; for (const child of this.children) { for (const path of child.gather()) { - if (this.rule.length > 0) { - path.rules.push(this.rule); + if (this.reason.length > 0) { + path.reasons.push(this.reason); } path.source = this.term; @@ -110,15 +110,15 @@ class Deinflection { class Deinflector { constructor() { - this.rules = {}; + this.reasons = {}; } - setRules(rules) { - this.rules = rules; + setReasons(reasons) { + this.reasons = reasons; } deinflect(term, validator) { const node = new Deinflection(term); - return node.deinflect(validator, this.rules).then(success => success ? node.gather() : []); + return node.deinflect(validator, this.reasons).then(success => success ? node.gather() : []); } } diff --git a/ext/bg/js/templates.js b/ext/bg/js/templates.js index 598d8641..2070f276 100644 --- a/ext/bg/js/templates.js +++ b/ext/bg/js/templates.js @@ -66,11 +66,11 @@ templates['kanji.html'] = template({"1":function(container,depth0,helpers,partia var helper, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression; return " " - + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data}) : helper))) + + alias4(((helper = (helper = helpers.tag || (depth0 != null ? depth0.tag : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"tag","hash":{},"data":data}) : helper))) + "\n"; },"8":function(container,depth0,helpers,partials,data) { return "
  • " @@ -190,11 +190,11 @@ templates['term.html'] = template({"1":function(container,depth0,helpers,partial var helper, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression; return " " - + alias4(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data}) : helper))) + + alias4(((helper = (helper = helpers.tag || (depth0 != null ? depth0.tag : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"tag","hash":{},"data":data}) : helper))) + "\n"; },"15":function(container,depth0,helpers,partials,data) { return "
  • " diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js index e7a739b3..50f9f510 100644 --- a/ext/bg/js/translator.js +++ b/ext/bg/js/translator.js @@ -20,7 +20,7 @@ class Translator { constructor() { this.loaded = false; - this.tagMeta = null; + this.ruleMeta = null; this.database = new Database(); this.deinflector = new Deinflector(); } @@ -31,21 +31,21 @@ class Translator { } const promises = [ - loadJsonInt('bg/data/rules.json'), + loadJsonInt('bg/data/reasons.json'), this.database.prepare() ]; - return Promise.all(promises).then(([rules]) => { - this.deinflector.setRules(rules); + return Promise.all(promises).then(([reasons]) => { + this.deinflector.setReasons(reasons); this.loaded = true; }); } findTerm(text, dictionaries, enableSoftKatakanaSearch) { - return this.findTermGroups(text, dictionaries).then(groups => { + return this.findDeinflectGroups(text, dictionaries).then(groups => { const textHiragana = wanakana._katakanaToHiragana(text); if (text !== textHiragana && enableSoftKatakanaSearch) { - return this.findTermGroups(textHiragana, dictionaries).then(groupsHiragana => { + return this.findDeinflectGroups(textHiragana, dictionaries).then(groupsHiragana => { for (const key in groupsHiragana) { groups[key] = groups[key] || groupsHiragana[key]; } @@ -87,25 +87,27 @@ class Translator { return Promise.all(promises).then(sets => this.processKanji(sets.reduce((a, b) => a.concat(b), []))); } - findTermGroups(text, dictionaries) { + findDeinflectGroups(text, dictionaries) { const deinflectGroups = {}; const deinflectPromises = []; for (let i = text.length; i > 0; --i) { deinflectPromises.push( this.deinflector.deinflect(text.slice(0, i), term => { - return this.database.findTerm(term, dictionaries).then(definitions => definitions.map(definition => definition.tags)); + return this.database.findTerm(term, dictionaries).then(definitions => definitions.map(definition => definition.rules)); }).then(deinflects => { const processPromises = []; for (const deinflect of deinflects) { - processPromises.push(this.processTerm( - deinflectGroups, - deinflect.source, - deinflect.tags, - deinflect.rules, - deinflect.root, - dictionaries - )); + processPromises.push( + this.processDeinflection( + deinflectGroups, + deinflect.source, + deinflect.rules, + deinflect.reasons, + deinflect.root, + dictionaries + ) + ); } return Promise.all(processPromises); @@ -116,16 +118,16 @@ class Translator { return Promise.all(deinflectPromises).then(() => deinflectGroups); } - processTerm(groups, source, tags, rules, root, dictionaries) { + processDeinflection(groups, source, rules, reasons, root, dictionaries) { return this.database.findTerm(root, dictionaries).then(definitions => { for (const definition of definitions) { if (definition.id in groups) { continue; } - let matched = tags.length === 0; - for (const tag of tags) { - if (definition.tags.includes(tag)) { + let matched = rules.length === 0; + for (const rule of rules) { + if (definition.rules.includes(rule)) { matched = true; break; } @@ -138,26 +140,20 @@ class Translator { const tagItems = []; for (const tag of definition.tags) { const tagItem = { - name: tag, - class: 'default', + tag, + category: 'default', order: Number.MAX_SAFE_INTEGER, - score: 0, - desc: definition.entities[tag] || '', + notes: '' }; - applyTagMeta(tagItem, this.tagMeta); + applyTagMeta(tagItem, definition.tagMeta); tagItems.push(tagItem); } - let score = 0; - for (const tagItem of tagItems) { - score += tagItem.score; - } - groups[definition.id] = { - score, source, - rules, + reasons, + score: definition.score, expression: definition.expression, reading: definition.reading, glossary: definition.glossary, @@ -172,13 +168,13 @@ class Translator { const tagItems = []; for (const tag of definition.tags) { const tagItem = { - name: tag, - class: 'default', + tag, + category: 'default', order: Number.MAX_SAFE_INTEGER, - desc: '', + notes: '' }; - applyTagMeta(tagItem, this.tagMeta); + applyTagMeta(tagItem, definition.tagMeta); tagItems.push(tagItem); } diff --git a/ext/bg/js/util.js b/ext/bg/js/util.js index 3ec80350..dc606a73 100644 --- a/ext/bg/js/util.js +++ b/ext/bg/js/util.js @@ -84,8 +84,8 @@ function sortTermDefs(definitions) { return 1; } - const rl1 = v1.rules.length; - const rl2 = v2.rules.length; + const rl1 = v1.reasons.length; + const rl2 = v2.reasons.length; if (rl1 < rl2) { return -1; } else if (rl1 > rl2) { diff --git a/tmpl/kanji.html b/tmpl/kanji.html index daa825be..c40bb3bc 100644 --- a/tmpl/kanji.html +++ b/tmpl/kanji.html @@ -30,7 +30,7 @@
    {{#each tags}} - {{name}} + {{tag}} {{/each}}
    diff --git a/tmpl/term.html b/tmpl/term.html index 7d60e42a..fb50e7d7 100644 --- a/tmpl/term.html +++ b/tmpl/term.html @@ -23,7 +23,7 @@
    {{#each tags}} - {{name}} + {{tag}} {{/each}}
    -- cgit v1.2.3