(57)【特許請求の範囲】
【請求項１】
サーバからネットワークを介し、クライアントに対してオンラインのフォームを提供するサーバクライアントシステムであって、
前記サーバは、前記フォームの構造とは分離して定義された入力支援機能であるアシスタンスを読み込むと共に、当該アシスタンスを前記クライアントのブラウザで使用可能なプログラムに変換した機能拡張プログラムを当該フォームに埋め込んでアシスタンス付きフォームを生成し、更に当該クライアントからの要求に応じて当該アシスタンス付きフォームを当該クライアントに送信し、
前記クライアントは前記アシスタンス付きフォームを受信し、当該アシスタンス付きフォームは前記フォームに対するユーザ操作を認識して当該ユーザ操作に応じたアシスタンスを表示するように機能することを特徴とするサーバクライアントシステム。
【請求項２】
前記アシスタンスは、ユーザに対する入力支援の表示トリガとなるイベントと、当該ユーザの入力を支援するアクションとで定義されるルールによって記述されることを特徴とする請求項１記載のサーバクライアントシステム。
【請求項３】
前記イベントは、前記ユーザの操作履歴に基づくイベントが定義されていることを特徴とする請求項２記載のサーバクライアントシステム。
【請求項４】
前記アシスタンス付きフォームは、前記クライアントにて前記ブラウザが実行されることにより、ユーザの操作を検出してアシスタンスのトリガとなるイベントを検出するユーザモニタエンジンと、フォーム入力に使用するアシスタンス機能を有するアシスタンスエンジンとが動作することを特徴とする請求項１記載のサーバクライアントシステム。
【請求項５】
ネットワークを介して接続されるクライアントに対してオンラインのフォームを提供するためのネットワークサーバであって、
前記フォームの構造が定義され、定義されたフォーム構造が記述されたフォーム論理構造ファイルと、
前記フォーム論理構造ファイルに記述された前記フォーム構造に基づいて前記クライアントのユーザが入力可能なフォームを生成するためのスタイル情報が記述されたスタイルファイルと、
前記ユーザにおける入力支援のためのルールが記述されたアシスタンスルールファイルと、
前記フォーム論理構造ファイルに記述された前記フォーム構造、前記スタイルファイルに記述された前記スタイル情報、および前記アシスタンスルールファイルに記述された前記ルールに基づいてアシスタンス付きフォームを生成するフォーム生成モジュールとを備えたことを特徴とするネットワークサーバ。
【請求項６】
前記アシスタンスルールファイルに記述される入力支援のためのルールは、前記ユーザにおける入力支援の表示トリガとなるイベントと、当該ユーザの入力を支援するアクションとを含むことを特徴とする請求項５記載のネットワークサーバ。
【請求項７】
ネットワークを介して接続されるクライアントに対してユーザの入力支援を行うアシスタンス付きのフォームを提供するためのネットワークサーバであって、
前記フォームの構造について所定のページ記述言語からなるフォームを生成する生成モジュールと、
前記アシスタンスのルールを機能拡張プログラムとして生成するルール処理モジュールと、
前記生成モジュールにより生成された前記フォームに前記ルール処理モジュールにより生成された前記機能拡張プログラムを埋め込んで新たなフォームを生成する最終フォーム生成モジュールとを備えたことを特徴とするネットワークサーバ。
【請求項８】
ネットワークを介して接続されるサーバから、ユーザの入力支援を行うアシスタンス付きのフォームを受け取るクライアントであって、
前記アシスタンス付きのフォームのロード処理を行うロード処理手段と、
所定のページ記述言語からなる前記フォームを表示する表示手段と、
機能拡張プログラムからなる前記アシスタンスを実行する実行手段とを備え、
前記実行手段は、前記表示手段により表示された前記フォームに対する前記ユーザの操作に基づいて前記アシスタンスのためのイベントを検出すると共に、前記機能拡張プログラムに定義されるイベントアシスタンス対応に基づいてアシスタンスを実行することを特徴とするクライアント。
【請求項９】
前記実行手段によって検出される前記イベントは、  ユーザの操作履歴に関するイベントであり、当該操作履歴に関するイベントに基づいてアシスタンスが実行されることを特徴とする請求項８記載のクライアント。
【請求項１０】
ネットワークを介して接続されるクライアントに対し、当該クライアントのユーザに対する入力支援機能を含むフォームを提供するフォーム提供方法であって、
提供すべきフォームの論理構造を前記入力支援機能とは分離してページ記述言語を生成し、
前記入力支援機能はイベントとアクションの組み合わせによるルールによって記述されると共に、当該ルールを機能拡張プログラムに変換し、
変換された前記機能拡張プログラムを前記ページ記述言語に埋め込んで入力支援機能付きフォームを生成し、
生成された前記入力支援機能付きフォームを前記ネットワークを介して前記クライアントに対して提供することを特徴とするフォーム提供方法。
【請求項１１】
前記クライアントは、提供された前記入力支援機能付きフォームの中から前記ページ記述言語によって生成された前記フォームの論理構造に基づくフォームを表示し、表示された当該フォームに対するユーザの操作を検出して入力支援を行うべきイベントを選定することを特徴とする請求項１０記載のフォーム提供方法。
【請求項１２】
選定された前記イベントに対するアシスタンスを実行することを特徴とする請求項１１記載のフォーム提供方法。
【請求項１３】
コンピュータに実行させるプログラムを記憶すると共に、当該コンピュータにて読み取り可能な記憶媒体において、
前記プログラムは、
ネットワークを介して接続されるクライアントに対して提供すべきフォームの論理構造とは分離して記述される、入力支援機能のためのイベントとアクションの組み合わせによるルールを読み込む処理と、
読み込まれた前記ルールを機能拡張プログラムに変換する処理とを前記コンピュータに実行させることを特徴とする記憶媒体。
【請求項１４】
前記プログラムは、前記フォームの論理構造をページ記述言語のフォームに変換する処理と、
変換された前記フォームに前記機能拡張プログラムを埋め込む処理とを更に含むことを特徴とする請求項１３記載の記憶媒体。
【請求項１５】
ネットワークを介して接続されるクライアントに対して提供すべきフォームの論理構造とは分離して記述される、入力支援機能のためのイベントとアクションの組み合わせによるルールを読み込む処理と、読み込まれた当該ルールを機能拡張プログラムに変換する処理と、当該フォームの論理構造をページ記述言語のフォームに変換する処理と、変換された当該フォームに当該機能拡張プログラムを埋め込む処理とを実行させるプログラムを記憶する記憶手段と、
前記記憶手段から前記プログラムを読み出して当該プログラムを送信する送信手段とを備えたことを特徴とするプログラム伝送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般ユーザのコンピュータへのデータ入力を支援する手法に係り、特に、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ：以下ウェブ（Ｗｅｂ）と呼ぶ）におけるオンラインフォームの特性に適したユーザのデータ入力の支援機能に関する。
【０００２】
【従来の技術】
近年、インターネット上でビジネスを行う電子商取引（エレクトロニクス・コンマース：ｅ−ｃｏｍｍｅｒｃｅ）などのアプリケーションの普及により、一般のユーザがオンラインのフォームにデータを入力する機会が非常に多くなってきている。しかし、オンラインフォームの入力においては、一般ユーザにとって入力方法が難しく、ユーザがデータの入力に困難を感じて途中で入力を断念する問題が生じている。従来の紙ベースによるフォームの提供者は、注釈や記入例などを添付することによってユーザによるデータ記入の支援が可能であったが、従来の紙ベースにおける支援の手法は、オンラインフォームの表示端末における制約等の理由により、そのままオンラインフォームに採用することは困難である。そのため、Ｗｅｂのオンラインフォームにおいても、各オンラインフォームの特性に適したユーザの入力支援機能（アシスタンス）の必要性が非常に高まっている。
【０００３】
ここで、ユーザ入力のアシスタンスとして、Ｗｅｂブラウザが入力アシスタンスの機能を持つように構成したものが存在する。例えば、米マイクロソフト社が提供するＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）ブラウザであるインターネットエクスプローラ（Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ：米マイクロソフト社商標）では、過去に入力した値を保存しておき、次に同じ種類のフィールド（いくつかのデータの項目の並びであるレコードを構成するそれぞれの要素）に入力するとき、ユーザが過去に入力した値を入力候補としてリスト表示する機能が存在している。
【０００４】
また、Ｗｅｂのフォーム（画面作成ツールや帳票作成ツールが生成する画面表示や印刷出力の形式）に機能拡張プログラムの１つであるスクリプト（ＯＳやアプリケーション、ユーティリティなどの機能を拡張するために使われるプログラミング言語）プログラムを作り込むことにより、ガイドを表示する方式が存在する。この方式では、ＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ファイルの中にスクリプトプログラムとフォームの構造が一緒に記述されている。
【０００５】
【発明が解決しようとする課題】
上述のＷｅｂブラウザが入力アシスタンスの機能を持つ方式では、標準的なアシスタンス機能はブラウザが持つために、各フォーム作成時にプログラムを作成する必要はない。しかしながら、ブラウザに機能を内蔵してしまうことから、フォームの種類に応じてアシスタンス機能をカスタマイズすることができない。
【０００６】
また、上述のスクリプトプログラムによる入力アシスタンス方式では、フォームの構造が変化した場合にスクリプトも書き換える必要があり、変更やカスタマイズのワークロードが多大となる。即ち、スクリプトプログラムでアシスタンスを作成してしまうと、フォームの論理構造とアシスタンスの依存性が大きくなり、後にフォームの構造を変更する場合には、スクリプトプログラムをわざわざ作り直す必要が生じ、メンテナンスのワークロードが非常に大きくなる。
【０００７】
更に、Ｗｅｂのオンラインフォームは、一般に様々なスキルレベルのユーザによって使用される。そのため、当然、各レベルのユーザが必要とするアシスタンスが異なってくる。ガイダンスをスクリプトプログラムで作成する場合は、それぞれのレベルにおけるユーザのために、プログラムを別に作成する必要がある。即ち、このユーザのスキルレベルに応じてガイドの内容を変えるためには、複雑なプログラミングが必要であり、容易に対応することはできないという問題がある。
【０００８】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的とするところは、ユーザへのアシスタンスをルールで記述することにより、アシスタンス作成のワークロードを少なくすることにある。
また他の目的は、ユーザの操作履歴を利用してアシスタンスのルールを記述することで、ユーザの操作履歴に応じたアシスタンスを自動的に表示することにある。
更に他の目的は、フォームとアシスタンスを分離する等、論理構造は変更せずにルールだけを変えることで、容易にアシスタンスの内容を変えることにある。
【０００９】
【課題を解決するための手段】
かかる目的のもと、本発明は、サーバからネットワークを介し、クライアントに対してオンラインのフォームを提供するサーバクライアントシステムであって、このサーバは、フォームの構造と入力支援機能であるアシスタンスとを分離して定義すると共に、アシスタンスをクライアントのブラウザで使用可能なプログラムに変換したスクリプト等の機能拡張プログラムをフォームに埋め込んでアシスタンス付きフォームを生成し、更にこのクライアントからの要求に応じてアシスタンス付きフォームをクライアントに送信し、このクライアントはアシスタンス付きフォームを受信し、このアシスタンス付きフォームはフォームに対するユーザ操作を認識してユーザ操作に応じたアシスタンスを表示するように機能することを特徴としている。
【００１０】
このアシスタンスは、ユーザに対する入力支援の表示トリガとなるイベントと、ユーザの入力を支援するアクションとで定義されるルールによって記述されることを特徴とすれば、フォームの中にプログラミングすることなしに、ユーザへのアシスタンス機能を可能にする点で好ましい。
また、このイベントは、ユーザの操作履歴に基づくイベントが定義されていることを特徴とすれば、クライアント側の一般的なブラウザでは定義できない、操作履歴をイベントとして把握することができる点で優れている。更に、これにより、例えば、１つのルールファイルでユーザの操作の状況に応じた異なるガイダンスを表示するように構成することも可能である。
また更に、アシスタンス付きフォームは、クライアントにてブラウザが実行されることにより、ユーザの操作を検出してアシスタンスのトリガとなるイベントを検出するユーザモニタエンジンと、フォーム入力に使用するアシスタンス機能を有するアシスタンスエンジンとが動作することを特徴とすることができる。
【００１１】
また、本発明は、ネットワークを介して接続されるクライアントに対してオンラインのフォームを提供するためのネットワークサーバであって、このフォームの構造が定義され、定義されたフォーム構造が記述されたフォーム論理構造ファイルと、このフォーム論理構造ファイルに記述されたフォーム構造に基づいてクライアントのユーザが入力可能なフォームを生成するためのスタイル情報が記述されたスタイルファイルと、ユーザにおける入力支援のためのルールが記述されたアシスタンスルールファイルと、フォーム論理構造ファイルに記述されたフォーム構造、スタイルファイルに記述されたスタイル情報、およびアシスタンスルールファイルに記述されたルールに基づいてアシスタンス付きフォームを生成するフォーム生成モジュールとを備えたことを特徴としている。このように構成すれば、例えば、フォームの論理構造を変えることなくルールだけを変えることにより、容易にアシスタンスの内容を変えることが可能となる。
【００１２】
また、このアシスタンスルールファイルに記述される入力支援のためのルールは、ユーザにおける入力支援の表示トリガとなるイベントと、ユーザの入力を支援するアクションとを含むことを特徴とすれば、ルールを記述するだけでアシスタンスを作成することが可能となり、アシスタンス作成のためのワークロードを減らすことができる点で好ましい。また、ルールを記述するだけでスクリプトプログラムのスキルがなくてもアシスタンスを作成することが可能となる。
【００１３】
次に、他の観点から発明を把えると、本発明は、ネットワークを介して接続されるクライアントに対してユーザの入力支援を行うアシスタンス付きのフォームを提供するためのネットワークサーバであって、フォームの構造についてＨＴＭＬ等の所定のページ記述言語からなるフォームを生成する生成モジュールと、アシスタンスのルールをスクリプトプログラム等の機能拡張プログラムとして生成するルール処理モジュールと、この生成モジュールにより生成されたフォームにルール処理モジュールにより生成された機能拡張プログラムを埋め込んで新たなフォームを生成する最終フォーム生成モジュールとを備えたことを特徴とすることができる。このように構成すれば、例えば、従来、ＨＴＭＬ等のプログラムにアシスタンスを書き込むことでアシスタンスを可能としていたものに対し、メンテナンスのワークロードを極端に減らすことが可能となる。
【００１４】
更に、本発明をクライアント側から把えると、本発明は、ネットワークを介して接続されるサーバから、ユーザの入力支援を行うアシスタンス付きのフォームを受け取るクライアントであって、このアシスタンス付きのフォームのロード処理を行うロード処理手段と、ロードされた所定のページ記述言語からなるフォームを表示する表示手段と、ロードされた機能拡張プログラムからなるアシスタンスを実行する実行手段とを備え、この実行手段は、この表示手段により表示されたフォームに対するユーザの操作に基づいてアシスタンスのためのイベントを検出すると共に、機能拡張プログラムに定義されるイベントアシスタンス対応に基づいてアシスタンスを実行することを特徴とすることができる。
【００１５】
また、実行手段によって検出されるイベントは、  ユーザの操作履歴に関するイベントであり、この操作履歴に関するイベントに基づいてアシスタンスが実行されることを特徴としている。本発明によれば、一般的なブラウザでは定義されていないイベントを検出できると共に、そのイベントに対してアシスタンスが実行されるので、ユーザに対して適切なガイダンス表示等のアシスタンスを実行することが可能である。また、ユーザのスキルレベルに応じてアシスタンスの内容を変えるように構成することも可能である。
【００１６】
また、カテゴリを変えて本発明を把えると、本発明は、ネットワークを介して接続されるクライアントに対し、クライアントのユーザに対する入力支援機能を含むフォームを提供するフォーム提供方法であって、提供すべきフォームの論理構造を入力支援機能とは分離してＨＴＭＬ等のページ記述言語を生成し、この入力支援機能はイベントとアクションの組み合わせによるルールによって記述されると共に、ルールをスクリプトプログラム等の機能拡張プログラムに変換し、変換されたこの機能拡張プログラムをページ記述言語に埋め込んで入力支援機能付きフォームを生成し、生成されたこの入力支援機能付きフォームをネットワークを介してクライアントに対して提供することを特徴とすることができる。
ここでは、提供すべきフォームの論理構造を入力支援機能とは分離してデータ記述言語で記述し、フォームを生成するためのスタイル情報が記述されたスタイルファイルによってページ記述言語を生成している。
【００１７】
また、このクライアントは、提供された入力支援機能付きフォームの中からページ記述言語によって生成されたフォームの論理構造に基づくフォームを表示し、表示されたこのフォームに対するユーザの操作を検出して入力支援を行うべきイベントを選定することを特徴とすることができる。
更に、選定されたイベントに対するアシスタンスを実行することを特徴とすることができる。
【００１８】
ここで、本発明の提供形態を考慮して発明を把えると、本発明は、コンピュータに実行させるプログラムを記憶すると共に、当該コンピュータにて読み取り可能な記憶媒体において、このプログラムは、ネットワークを介して接続されるクライアントに対し、提供すべきフォームの論理構造とは分離した入力支援機能を定義する処理と、定義されたこの入力支援機能をイベントとアクションの組み合わせによるルールによって記述する処理と、記述された前記ルールを機能拡張プログラムに変換する処理とを前記コンピュータに実行させることを特徴とすることができる。
また、このプログラムは、フォームの論理構造をページ記述言語のフォームに変換する処理と、変換されたこのフォームに機能拡張プログラムを埋め込む処理とを更に含むことを特徴とすることができる。
ここにおける記憶媒体としては、ＣＤ−ＲＯＭやハードディスク等が該当し、ハード構成の異なりは本発明の実質には何ら関わるものではない。
【００１９】
また、本発明の他の提供形態を考慮して発明を把えると、本発明を提供するプログラム伝送装置は、ネットワークを介して接続されるクライアントに対して提供すべきフォームの論理構造とは分離した入力支援機能を定義する処理と、定義された入力支援機能をイベントとアクションの組み合わせによるルールによって記述する処理と、記述されたルールを機能拡張プログラムに変換する処理と、フォームの論理構造をページ記述言語のフォームに変換する処理と、変換されたフォームに機能拡張プログラムを埋め込む処理とを実行させるプログラムを記憶する記憶手段と、この記憶手段からこのプログラムを読み出してプログラムを送信する送信手段とを備えたことを特徴としている。
【００２０】
【発明の実施の形態】
図１は、本実施の形態におけるシステム全体を説明するための構成図である。同図において、符号１はＷｅｂサーバ、符号２はクライアント側にあるＷｅｂブラウザであり、インターネット等のネットワーク１０を介して接続されている。このＷｅｂサーバ１は、ユーザによるＷｅｂブラウザ２からのリクエストに応じてフォームを返すように機能し、フォーム論理構造３と、スタイルファイル４、アシスタンスルールファイル５、およびフォーム生成モジュール６が備えられている。また、Ｗｅｂブラウザ２は、ユーザ入力のインターフェイスおよびアシスタンス実行のプラットフォームとして機能し、Ｗｅｂサーバ１からＨＴＭＬファイルを読み込むことで、フォーム本体７、ユーザからの入力を受けるユーザモニタエンジン８、および入力支援機能であるアシスタンスを出力するアシスタンスエンジン９の各機能を備えることができるように構成されている。
【００２１】
Ｗｅｂサーバ１におけるフォーム論理構造３はフォームの論理構造を記述したファイルである。この論理構造は、例えば名前や住所等からなる入力項目が該当し、フォームの基本的部分である。ここで、本実施の形態では、Ｗｅｂサーバ１に存在するＷｅｂフォームを、フォーム論理構造３とスタイルファイル４およびアシスタンスルールファイル５の３つに分離して定義し、ユーザへのアシスタンスをルールで記述して、フォームの論理構造やスタイルから分離したことに特徴がある。そのため、このフォーム論理構造３にはフォームの構造のみが定義され、スタイル情報は含まれていない。このフォーム論理構造３をＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）によって記述すると、例えば以下のようになる。
0003589400.tif 000002
この記述例に示すとおり、このフォーム論理構造３には、フォームナンバーやインプットデータ等の入力する項目が階層化されて記述されている。前述のとおり、ここでは、Ｗｅｂブラウザ２で表示するときの表示位置や色等の情報は含まれていない。
【００２２】
次に、Ｗｅｂサーバ１におけるスタイルファイル４には、フォーム論理構造３からユーザが入力可能なフォームを生成するためのスタイル情報が記述されている。このスタイルは、例えば、テキストか、ボタンか、どの位置か等、論理構造で規定された項目を表示するための情報である。即ち、フォームの論理構造から入力フィールドやボタンなどのユーザ・インターフェイス（ＵＩ）コンポーネントに変換するための情報や、表示位置や色などの属性を含むものである。
【００２３】
次に、Ｗｅｂサーバ１におけるアシスタンスルールファイル５では、ユーザ入力を支援するためのルールを記述している。このルールはイベントとアクションからなっており、イベントが発生した場合、アクションに記述された処理を実行している。イベントとアクションは、通常のスクリプト言語とは異なり、アシスタンスに特化した抽象度の高いレベルで記述している。アシスタンスルールをＸＭＬによって記述すると、例えば以下のようになる。
0003589400.tif 000003
ここで、「ｉｎｐｕｔ−ｅｑｕａｌ」はイベントのタイプを、「ｔｒａｎｓｐｏｒｔａｔｉｏｎ」はイベントソースのオブジェクトＩＤを、「ｉｎｖｉｓｉｂｌｅ」はアクションを、「Ｅｘｐｒｅｓｓ」はターゲットのオブジェクトＩＤを示している。
【００２４】
図２はイベントの例を示した図表である。図２に示されるように、イベントの種類は、ユーザ操作のイベント、データ入力に関するイベント、操作履歴に関するイベントの３種類が定義されている。また、各イベントの種類毎にイベントのタイプが定義されている。また、図２には、各イベントのタイプとイベントの意味が示されている。例えば、ユーザ操作に関するイベントでは、フォーカスを得た「ｆｏｃｕｓ」、フォーカスを失った「ｂｌｕｒ」、可視領域内に表示された「ｄｉｓｐｌａｙｅｄ」の各タイプが用意されている。また、データ入力のイベントでは、値が変更された「ｃｈａｎｇｅ」、一定時間以上入力がなかった「ｓｔｏｐＩｎｐｕｔ」、入力なしでフォーカスが移動した「ｎｏＩｎｐｕｔ」、特定の値が入力された「ｓｐｅｃｉｆｉｅｄＶａｌｕｅ」の各タイプが用意されている。更に、操作履歴のイベントでは、繰り返し入力した「ｒｅｐｅａｔｅｄＩｎｐｕｔ」、繰り返しフォーカスを得た「ｒｅｐｅａｔｅｄＦｏｃｕｓ」、指定した順序で入力した「ｓｐｅｃｉｆｉｅｄＩｎｐｕｔＯｒｄｅｒ」、指定した順序でフォーカスを得た「ｓｐｅｃｉｆｉｅｄＦｏｃｕｓＯｒｄｅｒ」の各タイプが用意されている。
即ち、本実施の形態によれば、単にＷｅｂブラウザ２で発生しているイベントだけではなく、過去の履歴を見て、その組み合わせによって定義できるイベントを定義することが可能である。このイベントは、必要に応じて追加することが可能であり、必ずしも図２のイベントだけに限定されるものではない。
【００２５】
図３は、イベントに対するアクションの例を示した図表である。図３では、各アクションに対応するアクション内容が示されている。アクションにある、例えばバルーンヘルプ（ｂａｌｌｏｏｎＨｅｌｐ）は、ターゲットとなるオブジェクトの横に吹き出し型のヘルプ・テキストを表示して操作方法や機能を簡単に説明するものである。また、アクション項目として、エラーメッセージ表示「ｅｒｒｏｒＭｅｓｓａｇｅ」、警告メッセージを表示「ａｌｅａｒｔＭｅｓｓａｇｅ」、Ｗｅｂのページを表示「ｓｈｏｗＷｅｂｐａｇｅ」、選択した項目に対して指定した値を入力する自動入力「ａｕｔｏＩｎｐｕｔ」、入力可・不可にする「ｅｎａｂｌｅ／ｄｉｓａｂｌｅ」指定したフィールドをハイライト表示（背景の色を変える）「ｈｉｇｈｌｉｇｈｔ」、可視・不可視にする「ｖｉｓｉｂｌｅ／ｉｎｖｉｓｉｂｌｅ」、ポインタでフィールドを指す「ｐｏｉｎｔＥｌｅｍｅｎｔ」等がある。これらのアクションは必要に応じて追加することが可能である。
【００２６】
図１に示したＷｅｂサーバ１のフォーム生成モジュール６は、フォーム論理構造３、スタイルファイル４、アシスタンスルールファイル５からアシスタンス付きフォームを作成している。フォームの生成は、ユーザからフォーム表示の要求を受け取った時点でリアルタイムに行うこともできる。あるいは、予め生成したフォームをＷｅｂサーバ１に保存しておくことも可能である。
【００２７】
図４は、フォーム生成モジュール６の詳細を示した構成図である。このフォーム生成モジュール６は、大きく中間フォーム生成モジュール２１、ルール処理モジュール２２、最終フォーム生成モジュール２３とによって構成される。
中間フォーム生成モジュール２１では、フォーム論理構造３においてＸＭＬで記述されているフォームの論理構造と、スタイルファイル４のフォームエレメントへ変換するためのスタイルであるＸＳＬから、ＨＴＭＬファイル２４を生成している。この処理には、ＸＳＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｓｔｙｌｅ  Ｌａｎｇｕａｇｅ）を用いてＸＭＬ文書の構造を変換するときに使われるＸＳＬＴ（ＸＳＬ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎｓ）プロセッサなどのＸＭＬ変換技術を使用することが可能である。
尚、ＨＴＭＬファイル２４はファイルの形式としてＨＴＭＬを用いたものとして定義され、ＨＴＭＬフォームは、ＨＴＭＬファイル２４における実体（実物の意味）として、ユーザが見えるものとして定義される。
【００２８】
ルール処理モジュール２２では、アシスタンスルールファイル５におけるアシスタンスルールを、Ｗｅｂブラウザ２にてユーザモニタエンジン８とアシスタンスエンジン９の機能の呼び出しを行うスクリクトプログラムに変換している。このルール処理モジュール２２では、ＸＭＬで記述したルールファイルの構文解析を行い、ユーザモニタエンジン８およびアシスタンスエンジン９の機能を含んだスクリプトプログラム２５を生成している。即ち、このスクリプトには、ルールで記述したアシスタンスを実行するために必要なアシスタンスエンジン９とユーザモニタエンジン８との機能が組み込まれる。フォームの表示フォーマットにＨＴＭＬを使用する場合には、このモジュールは、ＪａｖａＳｃｒｉｐｔのプログラムを出力する。このモジュールの出力は、ＪａｖａＳｃｒｉｐｔに限らず、Ｊａｖａやプラグ・インなどの他のプログラム形式でもよい。
【００２９】
最終フォーム生成モジュール２３では、中間フォーム生成モジュール２１で生成されたＨＴＭＬファイル２４のＨＴＭＬフォームに、スタイルファイル４、ルール処理モジュール２２で生成されたスクリプトプログラム２５を埋め込む処理が行われる。実際には、ＨＴＭＬファイル２４にスタイルファイル４、スクリプトプログラム２５のファイルへのリンクを埋め込む。スタイルファイル４では、フォント等の位置、サイズ、色、背景などの属性を指定するためにＣＳＳ（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔｓ）を用いている。このスタイルは、別ファイルに分けずにＨＴＭＬファイル２４の中に埋め込むように構成しても構わない。このようにして、アシスタンス付きフォーム２６が形成される。
【００３０】
次に、図１に示したＷｅｂブラウザ２の構成について詳述する。
図１に示したＷｅｂブラウザ２のユーザモニタエンジン８では、Ｗｅｂブラウザ２におけるユーザの操作をモニタし、アシスタンスのトリガとなるイベントを検出している。イベントが検出された場合には、ルールに従ってアシスタンスエンジン９の機能を呼び出す。Ｗｅｂブラウザ２のイベントを検出する部分は、例えば、各種スクリプト言語でＸＭＬ／ＨＴＭＬにアクセスするためのインターフェイスであるＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）をベースにしたイベントを取得する。本実施の形態におけるユーザモニタエンジン８は、ＤＯＭレベルのイベントの系列から、より抽象度の高い入力アシスタンス用のイベント検出を行っている。
また、図１に示したＷｅｂブラウザ２のアシスタンスエンジン９は、フォームの入力一般に使用できるアシスタンス機能を備えている。このアシスタンスはユーザモニタエンジン８から呼び出される。
【００３１】
図５（ａ）、（ｂ）は、Ｗｅｂブラウザ２におけるユーザアシスタンスの流れを示したフロー図である。図５（ａ）はフォームの表示に関するフロー図、図５（ｂ）はアシスタンスの実行に関するフロー図であり、理解を容易にするためにここで簡単に流れを説明する。
図５（ａ）に示すフォームの表示では、まず、Ｗｅｂブラウザ２にフォームがロードされる（ステップ１０１）。このロードがされた時点で、初期化処理が実行される。即ち、ルールに応じたアシスタンスエンジン９の初期化が実行され（ステップ１０２）、ユーザモニタエンジン８用のイベントハンドラの設定が行われる（ステップ１０３）。
【００３２】
図５（ｂ）に示すアシスタンスの実行では、ユーザ入力、即ちユーザの操作が発生すると（ステップ１１１）、ユーザモニタエンジン８のイベントハンドラが呼び出され、実行が開始される（ステップ１１２）。そして、このイベントハンドラにてアシスタンス用のイベントが検出される（ステップ１１３）。このイベントの検出おいては、ユーザの操作履歴が参照され、操作履歴に応じたイベントの検出が行われる。即ちイベント検出があったか否かが判断され（ステップ１１４）、検出されなければ終了し（ステップ１１５）、検出された場合には、対応するアシスタンスを特定する処理が行われる（ステップ１１６）。その後、ルールで記述されたアクションが実行される（ステップ１１７）。
【００３３】
図６は、ユーザモニタエンジン８およびアシスタンスエンジン９における上述の初期処理を説明するための図である。同図において、まず、Ｗｅｂブラウザ２におけるユーザは、Ｗｅｂ画面内におけるリンクのクリックやブラウザメニューの選択など、通常のＷｅｂブラウザの操作を行い、フォームのロードを要求する。次に、Ｗｅｂブラウザ２は、ユーザの操作に従い、要求されたフォームを受信するためのＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）リクエストをネットワーク１０を介してＷｅｂサーバ１に送信する。その後、Ｗｅｂブラウザ２は、Ｗｅｂサーバ１からＨＴＴＰレスポンスを受信する。ＨＴＴＰレスポンスの内容は、アシスタンスルールから生成されたフォームのＨＴＭＬファイル２４である。次に、Ｗｅｂブラウザ２は、この受信したＨＴＭＬファイル２４をロードする。
【００３４】
図７は、ＨＴＭＬファイル２４からフォームをロードする処理の詳細を説明したフロー図である。まず、Ｗｅｂブラウザ２はフォームのロード処理を開始する（ステップ１２１）。Ｗｅｂブラウザ２は、ＨＴＭＬファイル２４の内容を読み込み、ＨＴＭＬファイル２４の記述に応じてフォームを表示し（ステップ１２２）、表示処理が終了する（ステップ１２３）。
一方、ユーザモニタエンジン８では、ステップ１２２のＨＴＭＬ表示の中で行われるスクリプトプログラム２５の実行により、ユーザモニタエンジン８が動作を開始する（ステップ１２４）。また、Ｗｅｂブラウザ２では、アシスタンスエンジン９の初期化処理が実行され（ステップ１２５）、アシスタンスエンジン９が実行可能な状態となる。ユーザモニタエンジン８では、ユーザ入力を検出するためのイベント取得用イベントハンドラの設定がなされる（ステップ１２６）。以降、この設定によりユーザからの入力があった時に、ユーザモニタエンジン８のイベントハンドラがＷｅｂブラウザ２から読み出される。これらによってフォームのロード処理が終了する（ステップ１２７）。
【００３５】
図８は、Ｗｅｂブラウザ２におけるアシスタンス実行時の構成を説明するための図である。Ｗｅｂブラウザ２では、入力するフォームを表示し、また、ユーザ３３からの入力を受け取るために、前述のようにＷｅｂサーバ１からＨＴＭＬファイル２４を受信する。このＨＴＭＬファイル２４は、アシスタンスルールから生成されたスプリクトプログラム２５を含むＨＴＭＬのフォームである。図８では、Ｗｅｂブラウザ２にロードされて初期処理が終了した状態を示している。このスクリプトプログラム２５は、ユーザモニタエンジン８、アシスタンスエンジン９、およびイベントアシスタンス対応表３１を含んでいる。このイベントアシスタンス対応表３１は、イベントが発生したとき、どのアシスタンスを表示するかを定義した表であり、アシスタンスルールから作成されている。ユーザモニタエンジン８では、Ｗｅｂブラウザ２のユーザ３３から入力を受け取り、イベントが検出された場合にアシスタンスの判断を行って、イベントアシスタンス対応表３１に定義されたアシスタンスを実行している。また、アシスタンスエンジン９はアシスタンスの表示機能をスクリプトで実現した機能ライブラリであり、ユーザモニタエンジン８によるアシスタンスの機能呼び出しによって呼び出される。そして、ユーザ３３に対してアシスタンスを表示している。
【００３６】
図９は、アシスタンス表示の流れを示すフロー図である。この図９では、Ｗｅｂブラウザ２、ユーザモニタエンジン８、アシスタンスエンジン９に分けてフローを示している。まず、Ｗｅｂブラウザ２では、フォームがロードされて初期処理が終了し、アシスタンス表示を開始する（ステップ１３１）。Ｗｅｂブラウザ２へのユーザ３３による操作があった場合、その操作イベントが検出される（ステップ１３２）。その後、Ｗｅｂブラウザ２では、イベントに対して定義されているイベントハンドラが実行される（ステップ１３３）。
【００３７】
ユーザモニタエンジン８では、イベントが起きてイベントハンドラが実行されると、Ｗｅｂブラウザ２から呼び出され、ユーザモニタエンジン８の動作が開始する（ステップ１３４）。ユーザモニタエンジン８では、発生したイベントおよび過去のイベント記録から、アシスタンスのトリガとなるイベントが起きたかどうかが判断される（ステップ１３５）。ここで、イベントに対するアシスタンスが定義されているかどうかが判定され（ステップ１３６）、定義されていない場合には、ユーザモニタエンジン８の動作は終了する（ステップ１３７）。定義されている場合には、アシスタンスエンジン９の実行が指示される（ステップ１３８）。
次に、アシスタンスエンジン９では、ユーザモニタエンジン８からの呼び出しによって動作を開始し（ステップ１３９）、イベントアシスタンス対応表３１におけるアシスタンス機能のリストから、ユーザモニタエンジン８によって指定されたアシスタンス機能を選択して実行する（ステップ１４０）。アシスタンスは、Ｗｅｂ  ブラウザ２のスクリプト実行機能によって、ユーザ３３に表示される。
【００３８】
図１０は、本実施の形態における入力支援（アシスタンス）機能を含むＨＴＭＬファイル２４の実現例を示している。ここでは、Ｗｅｂブラウザ２として、米マイクロソフト社が提供しているインターネット・エクスプローラを用い、自動車保険の契約申込書におけるアシスタンス機能を実現した例を示している。本実施の形態では、例えばユーザ３３による枠５１の入力からイベントを検出すると、バルーンヘルプ５２をアクションとして表示することが可能である。このイベント検出としては、例えば、ユーザ３３によって枠５１が繰り返し入力されたことを検出して操作履歴のイベントを把握し、例えば３回入力がされた時点でイベントアシスタンス対応表３１からバルーンヘルプ５２のアクションを選択する等、ユーザ３３の操作レベルに応じてアクションを選定するように構成することができる。
【００３９】
また、図１０では、例えばユーザ３３による枠５３の入力により、関連するフィールドのＯＮ／ＯＦＦ５４をアクション項目とする例が示されている。また、枠５５の選択により、関連するＷｅｂページを表示５６するように構成することも可能である。本実施の形態では、これらのイベントとアクションを、それぞれのパターン毎にプログラムを用意して実行するのではなく、イベントとアクションをルールで記述し、その組み合わせによってアシスタンスを実行可能としている。その結果、たとえフォームの変更があったとしても、スクリプトプログラム２５を作成し直す必要がなくなり、アシスタンス作成のワークロードを極端に減らすことが可能となる。
【００４０】
以上説明したように、本実施の形態によれば、イベントとアクションを組み合わせてルールを記述することにより、例えばＨＴＭＬ等にアシスタンスのための新たなプログラミングを作成することなく、ユーザ３３へのアシスタンス機能を可能とすることができる。また、ルールを記述するだけで足りることから、アシスタンス作成のワークロードが少なく、また、スクリプトプログラム２５のスキルがなくてもアシスタンスを作成するように構成することが可能となる。
また、フォームの構造とアシスタンスを完全に分離することが可能となり、論理構造は変更せずにルールだけを変えれば、容易にアシスタンスの内容を変えることができる。また、通常のディスクトップ端末からモバイル端末まで、様々なデバイスが存在する場合であっても、アシスタンスルールだけを変更するだけで容易に対応することが可能となる。更に、フォームの論理構造とアシスタンスのルールファイルを分けて管理することができることから、フォーム提供者は、アシスタンスの変更等のメンテナンスを容易に行うことが可能となる。
更に、アシスタンスルールファイル５にユーザ３３の操作履歴を用いた様々な条件を記述することができる。そのために、１つのルールファイルで、ユーザ操作の状況に応じて異なるガイダンスを表示することが可能となる。
更にまた、本実施の形態によれば、ユーザ３３のスキルレベルに応じてガイドの内容を変える場合にも複雑なプログラミングを実行する必要がなく、容易に対応することが可能となる。
【００４１】
尚、本実施の形態における各機能を実行するプログラムをインストールする際には、例えばＣＤ−ＲＯＭ等の記憶媒体に各処理を実行するプログラムを格納させ、これらの記憶媒体をＷｅｂサーバ１のコンピュータにおける（接続された）読み取り手段により読み取らせることが挙げられる。即ち、Ｗｅｂサーバ１にＣＤ−ＲＯＭ等の記憶媒体を用いてプログラムをインストールし、実行させるように構成するものである。また、このような記憶媒体を介さずに、Ｗｅｂサーバ１に対してインターネット等を介してプログラムをダウンロードさせるように構成してもよい。その場合は、前述の各処理を実行するプログラムを記憶した記憶手段を有するＰＣ等のプログラム伝送装置が、例えばそのＰＣ等が有するプログラム送信手段を用いてインターネット等を介してＷｅｂサーバ１に送信するように構成される。
【００４２】
【発明の効果】
以上説明したように、本発明によれば、アシスタンス作成のワークロードを少なくすることができる。
また、ユーザの操作履歴に応じたアシスタンスを自動的に実行することが可能となる。
更に、フォームとアシスタンスを分離する等、論理構造は変更せずにルールだけを変えることで、容易にアシスタンスの内容を変えることができる。
【図面の簡単な説明】
【図１】本実施の形態におけるシステム全体を説明するための構成図である。
【図２】イベントの例を示した図表である。
【図３】イベントに対するアクションの例を示した図表である。
【図４】フォーム生成モジュール６の詳細を示した構成図である。
【図５】（ａ）、（ｂ）は、ユーザアシスタンスの流れを示したフロー図である。
【図６】ユーザモニタエンジン８およびアシスタンスエンジン９における上述の初期処理を説明するための図である。
【図７】ＨＴＭＬファイル２４からフォームをロードする処理の詳細を説明したフロー図である。
【図８】Ｗｅｂブラウザ２におけるアシスタンス実行時の構成を説明するための図である。
【図９】アシスタンス表示の流れを示すフロー図である。
【図１０】本実施の形態における入力支援（アシスタンス）機能を含むＨＴＭＬファイル２４の実現例を示した図である。
【符号の説明】
１…Ｗｅｂサーバ、２…Ｗｅｂブラウザ、３…フォーム論理構造、４…スタイルファイル、５…アシスタンスルールファイル、６…フォーム生成モジュール、７…フォーム本体、８…ユーザモニタエンジン、９…アシスタンスエンジン、２１…中間フォーム生成モジュール、２２…ルール処理モジュール、２３…最終フォーム生成モジュール、２４…ＨＴＭＬファイル、２５…スクリプトプログラム、２６…アシスタンス付きフォーム、３１…イベントアシスタンス対応表、３３…ユーザ
【図１】
0003589400.tif 000004
【図２】
0003589400.tif 000005
【図３】
0003589400.tif 000006
【図４】
0003589400.tif 000007
【図５】
0003589400.tif 000008
【図６】
0003589400.tif 000009
【図７】
0003589400.tif 000010
【図８】
0003589400.tif 000011
【図９】
0003589400.tif 000012
【図１０】
0003589400.tif 000013