(57)【要約】【目的】コンピュータ装置に所定機能を発揮させる関数そのものは変更等することなく，コンピュータ装置の一連の処理の流れを変更できるようにする。【構成】クライアント２のメモリ14に，クライアント２に所定機能を発揮させる複数の関数16ａ〜16ｅ，17ａが用意される。複数の関数の実行タイミングを規定するメイン・シナリオ５ａと，単語学習シナリオ５ｂまたは５ｃのいずれかが，クライアント２に与えられる。メイン・シナリオ５ａと，単語学習シナリオ５ｂまたは５ｃの記述にしたがうタイミングにおいて，その記述にしたがって特定される関数16ａ〜16ｅ，17ａが，クライアント２において実行される。与えられるシナリオの記述にしたがう順序による日本語学習機能が，クライアント２において実行される。【選択図】図３
2011022678.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがコンピュータ装置に所定機能を発揮させる複数の関数と，上記複数の関数の実行タイミングを規定するシナリオとが分離して作成されており，複数の関数に基づく上記コンピュータ装置における複数の所定機能の組み合わせによって，所定の一連の機能を上記コンピュータ装置に実行させる機能内装／シナリオ外装システムであって，
上記コンピュータ装置は，
上記複数の関数を記憶するメモリ，
与えられるシナリオの入力を受付けるシナリオ受付手段，
上記シナリオ受付手段によって受付けられたシナリオを読込むシナリオ読込み手段，および
上記シナリオ読込み手段によって読込まれたシナリオの記述にしたがうタイミングにおいて，上記シナリオの記述にしたがって特定される関数を上記コンピュータ装置において実行させることによって，上記所定の一連の機能を上記コンピュータ装置に実行させる制御手段を備えている，
機能内装／シナリオ外装システム。
【請求項２】
上記シナリオはVoiceXMLによって作成され，上記制御手段は上記シナリオの記述を解析するパーサを含む，
請求項１に記載の機能内装／シナリオ外装システム。
【請求項３】
複数のシナリオの中から一のシナリオの選択を受付けるシナリオ選択手段を備え，
上記シナリオ選択手段によって選択されたシナリオが上記シナリオ受付手段によって受け付けられる，
請求項１に記載の機能内装／シナリオ外装システム。
【請求項４】
それぞれがコンピュータ装置に所定機能を発揮させる複数の関数と，上記複数の関数の実行タイミングを規定するシナリオとが分離して作成されており，複数の関数に基づく上記コンピュータ装置における複数の所定機能の組み合わせによって，所定の一連の機能を上記コンピュータ装置に実行させる機能内装／シナリオ外装システムの制御方法であって，
上記コンピュータ装置のメモリ中に上記複数の関数を記憶させておき，
外部から与えられるシナリオの入力を受付け，
受付けられたシナリオを読込み，
読込まれたシナリオの記述にしたがうタイミングにおいて，上記シナリオの記述にしたがって特定される関数を上記コンピュータ装置において実行させることによって，上記所定の一連の機能を上記コンピュータ装置に実行させる，
機能内装／シナリオ外装システムの制御方法。
【請求項５】
複数のシナリオの中から選択されたシナリオが，上記コンピュータ装置に与えられる，
請求項４に記載の機能内装／シナリオ外装システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は，機能内装／シナリオ外装システムおよびその制御方法に関する。
【背景技術】
【０００２】
一般に，プログラムは，コンピュータ装置（電子計算機）に対する指令であって，一の結果を得ることができるように複数の指令が組み合わされたものであり，プログラム中に，コンピュータ装置（ハードウェア）に対する指令とその順序が記述され，記述された指令および順序にしたがってコンピュータ装置が所定の動作をする。特許文献１には，学習内容や学習手順などの手続きがプログラムとして記述された，自動的に実行される音声対話形語学学習システムについて記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１７２７８１号公報
【０００４】
たとえば，トランプを用いたゲーム・プログラムを考える。トランプを用いたゲームには，ババ抜き，神経衰弱，ダウト，ページワンなどがあり，コンピュータ装置においてこれらの複数種類のトランプ・ゲームを実現する場合，一般には，トランプ・ゲームの種類ごとにプログラムが作成される，または複数のゲームが一つのプログラム中に作り込まれる。
【０００５】
ここで，トランプを用いたゲームの場合，５４枚のカード（ハート，クローバ，ダイヤ，スペードのそれぞれについて１〜１３までのカード，および１枚のジョーカー・カード）を用いることは共通する。複数種類のトランプ・ゲームについて，共通に用いられるもの（５４枚のカードおよび１枚のジョーカー・カード）と，共通でないもの（トランプ・ゲームの種類ごとに異なる処理の流れ）に分離すれば，複数種類のトランプ・ゲームごとに，共通に用いられるものを含めてプログラムを作成する必要が無くなる。
【発明の開示】
【０００６】
この発明は，コンピュータ装置に所定機能を発揮させる関数そのものは変更等することなく，コンピュータ装置の一連の処理の流れを変更できるようにすることを目的とする。
【０００７】
この発明はまた，一連の所定機能を発揮するコンピュータ装置の信頼性，安定性の向上を目的とする。
【０００８】
この発明はさらに，一連の所定機能を発揮するコンピュータ装置を，迅速に提供することができるようにすることを目的とする。
【０００９】
この発明はまた，コンピュータ装置に一連の所定機能を発揮させるプログラムのサイズを小さくすることを目的とする。
【００１０】
この発明による機能内装／シナリオ外装システムは，それぞれがコンピュータ装置に所定機能を発揮させる複数の関数と，上記複数の関数の実行タイミングを規定するシナリオとが分離して作成されており，複数の関数に基づく上記コンピュータ装置における複数の所定機能の組み合わせによって，所定の一連の機能を上記コンピュータ装置に実行させるものであって，上記コンピュータ装置は，上記複数の関数を記憶するメモリ，与えられるシナリオの入力を受付けるシナリオ受付手段，上記シナリオ受付手段によって受付けられたシナリオを読込むシナリオ読込み手段，および上記シナリオ読込み手段によって読込まれたシナリオの記述にしたがうタイミングにおいて，上記シナリオの記述にしたがって特定される関数を上記コンピュータ装置に実行させることによって，上記シナリオに基づく順序によって上記コンピュータ装置に上記所定の一連の機能を実行させる制御手段を備えていることを特徴とする。
【００１１】
この発明による機能内装／シナリオ外装システムの制御方法は，それぞれがコンピュータ装置に所定機能を発揮させる複数の関数と，上記複数の関数の実行タイミングを規定するシナリオとが分離して作成されており，複数の関数に基づく上記コンピュータ装置における複数の所定機能の組み合わせによって，所定の一連の機能を上記コンピュータ装置に実行させるシステムの制御方法であって，上記コンピュータ装置のメモリ中に上記複数の関数を記憶させ，与えられるシナリオの入力を受付け，受付けられたシナリオを読込み，読込まれたシナリオの記述にしたがうタイミングにおいて，上記シナリオの記述にしたがって特定される関数を上記コンピュータ装置において実行させることによって，上記所定の一連の機能を上記コンピュータ装置に実行させることを特徴とする。
【００１２】
この発明において，関数は，コンピュータ装置に所定機能を発揮させるソフトウエア部品（コントロール，プログラム・パーツ，プログラム関数，またはＡＰＩ（Application Program Interface ）と言われることもある）であって，コンピュータ装置に，あらかじめ定められた特定の機能を発揮させるものである。たとえば，コンピュータ装置を日本語学習システムとして機能させる場合，複数の関数として，画面の初期化処理関数，単語（問題）表示処理関数，読み（解答）入力処理関数，結果判定処理関数，日本語単語の音声再生処理関数などが，コンピュータ装置のメモリ中に用意（記憶）される。関数は，関数単体でコンピュータ装置に所定機能を発揮させるものであってもよいし，オペレーティング・システムその他コンピュータ装置があらかじめ備えているプログラムと協働して，コンピュータ装置に所定機能を発揮させるものであってもよい。
【００１３】
複数の関数は，あらかじめコンピュータ装置のメモリ中に記憶させておいてもよいし，コンピュータ装置と通信回線によって接続されたサーバ等から，コンピュータ装置に送信（ダウンロード）するようにしてもよい。すなわち，機能内装／シナリオ外装システムは，コンピュータ装置単体で実現することもできるし，コンピュータ装置と，コンピュータ装置に通信回線を介して接続されるサーバ等とによって実現することもできる。コンピュータ装置のメモリに複数の関数を作成するためのプログラム（実行プログラム）をサーバ等からコンピュータ装置に送信（ダウンロード）して，コンピュータ装置においてその実行プログラムを実行することによって，コンピュータ装置のメモリ中に複数の関数を作成して記憶するようにしてもよい。
【００１４】
複数の関数に基づくコンピュータ装置における複数の所定機能の組み合わせによって，所定の一連の機能がコンピュータ装置において実行される。上述した日本語学習システムであれば，複数の所定機能が，画面の初期化処理関数，単語（問題）表示処理関数，読み（解答）入力処理関数，結果判定処理関数，日本語単語の音声再生処理関数などによって達成され，これらの複数の関数の組み合わせによって，所定の一連の機能，すなわち日本語学習機能がコンピュータ装置において実現される。
【００１５】
外部から与えられるシナリオの入力が受付けられる。シナリオは，あらかじめコンピュータ装置の記憶装置に記憶させておいてもよいし，通信回線を通じて，外部装置（サーバ等）からコンピュータ装置に入力（受信）させてもよい。
【００１６】
シナリオは，上記複数の関数の実行タイミングを規定するものであって，このシナリオに，コンピュータ装置に所定の動作を発揮させる関数（ソフトウエア部品等）は含まれてはいない。シナリオは，たとえば，VoiceXML（XML:eXtensible Markup Language）によって記述される。この場合，好ましくは，VoiceXMLによって記述されたシナリオを解析（構文解析）するXML パーサがコンピュータ装置に備えられる。
【００１７】
シナリオの記述にしたがうタイミングにおいて，シナリオの記述にしたがって特定される関数が，コンピュータ装置において実行される。シナリオは，メモリに記憶されている複数の関数のすべてについての実行タイミングを記述したものであってもよいし，一部についての実行タイミングを記述したものであってもよい。シナリオに基づく順序によって複数の関数が実行され，これによって所定の一連の機能がコンピュータ装置において実行（実現）される。
【００１８】
この発明によると，コンピュータ装置に所定機能を発揮させる複数の関数と，上記複数の関数の実行タイミングを規定するシナリオとが分離して作成されており，複数の関数とシナリオの組み合わせによって，所定の一連の機能がコンピュータ装置において実行される。シナリオの記述，すなわち，複数の関数の実行タイミング（実行順序）を変更すれば，変更された順序によって複数の関数がコンピュータ装置において実行される。
【００１９】
たとえば，日本語学習システムを例にすると，日本語単語の発音再生処理関数，読み（解答）入力処理関数を，この順番に実行させる記述を持つシナリオが読み込まれた場合には，コンピュータ装置では，日本語単語の発音が再生され，その後に，日本語単語の読み（解答）の入力が受付けられる。読み（解答）入力処理関数，発音再生処理関数をこの順番に実行させる記述を持つシナリオが読み込まれた場合には，コンピュータ装置では，日本語単語の読み（解答）の入力が受付けられ，その後に日本語単語の発音が再生される。
【００２０】
この発明によると，コンピュータ装置に所定機能を発揮させる関数と，複数の関数の実行タイミングを規定するシナリオとが分離されているので，シナリオを交換または修正することによって，コンピュータ装置に実行させるべき一連の処理機能の流れを容易に変更することができる。コンピュータ装置に所定機能を実行させる関数のみならず，その実行タイミング（処理順序）まで含めて作成されるプログラム（実行プログラム）を，処理の流れごとに作成する必要がない。プログラムとしては，上述の関数（または関数をメモリ中に作成するプログラム）を作成（用意）すればよい。実行プログラムのサイズを小さくすることができる。コンピュータ装置に実行させる処理の拡張，変更等にも容易に対処することができる。
【００２１】
また，この発明によると，コンピュータ装置に所定機能を発揮させる関数から分離されているシナリオを，上述したように容易に交換，修正等することができ，それに応じてコンピュータ装置において実行される一連の処理（所定の流れ）を容易に変更することができる。また，コンピュータ装置に対する指令がその順序も含めて記述されるプログラムと比較すると，エラー（バグ）を容易に発見することができ，結果的にコンピュータ装置の信頼性，安定性が向上する。また，コンピュータ装置に対する指令がその順序も含めて記述されるプログラムと比較して，開発時間を費やすことなく所定の一連の機能をコンピュータ装置に実行させることができ，このためシステム開発コストを抑えることができる。
【００２２】
一実施態様では，複数のシナリオの中から一のシナリオの選択を受付けるシナリオ選択手段が備えられ，上記シナリオ選択手段によって選択されたシナリオが上記シナリオ受付手段によって受け付けられる。複数のシナリオの中から選択されたシナリオが，上記コンピュータ装置に与えられ，そのシナリオの記述にしたがうタイミングにおいて複数の関数が実行される。
【００２３】
複数のシナリオの中から一のシナリオを選択する場合，ユーザ，オペレータ等に直接にシナリオを選択させるようにしてもよいし，間接的に選択させるようにしてもよい。たとえば，ユーザＩＤと選択されるべきシナリオの種類とを関連付けておくことによって，ユーザＩＤの受付けに応じて複数のシナリオの中から一のシナリオが選択される。
【図面の簡単な説明】
【００２４】
【図１】日本語学習システムの全体的構成を示すブロック図である。
【図２】クライアントのハードウエア構成を示すブロック図である。
【図３】日本語学習システムの機能ブロック図である。
【図４】会員情報テーブルを示す。
【図５】成績テーブルを示す。
【図６】クライアントを日本語学習システムとして利用するための事前処理の流れを示すフローチャートである。
【図７】日本語学習アプリケーション実行プログラムの処理に基づくクライアントおよびサーバの処理の流れを示すフローチャートである。
【図８】メイン・シナリオによって規定されるクライアントの動作の流れを示すフローチャートである。
【図９】メイン・シナリオの具体的な記述例を示す。
【図１０】初級用単語学習シナリオによって規定されるクライアントの動作の流れを示すフローチャートである。
【図１１】初級用単語学習シナリオの具体的な記述例を示す。
【図１２】中級用単語学習シナリオによって規定されるクライアントの動作の流れを示すフローチャートである。
【図１３】中級用単語学習シナリオの具体的な記述例を示す。
【図１４】問題表示画面を示す。
【図１５】振込処理システムの機能ブロック図である。
【図１６】スキャン装置の機能ブロック図である。
【実施例１】
【００２５】
（日本語学習システム）
日本語学習システムは，日本語，特に漢字表現される日本語単語の読み方および発音を学習するためのシステムである。後述するように，日本語の学習者（ユーザ）がクライアント・コンピュータ（以下，クライアントという）を用いて日本語学習システムを利用する。問題等がサーバ・コンピュータ（以下，サーバという）からクライアントにダウンロードされる。たとえば，クライアントの表示装置の表示画面上に問題（日本語単語）が表示され，その発音が再生される。表示された問題に対する解答（日本語単語の読み方）（ひらがなを用いた文字列）が入力装置から入力される。入力された解答が正解であれば正解音（「ピンポン」といった音）が再生され，不正解であると不正解音（「ブー」といった音）が再生される。その後，次の（別の）問題（日本語単語）が表示画面上に表示される。これが繰返されることによって，多数の日本語単語についての学習が進められる。
【００２６】
詳細は後述するが，日本語学習システムは，複数の日本語学習の流れ（進め方）を，ユーザに提供することができる。たとえば，上述の日本語単語の読み方の問題では，ユーザが初級者であれば，日本語単語の読み方の入力の前に，日本語単語の発音を再生する。すなわち，日本語単語の発音が再生された後に，その日本語単語の読み方の入力が受付けられる。ユーザが中級者または上級者であれば，日本語単語の読み方の入力が受付けられた後に，その日本語単語の発音が再生される。このように，問題表示，解答入力，正解／不正解判定，発音再生などのそれぞれの処理はいずれの学習レベル（初級用，中級用，上級用）においても共通しているが，その順序（日本語学習の流れ（進め方））を，学習レベルに応じて変えることができる。
【００２７】
複数の日本語学習の流れ（進め方）をユーザに提供するために，日本語学習システムではVoiceXMLを利用する。複数のVoiceXMLファイルがあらかじめ用意され，それぞれのVoiceXMLファイルに，互いに異なる日本語学習の流れ（進め方）が規定（記述）される。用いられるVoiceXMLファイル中の記述にしたがう順序によって，日本語学習の流れ（進め方）が変化することになる（詳細は後述する）。
【００２８】
図１は日本語学習システムの全体的構成を示すブロック図である。
【００２９】
日本語学習システムは，ネットワーク（インターネットなど）１を介して接続されるサーバ３（より詳細には，コンテンツ・サーバ３ａ，Ｗｅｂサーバ３ｂおよびデータベース・サーバ３ｃ）と，複数のクライアント２とから構成される。クライアント２は日本語学習システムの利用者（ユーザ）が所有しているものとする。サーバ３は日本語学習システムの運営者（運営企業）が所有しているものとする。
【００３０】
Ｗｅｂサーバ３ｂに，コンテンツ・サーバ３ａおよびデータベース・サーバ３ｃが接続されている。
【００３１】
Ｗｅｂサーバ３ｂは，ＨＴＴＰ（HyperText Transfer Protocol ）を使用してネットワーク１を通じてデータの送受信を行う。クライアント２において通信プログラム（ブラウザ，Adobe AIR （登録商標）など）が使用されて，Ｗｅｂサーバ３ｂから提供されるデータの受信およびＷｅｂサーバ３ｂへのデータの送信が行われる。
【００３２】
Ｗｅｂサーバ３ｂに接続された記憶装置５に，後述するメイン・シナリオ５ａ，２つの単語学習シナリオ（初級用単語学習シナリオ５ｂ，中級用単語学習シナリオ５ｃ），および日本語学習アプリケーション実行プログラム５ｄが記憶されている。記憶装置５に記憶されているプログラムおよびデータが，Ｗｅｂサーバ３ｂによってクライアント２に送信される。これにより，クライアント２に日本語学習環境が提供される。
【００３３】
コンテンツ・サーバ３ａに接続された記憶装置４に，多数の音声データ（ｍｐ３データ）４ａが記憶されている。後述するように，この音声データ４ａに基づいて，クライアント２において日本語単語の発音等が再生される。
【００３４】
データベース・サーバ３ｃに接続された記憶装置６に，会員情報テーブル６ａ，成績テーブル６ｂ，および多数の問題データ６ｃが記憶されている。会員情報テーブル６ａには，日本語学習システムの利用者に関するデータが格納されている。成績テーブル６ｂには日本語学習システムの利用者の成績（問題ごとの正解／不正解など）が格納されている。問題データ６ｃには，日本語学習システムによって利用者に提供される問題（表示される日本語単語，その読み方（ひらがな）等）が記述されている。特定の問題データ６ｃが単語学習シナリオ５ｂ，５ｃ中に組込まれることによって，特定の問題（日本語単語）についての単語学習シナリオが形成される。
【００３５】
図２は，クライアント２のハードウエア構成を示すとともに，クライアント２のメモリ14中に設けられる複数の関数（ソフトウェア部品）を示すブロック図である。図３は，クライアント２のメモリ14に設けられる操作機能関数群16に含まれる複数の関数，通信機能関数群17に含まれる関数をより詳細に示すとともに，クライアント２に与えられるシナリオ（メイン・シナリオ５ａ，単語学習シナリオ５ｂ，５ｃ）を示すブロック図である。
【００３６】
図２を参照して，クライアント２は，その全体を統括するＣＰＵ（図示略）を備え，ＣＰＵに，文字等の入力のための入力装置（キーボード，マウスなど）11，文字，画像等の表示のための表示装置12，音または音声を再生するためのスピーカ13，プログラムおよびデータを記憶するメモリ（またはハードディスク）14，およびネットワーク１を通じてデータを送受信するための通信機器（モデムなど）15が接続されている。Ｗｅｂサーバ３ｂからダウンロードされる日本語学習アプリケーション実行プログラム５ｄ（たとえば，Abobe Flex（登録商標）によって作成される）がクライアント２において実行されることによって，クライアント２が日本語学習システムを構成するユーザ端末となる。
【００３７】
クライアント２において日本語学習アプリケーション実行プログラム５ｄが実行されると，クライアント２のメモリ14中に，クライアント２を日本語学習システムのユーザ端末として機能させるための複数の関数（ソフトウエア部品）が作成される。作成される関数は次のとおりである。
【００３８】
操作機能関数群16：画面の初期化処理，単語（問題）表示処理，読み（解答）入力処理，結果判定処理，日本語単語の音声再生処理などを行う関数（ソフトウエア部品）である。図３を参照して，操作機能関数群16は，initialize（画面初期化を実行するための関数）16ａ，display Word（単語（問題）を表示するための関数）16ｂ，input Word（読みの入力受付けるための関数）16ｃ，check Input （入力された読みが正解かどうかを判定する関数）16ｄ，audio expr（読みの発音，正解音／不正解音の再生を行う関数）16ｅを含む。
【００３９】
通信機能関数群17：サーバ３に対してデータのダウンロード要求を行う関数である。get New Word（新たな単語（問題）を取得するための関数）17ａを含む。
【００４０】
インターフェース（Ｉ／Ｆ）モジュール18：上述した操作機能関数群16および通信機能関数群17と，次に説明するパーサ・モジュール19との間において，パーサ・モジュール19が必要とする（callする）関数と，上述した操作機能関数群16および通信機能関数群17に用意されている複数の関数との対応関係を規定するもので，操作機能関数群16および通信機能関数群17に用意されている関数の呼出し処理を行うモジュールである。
【００４１】
たとえば，パーサ・モジュール19によって読込まれるシナリオ中に「initialize」を用いた処理命令が記載されている場合，パーサ・モジュール19はインターフェース・モジュール18に対して画面初期化関数（initialize）を呼出し（callし），これに応じてインターフェース・モジュール18が操作機能関数群16に用意されている画面初期化関数（initialize）16ａをさらに呼出す。呼び出された画面初期化関数16ａが実行されて画面初期化が行われる。
【００４２】
パーサ・モジュール19：メイン・シナリオ５ａおよび単語学習シナリオ５ｂ，５ｃを読込み，その記述内容に基づいて（解析して），クライアント２に，画像（問題）表示，文字列の入力の受付，正解／不正解判定等を行わせるモジュールである。上述した操作機能関数群16，通信機能関数群17，およびインターフェース・モジュール18と協働して，パーサ・モジュール19は，日本語学習システムのユーザ端末として特有を動作を行うようにクライアント２を制御する。
【００４３】
クライアント２には，メイン・シナリオ５ａと，初級用単語学習シナリオ５ｂまたは中級用単語学習シナリオ５ｃのいずれかが与えられる。これらのシナリオの詳細，クライアント２へのシナリオの送信（ダウンロード）処理の詳細は後述する。
【００４４】
図４は，データベース・サーバ３ｃの記憶装置６に記憶されている会員情報テーブル６ａを示している。
【００４５】
日本語学習システムを利用するユーザはあらかじめユーザ登録を行う。登録されたユーザ（会員）が，クライアント２を用いて日本語学習システムを利用することができる。
【００４６】
ユーザ登録が行われると，会員情報テーブル６ａにユーザ情報が記憶される。ユーザ情報は，ユーザＩＤ（会員番号），パスワード，氏名，住所，および日本語学習のレベルが記憶されている。後述するように，ユーザの日本語学習レベルに合わせて，日本語学習システムがユーザに提供する日本語学習環境が変化することになる。
【００４７】
図５は，データベース・サーバ３ｃの記憶装置６に記憶されている成績テーブル６ｂを示している。
【００４８】
日本語学習システムでは，後述するように，問題（日本語単語（漢字）の文字表示）がユーザに提示され，ユーザの解答（表示された日本語単語の読み方（ひらがな））が入力される。ユーザの解答に対して正解／不正解の判断が行われる。成績テーブル６ｂには，ユーザＩＤ，問題ＩＤ，および正解／不正解フラグが格納される。ユーザの問題ごとの成績が，成績テーブル６ｂに蓄積される。
【００４９】
図６は，クライアント２を日本語学習システムとして利用するための処理（事前処理）の流れを示すフローチャートである。以下の説明では，分かりやすくするために，サーバ３の処理について，それがコンテンツ・サーバ３ａ，Ｗｅｂサーバ３ｂまたはデータベース・サーバ３ｃのいずれの処理であるかを区別せずに説明することにする。
【００５０】
はじめに，クライアント２が用いられてブラウザが起動され，サーバ３のＵＲＬが入力される（ステップ21）。
【００５１】
サーバ３は，クライアント２からのアクセスに応答してログイン・ページ（ｈｔｍｌデータ）をクライアント２に送信する（ステップ31）。クライアント２の表示装置12の表示画面上に，ログイン・ページ（図示略）が表示される（ステップ22）。
【００５２】
ログイン・ページが用いられて，あらかじめユーザに伝えられているユーザＩＤおよびパスワードが，クライアント２の入力装置11から受付けられる（ステップ23）。入力されたユーザＩＤおよびパスワードはサーバ３に送信され，サーバ３における認証処理に用いられる（ステップ32）。
【００５３】
上述したように，会員情報テーブル６ａ（図４参照）に，会員のそれぞれについてユーザＩＤ，パスワード，氏名等の組が記憶されている。認証処理では会員情報テーブル６ａに格納されているデータが用いられる。
【００５４】
ユーザＩＤおよびパスワードの組が会員情報テーブル６ａに記憶されていない場合，サーバ３は処理を終了する（たとえば，認証できなかった旨のページ・データをクライアント２に送信する）（ステップ33でNO）。この場合，クライアント２のユーザは日本語学習システムを利用することができない。
【００５５】
ユーザＩＤおよびパスワードの組が会員情報テーブル６ａに記憶されている場合，日本語学習アプリケーション実行プログラム５ｄがサーバ３からクライアント２にダウンロードされる（ステップ33でYES ，ステップ34）。サーバ３からダウンロードされた日本語学習アプリケーション実行プログラム５ｄがクライアント２において受信されかつ実行される（ステップ24）。上述したように，日本語学習アプリケーション実行プログラム５ｄが実行されると，クライアント２のメモリ14上に操作機能関数群16，通信機能関数群17，インターフェース・モジュール18，およびパーサ・モジュール19が設けられ，クライアント２が日本語学習システムを構成するコンピュータとなる（図２，図３参照）。
【００５６】
サーバ３は日本語学習アプリケーション実行プログラム５ｄをクライアント２に送信するとともに，会員情報テーブル６ａを参照して，会員（ユーザＩＤおよびパスワードによって特定される者）の日本語学習レベルを判断する（ステップ35）。上述したように会員情報テーブル６ａには，ユーザＩＤおよびパスワードとともに，会員の日本語学習レベル（初級または中級）を表すデータが格納されている（図４参照）。会員情報テーブル６ａに基づいて，ユーザＩＤおよびパスワードによって特定される会員の日本語学習レベルが初級であるか，中級であるかが判断される（ステップ36）。
【００５７】
会員の日本語学習レベルが初級であると判断されると，クライアント２に送信すべき単語学習シナリオを，初級用５ｂとする旨がサーバ３において設定（記憶）される（ステップ36で初級，ステップ37）。中級であると判断されると，クライアント２に送信すべき単語学習シナリオを中級用５ｃとする旨がサーバ３において設定（記憶）される（ステップ36で中級，ステップ38）。初級用または中級用のいずれかの単語学習シナリオ５ｂ，５ｃが，クライアント２にダウンロードされることになる。
【００５８】
図７は，日本語学習アプリケーション実行プログラム５ｄの処理に基づくクライアント２およびサーバ３の処理の流れを示すフローチャートである。
【００５９】
日本語学習アプリケーション実行プログラム５ｄは，上述したように，事前処理によってサーバ３からクライアント２にダウンロードされて実行され，クライアント２のメモリ14中に操作機能関数群16，通信機能関数群17，インターフェース・モジュール18およびパーサ・モジュール19を作成する。さらに，日本語学習アプリケーション実行プログラム５ｄは，図７に示す処理をクライアント２に実行させる。クライアント２における日本語学習アプリケーション実行プログラム５ｄの実行に伴って（応答して），サーバ３も所定の動作を行う。
【００６０】
はじめに，クライアント２からサーバ３に，メイン・シナリオ５ａの取得命令が送信される（ステップ41）。これに応答して，サーバ３はメイン・シナリオ５ａをクライアント２に送信する（ステップ51）。
【００６１】
次に説明するように，メイン・シナリオ５ａは，画面初期化処理（クライアント２の表示装置12の表示画面上に，日本語単語（問題）を表示する領域，読み方を入力する領域を確定する処理など）と，単語学習シナリオの取得処理に関する記述を含んでいる。メインシナリオ５ａが実行される（メイン・シナリオ５ａがパーサ・モジュール19によって解析される）ことによって，クライアント２を用いた日本語学習の準備が整う（ステップ42）。
【００６２】
メイン・シナリオ５ａ中の単語学習シナリオの取得命令が実行されると（メイン・シナリオ５ａ中の単語学習シナリオ取得命令に関する記述が，パーサ・モジュール19によって読み込まれると），クライアント２からサーバ３に単語学習シナリオの取得命令が送信され，これに応答してサーバ３からクライアント２に単語学習シナリオ５ｂまたは５ｃがダウンロードされる（ステップ52）。受信された単語学習シナリオ５ｂまたは５ｃがクライアント２において実行される（ステップ43）。単語学習シナリオ５ｂまたは５ｃによって，クライアント２の表示装置12の表示画面上に表示される日本語単語（問題）が規定される（詳細は後述する）。
【００６３】
図８はメイン・シナリオ５ａによって規定されるクライアント２の動作を，図９はメイン・シナリオ５ａの具体的な記述例を，それぞれ示している。図１０は初級用単語学習シナリオ５ｂによって規定されるクライアント２の動作を，図１１は初級用単語学習シナリオ５ｂの具体的な記述例を，それぞれ示している。図１２は中級用単語学習シナリオ５ｃによって規定されるクライアント２の動作を，図１３は中級用単語学習シナリオ５ｃの具体的な記述例を，それぞれ示している。メイン・シナリオ５ａ，および単語学習シナリオ５ｂ，５ｃは，いずれもVoiceXMLによって記述されている。
【００６４】
図８および図９を参照して，メイン・シナリオ５ａが実行されると，上述したように，初めに画面初期化処理（クライアント２の表示装置12の表示画面上に，日本語単語を表示する領域，読み方を入力する領域等を確定する処理）が行われる（ステップ61）。すなわち，メイン・シナリオ５ａ中に記載されている画面初期化関数（initialize）16ａの呼出しの記述にしたがって，パーサ・モジュール19が画面初期化関数16ａを呼出す（callする）。すると，インターフェース・モジュール18を介して操作機能関数群16に用意されている画面初期化関数16ａが呼び出されて実行される。
【００６５】
画面初期化処理に失敗すると，メイン・シナリオ５ａに基づく処理は終了する（ステップ62で失敗）。この場合には，その後に続く日本語単語の学習処理は行われない。
【００６６】
画面初期化処理が成功すると（ステップ62で成功），単語学習シナリオの取得要求が，サーバ３に送信される（ステップ63）。
【００６７】
サーバ３では，クライアント２から単語学習シナリオの取得命令を受信すると，単語学習シナリオ５ｂまたは５ｃをクライアント２に送信（ダウンロード）する。
【００６８】
図１１の初級用単語学習シナリオ５ｂ，図１３の中級用単語学習シナリオ５ｃの具体的記述例を参照して，単語学習シナリオ５ｂ，５ｃは，いずれも(1) VoiceXMLの定義部，(2) データ部，および(3) シナリオ部の３つのパートを含む。３つのパートのうちの(2) データ部中に，問題データ６ｃの一つ（データベース・サーバ３ｃの記憶装置６に記憶されている（図１参照））が加入されることによって，特定の問題（日本語単語）についての単語学習シナリオ５ｂ，５ｃがサーバ３において作成される。作成された特定の問題（日本語単語）についての単語学習シナリオ５ｂまたは５ｃが，クライアント２に送信（ダウンロード）されることになる。
【００６９】
図８に戻って，単語学習シナリオの取得（受信）が失敗した場合，メイン・シナリオ５ａに基づく処理は終了する（ステップ64で失敗）。この場合にもその後に続く日本語単語の学習処理は行われない。単語学習シナリオの取得が成功すると（ステップ64で成功），取得（受信）された単語学習シナリオの記述に基づく処理が行われる（ステップ65）。
【００７０】
上述したように，事前処理において，サーバ３は会員（ユーザ）の日本語学習レベルを把握している。サーバ３は，会員の日本語学習レベルに応じた単語学習シナリオをクライアント２に送信する。すなわち，会員の日本語学習レベルが初級である場合には，サーバ３はクライアントに初級用単語学習シナリオ５ｂ（図１０および図１１）を送信し，中級であれば中級用単語学習シナリオ５ｃ（図１２および図１３）を送信する。
【００７１】
図１０および図１１を参照して初級用単語学習シナリオ５ｂを説明する。上述したように，初級用単語学習シナリオ５ｂは，(1) VoiceXMLの定義部，(2) データ部および(3) シナリオ部の３つパートを含む。
【００７２】
VoiceXMLの定義部には，初級用単語学習シナリオ５ｂが，VoiceXMLによって記述されていることが記述されている。
【００７３】
データ部に，問題（日本語単語）を表すデータが記述されている。図１１に示す初級用単語学習シナリオ５ｂのデータ部には，日本語単語「机」が会員に提示される問題であること，その読み方（正答を表すひらがな文字列「つくえ」），読み方の音声を表す音声データのファイル名（tsukue.mp3），正解音および不正解音を表す音声データのファイル名（right.mp3およびwrong.mp3）が記述されている。データ部中の記述にしたがって，会員に特定の問題（日本語単語）が提示等される。
【００７４】
シナリオ部に，クライアント２において実行される日本語学習処理の流れが記述されている。このシナリオ部の記述に基づく処理の流れが，図１０に示すフローチャートに示されている。
【００７５】
図１０を参照して，はじめに問題（日本語単語）が表示される（ステップ71）。データ部中に記述されている日本語単語「机」が，クライアント２の表示装置12の表示画面上に表示される。単語表示関数（display Word）16ｂによる処理である。
【００７６】
次に，単語の発音が再生される（ステップ72）。上述したように，単語学習シナリオ５ｂのデータ部中には，単語の発音を表す音声データのファイル名（tsukue.mp3）が記述されている。このファイル名を持つ音声データの取得命令がクライアント２からサーバ３に送信される。クライアント２からの取得命令に応答して，サーバ３において記憶装置４から音声データ（tsukue.mp3）が読出され，クライアント２にダウンロードされる。クライアント２において，受信した音声データ（tsukue.mp3）が再生される。スピーカ13から音声データに基づく音声（発音）（ここでは「つくえ」）が聞こえる。音声再生関数（audio expr）16ｅによる処理である。
【００７７】
次に解答（読み方）の入力が受付けられる（ステップ73）。表示された問題（日本語単語）に対する解答（読み方）が，クライアント２の入力装置11が用いられて入力される。読み入力関数（input Word）16ｃによる処理である。
【００７８】
図１４は，クライアント２の表示装置12の表示画面上の表示例（ウィンドウ）を示すもので，日本語単語「机」が表示されている例を示している。「机」の文字表示の下段に設けられている解答入力欄に，ユーザは入力装置11を用いて読み方（ひらがな文字列）を入力する。
【００７９】
入力された解答（ひらがな文字列）と正答とが比較される（ステップ74）。上述のように，初級用単語学習シナリオ５ｂのデータ部中に正答が記述されている。データ部中の正答と，入力された解答とが比較される。結果判定関数（check Input ）16ｄによる処理である。
【００８０】
解答が正解である場合，すなわち，データ部中に記述されている正答（文字列）と，入力された解答（文字列）が完全に一致している場合，正解音（ピンポン）がスピーカ13から再生される（ステップ75で正解，ステップ76）。すなわち，正解判断が行われることに応じてクライアント２からサーバ３に正解音を表す音声データ（right.mp3 のファイル名を持つ音声データ）の取得命令が送信され，これに応じてサーバ３からクライアント２に正解音の音声データがダウンロードされる。受信した音声データが再生されると「ピンポン」の音がスピーカ23から聞こえる。音声再生関数（audio expr）16ｅによる処理である。
【００８１】
解答が不正解であれば（データ部中に記述されている正答（文字列）と，入力された解答（文字列）が不一致），不正解音（ブー）が再生される（ステップ75で不正解，ステップ77）。すなわち，不正解判断が行われることに応じてサーバ３からクライアント２にダウンロードされる不正解音の音声データ（wrong.mp3 ）が，クライアント２において再生される。音声再生関数（audio expr）16ｅによる処理である。
【００８２】
正解／不正解結果は，サーバ３において成績テーブル６ｂ（図５参照）に保存される。会員のそれぞれについて，問題のそれぞれに対する成績が，成績テーブル６ｂに蓄積さていく。成績テーブル６ｂに蓄積される成績は，会員に提示すべき問題の選択（たとえば，既に正解した問題は，会員に提示する次の問題から除外するなど）に用いることができる。
【００８３】
正解／不正解判断（正解音／不正解音の再生）が終わると，次の問題に対する処理に進む。初級用単語学習シナリオ５ｂは，メイン・シナリオ５ａ中の単語学習シナリオ送信要求の記述（図８のステップ63）にジャンプする記述を含んでいる。この記述にしたがって，メイン・シナリオ５ａの記述に基づく処理に戻ることになる（ステップ78）。
【００８４】
新しい問題（別の日本語単語）についての初級用単語学習シナリオ５ｂの送信要求がサーバ３に送信される（ステップ63）。新単語取得関数（Get New Word）17ａによる処理である。新しい問題データ６ｃがデータ部に記述された初級用単語学習シナリオ５ｂがサーバ３において作成され，クライアント２に送信（ダウンロード）されて実行される（ステップ65）。新しい問題について，その問題（日本語単語）の表示，発音再生，解答入力の受付け，正解／不正解の判断，および正解音／不正解音の再生が行われる。
【００８５】
会員（ユーザ）の日本語学習レベルが中級であれば，上述したように，中級用の単語学習シナリオ５ｃがクライアント２に送信される。図１２および図１３を参照して，中級用単語学習シナリオ５ｃは，発音再生（ステップ72）が，問題（日本語単語）の表示の直後ではなく，正解／不正解の判断の後（正解音／不正解音の再生（ステップ76，77）の後）に行われる点が，初級用単語学習シナリオ５ｂと異なる。すなわち，初級用単語学習シナリオ５ｂと中級用単語学習シナリオ５ｃは，シナリオ部の記述が異なっている。問題（日本語単語）の発音が再生されていない状態で解答（読み方）を入力することになるので，解答入力の前に問題（日本語単語）の発音を聞くことができる初級と比較すると，難易度が高い。
【００８６】
上述のように，日本語学習システムにおける日本語学習の流れ（進め方）は，初級用単語学習シナリオ５ｂ，中級用単語学習シナリオ５ｃの記述（シナリオ部の記述）にしたがう。サーバ３からクライアント２にダウンロードされてパーサ・モジュール19によって読込まれる（解釈される）シナリオに応じて，規定される。
【００８７】
初級用単語学習シナリオ５ｂおよび中級用単語学習シナリオ５ｃ自体は，クライアント２に日本語学習システムとしての機能を発揮させるものでなく，クライアント２に所定の機能を発揮させるタイミング（実行タイミング）を規定する。上述のように，クライアント２が日本語学習システムとしての機能を発揮する（機能を実現する動作を行わせる）のは，操作機能関数群16および通信機能関数群17（画面初期化関数16ａ，単語表示関数16ｂ，読み入力関数16ｃ，結果判定関数16ｄ，音声再生関数16ｅおよび新単語取得関数17ａ）である。日本語学習システムでは，クライアント２に所定の機能を発揮させる複数の関数と，この複数の関数の実行タイミングを規定するシナリオ（初級用単語学習シナリオ５ｂおよび中級用単語学習シナリオ５ｃ）とが分離されている。
【００８８】
初級用および中級用単語学習シナリオ５ｂ，５ｃは，上述のようにVoiceXMLによって作成されており，プログラム言語を用いて作成されコンパイルが必要とされるアプリケーション実行プログラム（日本語学習アプリケーション実行プログラム５ｄ）（日本語学習アプリケーション実行プログラム５ｄによって，クライアント２のメモリ14に作成される複数の関数）から分離されている。このため，単語学習シナリオのみを交換することによって，日本語学習システムの処理の流れを容易に変更することができる。日本語学習システムに行わせるべき処理の流れごと（日本語単語の発音を再生した後に読み方の入力を受付ける，読み方の入力を受付けた後に日本語単語の発音を再生するなど）に，実行プログラムを作成する必要がなく，実行プログラムのサイズを小さくすることができる。
【００８９】
日本語学習アプリケーション実行プログラム５ｄ（関数）から分離されている単語学習シナリオ５ｂ，５ｃは，追加，削除，修正等を簡単に行うことができ，それに応じて日本語学習システムの処理の流れを簡単に変更することができる。たとえば，初級用，中級用に加えて，上級用の単語学習シナリオが必要とされた場合，上級用の単語学習シナリオ（VoiceXML）のみを作成すれば，日本語学習システムを上級者用の日本語学習システムとして機能させることできる（たとえば，一つの問題（日本語単語）（漢字）について複数の読み方の入力を受付け，複数の読み方のそれぞれについて，正解／不正解の判断して，発音を再生するなど）。日本語学習システムの拡張，変更等にも，容易に対処することができる。
【００９０】
メモリ14上に作成される複数の関数は，初級用単語学習シナリオ５ｂおよび中級用単語学習シナリオ５ｃのいずれにおいても共通して用いられる。初級用単語学習シナリオ５ｂ，中級用単語学習シナリオ５ｃのいずれの処理においても，日本語学習アプリケーション実行プログラム５ｄは一つで済む。
【００９１】
なお，クライアント２として複数種類のハードウェア端末（たとえば，パーソナル・コンピュータ，携帯電話機，携帯情報端末など）が用いられる場合，ハードウェア端末の種類ごとに日本語学習アプリケーション実行プログラム５ｄのみを作成すればよく，この場合，単語学習シナリオ（VoiceXMLファイル）５ｂ，５ｃは共通して利用することができる。クライアント２に用いられるハードウェア端末の種類の追加にも，容易に対処することができる。
【実施例２】
【００９２】
図１５は銀行等の金融システムにおける振込処理システムを示すもので，図３に対応するブロック図を示している。
【００９３】
振込処理システムは，銀行等に設置されているＡＴＭ（Automated Teller Machine）を用いて，指定された振込先口座に，指定された金額（入金された金額）を振込むためのシステムである。
【００９４】
ＡＴＭが備えるメモリ14Ａに，操作機能関数群16Ａ，インターフェース・モジュール18Ａおよびパーサ・モジュール19Ａがあらかじめ用意される。操作機能関数群16Ａに，ＡＴＭに実行させるべき複数の関数（パスワード入力画面表示関数，パスワードチェック関数，金額入力画面表示関数，口座情報入力画面表示関数，振込関数，口座情報チェック関数，および振込情報確認画面表示関数）が用意され，これらの複数の関数の実行タイミング（順序）が，外部から与えられるシナリオの記述にしたがって制御される。
【００９５】
この実施例では，２つの振込処理シナリオ81，82のいずれかが用いられる。振込処理第１シナリオ81を参照して，振込処理第１シナリオ81が選択された場合には，パスワード入力，振込先入力，金額入力，振込情報確認，振込の順に，処理が行われる（これらの処理を行う関数の実行タイミングが制御される）。他方，振込処理第２シナリオ82が選択されると，振込先入力と金額入力との順序が入れ替わる。すなわち，パスワード入力，金額入力，振込先入力，振込情報確認，振込の順に処理が行われる。
【００９６】
第２実施例の振込処理システムにおいても，ＡＴＭに処理機能を発揮させる複数の関数と，この複数の関数の実行タイミングを規定するシナリオ（振込処理第１シナリオ81および振込処理第２シナリオ82）とが分離されている。振込処理シナリオのみを交換することによって，振込システムの処理の流れを容易に変更することができる。ＡＴＭに行わせるべき処理の流れごとに，実行プログラムを作成する必要がない。
【実施例３】
【００９７】
図１６はスキャン装置を示すもので，図３に対応するブロック図を示している。
【００９８】
スキャン装置では，原稿読取台に置かれた原稿が光学的に読取られ（スキャンされ），原稿を表す電子データが取得される。取得された電子データが所定の記憶装置に記憶される。
【００９９】
スキャン装置が備えるメモリ14Ｂに，操作機能関数群16Ｂ，インターフェース・モジュール18Ｂおよびパーサ・モジュール19Ｂがあらかじめ用意される。操作機能関数群16Ｂは，ログイン画面表示関数，スキャン設定情報取得関数，ユーザチェック関数，スキャン画面表示関数，格納フォルダ指定画面表示関数，およびスキャン関数を含む。これらの複数の関数の実行タイミングが，外部から与えられるシナリオの記述にしたがって制御される。
【０１００】
第３実施例では，２つのスキャン処理シナリオ91，92のいずれかが用いられる。スキャン処理第１シナリオ91を参照して，スキャン処理第１シナリオ91が選択された場合には，ログイン画面表示，ユーザ情報の入力，ユーザ情報のチェック（ユーザ情報の有効判断），格納フォルダ指定画面の表示，格納フォルダの選択，スキャン画面の表示，スキャン開始ボタンの入力，スキャン処理がこの順番で行われる。
【０１０１】
他方，スキャン処理第２シナリオ92が選択された場合には，スキャン画面の表示，スキャン開始ボタンの入力，スキャン設定情報の取得およびスキャン処理が，この順番で行われる。スキャン処理第１シナリオ91が選択された場合に実行される「ユーザ情報のチェック」および「格納フォルダ指定画面の表示」は，スキャン処理第２シナリオ92が選択された場合には実行されない。また，スキャン処理第２シナリオ92が選択された場合，スキャン処理第１シナリオ91では実行されない「スキャン設定情報の取得」（あらかじめ設定されている設定情報の取得処理）が実行される。
【０１０２】
第３実施例のスキャン装置においても，スキャン装置に処理機能を発揮させる複数の関数と，この複数の関数の実行タイミングを規定するシナリオ（スキャン処理第１シナリオ91およびスキャン処理第２シナリオ92）とが分離されている。スキャン処理シナリオのみを交換することによって，スキャン装置の処理の流れを容易に変更することができる。スキャン装置に行わせる処理の流れごとに，実行プログラムを作成する必要がない。
【０１０３】
第１，第２実施例と異なり，第３実施例では，操作機能関数群16Ｂにあらかじめ用意される複数の関数のうちの一部のみが用いられている。必要と考えられる（将来必要になり得る）関数をあらかじめ用意しておくことによって，スキャン装置の将来の拡張に対応することができる。
【符号の説明】
【０１０４】
２  クライアント
３  サーバ
３ａ  コンテンツ・サーバ
３ｂ  Ｗｅｂサーバ
３ｃ  データベース・サーバ
５ｂ  初級用単語学習シナリオ
５ｃ  中級用単語学習シナリオ
11  入力装置
12  表示装置
13  スピーカ
14  メモリ
15  通信機器
16  操作機能関数群
17  通信機能関数群
18  インターフェース・モジュール
19  パーサ・モジュール
【図１】
2011022678.tif 000003
【図２】
2011022678.tif 000004
【図３】
2011022678.tif 000005
【図４】
2011022678.tif 000006
【図５】
2011022678.tif 000007
【図６】
2011022678.tif 000008
【図７】
2011022678.tif 000009
【図８】
2011022678.tif 000010
【図９】
2011022678.tif 000011
【図１０】
2011022678.tif 000012
【図１１】
2011022678.tif 000013
【図１２】
2011022678.tif 000014
【図１３】
2011022678.tif 000015
【図１４】
2011022678.tif 000016
【図１５】
2011022678.tif 000017
【図１６】
2011022678.tif 000018