最初に挨拶をし、IDを確認して名前を呼ぶような定型文をどんな文法で表現するかを考える
以前はUMLを使ってみたが、思い付きの延長であり充分吟味されているとは言い難い
よって今回は必要要素を考えながら進めてみる
要素1:何も要求せず、会話を続ける
これは通信レスポンスに「Continue=」という設定値があり、これが0以外だとClientに入力させずに会話を続ける
要素2:Clientに入力させ、それを受信して処理し、その結果で分岐する
例は「IDを入力してもらい、重複がないか確認し、重複の有無で言葉を変える」
Feeの発言前に処理名が必要
処理後の戻り値により分岐させる
基本的に分岐は3つ(OK/NG/Other)
また4つ目の戻り値をFeeの発言中に{return}のように埋め込むことができること
これは分岐しなくてもいい場合でも流用できる(例えば全部OK側に分岐させる)
基本的な動きはこの2つがあればできると思われる
やってみよう…
たかだかこれだけのことをやらせようと思っただけで…
この遷移をステートマシン的にまとめるとこんな感じである
それでもまた未完成
遷移をひとつひとつ考え、文言を考え、分岐を考えとしていると、これだけでも膨大な時間がかかる
そしてまったく汎用性がない
こんなことをやっていても意味がない
もう少し系統立てて、汎用的に考えられるものにしないと…
ということで、再検討
どういう枠組みを用意すればよさそうか?
これはたぶんこの程度を考えておけば充分だろう
問題は
どう分岐させて、どう会話をつないでいくのか?
Clientの言葉のどの部分を抜き出して反映させるのか?
この本質的な事象をどうやって汎用的に求められるかがこの検討の目的である
ความคิดเห็น