(57)【特許請求の範囲】
【請求項１】
通信ネットワークに接続されたコンピュータが利用者端末にサービスを提供する方法であって、
シナリオ自動生成部におけるエージェント抽出部が、エージェント識別情報を利用場所と対応付けて格納するエージェント記憶手段から利用場所を用いてエージェントを検索するステップと、
シナリオ自動生成部におけるシナリオ整合化処理部が、検索されたエージェント一覧を利用者端末に提示するステップと、
シナリオ自動生成部におけるシナリオ整合化処理部が、前記利用者端末に提示されたエージェントの中から利用者により選択されたエージェントの識別情報を受信し、当該エージェントのエージェントシナリオを取得するステップと、
シナリオ自動生成部におけるシナリオ整合化処理部が、エージェントシナリオに含まれる引数名の一覧を利用者端末に提示し、利用者により決定された引数取得方法を利用者端末から受信し、エージェントシナリオと引数取得方法とを用いてサービスシナリオを生成するステップと、
サービスシナリオ管理部が、生成されたサービスシナリオをサービスシナリオ記憶手段に格納するサービスシナリオ格納ステップと、
サービスシナリオ解釈部が、サービス開始要求を受けて利用者情報を利用者情報記憶手段に格納するステップと、
サービスシナリオ解釈部が、利用者情報記憶手段に格納された利用者情報に含まれる利用者の利用場所に基づきサービスシナリオ記憶手段からサービスシナリオを取得する取得ステップと、
サービスシナリオ解釈部における実行条件評価部が、利用者情報記憶手段に格納された利用者情報と、サービスシナリオの実行条件とに基づき、取得されたサービスシナリオの中から実行すべきサービスシナリオを選択する選択ステップと、
サービスシナリオ解釈部におけるシナリオ解釈実行部が、選択されたサービスシナリオを実行して利用者端末にサービスを提供するステップと
を有することを特徴とする方法。
【請求項２】
各サービスシナリオは、空間的な位置関係を示す情報をキーとした木構造のノードとキーワードとに関連付けられてサービスシナリオ記憶手段に格納される請求項１に記載の方法。
【請求項３】
各サービスシナリオは、空間的な位置関係を示す情報をキーとした木構造のノードに関連付けられてサービスシナリオ記憶手段に格納され、前記サービスシナリオ格納ステップにおいてサービスシナリオ管理部は、
サービスシナリオを格納する際に、利用者端末から、問い合わせの応答としてキーワード及びサービスシナリオ名を受信し、
利用場所を基に、格納すべきサービスシナリオに対応付けられるノードを決定し、
決定されたノードと、前記キーワードと、前記サービスシナリオ名とに関連付けて当該サービスシナリオをサービスシナリオ記憶手段に格納する請求項１に記載の方法。
【請求項４】
アクセス管理部が、サービスシナリオ記憶手段に格納されたサービスシナリオに対して利用者又はグループを関連付け、当該利用者又はグループを用いて当該サービスシナリオに対する利用者制限を実行し、
サービスシナリオ管理部が、サービスシナリオが最後に実行された時刻を当該サービスシナリオに関連付け、当該サービスシナリオが最後に実行された時刻から所定の期間が経過した時点で当該サービスシナリオを削除する請求項２に記載の方法。
【請求項５】
利用者端末にサービスを提供する処理をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体であって、コンピュータを、
エージェント識別情報を利用場所と対応付けて格納するエージェント記憶手段から利用場所を用いてエージェントを検索するエージェント抽出手段、
検索されたエージェント一覧を利用者端末に提示し、当該利用者端末に提示されたエージェントの中から利用者により選択されたエージェントの識別情報を受信し、当該エージェントのエージェントシナリオを取得し、エージェントシナリオに含まれる引数名の一覧を利用者端末に提示し、利用者により決定された引数取得方法を利用者端末から受信し、エージェントシナリオと引数取得方法とを用いてサービスシナリオを生成するシナリオ整合化処理手段、
生成されたサービスシナリオをサービスシナリオ記憶手段に格納するサービスシナリオ管理手段、
サービス開始要求を受けて利用者情報を利用者情報記憶手段に格納する手段、
利用者情報記憶手段に格納された利用者情報に含まれる利用者の利用場所に基づきサービスシナリオ記憶手段からサービスシナリオを取得する取得手段、
利用者情報記憶手段に格納された利用者情報と、サービスシナリオの実行条件とに基づき、取得されたサービスシナリオの中から実行すべきサービスシナリオを選択する選択手段、
選択されたサービスシナリオを実行して利用者端末にサービスを提供するシナリオ解釈実行手段、
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項６】
各サービスシナリオは、空間的な位置関係を示す情報をキーとした木構造のノードとキーワードとに関連付けられてサービスシナリオ記憶手段に格納されている請求項５に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
各サービスシナリオは、空間的な位置関係を示す情報をキーとした木構造のノードに関連付けられてサービスシナリオ記憶手段に格納されており、前記サービスシナリオ管理手段は、
サービスシナリオを格納する際に、利用者端末から、問い合わせの応答としてキーワード及びサービスシナリオ名を受信し、
利用場所を基に、格納すべきサービスシナリオに対応付けられるノードを決定し、
決定されたノードと、前記キーワードと、前記サービスシナリオ名とに関連付けて当該サービスシナリオをサービスシナリオ記憶手段に格納する請求項５に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
コンピュータを更に、
サービスシナリオ記憶手段に格納されたサービスシナリオに対して利用者又はグループを関連付け、当該利用者又はグループを用いて当該サービスシナリオに対する利用者制限を実行する手段、
サービスシナリオが最後に実行された時刻を当該サービスシナリオに関連付け、当該サービスシナリオが最後に実行された時刻から所定の期間が経過した時点で当該サービスシナリオを削除する手段、
として機能させるための請求項６に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の分散配置されたコンピュータ上で動作している様々なサービスを提供するエージェントが、相互に通信し合う事で利用者の要求を実現する方法、すなわち、エージェントシステムを用いて利用者にサービスを提供する方法に関し、特に、エージェント間のやり取りによって生成される情報内容を、時刻や場所、利用環境、利用端末などに合わせて利用者が享受できる機能を容易に実現するための方法に関する。
【０００２】
【従来の技術】
複数のコンピュータ上で動作しているある資源や情報、状態を独立して管理する複数個の計算処理プロセスとしてのエージェントを用いて、利用者があるサービスを要求する場合、それぞれのエージェントがある制約条件に縛られて協調しあい、その要求に対する結果を導く。
【０００３】
特願平７−６１４２では、エージェントが相互に独立して協調しあうのではなく、その協調する動作手順を管理する処理をエージェントとして独立させ、その動作手順はプランニング技法によって導く、もしくは、その動作手順をあらかじめ記述することによって、利用者の要求するサービスを実現する。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のシステムではサービスを実現するための動作手順に記述されているエージェントに対してのみ、実行可能性評価を行うことができる。そのために、評価を依頼されるべきエージェントが止まっている場合、あるいは、機能を変えた場合、新しく同じような機能を持ったエージェントが登場した場合など、エージェントの稼動状況が変化するような状況では、適当なサービスを提供できないという問題があった。
【０００５】
また、従来のシステムでは、利用者が欲するサービスを提供する動作手順が存在しない場合、その動作手順を動的に生成させるためのサービスシナリオ生成機能が存在しないという問題があった。
【０００６】
また、従来のシステムは、動作手順を管理し実行するエージェントとサービスの基本的な要素機能を提供する要素機能エージェントに別れていたために、既存のプランを再利用するようなプランを生成することができない点に問題があった。
【０００７】
本発明は上記の点に鑑みてなされたものであり、複数の独立した単体サービスを組み合わせた複合サービスを利用者が選択する時に、利用場所に応じてサービスを絞込むことや、適当な複合サービスが無い時に、単体サービスを動的に組み合わせて利用者の意図に応じた複合サービスを創り出すこと等を可能とすることによって、利用者が状況や状態に合ったサービスを享受するための方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
請求項１に記載の発明は、通信ネットワークに接続されたコンピュータが利用者端末にサービスを提供する方法であって、シナリオ自動生成部におけるエージェント抽出部が、エージェント識別情報を利用場所と対応付けて格納するエージェント記憶手段から利用場所を用いてエージェントを検索するステップと、シナリオ自動生成部におけるシナリオ整合化処理部が、検索されたエージェント一覧を利用者端末に提示するステップと、シナリオ自動生成部におけるシナリオ整合化処理部が、前記利用者端末に提示されたエージェントの中から利用者により選択されたエージェントの識別情報を受信し、当該エージェントのエージェントシナリオを取得するステップと、シナリオ自動生成部におけるシナリオ整合化処理部が、エージェントシナリオに含まれる引数名の一覧を利用者端末に提示し、利用者により決定された引数取得方法を利用者端末から受信し、エージェントシナリオと引数取得方法とを用いてサービスシナリオを生成するステップと、サービスシナリオ管理部が、生成されたサービスシナリオをサービスシナリオ記憶手段に格納するサービスシナリオ格納ステップと、サービスシナリオ解釈部が、サービス開始要求を受けて利用者情報を利用者情報記憶手段に格納するステップと、サービスシナリオ解釈部が、利用者情報記憶手段に格納された利用者情報に含まれる利用者の利用場所に基づきサービスシナリオ記憶手段からサービスシナリオを取得する取得ステップと、サービスシナリオ解釈部における実行条件評価部が、利用者情報記憶手段に格納された利用者情報と、サービスシナリオの実行条件とに基づき、取得されたサービスシナリオの中から実行すべきサービスシナリオを選択する選択ステップと、サービスシナリオ解釈部におけるシナリオ解釈実行部が、選択されたサービスシナリオを実行して利用者端末にサービスを提供するステップとを有する。
【０００９】
本発明によれば、利用場所や利用者情報を使用してサービスシナリオを選択するため、利用者が要求するサービスが同じであっても、利用場所や利用環境に応じて異なるサービスシナリオを用いることができ、利用者からの利便性が向上する。
【００１０】
本発明によれば、サービスシナリオに実行条件を持たせ、その実行条件を利用者情報と比較することによりサービスシナリオを選択することとしたため、利用者の状況に応じて適切なサービスシナリオを選択できる。
【００１１】
請求項２に記載の発明は、請求項１の記載において、各サービスシナリオは、空間的な位置関係を示す情報をキーとした木構造のノードとキーワードとに関連付けられてサービスシナリオ記憶手段に格納される。
【００１２】
本発明によれば、サービスシナリオリポジトリは、空間的な位置関係をもとにした構造をとるため、利用者の利用場所に応じたサービスを迅速に検索できる。また、サービスシナリオリポジトリを設けることによって、サービスシナリオの再利用が容易になる。
【００１７】
請求項３に記載の発明は、請求項１の記載において、各サービスシナリオは、空間的な位置関係を示す情報をキーとした木構造のノードに関連付けられてサービスシナリオ記憶手段に格納され、前記サービスシナリオ格納ステップにおいてサービスシナリオ管理部は、サービスシナリオを格納する際に、利用者端末から、問い合わせの応答としてキーワード及びサービスシナリオ名を受信し、利用場所を基に、格納すべきサービスシナリオに対応付けられるノードを決定し、決定されたノードと、前記キーワードと、前記サービスシナリオ名とに関連付けて当該サービスシナリオをサービスシナリオ記憶手段に格納する。
【００１８】
本発明によれば、生成したサービスシナリオを、サービスシナリオリポジトリの適切な場所に格納することができ、再利用が容易になる。
【００１９】
請求項４に記載の発明は、請求項２の記載において、アクセス管理部が、サービスシナリオ記憶手段に格納されたサービスシナリオに対して利用者又はグループを関連付け、当該利用者又はグループを用いて当該サービスシナリオに対する利用者制限を実行し、サービスシナリオ管理部が、サービスシナリオが最後に実行された時刻を当該サービスシナリオに関連付け、当該サービスシナリオが最後に実行された時刻から所定の期間が経過した時点で当該サービスシナリオを削除する。
【００２０】
本発明によれば、特定の利用者やグループのみに特定のサービスシナリオを提供することが可能となる。また、不要なサービスシナリオを削除することができる。
【００２１】
請求項５に記載の発明は、  利用者端末にサービスを提供する処理をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体であって、コンピュータを、エージェント識別情報を利用場所と対応付けて格納するエージェント記憶手段から利用場所を用いてエージェントを検索するエージェント抽出手段、検索されたエージェント一覧を利用者端末に提示し、当該利用者端末に提示されたエージェントの中から利用者により選択されたエージェントの識別情報を受信し、当該エージェントのエージェントシナリオを取得し、エージェントシナリオに含まれる引数名の一覧を利用者端末に提示し、利用者により決定された引数取得方法を利用者端末から受信し、エージェントシナリオと引数取得方法とを用いてサービスシナリオを生成するシナリオ整合化処理手段、生成されたサービスシナリオをサービスシナリオ記憶手段に格納するサービスシナリオ管理手段、サービス開始要求を受けて利用者情報を利用者情報記憶手段に格納する手段、利用者情報記憶手段に格納された利用者情報に含まれる利用者の利用場所に基づきサービスシナリオ記憶手段からサービスシナリオを取得する取得手段、利用者情報記憶手段に格納された利用者情報と、サービスシナリオの実行条件とに基づき、取得されたサービスシナリオの中から実行すべきサービスシナリオを選択する選択手段、選択されたサービスシナリオを実行して利用者端末にサービスを提供するシナリオ解釈実行手段、として機能させるためのプログラムを記録する。本発明は、前述した請求項１に記載の発明と実質的に同様の作用、効果を有する。
【００２３】
請求項６に記載の発明は、請求項５の記載において、各サービスシナリオは、空間的な位置関係を示す情報をキーとした木構造のノードとキーワードとに関連付けられてサービスシナリオ記憶手段に格納されている。
【００２６】
請求項７に記載の発明は、請求項５の記載において、各サービスシナリオは、空間的な位置関係を示す情報をキーとした木構造のノードに関連付けられてサービスシナリオ記憶手段に格納されており、前記サービスシナリオ管理手段は、サービスシナリオを格納する際に、利用者端末から、問い合わせの応答としてキーワード及びサービスシナリオ名を受信し、利用場所を基に、格納すべきサービスシナリオに対応付けられるノードを決定し、決定されたノードと、前記キーワードと、前記サービスシナリオ名とに関連付けて当該サービスシナリオをサービスシナリオ記憶手段に格納する。
【００２７】
請求項８に記載の発明は、請求項６の記載において、コンピュータを更に、サービスシナリオ記憶手段に格納されたサービスシナリオに対して利用者又はグループを関連付け、当該利用者又はグループを用いて当該サービスシナリオに対する利用者制限を実行する手段、サービスシナリオが最後に実行された時刻を当該サービスシナリオに関連付け、当該サービスシナリオが最後に実行された時刻から所定の期間が経過した時点で当該サービスシナリオを削除する手段として機能させる。
【００２８】
【発明の実施の形態】
以下、図を参照して本発明の実施例を説明する。本実施例においては、マルチエージェントシステムにおける例を説明する。マルチエージェントシステムとは、ネットワークで接続されたコンピュータ上で動作している様々なサービスを提供するエージェントに対して、それらを連携させたり協調させることで、利用者の要求に応じた複合的なサービスを組み上げるシステムである。まず、本実施例の概要を図１を用いて説明する。
【００２９】
上記の通り本実施例はマルチエージェントシステム１上で実現されるシステムであり、マルチエージェントシステム１は例えばネットワーク３を介して利用者端末５と接続される。利用者端末５は、マルチエージェントシステム１から種々のサービスを受ける。ここで、マルチエージェントシステム１は、複数のコンピュータがネットワークを介して接続されたシステムでもよいし、単一のコンピュータでもよい。また、利用者端末はコンピュータ、電話機等種々の装置を用いることが可能である。また、ネットワーク３はインターネット、電話網、各種データ網等を用いることができる。後述する本発明の実施例における各処理をコンピュータに実行させるプログラムを、上記の複数のコンピュータもしくは単一のコンピュータが実行することによって本発明の処理が実現される。そのプログラムは、例えばＣＤ−ＲＯＭ等の記録媒体に記録され、上記のコンピュータのＣＤ−ＲＯＭドライブ等を経由してハードディスク等にロードされ、適宜実行される。また、本発明の処理を実行するプログラムをネットワーク経由で、あるコンピュータから他のコンピュータに送信するようにしてもよい。
【００３０】
本発明においては、様々な単体サービスを提供するエージェント７について、まず、同じサービスを提供するものを分類し、その入出力や通信手段や手順を統一し、更に利用できる場所・時間帯などと一緒に後述するディレクトリファシリテータ９で管理する。また、利用者が求める複数のサービスを組み合わせた複合サービスを提供するために、動作手順が記述されているサービスシナリオ１１を管理するサービスシナリオリポジトリ１３を設ける。ユーザとのやり取りを担当するインタフェースエージェントが獲得した利用者場所情報、利用端末環境情報及び利用者の要求サービス名と、利用者のプロファイルを管理するユーザエージェントからの利用者の嗜好等をキーとして、サービスシナリオリポジトリ１３から、合致するサービスシナリオを評価・選択し、実行する。これは後述するサービスシナリオインタプリタ１５によって行われる。利用者が求めるサービスが存在しない場合には、利用できる単体サービスを提供するエージェントをエージェント管理機構から取得し、そのサービスを実現するためのサービスシナリオを記述し、実行する、若しくは、そのシナリオを特徴づけるキーワード等と共にサービスシナリオリポジトリに保存する。なお、サービスシナリオの生成は後述するシナリオ自動生成部１７において行われる。
【００３１】
図２に上記のサービスシナリオの記述例を示す。サービスシナリ１９には、単体サービスを提供するエージェント２１、２３に様々な処理を依頼し、その処理結果を組み合わせて、あるサービスを組み上げるための記述がなされている。
【００３２】
図２に示すように、記述の種類としては、・あるサービスを提供するエージェントに対してメッセージを送信し情報を取得する処理、・情報を加工する処理、・情報を評価判断する処理、・エージェントに対して返答を期待しないメッセージを送信する処理がある。実際には、これらの処理が入り組んで記述されている。また、サービスシナリオ１９には、そのサービスシナリオを実行するか否かの条件が記述されている実行条件２５が定義されている。図２に示す例では、実行条件として、そのシナリオが有効にサービスを提供できる時間帯、サービスを有効に享受できる入出力機器、利用者のプロファイルやエージェントとのやり取りから得た情報や内部状態を参照した評価式が記述されている。
【００３３】
上記のサービスシナリオはサービスシナリオリポジトリ２７に蓄積される。サービスシナリオリポジトリによって、サービスシナリオは位置空間を基軸に管理され、場所情報を基にサービスシナリオを検索することができる。
【００３４】
上記のサービスシナリオをサービスシナリオインタプリタが実際に評価・実行する。サービスシナリオインタプリタは、利用者の持つプロファイルやサービスを受ける場所や時刻、利用している端末環境、利用者が他のシステムから受けた影響を鑑み、かつ、利用者やサービス提供者の意志に応じたサービスを選択して、サービスシナリオを解釈・実行する。
【００３５】
図３にサービスシナリオインタプリタ２９の構成を示す。同図に示すように、サービスシナリオインタプリタ２９は、サービスシナリオの実行条件を評価する実行条件評価部３１と、サービスシナリオを解釈して実行するシナリオ解釈実行部３３と、共有エリア３５を有する。
【００３６】
共有エリア３５には、利用者の持つ好みや嗜好、行動パターンといったプロファイル情報やサービスを享受している利用者の環境情報などからなるユーザプロファイル情報が蓄えられている。図４に示すように、そのユーザプロファイル情報３７は、利用者情報を管理しているユーザエージェント３９から取りこまれる。ユーザエージェント自体も、それらの情報を、実際に利用者と対峠しているインタフェースエージェント４１や環境情報を検知するセンサを管理しているサービスエージェント４３から得る。
【００３７】
図５に、既に用意されているサービスシナリオを使って、それを実行し、サービスを利用者へ提供するサービスシナリオインタプリタの処理フローを示す。
【００３８】
まず、利用者もしくはサービスからサービス開始要求があると（ステップＳ１）、利用者のユーザプロファイル情報を共有エリアに取り込む（ステップＳ２）。次に、ユーザプロファイル情報に含まれる利用場所情報を基に、サービスシナリオリポジトリに対して、実行可能性があるサービスシナリオを検索する。なお、利用場所情報は種々の方法を用いてマルチエージェントシステムに通知できる。例えば、利用者のサービス要求時に利用者が入力したり、利用者端末位置を自動的に算出し、それをマルチエージェントシステムに通知する等の方法がある。その後、サービス開始要求者をチェックする（ステップＳ４）。この後からの処理手順はサービス開始を要求したものによって異なる。
【００３９】
利用者が要求してサービスを受けるようなプル型のサービス提供形態の場合には、検索されたサービスシナリオの実行条件を読み込み、共有エリアにある情報と実行条件を比較評価し、実行可能なサービスシナリオを絞り込む（ステップＳ５）。最後にどれを選択するかは利用者が判断する（ステップＳ６）。利用者がどのようにサービスシナリオを選択するかは、その場その場で利用者が選択する方法や、あらかじめ選択方法を利用者プロファイルとして登録しておき、実行するサービスシナリオを決定する方法等がある。後者の例としては、評価点の高いサービスシナリオから順に利用者がプロファイルで指定した分だけ利用者に提示し、利用者が実行したいサービスシナリオを複数個選択させる方法や、評価点が利用者プロファイルに指定されている閾値を超えたシナリオを選択させる方法がある。
【００４０】
一方、サービス提供者が利用者に対して、タイミングを見て情報を提供するプッシュ型のサービス提供型の場合には、検索されたサービスシナリオをサービス形態、利用者の入出力機器情報、実行条件と比較評価し、実行可能なサービスシナリオを絞り込み、評価点を算出する。その中で、利用者プロファイルに指定されている閾値を超えるサービスシナリオを選択する（ステップＳ７）。その結果、選択された複数個のサービスシナリオを、シナリオ解釈実行部にて、個々にサービスシナリオを評価し、逐次実行する（ステップＳ８）。なお、ステップＳ２〜ステップＳ７の処理はサービスシナリオインタプリタにおける実行条件評価部において行われ、ステップＳ８の処理はシナリオ解釈実行部において実行される。
【００４１】
図６にシナリオ解釈実行部４５の構成を示す。同図に示すように、シナリオ解釈実行部４５はシナリオ文解釈部４７、実行部４９、内部メモリ５１、メッセージ生成・送受信部５３を有する。シナリオ解釈実行部４５の動作を次に説明する。
【００４２】
選択されたサービスシナリオをシナリオ文解釈部４７にて、図２に示した４種類のシナリオ記述のいずれかに応じて解釈し、それぞれを実行部にて演算・実行する。その記述を全ての行に対して逐次実行する。情報を加工する、或いは評価する時には、利用者プロファイル等が管理されている共有エリアや作業用の内部メモリ５１への参照・更新を行う。他のエージェントへのメッセージを送信する時には、メッセージ生成・送受信部５３にてメッセージを組み上げ、通信プロトコルを介してメッセージを送る。返事を受ける必要がある時には、メッセージ応答を受けて、その結果を実行部４９へ返す。
【００４３】
次に、図５で説明したサービスシナリオをサービスシナリオリポジトリから検索してくる処理（ステップＳ３の処理）を、図７と図８を用いて詳細に説明する。
【００４４】
図７はサービスシナリオリポジトリの管理構造の例を示す図である。同図に示すように、サービスシナリオリポジトリは、住所や緯度経度や線路路線などの空間的な位置関係を示す情報をキーとした木構造のノードに、キーワードをインデックスとしたリスト構造がぶら下がる構造をとる。ここで、キーワードリストのインデックスとなる語彙は、1 個以上あればよい。また、最上位のノード５５には、全ての空間に共通するサービスシナリオのキーワードリスト５７がぶら下がる。第１位（最上位）ノード以下には、空間位置表現のノードが展開される。
【００４５】
ノードの展開方法は、場所の包含関係に基づき、より広範囲の地域表現が上位ノードとなる。例えば、図７に示すように、”光の丘”５９や”久里浜”６１、”津久井”６３は、”横須賀市”６５に属し、”横須賀市”６５や”横浜市”６７は”神奈川県”６９に属する等の住所表現を基にした表現や、”品川駅”７１や”横浜駅”７３、”久里浜駅”７５等の駅と”京浜急行線”７７といった路線の関係を基にした表現をとることができる。
【００４６】
それぞれのノードにぶら下がっているキーワードリストは、キーワードとサービスシナリオ名とサービスシナリオが格納されているポインタで管理されている。ここでは、サービスシナリオへのポインタは、ファイル名で示されている。
【００４７】
図８はサービスシナリオリポジトリからサービスシナリオを検索する処理を示すフローチャートである。同図を用いてサービスシナリオリポジトリからサービスシナリオを検索する処理について説明する。
【００４８】
まず、利用場所を基に利用場所の名称が合致するノードを検索する（ステップＳ１１）。検索時の合致判定方法に関しては、完全一致、前方一致、部分一致のいずれを採用するかや、あるノードが検索された時に、そのノードの上位ノードにぶら下がっているサービスシナリオも検索対象とするか等は、各空間位置表現方法に応じて選択できる。また、合致するノードが存在しない場合に、その後、利用場所情報を変更して再度検索する等の方法を取り込むことが出来る。
【００４９】
すなわち、利用場所変更が必要かどうかをチェックし（ステップＳ１２）、変更が必要であれば、空間情報マッピングテーブルを参照して、利用場所表現を変更する（ステップＳ１３）。利用場所表現を変更できたかどうかをチェックし（ステップＳ１４）、変更できた場合には、変換された利用場所表現を基にして再度サービスシナリオリポジトリを検索する（ステップＳ１１）。例えば、”神奈川県横須賀市野比”が利用場所として指定された時に、空間情報マッピングテーブルを参照して、利用場所表現を変換し、それを基に再度サービスシナリオリポジトリを検索することができる。その後、検索されたノードからユーザシナリオを取り出す（ステップＳ１５）。
【００５０】
ステップＳ１１からＳ１５までの処理を場所分類の数だけ繰り返した後、取り出したユーザシナリオに対して、重複したものを取り除く（ステップＳ１６）。そして、重複したものを取り除いた複数個のサービスシナリオに対して、指定されたキーワードやシナリオ名に対して文字列マッチング等を用いて該当するサービスシナリオを抽出する（ステップ１７）。キーワードやシナリオ名の指定は、例えば、サービス要求時に行われる。その結果を要求元に返却する。
【００５１】
上述したように、欲するサービスシナリオがサービスシナリオリポジトリに格納されていれば、利用者はそれを選択してサービスを享受することが出来る。一方、欲するサービスシナリオが存在しない場合には、前述したシナリオ自動生成部が利用者と対話しながら適切なシナリオを生成し、実行する。
【００５２】
図９に、動的にユーザシナリオを作成して実行するシナリオ自動生成部７９の構成を示す。同図に示すように、シナリオ自動生成部７９は、エージェント抽出部８１と整合化処理部８３から構成される。動作は次の通りである。
【００５３】
まず、エージェント抽出部８１がディレクトリファシリテータ８５から、利用者の場所情報を用いて、利用可能なサービスエージェントを抽出する。ここで、ディレクトリファシリテータ８５は単体サービスを提供しているサービスエージェントの動作状況を管理する。例えば、利用場所が久里浜駅である場合、ディレクトリファシリテータで管理される久里浜駅時刻表エージェント〜横浜中華リコメンドエージェント等のサービスエージェントから、エージェント候補として久里浜駅時刻表エージェント〜ファーストフードエージェントが検索される。
【００５４】
次に、絞り込まれたサービスエージェント（エージェント候補８７）をシナリオ整合化処理部８３にて、エージェントが持っているエージェントシナリオと利用者との対話を通して、サービスシナリオを動的に生成する。生成されたサービスシナリオは、サービスシナリオインタプリタのシナリオ解釈実行部にて逐次解釈され、実行される。なお、サービスシナリオは、アドホックサービスシナリオとしてシナリオ自動生成部により生成され、シナリオ解釈実行部にて実行される。
【００５５】
図１０は図９で説明したエージェントシナリオの記述例を示す図である。エージェントシナリオは、サービスエージェントに対して、そのサービスを受ける時に必要となる引数の利用者からの入力処理やサービスエージェントへの問い合わせ処理、サービス結果の出力を利用者へ提示する出力処理から構成されている。利用者からの入力処理は、利用者の代理エージェントを介すことによって、直接利用者との対話を回避することが出来る。例えば、図４で示したようなユーザエージェントを用いれば、同じ引数名に対する繰り返し問い合わせ回避や蓄積されているプロファイルを使った代行回答が可能となる。
【００５６】
シナリオ整合化処理部８３での処理は、得たいサービスの形態によって、何通りかの方法がある。図１１、図１２に、シナリオ整合化処理部８３における処理のフローチャートを示す。
【００５７】
図１１は、必要となる引数が少ない情報提供サービスなどをカスタマイズしたい場合における処理のフローチャートである。この場合、利用者は一括して利用するエージェントを選択する。
【００５８】
すなわち、同図に示すように、まず、利用者がエージェント候補一覧から利用順を指定する（ステップＳ２１）。次に、シナリオ整合化処理部が、選択されたエージェントのエージェントシナリオを取得する（ステップＳ２２）。そして、必要な引数名一覧を提示し、どのようにして入力を行うかを利用者に問い合わせる（ステップＳ２３）。このようにして取得したエージェントシナリオと引数入力方法を基にサービスシナリオを生成する（ステップＳ２４）。
【００５９】
図１２は、複数のエージェントが相互に関係し合うようなサービスシナリオを生成させる場合における処理のフローチャートである。この場合、最終的に欲しいサービスを提供するエージェントを選択し、そこで必要となる引数を得るために必要となるエージェントを芋づる式で選び出す。
【００６０】
図１２に示すように、まず、利用者が、エージェント候補の中から、欲する値を返すエージェントを選択する（ステップＳ３１）。次に、選択したエージェントのエージェントシナリオを取得し（ステップＳ３２）、必要となる引数をどうやって得るかを選択する（ステップＳ３３）。ここで、エージェントを使用して引数を得る場合、利用者が、エージェント候補の中から、引数の値を返すエージェントを選択する（ステップＳ３４）。ステップＳ３２〜Ｓ３４の処理を、必要な引数の取得方法が決まるまで繰り返す。ステップＳ３３の後、未解決引数がなくなれば、エージェントシナリオと引数入力方法を基にサービスシナリオを生成する（ステップＳ３５）。
【００６１】
次に、上記のシナリオ整合化処理部の処理の具体例を図１３及び図１４を用いて説明する。図１３は、図１１で説明した場合における具体例を説明するための図であり、図１４は、図１２で説明した場合における具体例を説明するための図である。
【００６２】
図１３、１４に示す具体例は、利用者が現在いる”久里浜駅”近辺のレストランからの道順を地図表示するサービスを提供する例である。
【００６３】
両方の場合において、シナリオ整合化処理に先立ち、利用者がシステムにアクセスしてきた場所である”久里浜駅”という情報をキーとして、ディレクトリファシリテータから、レストラン検索エージェントとファーストフードエージェントと久里浜駅時刻表エージェントと道案内エージェントが検索され、利用者に提示される。
【００６４】
図１３では、そこで、利用者は、自分の行きたい店を選んで、そこまでの道順を知りたいということから、レストラン検索エージェントと道案内エージェントを選択し、それぞれのエージェントシナリオ９０、９２を取得する（図１１におけるステップＳ２１、ステップＳ２２に相当する）。それらのエージェントシナリオを単に結合したサービスシナリオが、結合後のサービスシナリオ９４である。
【００６５】
このサービスシナリオ９４では、利用者に問い合わせなければならない引数が多く存在する。そこで、それらをどう処理するかを決定するため、引数を抽出し、その解決方法を利用者と対話して決定する（ステップＳ２３）。その結果を、結合後のサービスシナリオに演算し、整合化後のサービスシナリオ９６を得る（ステップＳ２４）。同図に示すように、例えば、引数loc に対しては利用場所情報を設定することとし、引数cat については利用者が入力することとしている。これによって、整合化後のサービスシナリオにおいては、loc には利用者場所情報が設定され、cat には、ジャンルを問い合わせた際の利用者からの入力値が設定される。
【００６６】
一方、図１４に示す場合においては、ディレクトリファシリテータから検索されたエージェントー覧から、最終的に入手したい道案内をサービスしてくれる道案内エージェントが選択されると、道案内エージェントのエージェントシナリオ９８を取得する（図１２におけるステップＳ３１、ステップＳ３２に相当する）。
【００６７】
そして、必要となる引数をどう解決するかを利用者に対して問い合わせる（ステップＳ３３）。ここでは、現在地(loc) とレストランの場所(dest)と経路を算出する方法(meth)が未解決である。現在地(loc) は、利用場所情報を使い、レストラン場所(dest)はレストラン検索エージェント（ステップＳ３４に相当）を使い、経路算出方法(meth)は利用者が入力する手段を選択する。ここで、レストラン検索エージェントのエージェントシナリオ１００を取得し、再度、未解決な引数を洗い出し、それらが現在の場所(loc) とレストランのジャンル(cat) であることが判明する。また、これらの未解決な引数の処理方法を決定するという処理を繰り返す（図１２におけるステップＳ３２〜Ｓ３４の処理を繰り返すことに相当する）。この例では、loc には利用者場所情報を設定することとし、cat は利用者が入力することとしている。図１４では、この後未解決な引数が無いことが判明して、そこまでの結果をまとめて、整合化後のサービスシナリオ１０２とする。
【００６８】
さて、上記のエージェントシステムにおいては、動的に生成したサービスシナリオを再利用する、若しくは、既に不要となったサービスシナリオをサービスシナリオリボジトリから削除するために、利用者が用いた端末環境や利用時間、利用場所および、そのサービスシナリオを特徴づけるキーワード等の実行条件とサービスシナリオを併せて管理することが可能である。これは後述するサービスシナリオマネージャにより行われる。例えば、利用者が、存在するサービスシナリオを削除する時には、利用者が指定したキーワードとインタフェースエージェントやユーザエージェントからの情報をキーとして、サービスシナリオリポジトリからサービスシナリオを特定し、それを削除する。
【００６９】
また、既に作成されているサービスシナリオに対して、サービスシナリオリボジトリと連携して、作成した人のみ参照可能、或いは、誰でも利用可能、或いは、ある特定のグループに属する人のみがアクセスできるなどの利用者制約を設定でき、かつ、実行・制御できる。これは後述するアクセスマネージャによって行われる。すなわち、サービスシナリオと利用者やあるグループへのアクセス可否を共に管理することで、利用範囲を限定することが可能となる。
【００７０】
更に、サービスシナリオが最後に利用された時刻を管理することで、不要となった、若しくは、ほとんど利用していないサービスシナリオを監視することが可能である。これは後述するガーページマネージャによって行われる。すなわち、サービスシナリオとそれを最後に実行した時刻と共に管理することで、利用されなくなった、若しくは、不要となったサービスシナリオを見つけ出し、削除することが可能となる。
【００７１】
図１５は、上記のサービスシナリオマネージャ１０４、アクセスマネージャ１０６、ガーベージマネージャ１０８と、サービスシナリオリポジトリ１１０との関係を示す図である。サービスシナリオマネージャ１０４は、図９で示したようなその場限りのサービスシナリオを、再利用可能とするためにサービスシナリオリポジトリ１１０に格納処理や削除処理を行う。アクセスマネージャ１０６は、サービスシナリオリポジトリ１１０に格納されているサービスシナリオをある限定した利用者に対して利用可能とする処理を行うと、不要となったサービスシナリオを見つけ削除する機能を有する。また、ガーベージマネージャ１０８はサービスシナリオを監視する。
【００７２】
図１６は、サービスシナリオマネージャが、サービスシナリオ自動生成処理後に生成されたサービスシナリオを、サービスシナリオリポジトリに格納するまでの処理を記述したフローチャートである。同図を用いてその処理について説明する。
【００７３】
まず、サービスシナリオ自動生成部によってサービスシナリオを生成する（ステップＳ４１）。前述したように、サービスシナリオは、アドホックサービスシナリオとして生成され、シナリオ解釈実行部にて実行される（ステップＳ４２）。次に、サービスシナリオマネージャは、生成されたサービスシナリオを格納するか否かを判断し（ステップＳ４３）、格納しない場合には処理を終了する。
【００７４】
サービスシナリオを格納する時には、先ず、利用者からシナリオ名とキーワードを問い合わせる（ステップＳ４４）。キーワードやシナリオ名は、そのシナリオを構成するサービスエージェント名称を組み合わせて作成してもよい。そして、格納するノードをサービスシナリオリポジトリから検索する（ステップＳ４５）。ここで、利用場所条件の変更が必要であれば、利用場所条件を空間情報マッピングテーブルを参照して変更し、再びサービスリポジトリのノードを検索する（ステップＳ４６、Ｓ４７、Ｓ４５）。ノードが検索できたときには、サービスシナリオをユニークな名称と共に２次媒体に格納する（ステップＳ４８）。そして、そのアドレス、キーワード、サービスシナリオ名、利用時間、及びファイル名を、ノードにぶら下がっているキーワードリストに格納する（ステップＳ４９）。
【００７５】
図１７は、利用者が不要と判断したサービスシナリオを削除する処理を示すフローチャートを示している。同図に示すように、サービスシナリオマネージャでは、先ず、削除したサービスシナリオを選択するために、利用者に対して利用場所情報やキーワードやシナリオ名を問い合わせる（ステップＳ５１）。その結果を受けて、サービスシナリオリポジトリを検索し、該当する可能性のあるサービスシナリオを検索する。すなわち、サービスシナリオリポジトリの全てのノードに対して、利用時間、キーワード、シナリオ名等が合致するユーザシナリオとノードを検索する。この検索の方法は、図８で説明した方法と同様である。
【００７６】
その結果を、再度利用者に提示して、削除するサービスシナリオを利用者に選択させる（ステップＳ５３）。そして、削除するサービスシナリオを、該当するノードのキーワードリストから削除する（ステップＳ５４、Ｓ５５）。削除しない場合には、次のサービスリストについて削除の可否を問い合わせる（ステップＳ５４、Ｓ５３）。ステップＳ５３〜ステップＳ５５の処理を検索された全てのサービスシナリオ分繰り返して、削除処理を終了する。
【００７７】
サービスシナリオに関するアクセス制御については、図１５に示すアクセスマネージャ１０６が行う。具体的には、次のような処理を行う。
【００７８】
図１８に示すように、サービスシナリオリポジトリで管理されているキーワードリストの項目に、利用者とグループという属性を追加し、サービスシナリオリポジトリからの検索結果に対して、アクセスマネージャが、その結果を吟味し、利用者制限がかけられているサービスシナリオに関しては、検索結果から外すこととしている。なお、図１８に示すキーワードリストは、利用時間（図では" 時”の項目）を有する例である。
【００７９】
また、図１８に示すように、不要と判断されたサービスシナリオを削除するためには、当該サービスシナリオが最後に実行された時刻を、キーワードリストが持つことで行う。図１５に示すガーべージマネージャ１０８は、定期的にサービスシナリオリポジトリに格納されているサービスシナリオを点検し、決められた時刻を過ぎているサービスシナリオをシナリオリストから削除する。
【００８０】
なお、本発明は上記の実施例に限定されることなく、特許請求の範囲内で種々変更・応用が可能である。
【００８１】
【発明の効果】
以上説明したように、この発明によれば、利用場所や利用時間などのその場に応じたサービスを絞りこむことができるので、利用者の使い勝手を向上させることができる。
【００８２】
また、利用者が欲している複合サービスを複数の単体サービスを組み合わせ作り出すことができるので、利用者の意図に応じたサービス提供が可能となる。
【００８３】
更に、利用者の考えた複合サービスを蓄積でき、再利用できるので、サービス提供者主導によるカスタマイズが可能となり、サービスの生産性が向上するなどの効果を奏する。
【００８４】
【図面の簡単な説明】
【図１】本発明における実施例の概要構成図である。
【図２】サービスシナリオと実行条件の記述例を示す図である。
【図３】サービスシナリオインタプリタの構成図である。
【図４】共有エリア情報の取得方法を説明するための図である。
【図５】サービスシナリオインタプリタの処理を示すフローチャートである。
【図６】シナリオ解釈実行部の構成図である。
【図７】サービスシナリオリポジトリの管理構造図である。
【図８】サービスシナリオリポジトリを検索する処理のフローチャートである。
【図９】シナリオ自動生成部の構成図である。
【図１０】エージェントシナリオ記述例を示す図である。
【図１１】シナリオ整合化処理のフローチャートである。
【図１２】他の例におけるシナリオ整合化処理のフローチャートである。
【図１３】シナリオ整合化処理を具体的に説明するための図である。
【図１４】他の例のシナリオ整合化処理を具体的に説明するための図である。
【図１５】サービスシナリオマネージャ、アクセスマネージャ、ガーページマネージャ及びサービスシナリオリポジトリの関連を示す図である。
【図１６】サービスシナリオマネージャの格納処理のフローチャートである。
【図１７】サービスシナリオ削除処理のフローチャートである。
【図１８】キーワードリストの構造拡張図である。
【符号の説明】
１  マルチエージェントシステム
３  ネットワーク
５  利用者端末
７、２１、２３  エージェント
９  ディレクトリファシリテータ
１１、１９  サービスシナリオ
１３、２７  サービスシナリオリポジトリ
１５、２９  サービスシナリオインタプリタ
１７  シナリオ自動生成部
２５  実行条件
３１  実行条件評価部
３３  シナリオ解釈実行部
３５  共有エリア
３７  ユーザプロファイル情報
３９  ユーザエージェント
４１  インタフェースエージェント
４３  サービスエージェント
４５  シナリオ解釈実行部
４７  シナリオ文解釈部
４９  実行部
５１  内部メモリ
５３  メッセージ生成・送受信部
５５、５９〜７７  ノード
５７  キーワードリスト
７９  シナリオ自動生成部
８１  エージェント抽出部
８３  整合化処理部
８５  ディレクトリファシリテータ
８７  エージェント候補
９０、１００  レストラン検索エージェントのエージェントシナリオ
９２、９８  道案内エージェントのエージェントシナリオ
９４  結合後のサービスシナリオ
９６、１０２  整合化後のサービスシナリオ
１０４  サービスシナリオマネージャ
１０６  アクセスマネージャ
１０８  ガーベージマネージャ
１１０  サービスシナリオリポジトリ
【図１】
0003799925.tif 000002
【図２】
0003799925.tif 000003
【図３】
0003799925.tif 000004
【図４】
0003799925.tif 000005
【図５】
0003799925.tif 000006
【図６】
0003799925.tif 000007
【図７】
0003799925.tif 000008
【図８】
0003799925.tif 000009
【図９】
0003799925.tif 000010
【図１０】
0003799925.tif 000011
【図１１】
0003799925.tif 000012
【図１２】
0003799925.tif 000013
【図１３】
0003799925.tif 000014
【図１４】
0003799925.tif 000015
【図１５】
0003799925.tif 000016
【図１６】
0003799925.tif 000017
【図１７】
0003799925.tif 000018
【図１８】
0003799925.tif 000019