(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025009031
(43)【公開日】2025-01-20
(54)【発明の名称】情報処理装置、情報処理方法及びコンピュータプログラム
(51)【国際特許分類】
G06Q 50/10 20120101AFI20250109BHJP
【FI】
G06Q50/10
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023111740
(22)【出願日】2023-07-06
(71)【出願人】
【識別番号】518431200
【氏名又は名称】ウィズデスク株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】田口 湧都
(72)【発明者】
【氏名】君島 隆朗
【テーマコード(参考)】
5L049
5L050
【Fターム(参考)】
5L049CC11
5L050CC11
(57)【要約】
【課題】ウェブサイトの操作案内を行うためのチュートリアルを作成するエージェントの作業負荷を軽減することができる情報処理装置を提供する。
【解決手段】チュートリアル設定データを作成する情報処理装置は、ウェブページを構成する複数の要素に対する操作内容を示す操作情報と、操作手順の案内中に要素に対する操作の完了を判定するための条件情報とを対応付けたテーブルを備え、操作手順の手本となる、要素に対する操作内容を示す操作情報を取得し、要素に対する案内ステップを識別する案内ステップIDを発行し、取得した操作情報及び条件情報テーブルの情報に基づいて、第1の要素に対する操作の完了を判定するための条件情報を特定し、第1の要素に対する案内ステップを示す案内ステップIDと、特定された条件情報と、次に操作された第2の要素を示す遷移先の案内ステップIDとを対応付けて、チュートリアル設定データとして記憶する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
ウェブページを構成する複数の要素に対する操作手順を案内するためのチュートリアル設定データを作成する情報処理装置であって、
前記要素に対する操作内容を示す操作情報と、操作手順の案内中に該要素に対する操作の完了を判定するための条件情報とを対応付けたテーブルと、
処理部と
を備え、
前記処理部は、
操作手順の手本となる、複数の前記要素に対する操作内容を示す操作情報を取得し、
複数の前記要素それぞれに対する案内ステップを識別する案内ステップIDを発行し、
取得した第1の前記要素に対する操作情報及び前記テーブルの情報に基づいて、第1の前記要素に対する操作の完了を判定するための条件情報を特定し、
第1の前記要素に対する案内ステップを示す案内ステップIDと、特定された条件情報と、第1の前記要素に対する操作を完了した後、次に操作された第2の前記要素を示す遷移先の案内ステップIDとを対応付けて、前記チュートリアル設定データとして記憶する
情報処理装置。
【請求項2】
前記テーブルは、
前記要素に対する操作内容を示す操作情報と、該要素の操作項目を示した項目情報と、該要素に対する操作の完了を判定するための条件情報とを対応付けて格納しており、
前記処理部は、
取得した第1の前記要素に対する操作内容を示す操作情報と、第1の前記要素に係る情報とに基づいて、第1の前記要素の前記項目情報を特定し、
取得した第1の前記要素に対する操作内容を示す操作情報と、第1の前記要素の前記項目情報と、前記テーブルの情報とに基づいて、第1の前記要素に対する操作の完了を判定するための条件情報を特定する
請求項1に記載の情報処理装置。
【請求項3】
前記処理部は、
第1の前記要素の前記項目情報又は第1の前記要素に係る情報に基づいて、第1の前記要素に対する操作を案内する文字列を作成し、
作成した文字列を第1の前記要素を示す案内ステップIDに対応付けて、前記チュートリアル設定データとして記憶する
請求項2に記載の情報処理装置。
【請求項4】
前記処理部は、
前記チュートリアル設定データを作成するために取得した操作情報を含み、ウェブページの操作手順を再現する操作再現情報を記憶し、
記憶した前記操作再現情報と、前記チュートリアル設定データとに基づいて、ウェブページを構成する複数の前記要素に対する操作を再現しながら、操作手順を案内するチュートリアルを実行し、
前記チュートリアル設定データの修正を受け付ける
請求項3に記載の情報処理装置。
【請求項5】
前記要素の操作項目を示した複数の前記項目情報と、複数の前記項目情報毎に、該項目情報に該当する前記要素であるか否かを判定するための判定条件と、該判定条件を満たした前記要素が該項目情報に該当する確度とを対応づけた項目判定テーブルを備え、
前記処理部は、
第1の前記要素に係る情報と、前記項目判定テーブルの情報とに基づいて、第1の前記要素が各項目情報に該当する確度を算出し、最も確度が高い前記項目情報を特定する
請求項2から請求項4のいずれか1項に記載の情報処理装置。
【請求項6】
ウェブページを構成する複数の要素に対する操作手順を案内するためのチュートリアル設定データを作成する情報処理方法であって、
操作手順の手本となる、複数の前記要素に対する操作内容を示す操作情報を取得し、
複数の前記要素それぞれに対する案内ステップを識別する案内ステップIDを発行し、
前記要素に対する操作内容を示す操作情報及び操作手順の案内中に該要素に対する操作の完了を判定するための条件情報とを対応付けたテーブルの情報と、取得した第1の前記要素に対する操作情報に基づいて、第1の前記要素に対する操作の完了を判定するための条件情報を特定し、
第1の前記要素に対する案内ステップを示す案内ステップIDと、特定された条件情報と、第1の前記要素に対する操作を完了した後、次に操作された第2の前記要素を示す遷移先の案内ステップIDとを対応付けて、前記チュートリアル設定データとして記憶する
情報処理方法。
【請求項7】
コンピュータに、ウェブページを構成する複数の要素に対する操作手順を案内するためのチュートリアル設定データを作成する処理を実行させるコンピュータプログラムであって、
前記コンピュータに、
操作手順の手本となる、複数の前記要素に対する操作内容を示す操作情報を取得し、
複数の前記要素それぞれに対する案内ステップを識別する案内ステップIDを発行し、
前記要素に対する操作内容を示す操作情報及び操作手順の案内中に該要素に対する操作の完了を判定するための条件情報とを対応付けたテーブルの情報と、取得した第1の前記要素に対する操作情報に基づいて、第1の前記要素に対する操作の完了を判定するための条件情報を特定し、
第1の前記要素に対する案内ステップを示す案内ステップIDと、特定された条件情報と、第1の前記要素に対する操作を完了した後、次に操作された第2の前記要素を示す遷移先の案内ステップIDとを対応付けて、前記チュートリアル設定データとして記憶する
処理を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
ウェブサイトを利用するユーザ(以下、ゲストと呼ぶ)に対して、チュートリアルによる操作案内を行い、ウェブサイトの活用を促進させるシステム(以下、操作案内システム)がある。操作案内システムは、例えば、ウェブページ上の特定の要素に対して、当該要素に関わる説明や操作を促したい内容をメッセージとして含む吹き出し(以下、ガイドと呼ぶ)を表示する。ゲストが一連の操作を完了するまで、必要なガイドが繰り返し表示される。操作案内システムにおいては、操作案内の内容に応じて、表示するチュートリアルの設定データを事前に作成する必要がある。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のチュートリアルの作成方法では、チュートリアルを構成するガイドごとに、ガイドの対象となる要素の選定、ガイドに表示するメッセージ及び次のガイドに遷移するための条件など多岐にわたる設定を、チュートリアルを作成するユーザ(以下、エージェントと呼ぶ)は手動で行わなければならないため、チュートリアルを構成するガイドの数が多ければ多いほど、エージェントの作業負荷が生じるという課題があった。また、作成したチュートリアルが正しく動作するかを検証する必要もあるため、エージェントの作業負荷が更に生じるという課題もあった。
【0005】
本開示の目的は、ウェブサイトの操作案内を行うためのチュートリアルを作成するエージェントの作業負荷を軽減することができる情報処理方法、情報処理装置及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本発明の一態様に係る情報処理装置は、ウェブページを構成する複数の要素に対する操作手順を案内するためのチュートリアル設定データを作成する情報処理装置であって、前記要素に対する操作内容を示す操作情報と、操作手順の案内中に該要素に対する操作の完了を判定するための条件情報とを対応付けたテーブルと、処理部とを備え、前記処理部は、操作手順の手本となる、複数の前記要素に対する操作内容を示す操作情報を取得し、複数の前記要素それぞれに対する案内ステップを識別する案内ステップIDを発行し、取得した第1の前記要素に対する操作情報及び前記テーブルの情報に基づいて、第1の前記要素に対する操作の完了を判定するための条件情報を特定し、第1の前記要素に対する案内ステップを示す案内ステップIDと、特定された条件情報と、第1の前記要素に対する操作を完了した後、次に操作された第2の前記要素を示す遷移先の案内ステップIDとを対応付けて、前記チュートリアル設定データとして記憶する。
【0007】
本発明の一態様に係る情報処理方法は、ウェブページを構成する複数の要素に対する操作手順を案内するためのチュートリアル設定データを作成する情報処理方法であって、操作手順の手本となる、複数の前記要素に対する操作内容を示す操作情報を取得し、複数の前記要素それぞれに対する案内ステップを識別する案内ステップIDを発行し、前記要素に対する操作内容を示す操作情報及び操作手順の案内中に該要素に対する操作の完了を判定するための条件情報とを対応付けたテーブルの情報と、取得した第1の前記要素に対する操作情報に基づいて、第1の前記要素に対する操作の完了を判定するための条件情報を特定し、第1の前記要素に対する案内ステップを示す案内ステップIDと、特定された条件情報と、第1の前記要素に対する操作を完了した後、次に操作された第2の前記要素を示す遷移先の案内ステップIDとを対応付けて、前記チュートリアル設定データとして記憶する。
【0008】
本発明の一態様に係るコンピュータプログラムは、コンピュータに、ウェブページを構成する複数の要素に対する操作手順を案内するためのチュートリアル設定データを作成する処理を実行させるコンピュータプログラムであって、前記コンピュータに、操作手順の手本となる、複数の前記要素に対する操作内容を示す操作情報を取得し、複数の前記要素それぞれに対する案内ステップを識別する案内ステップIDを発行し、前記要素に対する操作内容を示す操作情報及び操作手順の案内中に該要素に対する操作の完了を判定するための条件情報とを対応付けたテーブルの情報と、取得した第1の前記要素に対する操作情報に基づいて、第1の前記要素に対する操作の完了を判定するための条件情報を特定し、第1の前記要素に対する案内ステップを示す案内ステップIDと、特定された条件情報と、第1の前記要素に対する操作を完了した後、次に操作された第2の前記要素を示す遷移先の案内ステップIDとを対応付けて、前記チュートリアル設定データとして記憶する処理を実行させる。
【発明の効果】
【0009】
本開示によれば、ウェブサイトの操作案内を行うためのチュートリアルを作成するエージェントの作業負荷を軽減することができる。
【図面の簡単な説明】
【0010】
【
図1】本実施形態に係る操作案内システムの構成例を説明する模式図である。
【
図2】本実施形態に係る操作案内システムの構成例を示すブロック図である。
【
図3】チュートリアル実行処理手順を示すフローチャートである。
【
図5】本実施形態に係るチュートリアル自動作成の処理手順を示すフローチャートである。
【
図6】チュートリアル管理画面を示す模式図である。
【
図7】チュートリアル作成画面を示す模式図である。
【
図8】案内の手本となる操作が行われた後のチュートリアル作成画面を示す模式図である。
【
図9】本実施形態に係るレコーディングの処理手順を示すフローチャートである。
【
図10】条件情報テーブルの構成例を示す概念図である。
【
図11】項目判定テーブルの構成例を示す概念図である。
【
図12】チュートリアル自動実行に係る処理手順を示すフローチャートである。
【
図13A】チュートリアル自動実行中のチュートリアル作成画面を示す模式図である。
【
図13B】チュートリアル自動実行中のチュートリアル作成画面を示す模式図である。
【
図14】チュートリアル自動実行中のチュートリアル作成画面を示す模式図である。
【
図15】チュートリアル自動実行中のチュートリアル作成画面を示す模式図である。
【
図16】チュートリアル自動実行中のチュートリアル作成画面を示す模式図である。
【発明を実施するための形態】
【0011】
本開示の実施形態に係る情報処理方法、情報処理装置及びコンピュータプログラムを、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0012】
図1は、本実施形態に係る操作案内システムの構成例を説明する模式図である。本実施形態に係る操作案内システムは、チュートリアルサーバ1と、エージェント端末2と、ゲスト端末3と、ウェブサーバ(外部サーバ)4とを備える。各種端末及びサーバは、通信網Nを介してチュートリアルサーバ1に接続されている。なお本実施形態では、主にエージェント端末2が本発明に係る情報処理装置として機能する。
【0013】
エージェント端末2を操作するユーザ(以下、エージェントと呼ぶ)は、例えば、必要に応じてゲスト端末3を操作するユーザ(以下、ゲストと呼ぶ)にウェブサイトの操作方法を案内する者、又は当該ウェブサイトの管理者などである。なお、エージェント及びゲストは、本実施形態に係るチュートリアルサーバ1のユーザの一例であり、両者の関係は特に限定されるものでは無い。
【0014】
図2は、本実施形態に係る操作案内システムの構成例を示すブロック図である。チュートリアルサーバ1は、操作案内システムを実現するためのデータの保管、通信及び処理を実行するサーバである。チュートリアルサーバ1は、処理部11、記憶部12、通信部13を備えるコンピュータである。なお、チュートリアルサーバ1は、複数台のコンピュータで構成し分散処理する構成でもよいし、1台のサーバ内に設けられた複数の仮想マシンによって実現されていてもよいし、クラウドサーバを用いて実現されていてもよいし、一部を量子コンピュータで構成してもよい。
【0015】
記憶部12は、ハードディスク、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリなどの記憶装置である。記憶部12は、図示しないサーバ用プログラム、エージェントプログラムP1、ゲストプログラムP2、チュートリアルの実行に必要なチュートリアル設定データを含む設定データ(
図4参照)、チュートリアル設定データの作成に用いられる条件情報テーブル12a、項目判定テーブル12b、その他の各種プログラム及びデータを記憶している。記憶部12は、操作案内システムに必要なエージェントプログラムP1、ゲストプログラムP2を保管するプログラムファイルストレージと、条件情報テーブル12a、項目判定テーブル12b及びアカウントごとの設定データなどを管理するアカウント管理データベースとして機能する。
なお、条件情報テーブル12a、項目判定テーブル12bは、必ずしもレコードの構成が決まっているテーブル形式の構造化データを意味するものではなく、JSON形式などで記述された構造化データであってもよい。チュートリアル設定データの作成を実現することができれば、条件情報テーブル12a及び項目判定テーブル12bが有する情報の形態は特に限定されるものではない。
【0016】
エージェントプログラムP1は、チュートリアルを管理するためのチュートリアル管理画面6(
図6参照)上でメインの処理を実行するためのプログラムである。チュートリアル管理画面6はエージェントがアクセスする画面である。
【0017】
ゲストプログラムP2は、チュートリアルを実行するためのチュートリアル実行画面上でメインの処理を実行するためのプログラムと、チュートリアルを自動作成するためのチュートリアル作成画面7(
図7、
図8、
図13A、
図13B~16参照)上でメインの処理を実行するためのプログラムとを含む。チュートリアル実行画面は、ゲストがアクセスする画面である。チュートリアル作成画面7は、エージェントがアクセスする画面である。チュートリアル実行画面及びチュートリアル作成画面7の実体は、操作案内の対象である外部ウェブサイトのウェブページである。
【0018】
なお、各種プログラムは、記録媒体5にコンピュータ読み取り可能に記録されている態様でも良い。記憶部12は、図示しない読出装置によって記録媒体5から読み出されたエージェントプログラムP1及びゲストプログラムP2を記憶する。記録媒体5はフラッシュメモリなどの半導体メモリ、光ディスク、磁気ディスク、磁気光ディスクなどである。また、通信網Nに接続されている図示しない外部サーバから本実施形態に係る各種プログラムをダウンロードし、記憶部12に記憶させる態様であってもよい。
【0019】
処理部11は、一又は複数のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)などの演算処理装置を有し、記憶部12に記憶されたサーバ用プログラムを読み出して実行することにより、エージェント端末2及びゲスト端末3と協働して、本実施形態に係るチュートリアル作成処理及びチュートリアル実行処理を実行する。
処理部11は、API処理部として機能する。API処理部は、チュートリアルを実行するためのチュートリアル設定データを作成し、作成したチュートリアル設定データを含む設定データをアカウント管理データベースに格納させる機能部である。また、API処理部は、アカウント管理データベースに保管された設定データを取得する機能部である。
【0020】
通信部13は、通信に関する処理を行うための処理回路、通信回路などを含み、エージェント端末2、ゲスト端末3及びウェブサーバ4との間で情報の送受信を行う。通信部13は、ゲスト端末3へ、チュートリアルの実行に必要なゲストプログラムP2及び設定データの送信を行う。通信部13は、エージェント端末2へ、チュートリアル自動作成に必要なエージェントプログラムP1及びゲストプログラムP2、並びに条件情報テーブル12aの構造化データ及び項目判定テーブル12bの構造化データの送信を行い、エージェント端末2で作成されたチュートリアル設定データを受信する。
【0021】
エージェント端末2は、処理部21、記憶部22、通信部23、操作部24及び表示部25を備えたコンピュータである。処理部21、記憶部22及び通信部23の基本的な構成は、チュートリアルサーバ1と同様である。エージェント端末2も、複数台のコンピュータで構成し分散処理する構成でもよいし、1台のサーバ内に設けられた複数の仮想マシンによって実現されていてもよいし、クラウドサーバを用いて実現されていてもよいし、一部を量子コンピュータで構成してもよい。処理部21は、チュートリアル管理画面6及びチュートリアル作成画面7を表示し、エージェントプログラムP1及びゲストプログラムP2を実行する。記憶部22は、少なくともエージェントブラウザに係るプログラムを記憶している。また、記憶部22は、チュートリアルサーバ1から送信されたエージェントプログラムP1及びゲストプログラムP2、並びに条件情報テーブル12aの構造化データ及び項目判定テーブル12bの構造化データを記憶する。エージェントブラウザは、ウェブページを構成する要素を参照及び制御するプログラムであるDOM(Document Object Model)を実装しており、チュートリアルサーバ1から送信されたエージェントプログラムP1及びゲストプログラムP2を実行することができる。通信部23は、チュートリアルサーバ1及びウェブサーバ4と通信を行う。操作部24は、キーボード、マウスなどであり、エージェントの操作及び入力を受け付ける。表示部25は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイなどの表示装置であり、処理部21から与えられた情報を描画する。例えば、表示部25は、チュートリアル管理画面6及びチュートリアル作成画面7を表示する。
【0022】
ゲスト端末3は、処理部31、記憶部32、通信部33、操作部34及び表示部35を備えたコンピュータである。処理部31、記憶部32及び通信部33の基本的な構成は、チュートリアルサーバ1と同様である。処理部31は、チュートリアル実行画面を表示し、ゲストプログラムP2を実行する。記憶部32は、少なくともゲストブラウザに係るプログラムを記憶している。また、記憶部32は、チュートリアルサーバ1から送信されたゲストプログラムP2を記憶する。ゲストブラウザは、ウェブページを構成する要素を参照及び制御するプログラムであるDOMを実装しており、チュートリアルサーバ1から送信されたゲストプログラムP2を実行することができる。通信部33は、チュートリアルサーバ1及びウェブサーバ4と通信を行う。操作部34は、キーボード、マウスなどであり、ゲストの操作及び入力を受け付ける。表示部35は、液晶ディスプレイ、有機ELディスプレイなどの表示装置であり、処理部31から与えられた情報を描画する。例えば、表示部35は、チュートリアル実行画面を表示する。
【0023】
ウェブサーバ4は、エージェントブラウザ及びゲストブラウザからのリクエストに応じて、ウェブページを構成する文書ファイルやアセットファイルなどのファイルをリクエスト元のエージェントブラウザ及びゲストブラウザへ送信するサーバである。本実施形態においては、エージェントブラウザはウェブサーバ4にアクセスして、チュートリアル作成画面7を表示する。ゲストブラウザはウェブサーバ4にアクセスして、チュートリアル実行画面を表示する。
【0024】
チュートリアル自動作成処理を説明する前に、ゲスト端末3におけるチュートリアルの実行処理を説明する。前提として、ウェブサーバ4が配信するチュートリアル実行画面、すなわちウェブページのHTML上には、ゲストプログラムP2の所在情報(src)が記述されたスクリプトタグが設置されているものとする。
【0025】
<ゲスト端末3によるチュートリアルの実行>
図3は、チュートリアル実行処理手順を示すフローチャート、
図4は、設定データを示す概念図である。ゲスト端末3は、ウェブサーバ4にアクセスしてチュートリアル実行画面を表示し、ゲストプログラムP2を取得し、実行する(ステップS11)。詳細には、ゲスト端末3は、チュートリアル実行画面にアクセスした際、チュートリアルサーバ1にゲストプログラムP2をリクエストする。チュートリアルサーバ1は、ゲスト端末3からリクエストを受け付け、プログラムファイルストレージからゲストプログラムP2をゲスト端末3に送信する。ゲスト端末3は、ゲストプログラムP2を受信すると、ゲスト端末3の処理部31でゲストプログラムP2を実行する。
【0026】
次いで、ゲスト端末3は、チュートリアルサーバ1から設定データを取得する(ステップS12)。詳細には、ゲストプログラムP2を実行するゲスト端末3は、チュートリアルサーバ1に設定データをリクエストする。設定データは、
図4に示すように、操作案内システムをゲスト端末3上で実行する上で必要なチュートリアル設定データなどを含む、アカウント管理データベースに保存されたデータである。チュートリアルサーバ1のAPI処理部は、アカウント管理データベースから設定データを取得し、チュートリアルサーバ1の通信部13を経由して、ゲスト端末3に設定データを送信する。ゲスト端末3は、受信した設定データに含まれるチュートリアル設定データに基づいて、チュートリアルの実行を開始する。チュートリアル設定データは、操作案内システムを利用するアカウントごとに事前に作成されたデータであり、必要なチュートリアルの数だけ、設定データに複数含まれる。また、チュートリアル設定データには、チュートリアルを識別するための一意の識別子(以下、チュートリアルID)、チュートリアルを表す名前(以下、チュートリアル名)及び案内ステップ情報などが含まれる。案内ステップ情報の詳細については後述する。
【0027】
チュートリアルは、ゲストに対して操作案内を行い、ウェブサイトの活用を支援するための操作案内システムの機能である。なお、本実施形態ではゲストがチュートリアル実行画面にアクセスし、ゲストプログラムP2を実行する都度、チュートリアルを開始する例で説明するが、チュートリアルの開始条件を設定データに含み、当該開始条件が満たされた場合に開始する構成でもよい。具体的には、例えば、特定のURLのページに遷移した場合、又はページ上の特定の要素、例えば、特定のbutton要素などがクリックされた場合などにチュートリアルを開始してもよい。また、設定データに複数のチュートリアル設定データが含まれる場合は、それぞれのチュートリアルごとに開始条件を設定し、異なるタイミングで開始されるように構成してもよい。
【0028】
次いで、ゲスト端末3は、取得したチュートリアル設定データに基づいて、ウェブサイトの操作案内に係る各案内ステップを実行する(ステップS13)。詳細には、ゲスト端末3は、チュートリアルの実行を開始すると、チュートリアル設定データに含まれる案内ステップ情報に基づいて、案内ステップの実行を行う。案内ステップは、チュートリアルを構成する1つ1つの段階であり、案内ステップ情報は各案内ステップの実現内容を表す情報である。また、案内ステップ情報はチュートリアル設定データに複数含まれており、指定された順序で連続して案内ステップの実行を行うことができるよう構成されている。なお、案内ステップの実体は、ページ上の特定の要素に対する吹き出し(以下、ガイド)であり、該当の要素に対するガイドをそれぞれの案内ステップで続けて表示することで、ゲストに対する操作案内を適切に実現することができる。例えば、ウェブサイト上でゲストにユーザ登録の手続きを行ってもらいたい場合、ユーザ登録に必要な名前、メールアドレス、パスワードなどの各項目ごとに案内ステップ(ガイド)を用意し、それぞれのガイドに表示する文言として、当該項目に対してゲストに操作してほしい内容を設定することで、各項目への操作を適切に誘導することができる。
【0029】
案内ステップ情報には、
図4に示すように、案内ステップを識別するための一意の識別子(以下、案内ステップID)、案内ステップを表す名前(以下、案内ステップ名)、ガイド情報及びトリガー情報などが含まれる。ガイド情報は、ガイドを構成するために必要な情報であり、メッセージ情報、ポジション情報、ハイライト情報、スポットライト情報、自動スクロール情報、要素の重なり順序情報及びガイド対象要素情報などが含まれる。それぞれの情報の詳細については後述する。また、トリガー情報は、一つの案内ステップが終了し、次の案内ステップに遷移するための条件の集合体(以下、ルール)及びルールを確認するタイミング(以下、トリガー)に関する内容などを含む情報であり、トリガーの種別を表す識別子(以下、トリガー種別)及びブランチ情報などが含まれる。それぞれの情報の詳細については後述する。
【0030】
ゲスト端末3は、最初の案内ステップを実行すると、案内ステップ情報に含まれるガイド情報の内容に基づいて、ガイドの作成を行う。具体的には、ゲスト端末3は、吹き出し形状のガイド要素を作成し、DOM上に追加することでガイドの表示を実現する。具体的なガイド要素の作成方法は後述する。
【0031】
ゲスト端末3は、ガイド要素を作成する際、ガイド情報に含まれるガイド対象要素情報に基づいて、ガイド対象要素を特定する。ガイド対象要素は、ガイドを表示し、操作を促したい対象となる要素であり、当該要素を示す形式でガイドを表示することで実現される。なお、ガイド対象要素情報には、該当の要素を示すCSSセレクター、XPath等の所在情報が含まれており、所在情報によってガイド対象要素が特定される。
【0032】
ゲスト端末3は、次いで、ガイド情報に含まれるポジション情報に基づいて、ガイド対象要素の上下左右どの位置にガイドを表示するかを判定する。ポジションは、ガイド要素を表示する位置のことであり、ポジション情報には、ガイド対象要素の上下左右どの位置にガイド要素を表示するかを示す文字列又は識別子の情報が含まれる。なお、ゲスト端末3は、ウェブページのスクロール量、ページサイズ及びガイド対象要素の表示位置及び縦横寸法を監視しており、変更を検知した場合は、変更されたガイド対象要素の表示位置に合わせて、ガイド要素の表示位置を調整する。
【0033】
ゲスト端末3は、次いで、ガイド情報に含まれる要素の重なり順序情報に基づいて、ガイド要素に適用されるCSSのz-index(z-index)プロパティの値に要素の重なり順序情報で指定した値を適用する。要素の重なり順序は、ガイド対象要素とチュートリアル実行画面のDOM上の他の要素との重なりの順序であり、値が大きいほど画面の前面に要素が表示される。また、後述するハイライト要素、スポットライト要素を作成する場合も同様にCSSのz-indexプロパティの値に要素の重なり順序で指定した値を適用する。
【0034】
ゲスト端末3は、次いで、ガイド情報に含まれるメッセージ情報に基づいて、メッセージを表す要素やテキストを作成し、ガイド要素に追加する。メッセージの実体は、ガイド内に表示する文言である。メッセージの構成としては、例えば、メールアドレス項目に入力を促すためのガイドであれば、メッセージに「メールアドレスを入力してください」などの文字列を設定することで実現する。また、名前のフリガナ項目(全角カタカナ)に入力を促すためのガイドであれば、「フリガナ(全角カタカナ)を入力してください」などの文字列を設定することで実現する。なお、前述したメッセージの構成例では、メッセージに対して一つの文言のみを設定する構成で説明したが、例えば、メッセージをタイトルと説明とに分割し、それぞれに文言を設定するような構成でもよい。メッセージ情報は、HTML形式や、Markdown記法で記述された構造化データである。具体的には、構造化データにおいて、メッセージに含まれる一部の文字のサイズや色が設定されていた場合は、ガイド要素に対するCSSのプロパティ、例えばfont-size(font-size)プロパティやcolor(color)プロパティなどを指定された値に適用することによって実現する。また、一部の文字が強調表示されていた場合は、当該文字を囲むようにem要素など強調表示するための要素を作成、追加することによって実現する。さらに、リストが含まれていた場合は、li要素などのリストを表現するための要素を作成、追加することによって実現し、画像、動画又はリンクの埋め込みがあった場合は、それぞれを表現する要素として作成、追加することによって実現する。
【0035】
ゲスト端末3は、次いで、ガイド情報に含まれるハイライト情報に基づいて、ハイライトの設定を行う。ハイライトは、ガイド対象要素を強調表示するための機能であり、ハイライト情報には、ハイライト機能が有効か否かを示す真偽値が含まれる。ハイライト機能が有効であった場合、ゲスト端末3は、ガイド対象要素を囲むように要素(以下、ハイライト要素と呼ぶ)を作成し、DOM上に追加する。具体的には、ハイライト要素の表示位置及び縦横寸法を、ガイド対象要素の表示位置及び縦横寸法に合わせることによって、ガイド対象要素を強調表示させる。ハイライト要素は、例えば、矩形の要素などである。なお、ゲストプログラムP2を実行するゲスト端末3は、ウェブページのスクロール量、ページサイズ及びガイド対象要素の表示位置及び縦横寸法を監視しており、変更を検知した場合は、変更されたガイド対象要素の表示位置、縦横寸法に合わせて、ハイライト要素の表示位置、縦横寸法を調整する。
【0036】
ゲスト端末3は、次いで、ガイド情報に含まれるスポットライト情報に基づいて、スポットライトの設定を行う。スポットライトは、チュートリアル実行画面上のガイド対象要素以外の操作を制御し、他の要素に対する誤った操作を防止することで、適切に案内をすることができる機能であり、スポットライト情報には、スポットライト機能が有効か否かを示す真偽値が含まれる。スポットライト機能が有効であった場合、ゲスト端末3は、チュートリアル実行画面上のガイド対象要素以外の領域を埋めるように要素(以下、スポットライト要素と呼ぶ)を作成し、DOM上に追加する。具体的には、ガイド対象要素の上下左右に矩形の要素をそれぞれ作成し、ガイド対象要素以外のページの領域を覆い被せる大きさに設定する。また、各スポットライト要素の重なり順序を、ページ上の各要素の重なり順序よりも大きい値に指定することにより、ゲストは、ガイド対象要素以外のウェブページ上の他の要素に対してクリック操作や入力操作をしようとしても、スポットライト要素にフォーカスが当たるため、操作ができない。これにより、ガイド対象要素以外のページ上の他の要素への操作をさせないよう制御することができる。なお、ゲスト端末3は、ウェブページのスクロール量、ページサイズ及びガイド対象要素の表示位置及び縦横寸法を監視しており、変更を検知した場合は、変更されたページサイズ及びガイド対象要素の表示位置、縦横寸法に合わせて、各スポットライト要素の表示位置、縦横寸法を調整する。
【0037】
ゲスト端末3は、次いで、ガイド情報に含まれる自動スクロール情報に基づいて、自動スクロールの設定を行う。自動スクロールは、ガイド対象要素を画面上の表示領域の所定の位置となるように、ウェブページのスクロール量を調整することができる機能であり、自動スクロール情報には、自動スクロール機能が有効か否かを示す真偽値が含まれる。自動スクロール機能が有効となっていた場合、ゲスト端末3は、ガイド対象要素が、画面上の表示領域の中央に位置するように、ウェブページのスクロール量を調整する。なお、ガイド対象要素を中央に位置するかわりに、画面上の表示領域の任意の場所(例えば、画面上部や画面下部等)に位置するように、ウェブページのスクロール量を調整してもよい。
【0038】
ゲスト端末3は、ガイドの作成後、案内ステップ情報に含まれるトリガー情報に基づいて、トリガーの設定及び監視を行う(ステップS14)。ゲスト端末3は、設定したトリガーを充足するか否かを判定する(ステップS15)。トリガーを充足しないと判定した場合(ステップS15:NO)、ゲスト端末3は、監視処理を継続する。トリガーを充足すると判定した場合(ステップS15:YES)、ゲスト端末3は、次の案内ステップを示す遷移先案内ステップIDがあるか否かを判定する(ステップS16)。遷移先案内ステップIDがあると判定した場合(ステップS16:YES)、ゲスト端末3は、案内ステップ遷移処理を実行し(ステップS17)、処理をステップS13に戻す。遷移先案内ステップIDがないと判定した場合(ステップS16:NO)、ゲスト端末3は、ガイドを構成する各要素の削除及び設定したトリガーの監視を無効化するチュートリアル終了処理を実行し(ステップS18)、処理を終える。
【0039】
ステップS14~ステップS18の処理の詳細は以下の通りである。ゲスト端末3は、チュートリアル設定データのトリガー情報に含まれるトリガー種別の値に基づいて、次の案内ステップに遷移するためのタイミングを設定し、監視する。具体的には、例えば、トリガー種別に「button」という値が設定されていた場合、ゲスト端末3は、ガイド要素内にbutton要素を作成し、当該button要素のtextContentプロパティに「次へ」又は「終了」というような文字列を設定する。また、後述するブランチ情報に含まれるルール情報に基づいて、次の案内ステップに遷移するためのルールを設定する。ゲスト端末3は、当該ルールが満たされたことを検知し、かつ作成したbutton要素のクリック操作を検知した場合、次の案内ステップに遷移させる。また、例えば、トリガー種別に「auto」という値が設定されていた場合、ゲスト端末3は、前述のbutton要素は作成せず、後述するブランチ情報に含まれるルール情報に基づいて、次の案内ステップに遷移するためのルールを設定する。当該ルールが満たされたことを検知した場合、次の案内ステップに遷移させる。
【0040】
ゲストプログラムP2を実行するゲスト端末3は、次いで、トリガー情報に含まれるブランチ情報に基づいて、次に遷移する案内ステップの分岐(以下、ブランチ)を設定する。ブランチはトリガーに対して単一又は複数設定することができる。ブランチを複数設定する目的は、ゲストの操作内容によって、案内する導線を変更したい場合に、それぞれの操作内容に応じて次に表示するガイドを分けることができるようにするためである。例えば、質問に対する回答として「はい」か「いいえ」を選択できるラジオボタンがページ上にあった場合に、「はい」を選択した場合と「いいえ」を選択した場合とで、次に表示するガイドを変更したい場合などである。ブランチ情報には、ルール情報及びフロー情報が含まれている。フローは、ルールが満たされた場合に、遷移する先の案内ステップを示すものであり、フロー情報には、次に遷移する案内ステップの案内ステップID(以下、遷移先案内ステップID)が含まれている。これにより、いずれかのブランチ情報に含まれるルール情報に基づいて設定されたルールが満たされた場合、該当するブランチ情報に紐づくフロー情報に含まれる遷移先案内ステップIDが示す案内ステップに遷移することができる。
なお、本実施形態に係るチュートリアル自動作成処理によって作成されたチュートリアル設定データのフロー情報には検証情報が含まれている。検証情報については後述する。
【0041】
ゲストプログラムP2を実行するゲスト端末3は、次いで、ブランチ情報の中にルール情報が含まれている場合、ルール情報に基づいて、ルールの設定及び監視を行う。ルール情報には、条件情報及び演算子情報が含まれている。条件情報は、ユーザの操作や要素の状態などに対して設定する判定条件の情報であり、条件はルールに対して単一又は複数設定することができる。条件情報の具体的な内容は後述する。演算子情報は、条件情報が複数あった場合に、複数の条件情報の全てが満たされる(真となる)場合にルール全体を真と判定するか、当該条件情報のいずれか一つが真となる場合にルール全体を真と判定するかなど、条件情報の判定の組み合わせを示す識別子を含む情報である。具体的には、「and」や「or」といった値が設定される。ゲスト端末3は、条件情報に基づいて設定された判定条件の結果と演算子情報に基づいてルールが満たされているかを随時監視している。
【0042】
ゲストプログラムP2を実行するゲスト端末3は、次いで、ルール情報に含まれている条件情報に基づいて、判定条件を設定し、監視する。条件情報には、条件を確認する対象となる情報(以下、条件対象情報)、条件対象に対して、実際に判定する内容を表す情報(以下、条件判定情報)及び条件情報の使用順序を表す数値(以下、条件順序)を含む。条件対象情報は、具体的には、「elementSelf(ウェブページ上の特定の要素本体)」、「elementValue(ウェブページ上の特定の要素の入力値)」、「locationUrl(ウェブページのURL)」など、条件対象の具体的な種別を表す識別子を含む情報であり、条件対象情報が「elementSelf」又は「elementValue」など、対象となる要素の特定が必要な場合、当該要素の所在情報を示す、CSSセレクター、XPath等の情報(以下、条件対象要素情報)も含む。条件判定情報は、具体的には、「equalsTo(条件対象が完全に一致する)」、「matches(条件対象が正規表現に一致する)」、「isClicked(条件対象がクリックされる)」など、条件判定の具体的な基準を表す識別子を含む情報であり、条件判定情報が「equalsTo」、「matches」など、基準となる条件の値(以下、引数)が必要な場合、当該引数を示す値が定義されている情報(以下、条件判定引数情報)も含む。例えば、条件対象情報が「elementSelf」であり、条件判定情報が「isClicked」である条件情報であれば、ゲスト端末3は、条件対象情報に含まれる条件対象要素情報に基づいて要素を特定し、特定した要素本体に対してクリック操作が行われるかを監視し、クリック操作を検知した場合は条件が真と判定する。また、条件対象情報が「elementValue」であり、条件判定情報が「equalsTo」である条件情報であれば、ゲスト端末3は、条件対象情報に含まれる条件対象要素情報に基づいて要素を特定し、特定した要素の入力値が条件判定引数情報で定義された引数の値と完全に一致するかを監視し、完全に一致することを検知した場合は条件が真と判定する。条件順序は、複数の条件情報が単一のルール情報に含まれている場合に必要となる数値であり、数値が小さい順(又は大きい順でもよい)に該当の条件情報の設定及び監視を行い、当該条件情報が満たされた場合に、次に数値が小さい(又は大きい)条件情報を設定、監視し、条件順序通りにそれを繰り返す仕組みである。条件順序を設定する目的は、例えば、ゲストが特定のURLのウェブページに遷移した場合のみ、当該ウェブページに含まれる要素の状態を確認したい場合など、ある条件情報が満たされないとその他の条件情報の判定ができない場合などに必要となる。
【0043】
ゲストプログラムP2を実行するゲスト端末3は、監視しているルール(判定条件)が満たされかつトリガー種別に基づいて設定されたトリガーが充足された場合、当該ルール情報が含まれるブランチ情報に紐づくフロー情報に含まれる遷移先案内ステップIDが示す案内ステップに遷移する処理を行う。具体的には、ゲスト端末3は、現在の案内ステップのガイドを構成する各要素(ガイド要素、ハイライト要素、スポットライト要素)の削除を行い、設定したトリガーの監視も無効化する。トリガーの監視の無効化とは、具体的には、トリガー情報に含まれる各ブランチ情報のルール情報に紐づく条件情報に基づいて設定された各条件対象の状態や操作に対する監視を無効化することである。また、ゲスト端末3は、遷移先案内ステップIDが示す案内ステップ情報を取得し、前述したステップS13~ステップS16の処理を再度行う。
【0044】
ゲストプログラムP2を実行するゲスト端末3は、チュートリアルが終了するまで、具体的には、フロー情報が示す遷移先案内ステップIDが存在しなくなるまで、前述したステップS13~ステップS17の処理を繰り返し行う。また、最後の案内ステップのトリガーが充足された場合は、遷移先の案内ステップ情報が存在しないため、現在の案内ステップのガイドを構成する各要素の削除処理及び設定したトリガーの無効化処理をおこなった上で、チュートリアルを終了する。
【0045】
チュートリアルは案内ステップの途中でも終了することが可能である。すなわち、ガイド要素の作成が完了し、次の案内ステップへの遷移処理が実行される前であるステップS14の状態であれば、チュートリアルは終了することができる。具体的には、ゲストプログラムP2を実行するゲスト端末3は、ステップS13のガイド要素作成処理の中で、表示したガイド要素の中に終了ボタン要素を追加で作成し、当該終了ボタン要素のクリック操作を監視する。ゲストが、当該終了ボタン要素をクリック操作した場合、ゲスト端末3は、チュートリアルが終了されたと判定し、最後の案内ステップのトリガーが充足された場合と同様の処理を実行する。
【0046】
<エージェント端末2によるチュートリアル自動作成>
図5は、本実施形態に係るチュートリアル自動作成の処理手順を示すフローチャート、
図6は、チュートリアル管理画面6を示す模式図である。エージェント端末2は、チュートリアル管理画面6にアクセスしてチュートリアル管理画面6を構成する文書ファイルやアセットファイルなどのファイルをチュートリアルサーバ1から取得、表示するとともに、エージェントプログラムP1を取得し、実行する(ステップS31)。詳細には、エージェント端末2は、チュートリアルを管理するためのチュートリアル管理画面6にアクセスした際、チュートリアルサーバ1にエージェントプログラムP1をリクエストする。チュートリアルサーバ1は、エージェント端末2からリクエストを受け付け、プログラムファイルストレージからエージェントプログラムP1を読み出してエージェント端末2に送信する。エージェント端末2は、エージェントプログラムP1を受信すると、エージェント端末2の処理部21でエージェントプログラムP1を実行し、画面の表示や遷移等の処理を行う。
【0047】
エージェント端末2は、エージェントによるチュートリアルの新規作成操作を受け付けた場合、チュートリアルを新規作成する(ステップS32)。詳細には、エージェントは、チュートリアルを新規作成する場合、チュートリアル管理画面6からチュートリアルの新規作成操作を行い、チュートリアルを表現する名称(以下、チュートリアル名)を設定する。エージェント端末2は、エージェントの操作に従って、チュートリアルを新規作成し、チュートリアルを一位に識別するためのID(以下、チュートリアルID)を発行する。なお、チュートリアル名を設定するタイミングは一例であり、チュートリアル作成完了時にチュートリアル名を設定してもよいし、任意のタイミングでチュートリアル名を変更してもよい。チュートリアルの新規作成操作は、具体的には、チュートリアル管理画面6上の特定のボタン要素をクリック操作した場合などであるが、新規作成操作の実現方法は特に限定されるものではない。
【0048】
従来のチュートリアルの作成方法においては、エージェントは、チュートリアルを構成する一つ一つの案内ステップについて、手動で作成又は変更を行うことが一般的である。より具体的には、エージェントは、一つの案内ステップを作成する場合、ガイド対象要素の選定、ガイドのメッセージとして表示したい文言の設定及び次の案内ステップに遷移させるための条件などを検討した上で、個別に設定する作業を行う必要があるため、チュートリアルを構成する案内ステップの数が多ければ多いほど、作業量も相対的に増加し、エージェントの作業負荷が発生するという課題があった。
【0049】
本実施形態では、チュートリアル自動作成機能を用いることで、前述したガイド対象要素の選定、ガイドのメッセージとして表示したい文言の設定、及び次の案内ステップに遷移させるための条件などの設定を、エージェントの負荷を軽減しつつ実現することができる。具体的な方法については後述する。
【0050】
次いで、エージェント端末2は、チュートリアル設定データを自動作成するために、チュートリアル自動作成開始処理を実行する(ステップS33)。詳細は以下の通りである。
【0051】
エージェントは、チュートリアル自動作成を開始する場合、最初に、チュートリアル管理画面6から、自動作成開始操作を行う。自動作成開始操作は、具体的には、チュートリアル管理画面6上に表示されている自動作成開始ボタン61をエージェントがクリックする操作である。また、自動作成開始ボタン61をクリック操作すると、自動作成を開始するウェブページのURLを入力するためのモーダル画面(以下、自動作成開始モーダル画面と呼ぶ)62が表示され、エージェントは、該当のURLを入力する。なお、本例では、チュートリアルを新規作成するケースで説明するが、既に作成済みのチュートリアルに対して、途中から案内ステップの追加をしたい場合も同様であり、その場合は、該当のチュートリアルの案内ステップを追加したい箇所を指定した上で自動作成開始操作を行うことで、案内ステップの追加を行うこともできる。
【0052】
エージェントプログラムP1を実行するエージェント端末2は、エージェントによる自動作成開始操作を監視しており、操作を検知した場合、レコーディングを実行する(ステップS34)。
【0053】
<エージェント端末2によるレコーディング>
図7は、チュートリアル作成画面7を示す模式図、
図8は、案内の手本となる操作が行われた後のチュートリアル作成画面7を示す模式図、
図9は、本実施形態に係るレコーディングの処理手順を示すフローチャート、
図10は、条件情報テーブル12aの構成例を示す概念図、
図11は、項目判定テーブル12bの構成例を示す概念図である。レコーディングは、エージェントが、チュートリアルを用いてゲストに案内したい操作手順の手本となる操作を行うことによって、チュートリアル設定データに含まれる各案内ステップ情報を作成する処理のことである。
【0054】
エージェント端末2は、レコーディングの実行を開始すると、レコーディング開始処理を実行する(ステップS51)。レコーディング開始処理は、具体的には、チュートリアル作成画面7の表示、アカウントの一致確認及び定期的な疎通確認の開始などが行われる。チュートリアル作成画面7の表示は、
図7に示すように、入力されたURLに対応するウェブページをチュートリアル作成画面7としてエージェントブラウザ上で表示し、遷移する。チュートリアル作成画面7は、エージェントブラウザのチュートリアル管理画面6とは別のタブに表示される。チュートリアル作成画面7に遷移すると、チュートリアル実行画面を表示する場合と同様に、ゲストプログラムP2が読み込まれる。なお、本実施形態に係るゲストプログラムP2には、ゲスト端末3においてチュートリアルを実行するためのプログラムと、エージェント端末2においてチュートリアル自動作成処理を実行するためのプログラムとが含まれている。ゲストプログラムP2が設置されていないウェブページで自動作成を行いたい場合などは、ブラウザの拡張機能などを利用して、ゲストプログラムP2を動的に追加するように構成してもよい。
【0055】
ゲストプログラムP2が読み込まれ、実行されると、チュートリアル管理画面6とチュートリアル作成画面7とでアカウントの一致確認が行われる。アカウントの一致確認は、具体的には、チュートリアル作成画面7で実行されているゲストプログラムP2が、内部で保持しているアカウントIDをチュートリアル管理画面6に送信し、チュートリアル管理画面6で実行されているエージェントプログラムP1が、当該アカウントIDを受信する。また、エージェント端末2は、チュートリアル管理画面6を利用しているエージェントが所属しているアカウントのアカウントIDと受信したアカウントIDが一致しているかを確認し、一致している場合は処理を継続、一致していない場合は処理を終了する。アカウントの一致確認を行う目的は、作成するチュートリアル設定データが正しいアカウントIDに関連づけられるようにするためである。
【0056】
アカウントの一致確認が終了すると、以降、エージェントプログラムP1が動作するチュートリアル管理画面6とゲストプログラムP2が動作するチュートリアル作成画面7は、定期的な間隔で双方の画面がアクティブな状態であるかの疎通確認を行う。疎通確認は、例えば、チュートリアル管理画面6のWindowオブジェクトとチュートリアル作成画面7のWindowオブジェクト間でメッセージの送受信を定期的に行い、それぞれのWindowオブジェクトでメッセージを受信した場合は、疎通を成功とみなす、といった形式で実現される。疎通確認を行う目的は、仮に双方の画面で疎通が取れていない場合、後述するデータの送受信が失敗する可能性があるためである。なお、何らかの理由で疎通がとれなくなった場合、チュートリアル自動作成は終了する。
【0057】
レコーディング開始処理が終了すると、エージェント端末2は、レコーディング本処理を開始する。レコーディング本処理は、具体的には、チュートリアル作成画面7上で行われるエージェントの特定の操作の監視、検知した操作情報の取得、案内ステップIDの発行、ガイド対象要素の特定、項目判定及び案内ステップ情報の作成などの処理が含まれる。レコーディング本処理の詳細については後述する。
【0058】
エージェントは、レコーディング本処理が開始した後、
図8に示すように、チュートリアルを用いてゲストに案内したい操作手順の手本となる操作を全て実施する。具体的には、チュートリアル作成画面7上の要素に対するクリック操作、入力操作、選択操作などをゲストに案内したい順序で繰り返し実行する。操作の対象要素としては、具体的には、input要素で構成された入力項目、select要素で構成された選択項目、type属性がcheckboxのinput要素で構成されたチェックボックス項目、button要素で構成されたボタン項目などがある。なお、操作の対象要素は前述したものに限定するものではない。
【0059】
一例として、問い合わせページ上のフォームの各項目の入力から送信までの一連の操作をゲストに案内するチュートリアルを作成する場合、問い合わせに必要なメールアドレス項目などの入力項目に対する入力操作、都道府県項目などの選択項目に対する選択操作、プライバシーポリシーへの同意確認などのチェックボックス項目へのクリック操作などを行い、それぞれの項目への操作が一通り完了した上で送信ボタン項目(ボタン項目)をクリック操作し、問い合わせの送信を完了するまでの一連の操作を実施する。
【0060】
本実施形態においては、前述の通り、ゲストに案内したい一連の操作とほぼ同等の操作をエージェントが実施するのみで、チュートリアルを作成することができるため、従来の方法と比較して、エージェントの作業負荷が軽減できる。
【0061】
ゲストプログラムP2を実行するエージェント端末2は、ページ上の各要素に対するエージェントの操作を監視しており、操作された内容や当該要素の情報に基づいて、それぞれ一つの案内ステップ情報を内部的に作成する。前述の例で言えば、メールアドレス項目の入力操作に対して一つの案内ステップ情報、都道府県項目の選択操作に対して一つの案内ステップ情報、同意確認をするためのチェックボックス項目のクリック操作に対して一つの案内ステップ情報、送信ボタン項目のクリック操作に対して一つの案内ステップ情報をそれぞれ作成する。
【0062】
ゲストプログラムP2を実行するエージェント端末2は、レコーディング開始処理を終了する(ステップS51)と、チュートリアル作成画面7上の各要素に対するエージェントの特定の操作の監視を開始する(ステップS52)。エージェント端末2は、特定の操作を検知した場合、検知した操作に基づいて、ウェブページの各要素に対する操作内容を示す操作情報を取得する(ステップS53)。特定の操作とは要素に対するクリック操作や入力操作などの操作である。
【0063】
エージェント端末2は、検知した操作が、レコーディング開始後最初の要素に対するクリック操作、又は直前に操作していた要素とは異なる要素へのクリック操作であった場合、案内ステップを識別するための一意のID(以下、案内ステップID)を発行する(ステップS54)。なお、本案内ステップの前に案内ステップが存在する場合は、前案内ステップのフロー情報の遷移先案内ステップIDに本案内ステップの案内ステップIDを設定する。また、操作後に、再度別の操作が同一要素に対して行われた場合は、再度、ステップS53~後述するステップS59の処理を実行し、前回の操作時に作成した当該要素に対する案内ステップ情報を上書きする。
【0064】
次いで、エージェント端末2は、ガイド対象要素を特定する(ステップS55)。ガイド対象要素は、検知した操作の対象である要素である。
【0065】
エージェント端末2は、ガイド対象要素の特定が完了すると、ステップS53で取得した操作情報を用いて条件情報テーブル12aを参照し、ガイド対象要素の項目判定を行う必要がある否かを判断する(ステップS56)。項目判定とは、ガイド対象要素が一般的なフォームなどで使用されるどの項目に属するかを判定することである。項目判定を行う目的は、ガイド対象要素がどの項目に該当するかを判定することによって、ガイドに表示するメッセージや次の案内ステップに進むための条件をより詳細に設定できることにある。例えば、ガイド対象要素がメールアドレス項目と判定できた場合、メッセージは「メールアドレスを入力してください」、条件情報は、メールアドレス形式の文字列がガイド対象要素に入力された場合、というように設定が可能となる。エージェント端末2は、項目判定の必要有無を、条件情報テーブル12aに基づいて行う。
【0066】
図10は、条件情報テーブル12aの構成例を示す概念図である。条件情報テーブル12aは、エージェントがガイド対象要素に対して行った操作に基づいて、案内ステップ情報に含まれる条件情報を作成するために必要な情報をパターンとして定義した情報である。条件情報テーブル12aは、条件情報のパターンを識別するための一位の識別子(以下、条件情報ID)と、要素に対する操作内容を示す操作情報と、要素の属する項目を示す項目情報と、条件情報とを対応付けて含む。条件情報は、例えば条件対象情報、条件判定情報、条件判定引数情報などの情報を含む。
【0067】
条件対象情報、条件判定情報及び条件判定引数情報は、案内ステップ情報に含まれる条件情報の条件対象情報、条件判定情報、条件判定引数情報(
図4参照)の作成に使用される。条件情報テーブル12aは、エージェントがウェブページの要素を操作するのみで、条件情報の自動作成を可能とするために必要である。条件情報テーブル12aは、操作情報及び項目情報に応じた条件情報のパターンがそれぞれ定義されている。
図10に示す例では、条件情報IDが「1」の場合、操作情報が「クリック」の場合に使用される条件情報、すなわち要素をクリックする操作案内を行うための案内ステップ情報の作成に必要な条件情報が定義されている。また、条件情報IDが「2」の場合、操作情報が「入力」かつ項目情報が「メールアドレス」の場合に使用される条件情報、すなわちメールアドレスを入力する要素の操作案内を行うための案内ステップ情報の作成に必要な条件情報が定義されている。さらにまた、条件情報IDが「3」の場合、操作情報が「入力」かつ項目情報が「電話番号」の場合に使用される条件情報、すなわち電話番号を入力する要素の操作案内を行うための案内ステップ情報の作成に必要な条件情報が定義されている。
条件情報テーブル12aに含まれる項目情報は、入力操作のような、項目(メールアドレス、電話番号など)に応じて条件情報を定義したい操作情報の場合にのみ対応づけられている。一方、クリック操作のような、項目問わず、設定する条件情報は一意であるような操作情報は、項目を対応づける必要がないため、項目情報が「NULL」として定義されている。エージェント端末2は、ガイド対象要素の項目判定を行う基準として、該当の操作情報に応じた条件情報テーブル12aのレコードを確認し、項目情報が「NULL」であるか否かを確認する。項目情報が「NULL」である場合は、該当の条件情報が一意に選択できるため、項目判定は不要と判断する。一方、項目情報に特定の値が対応づけられている場合は、項目情報を特定しない限り、該当の条件情報が一意に選択できないため、項目判定は必要と判断する。なお、
図10に示す例では、操作情報及び項目情報の組み合わせごとに単一の条件情報を定義しているが、複数の条件情報を同一の操作情報及び項目情報の組み合わせに対して定義することも可能であり、その場合は、該当する複数の条件情報全てを案内ステップ情報に使用する。
【0068】
ステップS56において、項目判定が必要と判定した場合(ステップS56:YES)、エージェント端末2は、項目判定テーブル12bを参照し、当該ガイド対象要素の項目を特定する(ステップS57)。
【0069】
図11は、項目判定テーブル12bの構成例を示す概念図である。項目判定テーブル12bは、エージェントが、ガイド対象要素の項目を特定する必要があるような操作を行った場合に、ガイド対象要素及びガイド対象関連要素のプロパティに基づいて、ガイド対象要素がどの項目に該当するか、その項目を特定するために必要な情報を含む。
図10に示す例では、操作情報が「入力」の場合などである。項目判定テーブル12bは、項目判定のレコードを識別するための一意の識別子(以下、項目判定ID)と、項目情報と、判定条件情報と、要素種別情報と、タグ名と、プロパティ名と、確度とを対応付けて含む。
【0070】
ガイド対象関連要素とは、ガイド対象要素と関連づけられている、チュートリアル作成画面7のDOM上の他の要素である。ガイド対象関連要素のプロパティは、ガイド対象要素に関連している可能性があるため、当該ガイド対象要素の項目を特定する際に利用することができる。ガイド対象関連要素の具体的な内容については後述する。
【0071】
項目情報は、一般的なフォーム画面などで使用される項目の種類を示す情報である。項目情報が示す項目の種類には、例えば、メールアドレス、電話番号などがある。
【0072】
判定条件情報は、ガイド対象要素がどの項目に該当するかを判定するために必要な情報である。判定条件情報は、例えば、正規表現された文字記号列、又は特定の文字記号列である。
「名前判定」は、ガイド対象要素又はガイド対象関連要素のnameプロパティの値が所定の条件を満たすか否かの判定に用いられる情報を示している。例えば、メールアドレス項目のnameプロパティの判定に用いられる情報である。より具体的には、正規表現された「mailAddress|mail-address|email|e-mail」のような情報である。
「形式判定」は、ガイド対象要素又はガイド対象関連要素のplaceholderプロパティやvalueプロパティの値の形式が所定の条件を満たすか否かの判定に用いられる情報を示している。例えば、メールアドレス項目のplaceholderプロパティ、valueプロパティの判定に用いられる情報である。より具体的には、正規表現された「^.+@.+[.].+$」のような情報である。
「タイプ判定」は、ガイド対象要素又はガイド対象関連要素のtypeプロパティの値が所定の条件を満たすか否かの判定に用いられる情報を示している。例えば、メールアドレス項目のtypeプロパティの判定に用いられる情報である。より具体的には、正規表現された「^email$」のような情報である。
「テキスト判定」は、ガイド対象要素又はガイド対象関連要素のtextContentプロパティの値が所定の条件を満たすか否かの判定に用いられる情報を示している。例えば、メールアドレス項目のtextContentプロパティの判定に用いられる情報である。より具体的には、正規表現された「メールアドレス|メアド|eメール|mailAddress|mail-address|email|e-mail」のような情報である。
【0073】
要素種別情報は、判定条件情報を用いた判定対象となる要素がガイド対象要素かガイド対象関連要素かを区別するために必要な情報である。要素種別情報には、ガイド対象要素と、ガイド対象関連要素とがある。
【0074】
タグ名及びプロパティ名は、項目判定に用いられる要素のタグ名の種類、プロパティの種類を示す情報である。
【0075】
確度は、項目判定ID毎に定義された数値であり、数値が大きいほど、判定対象のガイド対象要素がより該当の項目である可能性が高いことを示している。また、要素種別情報、タグ名及びプロパティ名に応じて確度の数値に差分を設けておくことで、より正確な項目判定ができるようになる。
図11の項目判定IDが「1」の場合に示す例では、項目情報「メールアドレス」、判定条件情報「名前判定」、要素種別情報「ガイド対象要素」、タグ名「input」、プロパティ名「name」、確度「5」が対応付けられている。ガイド対象要素かつinput要素のnameプロパティが名前判定の条件、例えば「mailAddress|mail-address|email|e-mail」を満たす場合、当該ガイド対象要素がメールアドレス項目である確度が5であることを示している。
【0076】
以下、項目判定テーブル12bを用いた項目判定の詳細な方法について説明する。エージェント端末2は、項目判定を開始すると、最初にガイド対象関連要素を特定する。ガイド対象関連要素は、より具体的には、ゲストプログラムP2が、文書構造情報や文書座標情報をもとにガイド対象要素と関連性の高い要素と判断した要素である。文書構造情報から判断するガイド対象関連要素とは、DOM上の構造関係からガイド対象要素と関連がある可能性が相対的に高い要素であり、具体的には、ガイド対象要素の親要素、ガイド対象要素の兄弟要素、ガイド対象要素に関連づけられているlabel要素などである。文書座標情報から特定するガイド対象関連要素とは、ページ上の表示位置の関係からガイド対象要素と関連がある可能性が相対的に高い要素であり、具体的には、ガイド対象要素の左側に位置する要素、上側に位置する要素、右側に位置する要素、下側に位置する要素などである。取得するガイド対象関連要素の種類については、プログラムの一部又はプログラムから参照可能なデータとして事前に定義している。
【0077】
次いで、エージェント端末2は、ガイド対象要素及び特定したガイド対象関連要素ごとに、項目判定テーブル12bに含まれる複数のレコード(以下、項目判定情報とよぶ)を順次、ガイド対象要素又はガイド対象関連要素の対応するタグ名及びプロパティ名と突合し、当該判定条件情報の条件に合致するかを判定する。より具体的には、項目判定テーブル12bの要素種別情報を用いて、当該要素の要素種別と一致するかを確認する。一致しなかった場合、次の項目判定情報に遷移する。一致した場合、項目判定情報のタグ名を用いて、当該要素のタグ名と一致するかを確認する。一致しなかった場合、次の項目判定情報に遷移する。一致した場合、項目判定情報のプロパティ名に該当するプロパティを当該要素から取得し、取得した値が、項目判定情報の判定条件情報が示す判定値に合致しているかを判定する。合致しなかった場合、次の項目判定情報に遷移する。合致した場合、当該項目判定情報が示す項目情報である可能性が高いと判断され、当該項目判定情報の確度を、該当の項目情報に紐づく形式で保持する。なお、既に突合した項目判定情報によって、該当の項目情報に紐づいて確度の数値が保持されていた場合、今回取得した数値を加算する。
【0078】
前述の処理は、ガイド対象要素及び特定したガイド対象関連要素ごとに全ての項目判定情報と繰り返し突合するが、対象の要素に対して、同一の項目情報、要素種別情報及びプロパティ名で既に突合され、判定条件情報が示す判定値に合致しているかが判定されていた場合、計算が重複される可能性があるため、突合された後の同一の項目情報、要素種別情報及びプロパティ名が含まれる項目判定情報はスキップされ、有効な項目判定情報から処理が再開される。
【0079】
図11に示す項目判定情報を項目判定IDの数値の昇順(「1」から「12」)に突合していく例であれば、突合する要素が、ガイド対象要素かつinput要素である場合、項目判定IDの「1」から「4」、「10」及び「11」が有効な項目判定情報となる。また、その場合に、例えば、当該ガイド対象要素のnameプロパティに「mailAddress」、placeholderプロパティに「example@withdeskguest.com」、typeプロパティに「email」、valueプロパティに「」がそれぞれ値として設定されている場合、項目判定IDの「1」から「3」の判定条件情報が示す判定値に合致するため、メールアドレス項目の合計した確度の数値は「25」となる。さらに、当該ガイド対象要素から特定したガイド対象関連要素の一つがdt要素である場合、項目判定IDの「5」及び「9」が有効な項目判定情報となる。その場合に、例えば、当該ガイド対象関連要素のtextContentプロパティに「メールアドレス」が値として設定されている場合、項目判定IDの「5」及び「9」いずれの判定条件情報が示す判定値にも合致するが、項目判定IDが「5」の時点で、同一の項目情報、要素種別情報及びプロパティ名で既に突合されているため、項目判定IDが「9」の突合はスキップされ、確度の数値は「5」となる。これにより、メールアドレス項目の合計の確度の数値は「30」(「25」+「5」)となる。なお、項目判定IDが「9」のタグ名に定義されている「*」は、いずれのタグ名にも該当するという意味である。
【0080】
突合する要素が前述のガイド対象要素(input要素)及びガイド対象関連要素(dt要素)の場合、同様にして計算すると、電話番号項目の判定条件情報が示す判定値にはいずれも合致せず、電話番号項目の合計の確度の数値は「0」となる。
【0081】
また、確度については、前述した数値や計算方法は一つの例であり、異なる数値や方法を用いて計算してもよいし、追加で計算を加えてもよい。
例えば、ガイド対象関連要素の関連度やページサイズなどによって、確度の数値に変更を加えてもよい。具体的には、文書構造情報で特定したガイド対象関連要素の場合、当該要素が兄弟要素である場合よりも親要素である場合の方が、より正確に項目を示す情報を保持する可能性が高いと判定し、エージェント端末2は、項目判定情報から得られた数値に変更を加え、親要素の方が兄弟要素よりも確度を大きくするよう計算してもよい。また、文書座標情報で特定したガイド対象関連要素の場合、ガイド対象要素の左側に位置する要素やガイド対象要素に距離的に近い要素の方がより正確に項目を示す情報を保持する可能性が高いと判定し、エージェント端末2は、項目判定情報から得られた数値に変更を加え、左側に位置する要素やガイド対象要素に距離的に近い要素ほどより確度を大きくするよう計算してもよい。さらにまた、チュートリアル作成画面7のページサイズがPC端末用の場合、エージェント端末2は、項目判定情報から得られた数値に変更を加え、左側に位置するガイド対象関連要素により確度を大きくするよう計算し、ページサイズがスマートフォン端末用の場合、エージェント端末2は、項目判定情報から得られた数値に変更を加え、上側に位置するガイド対象関連要素により確度を大きくするよう計算してもよい。
【0082】
次いで、エージェント端末2は、項目情報ごとの確度の合計値を比較し、最も数値が大きい項目情報が示す項目をガイド対象要素が属する項目として特定する。
【0083】
なお、便宜上、前述の項目判定処理は、エージェント端末2(クライアント端末)上で実行する形式で説明しているが、チュートリアルサーバ1などのサーバ上で実行する形式でもよい。
【0084】
ステップS57のガイド対象要素の項目特定が完了した場合、又はステップS56において項目判定不要と判定された場合(ステップS56:NO)、エージェント端末2は、案内ステップ情報の作成を行う(ステップS58)。
【0085】
最初に、エージェント端末2は、ガイド対象要素を示すテキストを作成する。ガイド対象要素を示すテキストは、具体的には、項目判定を行っていないガイド対象要素の場合、ガイド対象要素のtextContentプロパティに設定された文字列を設定し、項目判定を行ったガイド対象要素の場合、確度の数値が最も大きいガイド対象関連要素のtextContentプロパティに設定された文字列を設定する。なお、設定する文字列の内容は一例であり、項目判定を行ったガイド対象要素の場合は、例えば、該当の項目情報に対応づけられている事前に定義した項目名を設定してもよい。
【0086】
次いで、ゲストプログラムP2を実行するエージェント端末2は、操作情報及びガイド対象要素を示すテキストを用いて、案内ステップ名及びガイド情報(
図4参照)のメッセージ情報を作成、案内ステップ情報に設定する。
【0087】
案内ステップ名は、例えば、操作情報がクリック操作を示し、ガイド対象要素を示すテキストが「送信」である場合、案内ステップ名に「送信のクリック」といったような文言を設定する。また、操作情報が入力操作を示し、ガイド対象要素を示すテキストが「メールアドレス」である場合、案内ステップ名に「メールアドレスの入力」といったような文言を設定する。メッセージ情報は、例えば、操作情報がクリック操作を示し、ガイド対象要素を示すテキストが「送信」である場合、メッセージ情報に「送信をクリックしてください」といったような文言を設定する。また、操作情報が入力操作を示し、ガイド対象要素を示すテキストが「メールアドレス」である場合、メッセージ情報に「メールアドレスを入力してください」といったような文言を設定する。
【0088】
さらに、エージェント端末2は、ガイド対象要素のCSSセレクター、XPath等の所在情報を、ガイド情報のガイド対象要素情報(
図4参照)として設定する。
【0089】
さらにまた、エージェント端末2は、操作情報及びガイド対象要素の項目情報を用いて条件情報テーブル12aを参照して条件情報を読み出し、読み出した条件情報を、ガイド情報の条件情報として設定する。例えば、読み出した条件情報の条件情報IDが「1」の場合は、条件対象情報に「elementSelf」、条件対象要素情報に、ガイド対象要素のCSSセレクター、XPath等の情報、条件判定情報に「isClicked」がそれぞれ設定される。また、読み出した条件情報の条件情報IDが「2」の場合は、条件対象情報に「elementValue」、条件対象要素情報に、ガイド対象要素のCSSセレクター、XPath等の情報、条件判定情報に「matches」、条件判定引数情報に「^.+@.+[.].+$」がそれぞれ設定される。
【0090】
一例として、前述した問い合わせページのメールアドレス項目の入力操作、送信ボタン項目のクリック操作をゲストに案内する案内ステップを用いて説明する。
メールアドレス項目の入力操作の場合、ステップS52において、エージェントが入力操作を行ったことを検知し、ステップS53において、操作情報を取得し、ステップS54において、案内ステップIDを発行し、ステップS55において、該当のinput要素をガイド対象要素として特定する。また、ステップS56において項目判定が必要と判断され、ステップS57の処理によって、メールアドレス項目であると特定される。ステップS58の処理で案内ステップ情報が作成され、案内ステップ名に「メールアドレスの入力」、メッセージ情報に「メールアドレスを入力してください」、条件対象情報に「elementValue」、条件対象要素情報に、ガイド対象要素のCSSセレクター、XPath等の情報、条件判定情報に「matches」、条件判定引数情報に「^.+@.+[.].+$」がそれぞれ設定される。
送信ボタン項目のクリック操作の場合、ステップS52において、エージェントがクリック操作を行ったことを検知し、ステップS53において、操作情報を取得し、ステップS54において、案内ステップIDを発行し、ステップS55において、該当のbutton要素をガイド対象要素として特定する。また、ステップS56において項目判定が不要と判断され、ステップS57の処理がスキップされる。ステップS58の処理で案内ステップ情報が作成され、案内ステップ名に「送信のクリック」、メッセージ情報に「送信をクリックしてください」、条件対象情報に「elementSelf」、条件対象要素情報に、ガイド対象要素のCSSセレクター、XPath等の情報、条件判定情報に「isClicked」がそれぞれ設定される。
【0091】
ステップS58の処理を終えたエージェント端末2は、操作情報と、操作対象であるガイド対象要素に係る情報とに基づいて、検証情報を作成し(ステップS59)、一つの案内ステップ情報に係るレコーディング処理を終える。検証情報は、チュートリアル設定データの案内ステップ情報に含めて記憶してもよいし、別データとして記憶してもよい。検証情報は、具体的には、後述するチュートリアルの自動実行を行うために必要な設定情報であり、ステップS58で作成した条件情報を満たすような操作を自動で実行できるようにするための情報である。なお、検証情報には、検証をする対象となる情報(以下、検証対象情報)、検証対象に対して、検証時に実行する操作内容を表す情報(以下、検証実行情報)及び検証情報の使用順序を表す数値(以下、検証順序)を含む。検証対象情報は、具体的には、「elementSelf」、「elementValue」、「locationUrl」など、検証対象の具体的な種別を表す識別子を含む情報であり、検証対象情報が「elementSelf」又は「elementValue」など、対象となる要素の特定が必要な場合、当該要素の所在情報を示す、CSSセレクター、XPath等の情報(以下、検証対象要素情報)も含む。検証実行情報は、具体的には、「input(入力する)」、「click(クリックする)」など、検証時に再現したい具体的な操作内容を含む情報であり、検証実行情報が「input」など、実行時に使用する値(以下、引数)が必要な場合、当該引数を示す値が定義されている情報(以下、検証実行引数情報)も含む。検証順序は、複数の検証情報が単一のフロー情報に含まれている場合に必要となる数値であり、数値が小さい順(又は大きい順でもよい)に該当の検証情報に基づいた実行を行い、当該検証情報に基づいた実行が完了した場合に、次に数値が小さい(又は大きい)検証情報に基づいた実行を行い、検証順序通りにそれを繰り返す仕組みである。
【0092】
ステップS58及びステップS59で作成した情報以外の案内ステップ情報の各情報については、操作案内システム上に定義されたデフォルトの内容を使用してもよいし、エージェントが事前に設定した固定の内容を使用してもよい。なお、作成した案内ステップ情報については、後述するチュートリアル自動実行時などに個別で修正することも可能である。
【0093】
エージェント端末2は、案内ステップ情報の作成が完了すると、次の案内ステップ情報の作成処理を実行する。具体的には、前述したステップS53~ステップS59までの処理を、レコーディングが完了するまで、繰り返し実行する。
【0094】
図9に示す通り、レコーディング実行中、エージェント端末2は、エージェントによるレコーディング終了操作を監視しており、レコーディングの終了操作が行われたか否かを判定する(ステップS60)。レコーディング中、チュートリアル作成画面7は、レコーディング終了ボタン71を有する。エージェントは、レコーディングを終了したい場合、レコーディング終了操作を行うことができる。レコーディング終了操作は、具体的には、チュートリアル作成画面7上に表示されているレコーディング終了ボタン71をエージェントがクリック操作することなどで実現する。レコーディングの終了操作が行われていないと判定した場合(ステップS60:NO)、エージェント端末2は、レコーディング処理を継続する。レコーディング終了操作が行われたと判定した場合(ステップS60:YES)、エージェント端末2は、レコーディングを終了し、
図5に示す通り、チュートリアルの自動実行を開始する(ステップS35)。
【0095】
<エージェント端末2による操作再現及びチュートリアル自動実行>
図12は、チュートリアル自動実行に係る処理手順を示すフローチャート、
図13A、
図13B~
図16は、チュートリアル自動実行中のチュートリアル作成画面7を示す模式図である。
エージェント端末2は、チュートリアルの自動実行を開始すると、チュートリアル自動実行開始処理を実行する(ステップS71)。自動実行開始処理は、具体的には、チュートリアル作成画面7の再表示、アカウントの一致確認及び定期的な疎通確認の開始などが行われる。具体的には、エージェント端末2は、ステップS33でエージェントが入力したURLのウェブページに再度遷移し、チュートリアル作成画面7を再表示する。自動作成を開始したウェブページに再度遷移する目的は、前述のレコーディング実行中にページ遷移などが発生し、異なるウェブページに遷移していた場合、作成した案内ステップを最初から実行できないケースがあるため、それに対応するためである。
【0096】
チュートリアル作成画面7でゲストプログラムP2が読み込まれ、実行されると、ステップS51のレコーディング開始処理と同様、チュートリアル管理画面6とチュートリアル作成画面7とでアカウントの一致確認が行われる。また、アカウントの一致確認が終了すると、定期的な疎通確認が開始される。
【0097】
自動実行開始処理が終了すると、エージェント端末2は、ステップS58で作成した各案内ステップ情報に基づいてチュートリアルを実行すると共に、ステップS59で作成した各検証情報に基づいて、ウェブページに対する操作を再現する。
【0098】
エージェント端末2は、具体的には、最初の案内ステップ情報に基づいて案内ステップを実行し、ガイドを表示する(ステップS72)。
【0099】
また、エージェント端末2は、当該案内ステップ情報のフロー情報に含まれる検証情報に基づいて、エージェントがチュートリアルの作成時に行った操作を自動で再現する(ステップS73)。より具体的には、検証情報に含まれる検証対象情報に基づいて、自動で操作する対象を特定する。また、検証情報に含まれる検証実行情報に基づいて、操作を自動実行する。
【0100】
例えば、ガイド対象要素がメールアドレス項目のような入力項目であり、検証対象情報が「elementValue」、検証対象要素情報に入力項目を構成するinput要素のCSSセレクター、検証実行情報に「input」、検証実行引数情報に「example@withdeskguest.com」が設定されていた場合、エージェント端末2は、
図13Aに示すように、input要素に対して「example@withdeskguest.com」を入力する操作を実行する。なお、ゲストプログラムP2が自動で実行する入力操作については、条件判定引数情報に設定された基準となる条件(入力制約)が確認できるよう、1文字ずつ入力する。
【0101】
また、ガイド対象要素が都道府県項目のような選択項目であり、検証対象情報が「elementOptions(ページ上の特定の要素の選択肢)」、検証対象要素情報に選択項目を構成するselect要素のCSSセレクター、検証実行情報に「select(選択する)」、検証実行引数情報に「東京都」が設定されていた場合、エージェント端末2は、
図14に示すように、select要素に対して「東京都」を選択する操作を実行する。
【0102】
さらに、ガイド対象要素がプライバシーポリシーへの同意確認のようなチェックボックス項目であり、検証対象情報が「elementSelf」、検証対象要素情報にチェックボックス項目を構成するinput要素のCSSセレクター、検証実行情報に「click」が設定されていた場合、エージェント端末2は、
図15に示すように、input要素に対してクリック操作を実行する。
【0103】
さらにまた、ガイド対象要素が送信ボタンのようなボタン項目であり、検証対象情報が「elementSelf」、検証対象要素情報にボタン項目を構成するbutton要素のCSSセレクター、検証実行情報に「click」が設定されていた場合、エージェント端末2は、
図16に示すように、button要素に対してクリック操作を実行する。
【0104】
当該検証情報は、前述した通り、条件情報の作成時に使用される情報に基づいて作成されたものであるため、ゲストプログラムP2によって操作の自動実行が行われると、当該案内ステップの条件情報は満たされることになる。すなわち、当該条件情報が含まれるルール情報が満たされ、当該ルール情報が含まれるブランチ情報に紐づくフロー情報の遷移先案内ステップIDに対応する案内ステップへ自動的に遷移する。
【0105】
チュートリアルの自動実行中にあるチュートリアル作成画面7は、
図13A、
図14~
図16に示すように自動作成停止ボタン72(「自動作成を停止」ボタン)を有する。エージェント端末2は、エージェントによる操作を監視しており、チュートリアルの自動実行の一時停止及び案内ステップ情報の修正を受け付ける(ステップS74)。チュートリアルの自動実行中に、エージェントが、作成された案内ステップ情報の修正をしたい場合、例えば、ガイドに表示されるメッセージの文言を修正したい場合、チュートリアルの自動実行を一時停止する操作を行う。具体的には、
図13Aに示すように修正したい該当の案内ステップ(ガイド)が表示されている場合に、エージェントは、チュートリアル作成画面7上に表示されている自動作成停止ボタン72をクリック操作する。自動作成停止ボタン72がクリック操作されると、該当の案内ステップの編集ができる状態となり、エージェントは、
図13Bに示すように、メッセージの文言をチュートリアル作成画面7上で直接修正することができる。
図13Bは、チュートリアルの自動実行を一時停止した状態を示している。一時停止中にあるチュートリアル作成画面7は、自動作成再開ボタン73(「自動作成を再開」ボタン)を有する。
図13A及び
図13Bに示す例では、メールアドレス項目に対する「メールアドレスを入力してください」という文言を「勤務先のメールアドレスを入力してください」などに変更することができる。なお、修正が完了し、自動実行に戻りたい場合は、エージェントは、チュートリアル作成画面7上に表示されている自動作成再開ボタン73をクリック操作する。自動作成再開ボタン73がクリック操作されると、エージェント端末2は、修正された内容で案内ステップ情報を更新し、チュートリアルの自動実行処理を再開する。
【0106】
次いで、エージェント端末2は、実行した案内ステップが最後の案内ステップであるか否かを判定する(ステップS75)。具体的には、該当の案内ステップのフロー情報が示す遷移先案内ステップIDが存在するか否かを判定する。実行した案内ステップが最後の案内ステップでないと判定した場合、すなわち該当の案内ステップのフロー情報が示す遷移先案内ステップIDが存在する場合(ステップS75:NO)、エージェント端末2は、処理をステップS72へ戻し、該当の遷移先案内ステップIDが示す次の案内ステップ情報に基づいてチュートリアルの自動実行処理を継続する。
【0107】
これにより、エージェントは、チュートリアルの開始や次の案内ステップに遷移するために必要な操作、すなわち要素に対するクリック操作、入力操作及び選択操作などを手動で行うことなく、チュートリアルが正しく動作するかを視覚的に確認することができる。すなわち、チュートリアルの検証にかかるエージェントの作業負荷を軽減することができる。
【0108】
一連の案内ステップ情報に基づいて実行されたチュートリアルが終了した、すなわち実行した案内ステップのフロー情報が示す遷移先案内ステップIDが存在しないと判定した場合(ステップS75:YES)、エージェント端末2は、チュートリアルの自動実行終了処理を行う(ステップS76)。具体的には、エージェント端末2は、チュートリアルの自動実行が終了した時点で作成及び編集されている各案内ステップ情報をチュートリアル管理画面6に送信し、チュートリアル管理画面6に遷移する処理を行う。
【0109】
<チュートリアル管理画面6(チュートリアル設定データの保存)>
チュートリアル管理画面6に遷移すると、エージェントプログラムP1を実行するエージェント端末2は、ステップS35で作成された各案内ステップ情報を含むチュートリアル設定データをチュートリアルサーバ1へ送信して保存する(ステップS36)。具体的には、エージェント端末2は、チュートリアルの自動実行後に送信された各案内ステップ情報を保存するかの確認を行うモーダル画面を表示する。エージェントが当該モーダル画面の保存ボタンをクリック操作すると、エージェント端末2は、ステップS35で作成された各案内ステップ情報を、該当のチュートリアル設定データに追加し、チュートリアル設定データとしてチュートリアルサーバ1へ送信する。
【0110】
チュートリアルサーバ1は、受信したチュートリアル設定データをエージェントが属するアカウントIDに対応づけられたアカウントの設定データに含める形でアカウント管理データベースに保存する。
【0111】
アカウント管理データベースへの保存完了後、エージェント端末2は、チュートリアル設定データの自動作成に係る処理を終了する。
【0112】
<チュートリアル管理画面6/チュートリアル作成画面7(チュートリアル一括検証)>
前述した方法では、レコーディングを実行して作成された案内ステップについてのみ、自動実行を行うケースを説明したが、一つのチュートリアルに対して複数回にわけてレコーディングを行った場合、チュートリアルの最初の案内ステップから最後の案内ステップまで、一通りの案内ステップに対する検証(以下、一括検証)を行う必要もある。そのようなケースを想定して、エージェントがチュートリアルの一括検証を行うこともできる。
【0113】
具体的には、エージェントは、チュートリアルの一括検証を行いたい場合、チュートリアル管理画面6上に表示されている一括検証開始ボタンをエージェントがクリック操作(以下、一括検証開始操作)する。また、一括検証開始ボタンをクリック操作すると、一括検証を開始したいページのURLを入力するためのモーダル画面が表示され、エージェントは、該当のURLを入力する。
【0114】
エージェントプログラムP1を実行するエージェント端末2は、エージェントによる一括検証開始操作を監視しており、操作を検知した場合、入力されたURLに対応するウェブページ(以下、チュートリアル作成画面7)をエージェントブラウザ上で表示し、遷移する。チュートリアル作成画面7は、エージェントブラウザのチュートリアル管理画面6とは別のタブに表示される。チュートリアル作成画面7に遷移すると、ゲストプログラムP2が読み込まれる。なお、ゲストプログラムP2が設置されていないウェブページでチュートリアルの一括検証を行いたい場合などは、ブラウザの拡張機能などを利用して、ゲストプログラムP2を動的に追加するように構成してもよい。
【0115】
チュートリアル作成画面7でゲストプログラムP2が読み込まれ、実行されると、ステップS71と同様、チュートリアル管理画面6とチュートリアル作成画面7とでアカウントの一致確認が行われる。また、アカウントの一致確認が終了すると、定期的な疎通確認を行う。アカウントの一致確認及び定期的な疎通確認の開始が終了すると、チュートリアル管理画面6上のエージェント端末2すなわちエージェントプログラムP1は、対象のチュートリアル設定データをチュートリアル作成画面7に送信する。
【0116】
チュートリアル作成画面7上のエージェント端末2すなわちゲストプログラムP2は、受信したチュートリアル設定データに基づいて、チュートリアルの実行を開始する。以下、ステップS72~ステップS76及びステップS36と同様の方法でチュートリアルの自動実行及びチュートリアル設定データの保存を行う。具体的には、エージェントは、自動実行されたチュートリアルを検証し、必要に応じてチュートリアル設定データに含まれる各案内ステップ情報を修正した上で保存を行う。
【0117】
<作用効果>
以上の通り、本実施形態によれば、ウェブサイトの操作案内を行うためのチュートリアルを作成するエージェントは、ガイドごとに個別の設定の作成や確認を手動で行うことなく、チュートリアルを作成することができるため、チュートリアルを作成するエージェントの作業負荷を軽減することができる。
具体的には、本態様によるチュートリアルの作成方法によれば、ウェブサイトの特定のページ上でゲストが実際に行う操作とほぼ同等の操作をエージェントが行うのみで、操作案内システムがガイドの対象となる要素の選定、ガイドに表示するメッセージ及び次のガイドに遷移するための条件などを自動で判定及び設定し、ガイドを作成することができる。また、作成したチュートリアルを自動で実行し、検証を行ってからデータとして保存することができる。
【0118】
本開示の課題を解決するための手段を付記する。
(付記1)
ウェブページを構成する複数の要素に対する操作手順を案内するためのチュートリアル設定データを作成する情報処理装置であって、
前記要素に対する操作内容を示す操作情報と、操作手順の案内中に該要素に対する操作の完了を判定するための条件情報とを対応付けたテーブルと、
処理部と
を備え、
前記処理部は、
操作手順の手本となる、複数の前記要素に対する操作内容を示す操作情報を取得し、
複数の前記要素それぞれに対する案内ステップを識別する案内ステップIDを発行し、
取得した第1の前記要素に対する操作情報及び前記テーブルの情報に基づいて、第1の前記要素に対する操作の完了を判定するための条件情報を特定し、
第1の前記要素に対する案内ステップを示す案内ステップIDと、特定された条件情報と、第1の前記要素に対する操作を完了した後、次に操作された第2の前記要素を示す遷移先の案内ステップIDとを対応付けて、前記チュートリアル設定データとして記憶する
情報処理装置。
(付記2)
前記テーブルは、
前記要素に対する操作内容を示す操作情報と、該要素の操作項目を示した項目情報と、該要素に対する操作の完了を判定するための条件情報とを対応付けて格納しており、
前記処理部は、
取得した第1の前記要素に対する操作内容を示す操作情報と、第1の前記要素に係る情報とに基づいて、第1の前記要素の前記項目情報を特定し、
取得した第1の前記要素に対する操作内容を示す操作情報と、第1の前記要素の前記項目情報と、前記テーブルの情報とに基づいて、第1の前記要素に対する操作の完了を判定するための条件情報を特定する
付記1に記載の情報処理装置。
(付記3)
前記処理部は、
第1の前記要素の前記項目情報又は第1の前記要素に係る情報に基づいて、第1の前記要素に対する操作を案内する文字列を作成し、
作成した文字列を第1の前記要素を示す案内ステップIDに対応付けて、前記チュートリアル設定データとして記憶する
付記2に記載の情報処理装置。
(付記4)
前記処理部は、
前記チュートリアル設定データを作成するために取得した操作情報を含み、ウェブページの操作手順を再現する操作再現情報を記憶し、
記憶した前記操作再現情報と、前記チュートリアル設定データとに基づいて、ウェブページを構成する複数の前記要素に対する操作を再現しながら、操作手順を案内するチュートリアルを実行し、
前記チュートリアル設定データの修正を受け付ける
付記2又は付記3のいずれか1つに記載の情報処理装置。
(付記5)
前記要素の操作項目を示した複数の前記項目情報と、複数の前記項目情報毎に、該項目情報に該当する前記要素であるか否かを判定するための判定条件と、該判定条件を満たした前記要素が該項目情報に該当する確度とを対応づけた項目判定テーブルを備え、
前記処理部は、
第1の前記要素に係る情報と、前記項目判定テーブルの情報とに基づいて、第1の前記要素が各項目情報に該当する確度を算出し、最も確度が高い前記項目情報を特定する
付記2から付記4のいずれか1つに記載の情報処理装置。
【符号の説明】
【0119】
1 :チュートリアルサーバ
2 :エージェント端末
3 :ゲスト端末
4 :ウェブサーバ
5 :記録媒体
6 :チュートリアル管理画面
7 :チュートリアル作成画面
11 :処理部
12 :記憶部
12a :条件情報テーブル
12b :項目判定テーブル
13 :通信部
21 :処理部
22 :記憶部
23 :通信部
24 :操作部
25 :表示部
31 :処理部
32 :記憶部
33 :通信部
34 :操作部
35 :表示部
61 :自動作成開始ボタン
62 :自動作成開始モーダル画面
71 :レコーディング終了ボタン
72 :自動作成停止ボタン
73 :自動作成再開ボタン
N :通信網
P1 :エージェントプログラム
P2 :ゲストプログラム