(57)【要約】      （修正有）【課題】アプリケーション構築ツールにおいて、アプリケーションの構築を効率的に行う仕組みを提供する。【解決手段】アプリケーションを構築する情報処理装置で実行可能なプログラムであって、情報処理装置を、アプリケーションを構築するための定義情報を取得し、アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得し、チャットボット機能を利用する設定が取得された場合は、取得された定義情報に基づき、チャットボット機能を利用可能なアプリケーションを構築する手段として機能させる。【選択図】図３
2020119409.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを構築する情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
前記アプリケーションを構築するための定義情報を取得する定義情報取得手段と、
前記アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得する設定取得手段と、
前記設定取得手段により前記チャットボット機能を利用する設定が取得された場合は、前記定義情報取得手段により取得された定義情報に基づき、前記チャットボット機能を利用可能なアプリケーションを構築する構築手段
として機能させるためのプログラム。
【請求項２】
前記設定は、アプリケーション画面の識別情報毎に前記チャットボット機能を利用するかの設定を含み、
前記構築手段は、
前記設定取得手段により前記チャットボット機能を利用する設定が取得された画面において前記チャットボット機能を利用可能なアプリケーションを構築すること
を特徴とする請求項１に記載のプログラム。
【請求項３】
前記構築手段は、
前記質問の内容及び当該質問に係るアプリケーション画面の識別情報に基づき取得した回答を出力するチャットボット機能を利用可能なアプリケーションを構築すること
を特徴とする請求項１又は２に記載のプログラム。
【請求項４】
前記構築手段は、
前記質問の内容及び当該質問に係るアプリケーションの識別情報に基づき取得した回答を出力するチャットボット機能を利用可能なアプリケーションを構築すること
を特徴とする請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
アプリケーションを構築する情報処理装置であって、
前記アプリケーションを構築するための定義情報を取得する定義情報取得手段と、
前記アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得する設定取得手段と、
前記設定取得手段により前記チャットボット機能を利用する設定が取得された場合は、前記定義情報取得手段により取得された定義情報に基づき、前記チャットボット機能を利用可能なアプリケーションを構築する構築手段と
を備えることを特徴とする情報処理装置。
【請求項６】
アプリケーションを構築する情報処理装置における処理方法であって、
前記情報処理装置が、
前記アプリケーションを構築するための定義情報を取得する定義情報取得ステップと、
前記アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得する設定取得ステップと、
前記設定取得ステップにより前記チャットボット機能を利用する設定が取得された場合は、前記定義情報取得ステップにより取得された定義情報に基づき、前記チャットボット機能を利用可能なアプリケーションを構築する構築ステップと
を実行することを特徴とする処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションを構築するためのプログラム、情報処理装置及び処理方法に関する。
【背景技術】
【０００２】
従来、設定された定義情報に基づき、アプリケーションを構築（生成）するツールやサービスが存在する。
【０００３】
また、アプリケーションには、アプリケーションユーザのためにヘルプやＦＡＱの機能が用意されていることが多いが、近年では、ヘルプやＦＡＱの機能の代わりに、会話形式での質問が可能なチャットボット機能を利用可能なアプリケーションも増えてきている。
【０００４】
特許文献１には、金融商品に関する質問に対して回答をするチャットボットの仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１８−６０５０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１は、他のシステムやアプリケーションと連携することのない、独立したチャットボットの仕組みであるため、アプリケーション構築ツールを用いて構築するアプリケーションに係る質問を受け付けるチャットボット機能を生成する技術ではない。
【０００７】
よって、アプリケーション構築ツールを用いてアプリケーションを短期間に構築できたとしても、当該アプリケーションユーザのためのチャットボット機能を別途作らなくてはならないという課題がある。
【０００８】
そこで、本発明の目的は、チャットボット機能を利用可能なアプリケーションを容易に構築する仕組みを提供することである。
【課題を解決するための手段】
【０００９】
アプリケーションを構築する情報処理装置で実行可能なプログラムであって、前記情報処理装置を、前記アプリケーションを構築するための定義情報を取得する定義情報取得手段と、前記アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得する設定取得手段と、前記設定取得手段により前記チャットボット機能を利用する設定が取得された場合は、前記定義情報取得手段により取得された定義情報に基づき、前記チャットボット機能を利用可能なアプリケーションを構築する構築手段として機能させるためのプログラム。
【発明の効果】
【００１０】
本発明によれば、チャットボット機能を利用可能なアプリケーションを容易に構築する仕組みを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明に係るシステムの構成図の一例である。
【図２】情報処理装置、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントとして適用可能な各ハードウェア構成の一例を示すブロック図である。
【図３】ソフトウェア構成を示すブロック図の一例である。
【図４】本発明に係るシステムの構成図である。
【図５】アプリケーション生成のフローチャートの一例を示す図である。
【図６】アプリケーション実行のフローチャートの一例を示す図である。
【図７】チャットボット処理のフローチャートの一例を示す図である。
【図８】アプリケーション設定情報４０７の一例を示す図である。
【図９】ＱＡデータ４２５の一例を示す図である。
【図１０】チャットボット画面及び質問の一例を示す図である。
【図１１】チャットボット画面及び回答の一例を示す図である。
【図１２】チャットボットによる回答検索処理の一例を示す図である。
【図１３】チャットボットから送信される回答の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【００１３】
図１は、本発明に係る情報処理装置（ソフトウェア開発者がソフトウェア開発のために操作するソフトウェア開発装置）、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントの構成の一例を示すシステム（情報処理システム）構成図である。なお、本実施形態においては、情報処理装置にて開発されたソフトウェアをアプリケーションと呼ぶが、アプリケーションに限定するものではなく、アプリケーション以外のソフトウェア（例：ＯＳ）であってもよい。
【００１４】
情報処理装置１０１は、ソフトウェア開発者の操作に従って画面レイアウト及びデータベース検索指示などを定義する。情報処理装置１０１は、プログラム生成、アプリケーション生成を行う。
【００１５】
なお、本実施形態においては、情報処理装置１０１で生成するアプリケーションはＷｅｂアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Ｗｅｂ技術による通信を利用するアプリケーション以外のアプリケーションであってもよい。
【００１６】
また、本実施形態においては、情報処理装置１０１はアプリケーションのソースコード（プログラムコード）を生成するとしたが、この方法に限定するものではなく、ソースコードを生成することなく、アプリケーションサーバ１０２やクラウド環境等でアプリケーションが動作する様にデータやファイル等を生成することにより、アプリケーション（の動作環境）を構築する等であってもよい。
【００１７】
アプリケーションサーバ１０２は、情報処理装置１０１で開発されたアプリケーションを実行する。また、データベースサーバ１０３と接続して動作することが可能である。
【００１８】
データベースサーバ１０３は、開発されたアプリケーションが使用するデータベースであり、また本発明では開発時にも動作確認などのために利用してもよい。例えば、ソフトウェア開発者が利用するためにデータベースサーバ１０３は、情報処理装置１０１や、アプリケーションサーバ１０２と同一の装置で構成されていてもよいし、ＬＡＮなどのネットワーク１０５内に配置されてもよい。
【００１９】
アプリケーションクライアント１０４（情報処理装置）は、アプリケーションサーバ１０２と協調して情報処理装置１０１で開発したアプリケーションプログラムを動作させる、エンドユーザの入力端末である。この、アプリケーションクライアント１０４は、携帯端末などの情報処理装置であってもよいこととする。
【００２０】
なお、情報処理装置１０１、アプリケーションサーバ１０２、データベースサーバ１０３、および、アプリケーションクライアント１０４の何れかを、クラウドなどのインターネット上に配置してもよい。
【００２１】
以上で、図１の説明を終了する。
【００２２】
図２は、本発明に係わる情報処理装置１０１、アプリケーションサーバ１０２、データベースサーバ１０３、アプリケーションクライアント１０４として適用可能な各ハードウェア構成の一例を示すブロック図である。
【００２３】
図２において、ＣＰＵ２０１は、システムバス２０４に接続される各デバイスを統括的に制御する。
【００２４】
また、ＲＯＭ２０３あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるオペレーティングシステム（ＯＳ）や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
【００２５】
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア、一時待避領域等として機能する。
【００２６】
入力コントローラ２０５は、入力部２０９からの入力を制御する。この入力部２０９としては、情報処理装置では、キーボード、マウス等のポインティングデバイス、タッチパネルが挙げられる。
【００２７】
なお、入力部２０９がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下（指等でタッチ）することにより、各種の指示を行うことができることとする。
【００２８】
また、タッチパネルは、マルチタッチスクリーン等の、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【００２９】
出力コントローラ２０６は、出力部２１０の表示を制御する。この出力部２１０としては、例えば、ＣＲＴや液晶ディスプレイ等が挙げられる。尚、本体と一体になったノート型パソコンのディスプレイも含まれるものとする。また、プロジェクタであってもよいこととする。
【００３０】
外部メモリコントローラ２０７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ２１１へのアクセスを制御する。外部メモリ２１１には、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ２１１としては、ハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）、ＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）、スマートメディア等が挙げられる。
【００３１】
なお、ＣＰＵ２０１は、例えばＲＡＭ２０２内の表示情報用領域へアウトラインフォント展開（ラスタライズ）処理を実行することにより、出力部２１０上での表示を可能としている。また、ＣＰＵ２０１は、出力部２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３２】
通信Ｉ／Ｆコントローラ２０８は、ネットワークを介して外部機器との通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信等が可能である。
【００３３】
本発明を実現するためのプログラム２１２は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０２にロードされることによりＣＰＵ２０１によって実行されるものである。
【００３４】
図３は、本発明の実施の形態のソフトウェア構成を示すブロック図の一例である。
【００３５】
情報処理装置１０１は、以下の機能部を備える。
【００３６】
定義情報取得部３０１は、アプリケーションを構築するための定義情報を取得する機能部である。
【００３７】
設定取得部３０２は、アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得する機能部である。
【００３８】
構築部３０３は、設定取得部３０２によりチャットボット機能を利用する設定が取得された場合は、定義情報取得部３０１により取得された定義情報に基づき、チャットボット機能を利用可能なアプリケーションを構築する機能部である。
【００３９】
構築部３０３は、設定取得部３０２によりチャットボット機能を利用する設定が取得された画面においてチャットボット機能を利用可能なアプリケーションを構築する機能部である。
【００４０】
構築部３０３は、質問の内容及び当該質問に係るアプリケーション画面の識別情報に基づき取得した回答を出力するチャットボット機能を利用可能なアプリケーションを構築する機能部である。
【００４１】
構築部３０３は、質問の内容及び当該質問に係るアプリケーションの識別情報に基づき取得した回答を出力するチャットボット機能を利用可能なアプリケーションを構築する機能部である。
【００４２】
以上で、図３の説明を終了する。
【００４３】
図４は、情報処理装置１０１、アプリケーションサーバ１０２及びアプリケーションクライアント１０４の構成図である。
【００４４】
情報処理装置１０１は、リポジトリ定義部４０１及びアプリケーション生成部４１０を備える。
【００４５】
情報処理装置１０１は、アプリケーションを開発する開発者により設定されたリポジトリ定義部４０１の各定義を用いて、アプリケーション生成部４１０によりアプリケーションを生成する。
【００４６】
リポジトリ定義部４０１には、アプリケーション定義４０２、入出力定義４０３、データモデル定義４０４、ビジネスプロセス定義４０５、データベース定義４０６、アプリケーション設定情報４０７及びＱＡデータ４０８が記憶されている。これら４０２〜４０８の定義は、アプリケーション構築ツールを介して、主にアプリケーション開発者によって設定又は配置される。勿論、ＱＡデータ４０８等は、アプリケーション開発者でなく、アプリケーション運用者等が作成するとしてもよい。
【００４７】
入出力定義４０３は、アプリケーション画面に配置される各種項目のレイアウトの定義情報を保持する。入出力定義４０３は、入力項目定義情報及び出力項目定義情報を含む。
【００４８】
入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報である。出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報である。以降、「入力項目定義情報」及び「出力項目定義情報」をまとめて「入出力項目定義情報」と呼ぶ。
【００４９】
なお、本実施形態においては、「入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報」としたが、これらに限定するものではなく、例えば、画面を有さないバッチやＷｅｂサービス等のように、「入力項目定義情報は、生成されたアプリケーションに入力される入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションが出力する出力項目を定義した情報」であってもよい。
【００５０】
データモデル定義４０４は、データベースのテーブルの項目の定義情報を保持する。入出力定義４０３の各項目には、データモデル定義４０４の項目を対応づけることができる。
【００５１】
ビジネスプロセス定義４０５は、アプリケーションにおけるデータを処理するためのロジックの定義情報を保持する。
【００５２】
データベース定義４０６は、アプリケーションが接続するデータベースに係る情報（データベースサーバ１０３のＩＰアドレス、接続ユーザ、接続パスワード等）を定義する。
【００５３】
アプリケーション設定情報４０７は、アプリケーション画面にチャットエリアを表示させるか否かの設定を定義する。
【００５４】
ＱＡデータ４０８は、チャットボットサーバ１０６が質問に対し回答をするためのＱＡの組み合わせを定義する。
【００５５】
アプリケーション生成部４１０は、アプリケーション生成用のリポジトリ定義解析部４１１を用いてリポジトリ定義部４０１に記憶されている各定義や各定義の関連を解析し、ソースコード生成部４１３を用いて、ＨＴＭＬ／ＪＳＰ／ＪａｖａＳｃｒｉｐｔ（登録商標）４２２及び４２４を含むアプリケーションソースコードを生成する。また、生成したアプリケーションソースコードのうち、コンパイルが必要なものは、ソースコードコンパイル部４１４を用いて、コンパイル済ソースコード４２１を生成する。すなわち、アプリケーション生成部４１０は、設定された定義を用いて、アプリケーションとして用いられるプログラムを生成する手段の一例である。
【００５６】
次に、チャットボットサーバ１０６について説明する。
【００５７】
チャットボットの処理に用いるコンパイル済ソースコード４２３、並びに、ＨＴＭＬ／ＪＳＰ／ＪａｖａＳｃｒｉｐｔ（登録商標）４２４を含むアプリケーションソースコードも同様に、アプリケーション生成部４１０、ソースコード生成部４１３、ソースコードコンパイル部４１４を用いて生成する。
【００５８】
また、チャットボットサーバ１０６には、リポジトリ定義部４０１に記憶されているＱＡデータ４０８に基づき、ＱＡデータ４２５を生成する。チャットボットサーバ１０６は、ＱＡデータ４２５を参照し、アプリケーションユーザからの質問に対する回答を取得して返信する。
【００５９】
以上で、図４の説明を終了する。
【００６０】
図５は、アプリケーション生成のフローチャートの一例を示す図である。
【００６１】
情報処理装置１０１は、ディレクトリ構造を用いて、リポジトリ定義部４０１の各定義をファイルとして管理する。なお、本実施形態においては、ディレクトリ構造を用いて、リポジトリ定義部４０１の各定義をファイルとして管理するとしたが、これに限定するものではなく、例えば、データベースを用いてリポジトリ定義部４０１の各定義を管理してもよいし、クラウドなどネットワーク上の記憶装置を用いて管理する等としてもよい。
【００６２】
アプリケーション生成のフローチャートについて説明する。
【００６３】
ステップＳ５０１において、情報処理装置１０１は、アプリケーション定義４０２の設定を受け付ける。すなわち、ステップＳ５０１は、アプリケーションを構築するための定義情報を取得する処理の一例を示すステップである。
【００６４】
具体的には、アプリケーション構築ツールの画面を介して、アプリケーション開発者から入出力定義４０３、データモデル定義４０４、ビジネスプロセス定義４０５、データベース定義４０６、アプリケーション設定情報４０７及びＱＡデータ４０８の設定を受け付ける。
【００６５】
ステップＳ５０１にて、受け付けたアプリケーション定義４０２、入出力定義４０３、データモデル定義４０４、ビジネスプロセス定義４０５、データベース定義４０６、アプリケーション設定情報４０７及びＱＡデータ４０８の設定は、リポジトリ定義部４０１にＸＭＬファイル形式で記憶する。なお、本実施形態においては、ＸＭＬファイル形式としたが、この形式に限定するものではなく、他の形式であってもよい。
【００６６】
ステップＳ５０２において、情報処理装置１０１は、アプリケーション生成の指示を受け付ける。
【００６７】
ステップＳ５０３において、情報処理装置１０１は、リポジトリ定義部４０１からアプリケーション定義４０２を取得する。リポジトリ定義解析部４１１は、読み込んだ定義を解析したうえでＲＯＭ２０３に記憶しておき、解析された定義は各生成部から適宜参照される。
【００６８】
ステップＳ５０４において、情報処理装置１０１は、リポジトリ定義部４０１からデータモデル定義４０４を取得する。
【００６９】
ステップＳ５０５において、情報処理装置１０１は、リポジトリ定義部４０１から入出力定義４０３を取得する。
【００７０】
ステップＳ５０６において、情報処理装置１０１は、リポジトリ定義部４０１からビジネスプロセス定義４０５を取得する。
【００７１】
ステップＳ５０７において、情報処理装置１０１は、リポジトリ定義部４０１からデータベース定義４０６を取得する。
【００７２】
ステップＳ５０８において、情報処理装置１０１は、リポジトリ定義部４０１からアプリケーション設定情報４０７を取得する。
【００７３】
ステップＳ５０９において、情報処理装置１０１は、リポジトリ定義部４０１からＱＡデータ４０８を取得する。すなわち、ステップＳ５０１〜Ｓ５０９は、アプリケーションを構築するための定義情報を取得する処理の一例を示すステップである。
【００７４】
ステップＳ５１０において、情報処理装置１０１は、アプリケーション生成部４１０を用いて、アプリケーションに用いるアプリケーションソースコード４４０を生成する。
【００７５】
ステップＳ５１１において、情報処理装置１０１は、ステップＳ５１０にて生成したアプリケーションソースコード４４０をアプリケーションサーバ１０２に配置（デプロイ）する。
【００７６】
すなわち、ステップＳ５１１は、取得された定義情報に基づき、アプリケーションを構築する処理の一例を示すステップである。
【００７７】
すなわち、ステップＳ５１１は、チャットボット機能を利用する設定が取得された場合は、取得された定義情報に基づき、チャットボット機能を利用可能なアプリケーションを構築する処理の一例を示すステップである。
【００７８】
すなわち、ステップＳ５１１は、チャットボット機能を利用する設定が取得された画面においてチャットボット機能を利用可能なアプリケーションを構築する処理の一例を示すステップである。
【００７９】
また、ステップＳ５０９にて取得したＱＡデータ４０８、チャットボット機能を実行するためのコンパイル済ソースコード４２３及び画面情報４２４を、チャットボットサーバ１０６に配置する。なお、本実施形態においては、ＱＡデータ４０８、コンパイル済ソースコード４２３及び画面情報４２４をチャットボットサーバ１０６に配置するとしたが、この方法に限定するものではなく、ＱＡデータ４０８のみをチャットボットサーバ１０６に配置したり、ＱＡデータ４０８等をアプリケーションサーバ１０２やアプリケーションクライアント１０４等その他の情報処理装置に配置したりするとしてもよい。
【００８０】
以上により、生成指示を受け付けたアプリケーションを生成（構築）することができる。
【００８１】
以上で、図５の説明を終了する。
【００８２】
図６は、アプリケーション実行のフローチャートの一例を示す図である。
【００８３】
ステップＳ６０１において、アプリケーションサーバ１０２は、ステップＳ５１１にてデプロイされたアプリケーションを起動する際、当該アプリケーションに含まれているアプリケーション設定情報４０７を取得し、当該アプリケーション及び各画面のチャットエリア表示設定を取得する。すなわち、ステップＳ６０１は、アプリケーションのユーザから当該アプリケーションに係る質問を受け付け、当該質問に対する回答を出力するチャットボット機能を利用するかの設定を取得する処理の一例を示すステップである。
【００８４】
図８の８００は、アプリケーション設定情報４０７の一例を示す図である。ここで、図８について説明しておく。
【００８５】
「ｈｅｌｐ．ｃｈａｔＵＩ．ｓｈｏｗ」（図８の８０１）は、生成したアプリケーションの画面にチャットエリアを表示するか否かの設定（０：非表示、１：閉じた状態で表示、２：開いた状態で表示）である。
【００８６】
「ｓａｍｐｌｅＩＯ．ｈｅｌｐ．ｃｈａｔＵＩ．ｓｈｏｗ」（図８の８０２）は、画面コード＝“ｓａｍｐｌｅＩＯ”の画面において、チャットエリアを表示するか否かの設定（０：非表示、１：閉じた状態で表示、２：開いた状態で表示）である。すなわち、図８の８０２は、アプリケーション画面の識別情報毎にチャットボット機能を利用するかの設定する手段の一例である。
【００８７】
「ｈｅｌｐ．ｃｈａｔＵＩ．ｓｈｏｗ」の設定値よりも「画面コード．ｈｅｌｐ．ｃｈａｔＵＩ．ｓｈｏｗ」の設定値を優先して各画面の表示／非表示を判定するため、「ｈｅｌｐ．ｃｈａｔＵＩ．ｓｈｏｗ」の設定と異なる設定を行いたい画面は、「画面コード．ｈｅｌｐ．ｃｈａｔＵＩ．ｓｈｏｗ」で個別に設定する。
【００８８】
ステップＳ６０２において、アプリケーションサーバ１０２は、これから表示するアプリケーション画面のチャットエリア表示設定を判定する。表示しない場合はチャットエリアを表示しないアプリケーション画面情報をアプリケーションクライアント１０４に送信してステップＳ６０３に進み、表示する場合はチャットエリアを表示するアプリケーション画面情報をアプリケーションクライアント１０４に送信してステップＳ６０４に進む。
【００８９】
すなわち、ステップＳ６０２は、チャットボット機能を利用する設定が取得された場合は、取得された定義情報に基づき、チャットボット機能を利用可能にする処理の一例を示すステップである。
【００９０】
すなわち、ステップＳ６０２は、チャットボット機能を利用する設定が取得された画面においてチャットボット機能を利用可能にする処理の一例を示すステップである。
【００９１】
つまり、これから表示するアプリケーション画面の画面ＩＤが、アプリケーション設定情報４０７の「ｓａｍｐｌｅＩＯ．ｈｅｌｐ．ｃｈａｔＵＩ．ｓｈｏｗ」（図８の８０２）に設定されている場合はその設定値でチャットエリア表示設定を判定し、設定されていない場合は「ｈｅｌｐ．ｃｈａｔＵＩ．ｓｈｏｗ」（図８の８０１）の設定値でチャットエリア表示設定を判定する。
【００９２】
なお、本実施形態においては、「チャットエリア表示設定＝表示／非表示」としたが、この設定方法に限定するものではなく、例えば「チャットボット機能利用設定＝可能（有効）／不可能（無効）」等の設定であってもよい。この場合、「チャットボット機能利用設定＝可能（有効）」であれば、質問の入力を受け付けることを可能に制御し、「チャットボット機能利用設定＝不可能（無効）」であれば、質問の入力を受け付けることを不可能に制御する。
【００９３】
なお、本実施形態においては、アプリケーション設定情報４０７に設定されているアプリケーション単位又は画面単位でチャットボット機能の有効／無効を設定できるとしたが、この設定方法に限定するものではなく、アプリケーションユーザの属性（会社・組織若しくは権限等）、アプリケーションクライアントの端末・ＯＳ・ブラウザの種類・バージョン、参照するアプリケーションデータの値若しくはステータス、アプリケーションの利用時刻や利用場所又はアプリケーションサーバの識別情報等によって、「チャットエリア表示設定＝表示／非表示」を判定するとしてもよい。
【００９４】
ステップＳ６０３において、アプリケーションクライアント１０４は、アプリケーションサーバ１０２から送信されたアプリケーション画面情報を受信し、チャットエリアを表示しないアプリケーション画面を表示する。
【００９５】
ステップＳ６０４において、アプリケーションクライアント１０４は、アプリケーションサーバ１０２から送信されたアプリケーション画面情報を受信し、チャットエリア１０１０（図１０）を表示したアプリケーション画面を表示する。チャットエリアには、チャットボットに対して送信する質問を入力するためのテキストボックス１０１１（図１０）が表示されている。
【００９６】
ステップＳ６０５において、アプリケーションクライアント１０４は、アプリケーションユーザからの質問を受け付ける。具体的には、テキストボックス１０１１に対して質問の入力を受け付ける。ここでは、「ラインジャンプとはどんな機能ですか？」という質問の入力を受け付けたとする（図１０の１０２１）。なお、本実施形態においては、質問を文字による入力としたが、この方法に限定するものではなく、アプリケーション画面の表示内容の選択、質問選択肢からの選択、音声による質問入力等、他の入力方法であってもよい。
【００９７】
ステップＳ６０６において、アプリケーションクライアント１０４は、ステップＳ６０５にて受け付けた質問内容、アプリケーションコード及び画面コードを質問情報として、チャットボットサーバ１０６へ送信する。図１０の１００３は、アプリケーションコード＝“ｓａｍｐｌｅＡＰＰ”、画面コード＝“ｓａｍｐｌｅＩＯ”の画面から質問内容＝“ラインジャンプとはどんな機能ですか？”を入力したときにチャットボットサーバ１０６へ送信される質問情報の一例である。
【００９８】
ステップＳ６０７において、チャットボットサーバ１０６は、チャットボット処理（図７）を実行する。
【００９９】
ここで、図７について説明しておく。図７は、チャットボット処理のフローチャートの一例を示す図である。
【０１００】
ステップＳ７０１において、チャットボットサーバ１０６は、アプリケーションクライアント１０４から送信された質問情報を受信する。
【０１０１】
ステップＳ７０２において、チャットボットサーバ１０６は、ＱＡデータ前回読込日時とＱＡデータファイル更新日時を比較し、ＱＡデータ前回読込後、ＱＡデータファイルが新たに更新されている場合はステップＳ７０３に進み、更新されていない場合はステップＳ７０４に進む。
【０１０２】
ステップＳ７０３において、チャットボットサーバ１０６は、ＱＡデータ４２５（図９）を読み込み、ＲＡＭ２０２に記憶する。
【０１０３】
ここで、図９について説明しておく。図９の９００は、ＱＡデータ４２５の一例を示す図である。
【０１０４】
図９の９００のＱＡデータ４２５には、例として、ＱＡレコードが４件格納されている。ＱＡデータは、｛質問，回答，アプリケーションコード，画面コード｝の順にカンマ区切りで記述する。
【０１０５】
ＱＡの検索には、「質問」及び「回答」が利用される。「アプリケーションコード」及び「画面コード」は、アプリケーション毎、画面毎に異なるＱＡレコードを用意したい場合に設定する。例えば、特定アプリケーション専用のＱＡデータや特定画面専用のＱＡデータを用意したい場合は、アプリケーションコード又は画面コードにそれぞれのコードを設定することで、そのアプリケーション又はその画面からの質問に対してのみＱＡレコードをヒットさせることができる。
【０１０６】
ＱＡレコード９０１は、「アプリケーションコード」及び「画面コード」を設定していないため、アプリケーション及び画面を特に限定しない回答として用いることができる。つまり、どのアプリケーションからも、どの画面からも、される可能性のある広く一般的な質問である。
【０１０７】
ＱＡレコード９０２は、「アプリケーションコード」を設定し、「画面コード」を設定していないため、アプリケーションを限定し、画面コードは限定しない回答として用いることができる。つまり、特定アプリケーションの複数画面でされる可能性の高い質問である。言い換えると、ＱＡレコード９０２は、特定アプリケーションのみに存在する機能についてのＱＡデータである。
【０１０８】
ＱＡレコード９０３は、「アプリケーションコード」を設定しておらず、「画面コード」を設定しているため、アプリケーションは特に限定せず、画面コードを限定した回答として用いることができる。つまり、複数アプリケーションにおける特定画面からされる可能性の高い質問である。言い換えると、ＱＡレコード９０３は、複数アプリケーションに共通して存在する機能だが、特定画面にしか存在しない機能（例：印刷機能）についてのＱＡデータである。
【０１０９】
ＱＡレコード９０４は、「アプリケーションコード」及び「画面コード」を設定しているため、アプリケーション及び画面コードの両方を限定した回答として用いることができる。つまり、特定アプリケーションの特定画面からされる可能性の高いピンポイント的な質問である。言い換えると、ＱＡレコード９０４は、特定アプリケーションの特定画面にしか存在しない機能についてのＱＡデータである。
【０１１０】
以上で、図９の説明を終了する。
【０１１１】
図７の説明に戻る。
【０１１２】
ステップＳ７０４において、チャットボットサーバ１０６は、ＲＡＭ２０２に記憶したＱＡデータ４２５のうち、「アプリケーションコード」及び「画面コード」が質問情報に含まれる「アプリケーションコード」及び「画面コード」と一致するＱＡデータの中から、質問内容に対応する回答を検索し（図１２の１２０１）、回答があった場合はステップＳ７０８に進み、無かった場合はステップＳ７０５に進む。
【０１１３】
すなわち、ステップＳ７０４は、質問の内容及び当該質問に係るアプリケーション画面の識別情報に基づき回答を取得する処理の一例を示すステップである。
【０１１４】
すなわち、ステップＳ７０４は、質問の内容及び当該質問に係るアプリケーションの識別情報に基づき回答を取得する処理の一例を示すステップである。
【０１１５】
これにより、ＱＡレコード９０４（図９）のように、「アプリケーションコード」及び「画面コード」が設定されているＱＡレコードがヒットするため、特定アプリケーションの特定画面からされる可能性の高いピンポイント的な質問に対する回答が優先的に出力されることになる。
【０１１６】
ここで、図１２について説明しておく。図１２は、チャットボットによる回答検索処理の一例を示す図である。
【０１１７】
１２０１〜１２０４の順に回答検索処理を行い、質問内容に対応する回答が見つかった時点で図１２の処理は中断し、アプリケーションクライアント１０４へヒットした回答内容を送信する。
【０１１８】
ｓｅａｒｃｈｅｒは、ＱＡデータ４２５を形態素解析、キーワード抽出、インデックス化したオブジェクトである。
【０１１９】
ｑｕｅｒｙは、質問情報１００３の質問内容を形態素解析、キーワード抽出、インデックス化したオブジェクトである。
【０１２０】
ａｐｐＦｉｌｔｅｒは、質問情報１００３のアプリケーションコードである。アプリケーションコードを指定しない場合は、ａｐｐＦｉｌｔｅｒの代わりに、すべてのアプリケーションコードを意味する“ａｌｌＡｐｐＦｉｌｔｅｒ”を用いる。
【０１２１】
ｉｏＦｉｌｔｅｒは、質問情報１００３の画面コードである。画面コードを指定しない場合は、ｉｏＦｉｌｔｅｒの代わりに、すべての画面コードを意味する“ａｌｌＩｏＦｉｌｔｅｒ”を用いる。
【０１２２】
なお、本実施形態においては、ＱＡデータ４２５及び質問情報１００３の形態素解析、キーワード抽出、インデックス化して質問に対する回答を取得するとしたが、この方法に限定するものではなく、その他の言語解析技術を用いた回答取得、人工知能を用いた回答取得、他システムと連携した回答取得等であってもよい。
【０１２３】
以上で、図１２の説明を終了する。
【０１２４】
図７の説明に戻る。
【０１２５】
ステップＳ７０５において、チャットボットサーバ１０６は、ＲＡＭ２０２に記憶したＱＡデータ４２５のうち、「アプリケーションコード」が質問情報に含まれる「アプリケーションコード」と一致するＱＡデータ４２５の中から、質問内容に対応する回答を検索し（図１２の１２０２）、回答があった場合はステップＳ７０８に進み、無かった場合はステップＳ７０６に進む。すなわち、ステップＳ７０５は、質問の内容及び当該質問に係るアプリケーションの識別情報に基づき回答を取得する処理の一例を示すステップである。
【０１２６】
これにより、ＱＡレコード９０２（図９）のように、「アプリケーションコード」が設定されているＱＡレコードがヒットするため、特定アプリケーションの複数画面でされる可能性の高い質問に対する回答が優先的に出力されることになる。
【０１２７】
ステップＳ７０６において、チャットボットサーバ１０６は、ＲＡＭ２０２に記憶したＱＡデータ４２５のうち、画面コードが質問情報に含まれる画面コードと一致するＱＡデータ４２５の中から、質問内容に対応する回答を検索し（図１２の１２０３）、回答があった場合はステップＳ７０８に進み、無かった場合はステップＳ７０７に進む。すなわち、ステップＳ７０６は、質問の内容及び当該質問に係るアプリケーション画面の識別情報に基づき回答を取得する処理の一例を示すステップである。
【０１２８】
これにより、ＱＡレコード９０３（図９）のように、「画面コード」が設定されているＱＡレコードがヒットするため、特定アプリケーションの複数画面でされる可能性の高い質問に対する回答が優先的に出力されることになる。
【０１２９】
ステップＳ７０７において、チャットボットサーバ１０６は、ＲＡＭ２０２に記憶したＱＡデータ４２５の中から、質問内容に対応する回答を検索し（図１２の１２０４）、回答があった場合はステップＳ７０８に進み、無かった場合はステップＳ７０９に進む。
【０１３０】
これにより、ＱＡレコード９０１（図９）のように、「アプリケーションコード」及び「画面コード」を設定していないＱＡレコードがヒットするため、どのアプリケーションからも、どの画面からも、される可能性のある広く一般的な質問に対する回答が出力されることになる。
【０１３１】
なお、本実施形態においては、ステップＳ７０４〜Ｓ７０６にて回答がヒットした場合、その後の検索を行わないとしたが、この手順に限定するものではなく、ステップＳ７０４〜Ｓ７０６にて回答がヒットした場合であっても、その後の検索も行い、ヒットした順に回答を出力する（図６のステップＳ６０９）としてもよい。これにより、ピンポイント的な回答が優先的に出力され、広く一般的な回答が最後の方に出力されるようになるため、アプリケーションユーザが所望する回答を優先的に得られるようになる。
【０１３２】
ステップＳ７０８において、チャットボットサーバ１０６は、アプリケーションクライアント１０４へヒットした回答内容を送信する。図１３の１３０１は、ステップＳ７０６にて回答がヒットした場合のチャットボットサーバ１０６のログの一例である。図１３の１３０２は、ステップＳ７０７にて回答がヒットした場合のチャットボットサーバ１０６のログの一例である。
【０１３３】
ステップＳ７０９において、チャットボットサーバ１０６は、アプリケーションクライアント１０４へヒットする回答が無いことを送信する。図１３の１３０３は、回答がヒットしなかった場合のチャットボットサーバ１０６のログの一例である。
【０１３４】
以上で、図７の説明を終了する。
【０１３５】
図６の説明に戻る。
【０１３６】
ステップＳ６０８において、アプリケーションクライアント１０４は、チャットボットサーバ１０６からの回答を受信する。図１１の１１０１は、図７の処理により回答が見つかったときにチャットボットサーバ１０６から受信する回答情報の一例である。
【０１３７】
ステップＳ６０９において、アプリケーションクライアント１０４は、チャットボットサーバ１０６からの回答を出力する。図１１の１１０２は、図７の処理により回答が見つかったときの回答情報の出力例である。図１１の１１０３は、図７の処理により回答が見つからなかったときの回答情報の出力例である。
【０１３８】
なお、本実施形態においては、回答をチャットエリアに文字で表示するとしたが、この出力方法に限定するものではなく、質問内容に係るアプリケーション画面部品近傍への回答表示、画像による回答表示、音声による回答出力等、他の出力方法であってもよい。
【０１３９】
なお、本実施形態においては、アプリケーションクライアント１０４とチャットボットサーバ１０６とが情報を送受信することで質問に対する回答を取得するとしたが、この方法に限定するものではなく、アプリケーションクライアント１０４にＱＡデータ４２５をダウンロードしておき、アプリケーションクライアント１０４内の処理で質問に対する回答を取得したり、アプリケーションクライアント１０４とチャットボットサーバ１０６との間にアプリケーションサーバ１０２を介して情報を送受信したりする等の方法であってもよい。
【０１４０】
ステップＳ６１０において、アプリケーションクライアント１０４は、アプリケーション画面の操作を受け付ける。この処理は、チャットボット機能とは直接関係のない処理である。
【０１４１】
ステップＳ６１１において、アプリケーションクライアント１０４は、ステップＳ６１０にて受け付けた操作情報を送信する。
【０１４２】
ステップＳ６１２において、アプリケーションサーバ１０２は、アプリケーション画面の操作情報を受信する。
【０１４３】
ステップＳ６１３において、アプリケーションサーバ１０２は、アプリケーション画面の操作情報に基づき、アプリケーションの処理を実行する。その処理後、遷移先アプリケーション画面を特定し、ステップＳ６０２に戻る。
【０１４４】
以上で、図６の説明を終了する。
【０１４５】
以上により、アプリケーション構築ツールを用いてアプリケーションを構築すると共に、当該アプリケーションユーザのためのチャットボット機能を容易に構築することができる。つまり、チャットボット機能を利用可能なアプリケーションを容易に構築することができるようになる。
【０１４６】
また、ＱＡデータに「アプリケーションコード」「画面コード」を持ち、図７のような処理を行うことにより、「アプリケーション」「画面」毎にヒット率を調整することができるようになるため、ＱＡデータのヒット率チューニングを容易にすることができるようになる。
【０１４７】
なお、本実施形態においては、ＱＡレコードに持つことができる「アプリケーションコード」「画面コード」はそれぞれ１つとしたが、１つに限定するものではなく、複数の「アプリケーションコード」、複数の「画面コード」を設定できるとしてもよい。これにより、より柔軟なＱＡデータのヒット率の調整が可能になる。
【０１４８】
また、ＱＡデータに「アプリケーションコード」を持ち、図４のようなシステム構成にすることで、複数のアプリケーションでチャットボット機能を共有することができるようになるため、チャットボット機能及びＱＡデータの管理が容易になる。
【０１４９】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【０１５０】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【０１５１】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク等を用いることが出来る。
【０１５２】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５４】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１５５】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【０１５６】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１５７】
１０１  情報処理装置
１０２  アプリケーションサーバ
１０３  データベースサーバ
１０４  アプリケーションクライアント
１０５  ネットワーク
１０６  チャットボットサーバ
【図１】
2020119409.tif 000003
【図２】
2020119409.tif 000004
【図３】
2020119409.tif 000005
【図４】
2020119409.tif 000006
【図５】
2020119409.tif 000007
【図６】
2020119409.tif 000008
【図７】
2020119409.tif 000009
【図８】
2020119409.tif 000010
【図９】
2020119409.tif 000011
【図１０】
2020119409.tif 000012
【図１１】
2020119409.tif 000013
【図１２】
2020119409.tif 000014
【図１３】
2020119409.tif 000015