(57)【特許請求の範囲】
【請求項１】
複数の選択肢ノードを条件付きリンクにより接続するフローチャートモジュールを複数記憶する第１記憶部と、現在の状況を表す状況変数を記憶する第２記憶部と、前記状況変数を検索キーとして前記第１記憶部から検索したフローチャートモジュールを記憶する第３記憶部と、ユーザインターフェースと、処理装置とを備え、
前記第１記憶部は、前記条件付きリンクごとにリンク強度を関連付けて記憶し、
前記処理装置は、
前記第３記憶部に記憶されたフローチャートモジュールの前記条件付きリンクの当該条件と前記第２記憶部に記憶された状況変数とを比較し、状況変数が条件を満たす条件付きリンクを辿って前記複数の選択肢ノードから現在地ノードを探す処理と、
当該現在地ノード以降の経路を前記第３記憶部に記憶されたフローチャートモジュールから読み出し前記ユーザインターフェースを介してユーザに提示する処理と、
前記現在地ノード以降の経路について前記条件付きリンクの当該条件と状況変数との適合度および前記リンク強度に基づいて各経路の選択すべき優先順位を決定し、当該経路の優先順位を前記ユーザインターフェースを介してユーザに提示する処理とを実行する、行動支援システム。
【請求項２】
前記処理装置は、前記ユーザに提示した経路の選択を前記ユーザインターフェースを介して受け付け、当該ユーザによる経路選択の履歴を前記第３記憶部のフローチャートモジュールに記述し、かつ、選択された経路のリンク強度を強化するように当該フローチャートモジュールの記述を書き換え、この第３記憶部のフローチャートモジュールを前記第１記憶部に保存させる、請求項１に記載の行動支援システム。
【請求項３】
前記第１記憶部に記憶するフローチャートモジュールをコンピュータネットワークを介して配布するサーバを備えた、請求項１又は２に記載の行動支援システム。
【請求項４】
複数の選択肢ノードを条件付きリンクにより接続するフローチャートモジュールを複数記憶する第１記憶部と、現在の状況を表す状況変数を記憶する第２記憶部と、前記状況変数を検索キーとして前記第１記憶部から検索したフローチャートモジュールを記憶する第３記憶部と、ユーザインターフェースと、処理装置とを備え、前記第１記憶部が、前記条件付きリンクごとにリンク強度を関連付けて記憶する行動支援システム用のプログラムであって、
前記処理装置に、
前記第３記憶部に記憶されたフローチャートモジュールの前記条件付きリンクの当該条件と前記第２記憶部に記憶された状況変数とを比較し、状況変数が条件を満たす条件付きリンクを辿って前記複数の選択肢ノードから現在地ノードを探す処理と、
当該現在地ノード以降の経路を前記第３記憶部に記憶されたフローチャートモジュールから読み出し前記ユーザインターフェースを介してユーザに提示する処理と、
前記現在地ノード以降の経路について前記条件付きリンクの当該条件と状況変数との適合度および前記リンク強度に基づいて各経路の選択すべき優先順位を決定し、当該経路の優先順位を前記ユーザインターフェースを介してユーザに提示する処理とを実行させる、行動支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの行動を支援する行動支援システムに関する。
【背景技術】
【０００２】
ユーザの行動を支援するシステムとしてナビゲーションシステムが広く知られている（例えば、特許文献１）。ナビゲーションシステムでは、ユーザが特定の目的地を設定すると、ユーザを現在地から目的地まで案内するための経路が自動的に探索されユーザに提案される。経路を移動中に状況が変化すると、その状況に応じて経路が最適経路に自動的に変更される。
【０００３】
一方、ユーザの行動の選択肢をフローチャートに表す場合、ナビゲーションシステムのように目的地（結果）は１つではなく、状況に応じた分岐判断とユーザの意思による決定に応じて様々な経路を辿り、様々な結果となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１６９８６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、ユーザの行動の選択肢をフローチャートに表すとき、ユーザが状況に応じて取り得る複数の経路をユーザに提示するとともに、状況に応じた各経路の優先順位をユーザに提示する行動支援システムを提供する。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本願発明は次の構成を採用する。
複数の選択肢ノードを条件付きリンクにより接続するフローチャートモジュールを複数記憶する第１記憶部と、現在の状況を表す状況変数を記憶する第２記憶部と、前記状況変数を検索キーとして前記第１記憶部から検索したフローチャートモジュールを記憶する第３記憶部と、ユーザインターフェースと、処理装置とを備え、
前記第１記憶部は、前記条件付きリンクごとにリンク強度を関連付けて記憶し、
前記処理装置は、
前記第３記憶部に記憶されたフローチャートモジュールの前記条件付きリンクの当該条件と前記第２記憶部に記憶された状況変数とを比較し、状況変数が条件を満たす条件付きリンクを辿って前記複数の選択肢ノードから現在地ノードを探す処理と、
当該現在地ノード以降の経路を前記第３記憶部に記憶されたフローチャートモジュールから読み出し前記ユーザインターフェースを介してユーザに提示する処理と、
前記現在地ノード以降の経路について前記条件付きリンクの当該条件と状況変数との適合度および前記リンク強度に基づいて各経路の選択すべき優先順位を決定し、当該経路の優先順位を前記ユーザインターフェースを介してユーザに提示する処理とを実行する、行動支援システム。
【発明の効果】
【０００７】
本発明によれば、ユーザの行動の選択肢をフローチャートに表すとき、ユーザが状況に応じて取り得る複数の経路をユーザに提示することができると共に、状況に応じた各経路の優先順位をユーザに提示することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態を示すブロック構成図。
【図２】図1に示すモジュールの構造図。
【図３】図２に示すノードおよびリンクの構造図。
【図４】モジュールの追加を示す説明図。
【図５】モジュールの追加を示す説明図。
【図６】モジュールの追加を示す説明図。
【発明を実施するための形態】
【０００９】
［本願発明の実施形態の構成］
以下に本発明の実施形態を示す。図１は、本発明の実施形態であるコンピュータシステムの構成図である。本システムは、コンピュータネットワークに接続され相互にデータ通信を行うサーバコンピュータ１０とクライアントコンピュータ２０とにより構成されている。図１では、サーバコンピュータ１０およびクライアントコンピュータ２０をそれぞれ１つだけ図示しているが、実際には、複数のサーバコンピュータ１０および複数のクライアントコンピュータ２０が存在し、各クライアントコンピュータ２０は、複数のサーバコンピュータ１０にアクセスすることが可能となっている。
【００１０】
サーバコンピュータ１０およびクライアントコンピュータ２０は、それぞれ、処理装置、通信装置および記憶装置を備えている。処理装置は、プロセッサを備え、プログラムを実行することにより種々の機能を提供する。通信装置は、サーバコンピュータ１０とクライアントコンピュータ２０との間のデータ通信機能を提供する。記憶装置は、処理装置が処理に使用する種々のデータを記憶する。また、クライアントコンピュータ２０は、入力装置から情報を受け付ける入力インターフェース（入力Ｉ／Ｆ）と、出力装置へ情報を出力する出力インターフェース（出力Ｉ／Ｆ）とを備えている。ユーザからの情報の入力とユーザへの情報の出力は、ユーザインターフェース（ＵＩ）２１を介して行われる。
【００１１】
サーバコンピュータ１０は、記憶装置に複数のフローチャートモジュール１１を記憶している。また、サーバコンピュータ１０は、クライアントコンピュータ２０に要求されたフローチャートモジュールを記憶装置から読み出し、通信装置を介してクライアントコンピュータ２０に送信するサーバ機能１２を備えている。フローチャートモジュールの詳細は後述する。また、サーバコンピュータ１０は、クライアントコンピュータ２０から受信したフローチャートモジュールを記憶装置に保存するモジュール保存機能１３を備えている。
【００１２】
クライアントコンピュータ２０は、ユーザインターフェース（ＵＩ）２１、調査・解析機能２２、検索機能２３、モジュールダウンロード機能２４、条件整理機能２５、フローチャート組込機能２６およびヒストリフィードバック機能２７を提供する。各機能は、処理装置がプログラムを実行することにより提供される。
【００１３】
ＵＩ２１は、規定に従って、ユーザからの情報の入力の受け付けと、ユーザへの情報の出力とを行う。
【００１４】
調査・解析機能２２は、入力Ｉ／Ｆを介して入力装置から入力された信号を調査および解析する。例えば、音声入力装置およびＵＩ２１を介してユーザから入力された音声信号を解析してテキスト化し、当該テキストに含まれるキーワードを取得する。また、センサ装置から入力された信号に基づいて当該センサの検出値を数値化し、当該数値に対応するキーワードを取得する。また、テキスト入力装置およびＵＩ２１を介してユーザから入力されたテキストを解析し、当該テキストに含まれるキーワードを取得する。調査・解析機能２２は、各キーワードを、状況変数として記憶装置に格納する。
【００１５】
上記において、音声やテキストからのキーワードの取得は、形態素解析等の自然言語処理や音声認識処理により実現される。また、センサの検出値とキーワードとの対応関係は、予め記憶手段に記憶されている。
【００１６】
状況変数は、任意の状況を表す値を取ることが可能であるが、例えば、タイマから取得した日時、ＧＰＳ（Global Positioning System）から取得した場所、状況を示す上記各キーワードおよび過去に辿ったフローチャートの経路を含む。「状況」には、現在、過去および未来の状況が含まれる。
【００１７】
また、調査・解析機能２２は、状況変数を記憶装置から読み出し、状況変数を検索キーとするフローチャートモジュールの検索を検索機能２３に指示する。また、調査・解析機能２２は、状況変数を記憶装置から読み出し、状況変数を条件整理機能２５に与える。
【００１８】
検索機能２３は、調査・解析機能２２から渡された状況変数を含む検索クエリをサーバコンピュータ１０に送信し、サーバコンピュータ１０に対しフローチャートモジュール１１の検索を要求する。検索の要求先は１つのサーバコンピュータ１０に限らず、複数のサーバコンピュータに検索を要求してもよい。
【００１９】
サーバコンピュータ１０の処理装置は、クライアントコンピュータ２０から送信された状況変数を含む検索クエリに対応するフローチャートモジュールを記憶装置から検索し、検索の結果抽出した１乃至複数のフローチャートモジュールをサーバ機能１２によってクライアントコンピュータ２０に送信する。
【００２０】
上記において、各フローチャートモジュールには、そのフローチャートの内容に応じた様々なテキストの記述が含まれている。また、クライアントコンピュータ２０から送られた状況変数も、テキストで表現されている。サーバコンピュータ１０の処理装置は、形態素解析、Ｎ−グラムや曖昧検索等の処理により、状況変数のテキストにマッチするテキストを含むフローチャートモジュールを抽出する。１つの検索クエリにマッチするフローチャートモジュールを複数発見した場合、当該複数のフローチャートモジュールを抽出する。
【００２１】
モジュールダウンロード機能２４は、サーバコンピュータ１０から送られたフローチャートモジュールを取得し記憶装置に格納する。検索機能２３が、共通の検索クエリをもって複数のサーバコンピュータ１０に検索を要求した場合、モジュールダウンロード機能２４は、検索結果として抽出された複数のフローチャートモジュールを各サーバコンピュータ１０から取得する場合がある。また上記のように、１つの検索クエリによって、１台のサーバコンピュータ１０から複数のフローチャートモジュールが抽出され送信される場合、複数のフローチャートモジュールを１台のサーバコンピュータ１０から取得する。
【００２２】
条件整理機能２５は、モジュールダウンロード機能２４によって記憶装置に格納されたフローチャートモジュールに対し、調査・解析機能２２から渡された状況変数を引数として入力し、当該フローチャートモジュールによって構成されるフローチャート内の現在地を判定する。フローチャートは、複数の選択肢（ノード）と各ノード間の接続（リンク）とを有し、各リンクに設定された条件と状況変数とを比較することにより、一のノードからどのリンクに進むかを判定できるようになっている。条件整理機能２５は、フローチャートの始まりのノードから順に状況変数がリンクの条件を満たしているか否かを判定し、条件の真偽を判定できる限り、条件が真となるリンクを辿ってゆく。そして、現状の状況変数だけでは真偽を判定できないリンクに辿りついたとき、そのリンクの手前のノードを現在地に設定する。モジュールダウンロード機能２４が複数のフローチャートモジュールをダウンロードした場合、各フローチャートモジュールに対し、上記の処理を行う。
【００２３】
フローチャート組込機能２６は、モジュールダウンロード機能２４が格納したフローチャートモジュールを記憶装置から読み出し、条件整理機能２５によって設定された現在地以降の選択可能な複数の経路から経路ごとに数段階のノードおよびリンクを抽出する。モジュールダウンロード機能２４が複数のフローチャートモジュールをダウンロードした場合、各フローチャートモジュールに対し、上記の処理を行う。
【００２４】
次いで、フローチャート組込機能２６は、当該抽出した現在地以降の各リンクについて、リンクに設定された条件と状況変数との適合を判定し、この判定結果に基づいて経路ごとに状況変数との適合度を算出する。適合度の算出方法としては、例えば、条件を満たすリンクに点数を与え、経路ごとに含まれるリンクの点数を加算して経路ごとに適合度の指数を算出する。
【００２５】
そして、フローチャート組込機能２６は、上記の選択可能な複数の経路をＵＩ２１を通じてユーザに提示すると共に、上記の適合度が高い経路ほど優先順位が高い経路であるとしてＵＩ２１を通じてユーザに経路の優先順位を提示する。
【００２６】
ユーザは、提示された経路からＵＩ２１を通じて所望の経路を選択する。ヒストリフィードバック機能２７は、ユーザが選択した経路をフローチャートモジュールのファイルに記録する。
【００２７】
ここで、上記のとおりフローチャートモジュールは複数のノードとノード間のリンクとで構成されている。１つのノードには分岐先となる複数のリンクが関連付けられ、ノード間の各リンクにはノード間の結び付きの強さを表す強度が関連付けられている。本実施形態では、１つのフローチャートモジュールの構造を１つのデータファイルに記述する。フローチャートモジュールは、例えば、ＸＭＬ（Extensible Markup Language）ファイル、スクリプトファイルやテキストデータファイルに記述される。当該ファイルには、フローチャートモジュールに含まれる各ノード（選択肢）の記述と、各ノードがどのノードと結び付くかというリンクの記述と、各リンクを進むための条件の記述とが含まれる。また、ノード間の結び付きの強さを表す強度がリンクごとに関連付けられて記述される。また、フローチャートモジュールのファイルには、過去にそのフローチャートをユーザが辿った経路の履歴が記録される。また、フローチャートモジュールのファイルには、過去にリンクの条件を判断する際に用いた状況変数の値が、そのリンクの条件に関連付けられて記録される。また、フローチャートモジュールのファイルには、各ノード（選択肢）の有効または無効の設定が記録される。
【００２８】
ヒストリフィードバック機能２７は、ユーザが選択した経路のリンクの強度を強化する。即ち、フローチャートモジュールのファイルに記述された該当するリンクの強度を書き換える。
【００２９】
前述のとおり、フローチャート組込機能２６は、ユーザが選択し得る経路の適合度を算出するが、この適合度を算出する際にリンクの強度の指数も算入し、リンクの強度が強いほど適合度が増すように演算を行う。
【００３０】
また、ヒストリフィードバック機能２７は、ユーザが選択した経路に従い、フローチャートモジュールのファイルにユーザが辿った経路の履歴を記録する。また、ヒストリフィードバック機能２７は、ユーザが経路を選択した際に、その選択の前提となった複数の選択肢と、ユーザによる選択結果と、その際に記憶装置に記憶されている現在の状況変数とを関連付けてフローチャートモジュールのファイルに記録する。
【００３１】
また、ヒストリフィードバック機能２７は、ファイルに変更を加えられたフローチャートモジュールを記憶装置から読み出し、通信装置を介してサーバコンピュータ１０に送信する。サーバコンピュータ１０のモジュール保存機能１３は、クライアントコンピュータ２０から受信したフローチャートモジュールを記憶装置に保存する。記憶装置に保存されたフローチャートモジュール１１は、他のクライアントコンピュータ（他のユーザ）によってダウンロードされ利用される場合がある。
【００３２】
［フローチャートモジュールの構造］
図２にフローチャートモジュール１１の構造の一例を示す。フローチャートモジュール１１は、丸印で示す複数のノード（選択肢）と、直線で示すノード間のつながり（リンク）とで構成されている。いま最上部のノードをユーザの現在地とするが、このユーザの現在地は、上記のとおり、条件整理機能２５によって判定される。フローチャート組込機能２６は、現在地以降のユーザが選択可能な複数の経路をＵＩ２１を介してユーザに提示する。図２の場合、ユーザは選択肢１，２，３のいずれかを選択可能である。この例で、現在地はフローチャートの開始点となっているが、条件整理機能２５の判定に応じてフローチャートの途中のノードが現在地に設定される場合もある。その場合、フローチャートの経路のユーザへの提示は、フローチャートの途中から行われる。
【００３３】
［ノードとリンクの構造］
図３に示すフローチャートモジュールＵにおいて、ノードＡを現在地とすると、ノードＢおよびＣが次の選択肢になり得る。ノード間の矢印の無い実線は、相互リンクを表す。点線は時間的な条件が付加されたリンクとする。矢印は、リンクの方向性を表す。ノードＡとＢおよびノードＥとＦとの間は相互リンクなので、両方向に進むことが可能である。点線で示すノードＡからＣへの一方向リンクおよびノードＣからＤへの一方向リンクには、時間的な条件が関連付けられているものとする。また、ノードＣからＤへ向かう一方向リンクには時間的な条件に加え、例えば「雨が降っていない場合」という条件が付加されているものとする。
【００３４】
ノードＣからＢおよびノードＢからＥは一方向リンクであり、ノードＣからＢを選択できるが、ノードＢからＣを選択することはできない。しかし、ノードＢからＡを経由し、ノードＡからＣの間に設定されたリンクの時間的条件を満たせば、ノードＢからＣへ進むことは可能である。同様に、ノードＢからＥを選択できるが、ノードＥからＢを選択することはできない。フローチャートモジュールのファイルには、このようなリンクの方向性も記述されている。
【００３５】
ユーザの現在地がノードＡにあるとき、時間と状況の条件を満たせばノードＣおよびＤを経由してノードＧまたはＨに辿りつくことが可能である。また、状況変数にノードＤを選択しない旨が記述されている場合、フローチャート組込機能２６は、ノードＤを通る経路をユーザに提示せず、ノードＢ、Ｅを経由してノードＦまたはＧを選択する経路のみをユーザに提示することが可能である。ただし、この場合は必ずノードＥを選択する必要がある。また、状況変数にノードＧを選択する旨が記述されている場合、リンクの優先順位にもよるが、時間的条件がなく条件を満たしやすいノードＥを通る経路を優先順位の高い経路としてユーザに提示することが可能である。このように、同じ結果に至るまでの経路が複数存在する場合は、経由するノードの数とリンクに設定された条件の数とに基づいて、より目標のノードに到達しやすい経路をユーザに提示してもよい。
【００３６】
フローチャート組込機能２６は、ユーザに経路を提示する際、ＵＩ２１を通じて例えば図３に示すようにノードとリンクの接続をグラフィカルな表示で提示する。ヒストリフィードバック機能２７は、このグラフィカルな表示に対するフローチャートモジュールの変更操作をＵＩ２１を介して受け付ける。ヒストリフィードバック機能２７は、ＵＩ２１を介して選択された特定のリンクに対し条件の加除変更が入力されると、その特定のリンクに対し入力された条件の加除変更をフローチャートモジュールのファイルの記述に反映する。また、ヒストリフィードバック機能２７は、ＵＩ２１を介して選択された特定のリンクに対しリンク方向（相互リンクまたは一方向リンク）の変更を入力されると、その特定のリンクに対し入力されたリンク方向の変更をフローチャートモジュールのファイルの記述に反映する。また、ヒストリフィードバック機能２７は、ＵＩ２１を介して選択された特定のリンクに対しリンク強度の変更を入力されると、その特定のリンクに対し入力されたリンク強度の変更をフローチャートモジュールのファイルの記述に反映する。
【００３７】
［モジュールの追加（１）］
図４は、フローチャートモジュールＭに別のフローチャートモジュールＮを連結する処理を示している。フローチャート組込機能２６は、フローチャートモジュールＭに含まれるリンクの条件と現在の状況変数との組み合わせと同等の組み合わせを、記憶装置に格納されている過去のフローチャートモジュールＮのファイルの記述に発見した場合、フローチャートモジュールＮの当該同等なリンクを、フローチャートモジュールＭの同等なリンクと並列になるように、フローチャートモジュールＭのノードに連結する。
【００３８】
また、フローチャート組込機能２６は、フローチャートモジュールＭに含まれるリンクの条件と現在の状況変数との組み合わせと同等の組み合わせを、記憶装置に格納されているフローチャートＭと同時にダウンロードされたフローチャートモジュールＮのファイルの記述に発見した場合、フローチャートモジュールＮの当該同等なリンクを、フローチャートモジュールＭの同等なリンクと並列になるように、フローチャートモジュールＭのノードに連結する。
【００３９】
また、フローチャート組込機能２６は、フローチャートモジュールＭに含まれるリンクの条件と現在の状況変数との組み合わせと同等の組み合わせを、記憶装置に格納されているフローチャートＭの処理中にダウンロードされたフローチャートモジュールＮのファイルの記述に発見した場合、フローチャートモジュールＮの当該同等なリンクを、フローチャートモジュールＭの同等なリンクと並列になるように、フローチャートモジュールＭのノードに連結する。
【００４０】
フローチャートモジュールＭの処理中にフローチャートＮをダウンロードする場合、クライアントコンピュータ２０の処理装置は、フローチャートモジュールＭのノードやリンクの値に応じてフローチャートモジュールＮをダウンロードする。
【００４１】
図４の例では、フローチャートモジュールＭに含まれるリンクＡの条件と現在の状況変数との組み合わせが、フローチャートモジュールＮに含まれるリンクＢの条件と当該リンクＢの条件を判断したときに用いた過去の状況変数との組み合わせが同等であるとし、リンクＡの始点にあるステップ１のノードに、リンクＢ以降のフローチャートモジュールＮの経路を連結している。リンクＡの始点にあるステップ１のノードから見ると、次の選択肢が２択から３択に変化する。フローチャート組込機能２６は、接続されたフローチャートの全体構造をフローチャートモジュールＭのファイルに記述してもよいし、フローチャートモジュールＮのノードへのリンクをフローチャートモジュールＭのファイルに記述してもよいし、フローチャートモジュールＭのファイルとフローチャートモジュールＮのファイルとの両方に、他方のノードへのリンクを記述してもよい。
【００４２】
［モジュールの追加（２）］
図５も、モジュールＭに別のモジュールＮを連結する処理を示しているが、連結するノードが図４の例とは異なっている。この図５の例では、フローチャートモジュールＭに含まれるリンクＣの条件と現在の状況変数との組み合わせが、フローチャートモジュールＮに含まれるリンクＤの条件と当該リンクＤの条件を判断したときに用いた過去の状況変数との組み合わせが同等であるとし、リンクＣの始点にあるステップ１のノードに、リンクＤ以降のフローチャートモジュールＮの経路を連結している。この際、フローチャート組込機能２６は、連結したモジュールＮの経路以外の経路を無効に設定することが可能である。図５に点線で描いた部分は無効に設定されたノード（選択肢）およびリンクを示している。
【００４３】
［モジュールの追加（３）］
図６は、リンクに設定された条件を満たすか否かに応じて当該リンクにモジュールが連結される例を示している。いま、黒丸で示すノードの中から、太線の矢印で示す経路を辿って中央の現在地の選択肢を選択したものとする。現在地のノード以降のリンクには「１４：００に現在地の選択肢を選択していることを条件としてモジュールＢおよびモジュールＣを連結する」という条件が記述されているものとする。この場合、１４：００に現在地の選択肢を選択している場合に限り、現在地のノードにモジュールＢおよびＣが連結される。フローチャート組込機能２６は、リンクに設定された条件と状況変数として取得した現在の時刻とを比較し、リンクに設定されている条件が満たされているか否かを判定し、満たされている場合にモジュールＢおよびＣを連結する。
【００４４】
この場合、モジュールＢ，Ｃは、その連結が必要となったときに、サーバコンピュータ１０からダウンロードしてもよい。
【００４５】
また、リンクには複合的な条件を設定することもできる。例えば、現在地のノード以降のリンクに「雪が降っている場合、時刻が１８：００以降であることを条件としてモジュールＢを連結する」という条件が設定されている場合、フローチャート組込機能２６は、現在時刻を示す状況変数と、現在の天気を表す状況変数とを取得し、これらの状況変数とリンクに設定された条件とを比較する。そして、現在の天気が雪であり、かつ現在地の選択肢が１８：００以降に選択された場合に限り、フローチャート組込機能２６は、モジュールＢを連結する。ここで、モジュールＣのノードＣとＤとの間には相互リンクが設定されており、この相互リンクには、例えば「ノードＣからノードＤを選択した後、Ｄの選択が不適切であった場合はＣに戻る」という可逆性の条件を設定することも可能である。
【００４６】
［本実施形態の動作］
次に、本実施形態の動作を図１を参照して説明する。調査・解析機能２２が、センサ装置、音声入力装置、テキスト入力装置等の入力装置からの入力に基づいて現在の状況を表す状況変数を取得すると、この現在の状況変数を記憶装置に格納し、また、当該状況変数を検索キーとするフローチャートモジュールの検索を検索機能２３に指示する。検索機能２３は、検索キーとして状況変数をサーバコンピュータ１０に送りフローチャートモジュール１１の検索を要求する。サーバコンピュータ１０は、クライアントコンピュータ２０から送られた状況変数に適合するフローチャートモジュール１１を記憶装置から読み出し、サーバ機能１２によりクライアントコンピュータ２０に送信する。モジュールダウンロード機能２４は、サーバコンピュータ１０から受信したフローチャートモジュールを記憶装置に格納する。条件整理機能２５は、記憶装置から現在の状況変数を読み出し、ダウンロードされたフローチャートモジュールに引数として入力することにより、状況変数がリンクの条件を満たす経路を自動的に辿る。そして、条件を満たすか否か判断できないリンクを見つけると、その手前のノードを現在地に設定する。フローチャート組込機能２６は、ダウンロードされたフローチャートモジュールから現在地以降の経路を抽出し、必要に応じて他のフローチャートモジュールを連結する。そして、フローチャート組込機能２６は、抽出および連結したフローチャートモジュールの経路をＵＩ２１を通じてユーザにグラフィカルに提示する。その際、フローチャート組込機能２６は、経路ごとに優先順位を算出し、経路ごとの優先順位もＵＩ２1を通じてユーザに提示する。提示された経路からユーザが所望の経路を選択すると、ヒストリフィードバック機能２７は、ユーザが選択した経路と、その選択の際に取り得た他の選択肢と、その選択の際の現在の状況変数とをフローチャートモジュールのファイルに記録する。また、ヒストリフィードバック機能２７は、ＵＩ２１を通じたユーザからのフローチャートモジュールの編集要求に応じてフローチャートモジュールのファイルの記述を書き換える。ヒストリフィードバック機能２７は、記述に変更を加えたフローチャートモジュールのファイルをサーバコンピュータ１０にアップロードする。サーバコンピュータ１０のモジュール保存機能１３は、クライアントコンピュータ２０からアップロードされたフローチャートモジュールを記憶装置に保存する。サーバ機能１２は、記憶装置に保存されているフローチャートモジュール１１を、任意のクライアントコンピュータに対し、検索の結果に応じて配布する。以上の動作が繰り返される。
【００４７】
［本実施形態の効果］
以上に説明した実施形態によれば、現在の状況を表す状況変数に応じてフローチャートモジュールを選択し、選択したフローチャートモジュールの中から今後ユーザが取り得る選択経路を優先順位とともにユーザに提示するので、ユーザの適切な経路選択（行動選択）を支援することができる。また、ユーザが選択した経路や現在の状況変数に応じてフローチャートモジュールを動的に構成するので、より適切な経路選択を支援することができる。さらに、フローチャートモジュールをサーバに保存することにより他のユーザにも配布することができ、ユーザが選択した経路や現在の状況変数に応じて動的に構成されたフローチャートモジュールを共有することができる。
【００４８】
［オブジェクト指向プログラミングによる実施例］
フローチャートモジュールの雛型をモジュールクラスに定義し、フローチャートモジュールを構成するノードの雛型をノードクラスに定義する。リンクの属性（条件、方向性、強度）は、ノードクラスのプロパティまたはメソッドに記述し、他のノードクラスへの定義の継承や他のノードクラスにおけるメソッドの再定義を可能とする。ユーザに選択可能な経路を提示する際は、ノードのインスタンスを生成し、ＵＩ２１を通じてユーザに提示する。
【００４９】
［変形例］
上述の実施形態では、図１に示すようにサーバコンピュータ１０とクライアントコンピュータ２０とを分けてシステムを構成したが、これに限らず、サーバとクライアントが１台のコンピュータに搭載されていてもよい。
【符号の説明】
【００５０】
１０  サーバコンピュータ
１１  フローチャートモジュール
１２  サーバ機能
１３  モジュール保存機能
２０  クライアントコンピュータ
２１  ユーザインターフェース（ＵＩ）
２２  調査・解析機能
２３  検索機能
２４  モジュールダウンロード機能
２５  条件整理機能
２６  フローチャート組込機能
２７  ヒストリフィードバック機能
【図１】
0005960483.tif 000002
【図２】
0005960483.tif 000003
【図３】
0005960483.tif 000004
【図４】
0005960483.tif 000005
【図５】
0005960483.tif 000006
【図６】
0005960483.tif 000007