(57)【要約】  本携帯端末は、各々状態の検出を行う複数の検出モジュールと、複数の検出モジュールによる検出の結果に関する第１の条件について、複数の検出モジュールが起動される順序を決定する決定部と、決定された順序における最初の検出モジュールを起動し、最初の検出モジュール以外の検出モジュールを、決定された順序における１つ前の検出モジュールによる検出の結果が、第１の条件に含まれる条件のうち当該１つ前の検出モジュールに対応する条件を満たす場合に起動する起動部とを有する。
2015068296.tif 000002
【特許請求の範囲】
【請求項１】
各々状態の検出を行う複数の検出モジュールと、
前記複数の検出モジュールによる検出の結果に関する第１の条件について、前記複数の検出モジュールが起動される順序を決定する決定部と、
決定された前記順序における最初の検出モジュールを起動し、前記最初の検出モジュール以外の検出モジュールを、決定された前記順序における１つ前の検出モジュールによる検出の結果が、前記第１の条件に含まれる条件のうち当該１つ前の検出モジュールに対応する条件を満たす場合に起動する起動部と、
を有する携帯端末。
【請求項２】
前記順序は、
消費電力が少ない検出モジュールほど先に起動される順序である
ことを特徴とする請求項１記載の携帯端末。
【請求項３】
前記順序は、
前記第１の条件に含まれる条件のうち論理和によって結合される条件に対応する検出モジュールが同時に起動され、前記第１の条件に含まれる条件のうち論理積によって結合される条件に対応する検出モジュールが段階的に起動される順序である
ことを特徴とする請求項１又は２記載の携帯端末。
【請求項４】
前記決定部は、
前記第１の条件について、前記複数の検出モジュールを起動する順序を複数生成し、
複数の順序の各々について、前記複数の検出モジュールの各々の消費電力に重み付け値を乗じた値の合計値を算出し、
前記複数の順序のうち、算出された前記合計値が所定の値より小さい順序を選択する
処理を実行し、
前記重み付け値は、
先に起動される検出モジュールほど大きくなる
ことを特徴とする請求項１記載の携帯端末。
【請求項５】
前記決定部は、
前記第１の条件について、前記複数の検出モジュールを起動する順序を複数生成し、
複数の順序の各々について、前記複数の検出モジュールの各々の消費電力に重み付け値を乗じた値の合計値を算出し、
前記複数の順序のうち、算出された前記合計値が所定の値より小さい順序を選択する
処理を実行し、
前記重み付け値は、
前記検出モジュールに対応する条件を満たす状態が発生する確率である
ことを特徴とする請求項１記載の携帯端末。
【請求項６】
前記決定部は、
前記複数の検出モジュールによる検出の結果に関する条件が複数有る場合、前記複数の検出モジュールを起動する順序を、前記複数の検出モジュールの各々の消費電力に基づき、複数の条件に対して１つ決定する
請求項１記載の携帯端末。
【請求項７】
各々状態の検出を行う複数の検出モジュールによる検出の結果に関する第１の条件について、前記複数の検出モジュールが起動される順序を決定し、
決定された前記順序における最初の検出モジュールを起動し、
前記最初の検出モジュール以外の検出モジュールを、決定された前記順序における１つ前の検出モジュールによる検出の結果が、前記第１の条件に含まれる条件のうち当該１つ前の検出モジュールに対応する条件を満たす場合に起動する、
処理をコンピュータが実行する起動方法。
【請求項８】
各々状態の検出を行う複数の検出モジュールによる検出の結果に関する第１の条件について、前記複数の検出モジュールが起動される順序を決定し、
決定された前記順序における最初の検出モジュールを起動し、
前記最初の検出モジュール以外の検出モジュールを、決定された前記順序における１つ前の検出モジュールによる検出の結果が、前記第１の条件に含まれる条件のうち当該１つ前の検出モジュールに対応する条件を満たす場合に起動する、
処理をコンピュータに実行させるための起動プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
状態の検出技術に関する。
【背景技術】
【０００２】
スマートフォン或いはタブレット端末等の携帯端末には、ＧＰＳ（Global Positioning System）、加速度センサ、或いはマイク等、状態を検出するためのモジュール（以下、検出モジュールと呼ぶ）が搭載される。そして、携帯端末には、これらの検出モジュールによる検出の結果を利用するアプリケーションが搭載される。例えば、ＧＰＳによりユーザの位置を検出し、目的地までのルートを提示するアプリケーション、或いは、行動を検出するための検出モジュールによってユーザの行動を検出し、ユーザが或る行動をした場合に通知を行うアプリケーション等が有る。【０００３】
また、複数の検出モジュールによって、イベントＥ１乃至Ｅｎ（ｎは２以上の自然数）が発生したことを検出し、予め定められた処理を実行する技術がある。例えば、「会議室ａ１において、ｂ１氏に会う」という条件を満たした場合に、所定のアプリケーションを起動するというルールが有るとする。この場合、「会議室ａ１において」という条件が満たされたか否かを、ＧＰＳ等の検出モジュールによって判定し、「ｂ１氏に会う」という条件が満たされたか否かを、人検出のための検出モジュールによって判定する。そして、両方の条件が満たされた場合に、携帯端末において所定のアプリケーションが起動される。【０００４】
但し、携帯端末に搭載されているバッテリの容量には限りがあるため、複数の検出モジュールを動作させることによって消費電力が多くなると、ユーザが携帯端末を使用できる時間が短くなるという問題がある。従来の技術においては、携帯端末において複数の検出モジュールを動作させる場合における消費電力には着目されていない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−７９２４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、１つの側面では、本発明の目的は、状態の検出に要する電力を削減するための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る携帯端末は、各々状態の検出を行う複数の検出モジュールと、複数の検出モジュールによる検出の結果に関する第１の条件について、複数の検出モジュールが起動される順序を決定する決定部と、決定された順序における最初の検出モジュールを起動し、最初の検出モジュール以外の検出モジュールを、決定された順序における１つ前の検出モジュールによる検出の結果が、第１の条件に含まれる条件のうち当該１つ前の検出モジュールに対応する条件を満たす場合に起動する起動部とを有する。
【発明の効果】
【０００８】
状態の検出に要する電力を削減できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、携帯端末の機能ブロック図である。
【図２】図２は、ルールデータ格納部に格納されるデータの一例を示す図である。
【図３】図３は、電力データ格納部に格納されるデータの一例を示す図である。
【図４】図４は、状態ログ格納部に格納されるデータの一例を示す図である。
【図５】図５は、ユーザからルールの入力を受け付けた場合に実行する処理の処理フローを示す図である。
【図６】図６は、ツリー生成処理の処理フローを示す図である。
【図７】図７は、要素生成処理の処理フローを示す図である。
【図８】図８は、要素についてのデータの一例を示す図である。
【図９】図９は、生成処理の処理フローを示す図である。
【図１０】図１０は、ルールツリーの一例を示す図である。
【図１１】図１１は、モデル生成処理の処理フローを示す図である。
【図１２】図１２は、ルールツリー及び機能についての条件を示す図である。
【図１３】図１３は、ルールツリー及び機能についての条件を示す図である。
【図１４】図１４は、起動順序のパターンを示す図である。
【図１５】図１５は、算出処理の処理フローを示す図である。
【図１６】図１６は、機能テーブルの一例を示す図である。
【図１７】図１７は、算出処理についての設定値を示す図である。
【図１８】図１８は、重み付け値の一例を示す図である。
【図１９】図１９は、重み付け値の一例を示す図である。
【図２０】図２０は、パターン毎に算出される判定値の一例を示す図である。
【図２１】図２１は、モデル生成処理の処理フローを示す図である。
【図２２】図２２は、状態データの一例を示す図である。
【図２３】図２３は、状態データ間の関係について説明するための図である。
【図２４】図２４は、制御部が実行する処理の処理フローを示す図である。
【図２５】図２５は、検出モジュールが有するデータ及びメソッドの一例を示す図である。
【図２６】図２６は、第２の実施の形態における順序の決定方法について説明するための図である。
【図２７】図２７は、ルールの一例を示す図である。
【図２８】図２８は、複数のルールが登録された場合における処理の一例を示す図である。
【図２９】図２９は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
図１に、本実施の形態における携帯端末１の機能ブロック図を示す。携帯端末１は、ユーザインタフェース１０１と、サービス実行部１０２と、生成部１０３と、制御部１０４と、ルールデータ格納部１０５と、電力データ格納部１０６と、モデル格納部１０７と、ルールツリー格納部１０８と、状態ログ格納部１０９と、検出モジュール１５１乃至１５３とを有する。
【００１１】
ユーザインタフェース１０１は、携帯端末１が実行する処理についてのルールの入力をユーザから受け付け、ルールデータ格納部１０５に格納する。また、ユーザインタフェース１０１は、ルールを削除することを指示する削除指示をユーザから受け付け、削除指示において指定されたルールのデータをルールデータ格納部１０５から削除する。
【００１２】
サービス実行部１０２は、制御部１０４からの指示に基づき、サービス（本実施の形態においては、例えば、アプリケーションプログラムの起動等）を実行する。
【００１３】
生成部１０３は、ルールデータ格納部１０５に格納されているデータに基づき、後述するルールツリーを生成し、ルールツリーのデータをルールツリー格納部１０８に会格納する。また、生成部１０３は、電力データ格納部１０６に格納されているデータ、ルールツリー格納部１０８に格納されているデータ、及び状態ログ格納部１０９に格納されているデータに基づき、後述する状態遷移モデルを生成し、モデル格納部１０７に格納する。
【００１４】
制御部１０４は、ルールツリー格納部１０８に格納されているデータに基づき、サービス実行部１０２によるサービスの実行を制御する。また、制御部１０４は、モデル格納部１０７に格納されている状態遷移モデルに基づき、検出モジュール１５１乃至１５３の起動及び停止を制御する。
【００１５】
検出モジュール１５１乃至１５３は、ＧＰＳ、加速度センサ、或いはマイク等であり、携帯端末１、ユーザ、或いは環境等の状態を検出する。すなわち、検出モジュール１５１乃至１５３は、状態を検出する機能を有するモジュールである。なお、図１において検出モジュールの数は３であるが、数に限定は無い。
【００１６】
図２に、ルールデータ格納部１０５に格納されるデータの一例を示す。図２の例では、条件と、サービスの識別情報と、パラメータとが格納される。例えば１行目に示したルールは、「条件『ｄ１』を満たす場合に、パラメータ『Ｚ』を用いて、サービス『α』を実行する」というルールである。なお、サービスの識別情報は、「http://xxx.xxx.xxx」というようなＵＲＬ（Uniform Resource Locator）であってもよい。
【００１７】
図３に、電力データ格納部１０６に格納されるデータの一例を示す。図３の例では、機能（すなわち検出モジュール）の識別情報と、その検出モジュールの平均消費電力のデータとが格納される。本実施の形態においては、１つの検出モジュールが、状態を検出する機能を１つ有しているため、機能の識別情報によって検出モジュールを特定することができる。
【００１８】
図４に、状態ログ格納部１０９に格納されるデータの一例を示す。図４の例では、時刻と、その時刻に起きた状態の変化を示す情報とが格納される。
【００１９】
次に、図５乃至図２８を用いて、携帯端末１の動作について説明する。まず、ユーザからルールの入力を受け付けた場合における動作について説明する。
【００２０】
携帯端末１におけるユーザインタフェース１０１は、ユーザからルールの入力を受け付け、そのルールのデータをルールデータ格納部１０５に格納する。そして、ユーザインタフェース１０１は、ツリー生成処理及びモデル生成処理の実行を生成部１０３に指示する。
【００２１】
これに応じ、生成部１０３は、ツリー生成処理を実行する（図５：ステップＳ１）。ツリー生成処理については、図６乃至図１０を用いて説明する。
【００２２】
まず、生成部１０３は、ルールデータ格納部１０５から未処理のルールを１つ特定する（図６：ステップＳ１１）。そして、生成部１０３は、要素生成処理を実行する（ステップＳ１３）。要素生成処理については、図７乃至図９を用いて説明する。
【００２３】
生成部１０３は、特定されたルールに含まれる条件について、要素データを生成する（図７：ステップＳ２１）。図８に、要素データの一例を示す。図８の例では、要素の種別と、サービスデータと、親要素（本実施の形態においては、その要素に接続される要素のうちルールツリーにおいて上の階層に属する要素）のリンクと、子要素（本実施の形態においては、その要素に接続される要素のうちルールツリーにおいて下の階層に属する要素）のリンクと、フラグとが含まれる。要素の種別には、単体、ＡＮＤ（論理積）、又はＯＲ（論理和）のいずれかが設定される。サービスデータには、サービスの識別情報及びパラメータが含まれる。親要素のリンクには、親要素の識別情報が登録される。子要素のリンクには、子要素のリンクには、子要素の識別情報が登録される。フラグには、その要素についての条件を満たしているか否かを示すデータが登録される。但し、ステップＳ２１の時点では、要素データは空である。
【００２４】
生成部１０３は、ステップＳ１１において特定されたルールに含まれるサービスの識別情報及びパラメータを、ステップＳ２１において生成された要素データに登録する（ステップＳ２３）。
【００２５】
生成部１０３は、生成処理を実行する（ステップＳ２５）。そして呼び出し元の処理に戻る。ここで、生成処理について、図９を用いて説明する。
【００２６】
生成部１０３は、ステップＳ１１において特定されたルールに含まれる要素が、単体要素のみであるか判断する（図９：ステップＳ３１）。例えば、図２における１行目に示したルールは、条件に単体要素ｄ１のみが含まれるため、ステップＳ３１において「Ｙｅｓ」であると判断される。
【００２７】
単体要素のみである場合（ステップＳ３１：Ｙｅｓルート）、生成部１０３は、ステップＳ２１で生成した要素データにおいて、要素の種別を「単体」に設定する（ステップＳ３３）。
【００２８】
一方、単体要素のみではない場合（ステップＳ３１：Ｎｏルート）、生成部１０３は、ステップＳ１１において特定されたルールにおいて、ＡＮＤによって複数の単体要素が結合されているか判断する（ステップＳ３５）。例えば、図２における２行目に示したルールは、ＡＮＤによって複数の単体要素が結合されているため、ステップＳ３５において「Ｙｅｓ」であると判断される。
【００２９】
ＡＮＤによって複数の単体要素が結合されている場合（ステップＳ３５：Ｙｅｓルート）、生成部１０３は、ステップＳ２１で生成した要素データにおいて、要素の種別を「ＡＮＤ」に設定する（ステップＳ３７）。
【００３０】
一方、ＡＮＤによって複数の単体要素が結合されているわけではない場合（ステップＳ３５：Ｎｏルート）、生成部１０３は、ステップＳ２１で生成した要素データにおいて、要素の種別を「ＯＲ」に設定する（ステップＳ３９）。
【００３１】
生成部１０３は、親要素のリンク及び子要素のリンクを生成し、ステップＳ２１で生成した要素データに登録する（ステップＳ４１）。親要素は、処理対象の要素に接続されており且つ１つ上の階層に属する要素である。親要素が存在しない場合には、子要素のリンクのみを生成する。子要素は、処理対象の要素に接続されており且つ１つ下の階層に属する要素である。例えば、処理対象の要素が「ＡＮＤ」である場合、子要素は、ＡＮＤによって接続される要素である。より具体的には、条件が「ａ２  ＡＮＤ  ｃ１」であり且つ処理対象の要素が「ＡＮＤ」である場合には、子要素は「ａ２」及び「ｃ１」である。
【００３２】
生成部１０３は、子要素について、要素データを生成する（ステップＳ４３）。そして、生成部１０３は、子要素について生成処理を実行する（ステップＳ４５）。なお、子要素が複数有る場合には、各子要素についてステップＳ４５の処理が実行される。そして呼び出し元の処理に戻る。
【００３３】
以上のような処理によって、１つのルールに対し１つのルールツリーが生成される。生成されたルールツリーは、一旦ルールツリー格納部１０８に格納される。
【００３４】
図６の説明に戻り、生成部１０３は、ルールデータ格納部１０５に未処理のルールが有るか判断する（図６：ステップＳ１５）。未処理のルールが有る場合（ステップＳ１５：Ｙｅｓルート）、ステップＳ１１の処理に戻る。一方、未処理のルールが無い場合（ステップＳ１５：Ｎｏルート）、生成部１０３は、ルールツリー格納部１０８に格納されているルールツリーの数が複数である場合には、ルールツリー格納部１０８から複数のルールツリーを取り出し、複数のルールツリーをＯＲ要素で結合し（ステップＳ１７）、ルールツリー格納部１０８に格納する。そして処理を終了する。なお、ルールツリー格納部１０８に複数のルールツリーが無い（すなわち、ルールデータ格納部１０５にデータが格納されているルールが１つである）場合には、ステップＳ１７の処理は省略される。
【００３５】
以上のような処理を実行すると、例えば、図１０に示すようなルールツリーが生成される。図１０において、楕円の図形は要素を表し、要素間の線分は接続を表す。要素１００１の種別はＯＲであり、要素１００３及び１００４の種別はＡＮＤであり、それ以外の要素の種別は単体である。なお、図１０に示したルールツリーは、図２に示したデータがルールデータ格納部１０５に格納されている場合に生成されるルールツリーである。よって、条件「ｄ１」についてのルールツリーと、条件「ａ２  ＡＮＤ  ｃ１」についてのルールツリーと、条件「ａ１  ＡＮＤ  ｂ１」についてのルールツリーとを含み、これらのルールツリーが要素１００１で結合されている。また、要素１００２、１００３及び１００４には、サービスの識別情報及びパラメータが登録されている。要素１００１は第１階層に属し、要素１００２、１００３及び１００４は第２階層に属し、それ以外の要素は第３階層に属する。
【００３６】
図５の説明に戻り、生成部１０３は、モデル生成処理を実行する（ステップＳ３）。モデル生成処理については、図１１乃至図２３を用いて説明する。
【００３７】
まず、生成部１０３は、ルールツリー格納部１０８に格納されているルールツリーから、機能についての条件を生成する（図１１：ステップＳ５１）。機能についての条件を生成する際には、ＯＲで結合される条件を判定するための検出モジュールを同時に起動し、ＡＮＤで結合される条件を判定するための検出モジュールを段階的に起動する。
【００３８】
例えば、ルールツリーが図１２に示したルールツリーである場合、機能についての条件１２０１が生成される。図１２においては、楕円の図形は要素を表し、要素間の線分は接続を表す。条件において、「／」は、段階的に起動することを表し、「＋」は、同時に起動することを表す。例えばＤ／Ａという条件は、機能Ｄを有する検出モジュールを起動した後に機能Ａを有する検出モジュールを起動する、又は、機能Ａを有する検出モジュールを起動した後に機能Ｄを有する検出モジュールを起動する、のいずれかであることを表す。
【００３９】
なお、図１２における第２階層のＯＲ以下のルールツリーについては、機能についての条件として条件１２０２が生成され、第３階層のＡＮＤ以下のルールツリーについては、機能についての条件として条件１２０３が生成される。条件１２０２は、条件ｃ１を検出するための機能Ｃと、条件１２０３とを「＋」で結合することにより生成される。条件１２０１は、条件ａ１を検出するための機能Ａと、条件ｂ１を検出するための機能Ｂと、条件１２０２とを「／」で結合することにより生成される。
【００４０】
また、ルールツリーが図１３に示したルールツリーである場合、機能についての条件１３０１が生成される。図形及び記号の意味は図１２と同様である。図１３における第２階層のＡＮＤ１３０２以下のルールツリーについては、機能についての条件として条件１３０２が生成され、第２階層のＡＮＤ１３０３以下のルールツリーについては、機能についての条件として条件１３０３が生成される。条件１３０１は、条件ｄ１を検出するための機能Ｄと、条件１３０２と、条件１３０３とを「＋」で結合することにより生成される。
【００４１】
以上のような処理をする理由は、ＯＲについては、ＯＲによって結合される条件のうち１つでも満たされた場合、ＯＲについての条件は成立するからである。一方、ＡＮＤについては、ＡＮＤによって結合される条件のうち１つでも満たされない場合には、そのＡＮＤについての条件は成立しないからである。例えば、「ｘ１  ＯＲ  ｙ１」という条件の場合、機能Ｘを有する検出モジュールと、機能Ｙを有する検出モジュールとの両方を同時に起動する。一方、「ｘ１  ＡＮＤ  ｙ１」という条件の場合、機能Ｘを有する検出モジュールと、機能Ｙを有する検出モジュールとを段階的に起動する。なお、「段階的に」とは、最初に起動した検出モジュールによって条件が満たされたことが確認された場合に次の検出モジュールを起動するという意味である。
【００４２】
そして、生成部１０３は、ステップＳ５１において生成された、機能についての条件から、起動順序のパターンを生成する（ステップＳ５３）。具体的には、「＋」によって結合される条件についての機能を有する検出モジュールを同時に起動し、「／」によって結合される条件についての機能を有する検出モジュールを段階的に起動するとして、起動順序のパターンを生成する。
【００４３】
例えば図１２に示した条件１２０１については、図１４に示すような起動順序のパターンが生成され、例えばＲＡＭ（Random Access Memory）に格納される。図１４の例では、各パターンについて、第１階層に属する機能及びその機能によって判定が行われる条件と、第２階層に属する機能及びその機能によって判定が行われる条件と、第３階層に属する機能及びその機能によって判定が行われる条件と、第４階層に属する機能及びその機能によって判定が行われる条件と、判定値とが示されている。但し、ステップＳ５３の時点では、判定値の欄は空である。
【００４４】
第１階層に属する機能を有する検出モジュールは最初に起動され、第２階層に属する機能を有する検出モジュールはその次に起動され、第３階層に属する機能を有する検出モジュールはその次に起動され、第４階層に属する機能を有する検出モジュールはその次に起動される。例えば１行目のデータは、最初に機能Ａを有する検出モジュールを起動し、条件ａ１が満たされた場合に機能Ｂを有する検出モジュールを起動し、条件ｂ１が満たされた場合に機能Ｃを有する検出モジュール及び機能Ａを有する検出モジュールを起動する。そして、条件ｃ１が満たされた場合には、機能Ａを有する検出モジュールが条件ａ２を検出することを停止し、条件ａ２が満たされた場合には、機能Ｄを有する検出モジュールを起動する。なお、パターン１の第４階層における「−Ａ（ａ２用）」は、機能Ａを有する検出モジュールが条件ａ２を検出することを停止することを意味する。
【００４５】
そして、生成部１０３は、算出処理を実行する（ステップＳ５５）。算出処理については、図１５乃至図２０を用いて説明する。
【００４６】
まず、生成部１０３は、ステップＳ５３において生成されたパターンのうち未処理のパターン（以下、処理対象のパターンと呼ぶ）を１つ特定する（図１５：ステップＳ８１）。
【００４７】
生成部１０３は、機能テーブル及び算出処理についての設定値を初期化する（ステップＳ８３）。具体的には、機能テーブルを空にすると共に、算出処理についての設定値を全て０にする。図１６に、機能テーブルの一例を示す。図１６の例では、機能の識別情報と、その機能によって検出される条件とが格納される。図１７に、算出処理についての設定値を示す。図１７の例では、分岐数と、判定値と、符号と、階層を表す値とが含まれる。符号は、以下で説明するステップＳ８６の処理結果に基づき、＋１、０、−１のいずれかが設定される。そして、生成部１０３は、算出処理についての設定値のうち、階層を表す値を１に設定する（ステップＳ８４）。
【００４８】
生成部１０３は、処理対象の階層（ここでは、階層を表す数値が示す階層。例えば、階層を表す数値が１である場合、第１階層。）において未処理の分岐（以下、処理対象の分岐と呼ぶ）を１つ特定する（ステップＳ８５）。
【００４９】
生成部１０３は、処理対象の分岐について、機能テーブルに条件を追加又は機能テーブルにおける条件を削除する（ステップＳ８６）。具体的には、処理対象の階層における処理対象の分岐において、機能の符号が正である場合には、その機能についての条件を機能テーブルに追加する。一方、処理対象の階層における処理対象の分岐において、機能の符号が負である場合には、その機能についての条件を機能テーブルから削除する。
【００５０】
生成部１０３は、ステップＳ８６の処理結果に基づき、算出処理についての設定値のうち符号を設定する（ステップＳ８７）。具体的には、ステップＳ８６の処理によって、条件の数が０から１に増えた場合には「＋１」を設定し、条件の数が１から０に減った場合には「−１」を設定し、それ以外である場合には「０」を設定する。
【００５１】
生成部１０３は、算出処理についての設定値のうち分岐数を設定する（ステップＳ８９）。分岐数は、処理対象の階層における分岐の数である。例えば、図１４のパターン１における第３階層及び第４階層の場合、分岐数は２であり、第１階層及び第２階層の場合、分岐数は１である。
【００５２】
生成部１０３は、処理対象の階層における処理対象の分岐について、検出モジュールの平均の消費電力＊符号＊重み付け値＊（１／分岐数）を算出し、判定値に加算する（ステップＳ９１）。なお、処理対象の階層について初めてステップＳ９１の処理を実行する場合には、判定値は０であるので、ステップＳ９１において算出された値が判定値になる。また、平均の消費電力は、電力データ格納部１０６から抽出される。
【００５３】
重み付け値は、例えば図１８に示すように、階層が上位であるほど大きい値とする。このようにすることで、下位の階層に属する機能の消費電力の大きさよりも上位の階層に属する機能の消費電力の大きさの方が判定値に反映されやすくなる。これは、上位の階層に属する機能を有する検出モジュールの方が、頻繁に動作する可能性が高いと考えられるからである。
【００５４】
また、重み付け値は、図１９に示すような値であってもよい。図１９の例では、状態になる確率が重み付け値として登録される。第１階層の機能を有する検出モジュールは、常に動作するので、１．０が登録される。第２階層については、第１階層の機能により検出される状態になる確率（ここでは、条件ａ１が成立する確率）が登録される。第３階層については、第１階層の機能により検出される状態になり且つ第２階層の機能により検出される状態になる確率（ここでは、条件ａ１が成立し且つ条件ｂ１が成立する確率）が登録される。なお、確率は、状態ログ格納部１０９に格納されているデータを用いて、その状態である時間を単位時間で割ることにより求められる。
【００５５】
そして、生成部１０３は、処理対象の階層に未処理の分岐が有るか判断する（ステップＳ９３）。未処理の分岐が有る場合（ステップＳ９３：Ｙｅｓルート）、ステップＳ８５の処理に戻る。
【００５６】
一方、未処理の分岐が無い場合（ステップＳ９３：Ｎｏルート）、生成部１０３は、算出された判定値を、例えばＲＡＭに格納する。そして、生成部１０３は、処理対象のパターンに未処理の階層が有るか判断する（ステップＳ９５）。未処理の階層が有る場合（ステップＳ９５：Ｙｅｓルート）、生成部１０３は、階層を表す数値を１インクリメントし、機能テーブル及び算出処理についての設定値のうち階層を表す数値以外を初期化する（ステップＳ９７）。そしてステップＳ８５の処理に戻る。
【００５７】
未処理の階層が無い場合（ステップ９５：Ｎｏルート）、生成部１０３は、未処理のパターンが有るか判断する（ステップＳ９９）。未処理のパターンが有る場合（ステップＳ９９：Ｙｅｓルート）、未処理のパターンについて処理するため、ステップＳ８１の処理に戻る。一方、未処理のパターンが無い場合（ステップＳ９９：Ｎｏルート）、呼び出し元の処理に戻る。
【００５８】
以上のような処理を実行すれば、例えば図２０に示すような判定値が算出される。図２０の例では、各パターンについて、そのパターンの消費電力の目安を表す判定値が算出されている。本実施の形態においては、この判定値が小さいほど、好ましいパターンである。
【００５９】
図１１の説明に戻り、生成部１０３は、判定値に基づき、処理対象のパターンを決定する（ステップＳ５７）。例えば、判定値が最も小さいパターンを、処理対象のパターンとする。処理は端子Ａを介して図２１のステップＳ５９に移行する。
【００６０】
図２１の説明に移行し、生成部１０３は、処理対象のパターンにおける第１階層について、状態データを生成し（ステップＳ５９）、モデル格納部１０７に格納する。図２２に、状態データの一例を示す。図２２の例では、条件と、機能リストと、子状態へのリンクと、フラグとが含まれる。条件は、その状態を表す条件（例えば、ａ１）である。機能リストには、その状態である場合に実行される機能の識別情報が登録される。子状態へのリンクには、１つ下の階層における機能についての条件が登録される。フラグは、その状態であるか否かを示すデータである。
【００６１】
また、生成部１０３は、処理対象のパターンにおける第１階層の機能についての条件を、状態データに登録する（ステップＳ６１）。また、生成部１０３は、状態データにおける機能リストに、符号付きの機能を登録する（ステップＳ６３）。但し、符号が正である場合には符号を付さなくてもよい。
【００６２】
生成部１０３は、登録された機能についての条件を満たす状態の状態データ及び登録された機能についての条件を満たさない状態の状態データを生成し（ステップＳ６５）、モデル格納部１０７に格納する。
【００６３】
生成部１０３は、登録された機能についての条件を満たす状態及び登録された機能についての条件を満たさない状態を処理対象に設定する（ステップＳ６７）。
【００６４】
生成部１０３は、処理対象の状態を表す条件を、処理対象の状態の状態データに登録する（ステップＳ６９）。また、生成部１０３は、特定された階層における機能が有れば、処理対象の状態の状態データに、符号付きの機能を登録する（ステップＳ７１）。
【００６５】
生成部１０３は、登録される機能が有るか（すなわち、ステップＳ７１の処理を実行したか）判断する（ステップＳ７３）。登録される機能が有る場合（ステップＳ７３：Ｙｅｓルート）、その機能について処理するため、ステップＳ６５の処理に戻る。一方、登録される機能が無い場合（ステップＳ７３：Ｎｏルート）、呼び出し元の処理に戻り、図５に示した処理を終了する。
【００６６】
以上のような処理を実行すると、モデル格納部１０７には、複数の状態について状態データが格納される。
【００６７】
図２３を用いて、状態データ間の関係について説明する。図２３には、図１４に示したパターン１における各状態について生成された、状態データ２３０１乃至２３１１が示されている。
【００６８】
状態データ２３０１と、状態データ２３０２及び２３０３との関係は親子関係であり、状態データ２３０１が親であり、状態データ２３０２及び２３０３が子である。同様に、状態データ２３０２と、状態データ２３０４及び２３０５との関係は親子関係であり、状態データ２３０２が親であり、状態データ２３０４及び２３０５が子である。同様に、状態データ２３０４と、状態データ２３０６乃至２３０９との関係は親子関係であり、状態データ２３０４が親であり、状態データ２３０６乃至２３０９が子である。同様に、状態データ２３０７と、状態データ２３１０及び２３１１との関係は親子関係であり、状態データ２３０７が親であり、状態データ２３１０及び２３１１が子である。なお、図２３において、「＾」という記号は、条件が成立しないことを表す。また、図２３の例においては、機能に対して正の符号は付されていない。
【００６９】
次に、図２４及び図２５を用いて、制御部１０４が検出モジュール１５１乃至１５３の起動及び停止を制御する処理について説明する。但し、説明を簡単にするため、以下では、状態遷移モデルに登録されている機能の符号は正のみであるとする。
【００７０】
制御部１０４は、状態遷移モデルにおける第１階層の機能を有する検出モジュールを起動する（図２４：ステップＳ１０１）。具体的には、第１階層の機能を有する検出モジュールの登録メソッドを呼び出す。また、第１階層の機能を有する検出モジュールは、判定が行われる条件を登録すると共に、その条件についての使用数を１インクリメントする。なお、現在の状態の状態データには、その状態であることを示すフラグが設定される。
【００７１】
図２５に、検出モジュール１５１乃至１５３が有するデータ、メソッド及びコールバックメソッドの一例を示す。図２５の例では、データには条件のリスト及びその条件についての使用数のリストが含まれ、メソッドには登録のメソッド及び登録解除のメソッドが含まれ、コールバックメソッドにはイベント発行のコールバックメソッドが含まれる。
【００７２】
第１階層の機能を有する検出モジュールは、第１階層の機能についての条件を満たすことを検出した場合、イベント発行のコールバックメソッドにより、制御部１０４に通知をする。これに応じ、制御部１０４は、次の階層（ここでは、第２階層）の機能を有する検出モジュールを起動する（ステップＳ１０３）。具体的には、第２階層の機能を有する検出モジュールの登録メソッドを呼び出す。また、第２階層の機能を有する検出モジュールは、判定が行われる条件を登録すると共に、その条件についての使用数を１インクリメントする。但し、判定が行われる条件が既に登録されている場合には、登録を行わない。なお、ステップＳ１０３の処理は、第３階層、第４階層、第５階層・・・というように、階層が無くなるまで繰り返し行われる。
【００７３】
ここで、第ｍ階層の機能を有する検出モジュール（ｍは２以上の自然数）は、第１階層の機能についての条件を満たさなくなったことを検出した場合、イベント発行のコールバックメソッドにより、制御部１０４に通知をする。これに応じ、制御部１０４は、第ｍ階層の機能を有する検出モジュールについて、登録解除のメソッドを呼び出す（ステップＳ１０５）。また、第ｍ階層の機能を有する検出モジュールは、判定が行われる条件についての使用数を１デクリメントする。なお、使用数が０になった場合、条件は削除される。また、登録されている条件の数が０になった場合には、検出モジュールは停止する。
【００７４】
制御部１０４は、第ｍ階層より下の階層の機能について、登録解除のメソッドを呼び出す（ステップＳ１０７）。また、登録解除メソッドが呼び出された検出モジュールは、判定が行われる条件についての使用数を１デクリメントする。なお、使用数が０になった場合、条件は削除される。また、登録されている条件の数が０になった場合には、検出モジュールは停止する。また、ステップＳ１０７の処理は、第ｍ階層より下の階層が無くなるまで繰り返し行われる。
【００７５】
ここで、第ｌ階層（ｌは２以上の自然数）の機能を有する検出モジュールは、第ｌ階層の機能についての条件を満たすことを検出した場合、イベント発行のコールバックメソッドにより、制御部１０４に通知をする。これに応じ、制御部１０４は、第ｌ＋１階層の機能を有する検出モジュールを起動する（ステップＳ１０９）。具体的には、第ｌ＋１階層の機能を有する検出モジュールの登録メソッドを呼び出す。また、第ｌ＋１階層の機能を有する検出モジュールは、判定が行われる条件を登録すると共に、その条件についての使用数を１インクリメントする。但し、判定が行われる条件が既に登録されている場合には、登録を行わない。
【００７６】
第ｌ＋１階層の機能を有する検出モジュールは、第ｌ＋１階層の機能についての条件を満たすことを検出した場合、イベント発行のコールバックメソッドにより、制御部１０４に通知をする。これに応じ、制御部１０４は、次の階層（ここでは、第ｌ＋２階層）の機能を有する検出モジュールを起動する（ステップＳ１１１）。具体的には、第ｌ＋２階層の機能を有する検出モジュールの登録メソッドを呼び出す。また、第ｌ＋２階層の機能を有する検出モジュールは、判定が行われる条件を登録すると共に、その条件についての使用数を１インクリメントする。但し、判定が行われる条件が既に登録されている場合には、登録を行わない。なお、ステップＳ１１１の処理は、第ｌ＋３階層、第ｌ＋４階層、第ｌ＋５階層・・・というように、階層が無くなるまで繰り返し行われる。そして、ステップＳ１０５の処理に戻る。
【００７７】
以上のような処理を実行すれば、或る条件を満たすか否か判定するために複数の検出モジュールを用いる場合であっても、検出モジュールが段階的に起動されるので、最初から複数の検出モジュールの全てを起動することは無くなる。これにより、携帯端末１において状態の検出に要する電力を削減できるようになる。なお、上では、状態遷移モデルに登録されている機能の符号が正である場合のみについて説明したが、符号が負である場合もある。符号が負である場合には、制御部１０４は、登録解除メソッドを呼び出す。
【００７８】
ここで、消費電力の抑制について、「ａ１  ＡＮＤ  ｂ１」という条件を用いて具体的に説明する。電池がフルである状態を基準とすると、条件「ａ１」についての機能Ａを有する検出モジュールによって、１時間に１％ずつ電池の電力量が減るとする。電池がフルである状態を基準とすると、条件「ｂ１」についての機能Ｂを有する検出モジュールによって、１時間に３％ずつ電池の電力量が減るとする。
【００７９】
両方の検出モジュールを同時に起動し、２４時間動作させると、（１＋３）＊２４＝９６％の電力量が減ることになる。
【００８０】
一方、機能Ａを有する検出モジュールを起動した後に、機能Ｂを有する検出モジュールを起動する順序を採用し、また、条件「ａ１」が成立する状態が２４時間の中で１時間だけだったとする。すると、１＊２４＋３＊１＝２７％の電力量だけ電力量が減ることになる。よって、本実施の形態の処理を実行すれば、２つの検出モジュールを同時に起動してずっと動作させるよりも、電力量の減少を抑制できるようになる。
【００８１】
また、制御部１０４がサービス実行部１０２によるサービスの実行を制御する処理について説明する。制御部１０４は、検出モジュールから、イベント発行のコールバックメソッドによる通知を受信すると、ルールツリー格納部１０８におけるルールツリーにおいて、該当する要素のフラグを変更する。フラグの変更により、ルールデータ格納部１０５に登録されているルールの条件が満たされた場合には、制御部１０４は、サービスの識別情報及びパラメータをサービス実行部１０２に渡す。そして、サービス実行部１０２は、パラメータを用いて、サービスを実行する。また、フラグが変更された要素の親要素についても、条件を満たすか否かについて判定を行う。ＡＮＤ要素については、配下の条件が全て満たされた場合に、条件を満たすことを表すフラグが登録される。一方、ＯＲ要素については、配下の条件のいずれかが満たされた場合に、条件を満たすことを表すフラグが登録される。この処理を、最上位の要素まで繰り返し行う。
【００８２】
［実施の形態２］
第１の実施の形態においては、各パターンについて判定値を求め、判定値に基づき、起動順序のパターンを決定する。一方、第２の実施の形態においては、平均の消費電力が少ない検出モジュールほど先に起動するような順序とする。
【００８３】
図２６を用いて、第２の実施の形態における起動順序の決定方法について説明する。図２６の例では、機能Ａを有する検出モジュールの消費電力Ｐ１と、機能Ｂを有する検出モジュールの消費電力Ｐ２と、機能Ｃを有する検出モジュールの消費電力Ｐ３との間に、Ｐ１＜Ｐ２＜Ｐ３という関係が成立する。このような場合、第２の実施の形態においては、機能Ａを有する検出モジュールを最初に起動し、機能Ｂを有する検出モジュールを次に起動し、機能Ｃを有する検出モジュールを最後に起動する。
【００８４】
このようにすれば、他の検出モジュールと比較して消費電力が多い検出モジュールを起動する頻度が少なくなるため、全体として消費電力を少なくすることができるようになる。
【００８５】
また、第２の実施の形態の処理を、複数のルールが登録されたケースに適用することを考える。例えば図２７に示すようなルール１及びルール２がルールデータ格納部１０５に登録されたとする。ルール１は、「場所ａ１又は場所ａ２において人ｂ１に会ったら通知をする」というルールであり、ルール２は、「場所ａ３において歩いていれば音楽をかける」というルールである。「場所ａ１」、「場所ａ２」及び「場所ａ３」という条件は、位置を検出する機能Ａを有する検出モジュールによって判定が行われ、「人ｂ１」という条件は、人を検出する機能Ｂを有する検出モジュールによって判定が行われ、「歩いている（ｃ１）」という条件は、行動を検出する機能Ｃを有する検出モジュールによって判定が行われる。
【００８６】
ルール１及びルール２からは、図２８に示す４つのパターンが生成される。パターン１においては、第１階層において、ルール１及びルール２のために機能Ａを有する検出モジュールを起動し、第２階層において、ルール１のために機能Ｂを有する検出モジュールを起動し、ルール２のために機能Ｃを有する検出モジュールを起動する。パターン２においては、第１階層において、ルール１のために機能Ａを有する検出モジュールを起動し、ルール２のために機能Ｃを有する検出モジュールを起動し、第２階層において、ルール１のために機能Ｂを有する検出モジュールを起動し、ルール２のために機能Ａを有する検出モジュールを起動する。パターン３においては、第１階層において、ルール１のために機能Ｂを有する検出モジュールを起動し、ルール２のために機能Ｃを有する検出モジュールを起動し、第２階層において、ルール１のために機能Ａを有する検出モジュールを起動し、ルール２のために機能Ａを有する検出モジュールを起動する。パターン４においては、第１階層において、ルール１のために機能Ｂを有する検出モジュールを起動し、ルール２のために機能Ａを有する検出モジュールを起動し、第２階層において、ルール１のために機能Ａを有する検出モジュールを起動し、ルール２のために機能Ｃを有する検出モジュールを起動する。
【００８７】
パターン１においては、第１階層において機能Ａを有する検出モジュールだけを起動し、パターン２においては、第１階層において機能Ａを有する検出モジュール及び機能Ｃを有する検出モジュールを起動し、パターン３においては、第１階層において機能Ｂを有する検出モジュール及び機能Ｃを有する検出モジュールを起動し、パターン４においては、第１階層において機能Ｂを有する検出モジュール及び機能Ａを有する検出モジュールを起動する。従って、機能Ａを有する検出モジュールの消費電力が、機能Ｂを有する検出モジュールの消費電力と機能Ｃを有する検出モジュールの消費電力との合計より少なければ、パターン１の第１階層の消費電力が最も少ないことになる。従って、第２の実施の形態の処理を適用すると、パターン１が最も好ましいパターンとして採用されることになる。
【００８８】
ここで、携帯端末１の使用例について、具体的に説明する。例えば、携帯端末１のユーザが、「公園周辺でジョギングをしている場合、ジョギングに適した音楽を再生する」というルールを登録したとする。「公園周辺」という条件は、ＧＰＳのジオフェンシング機能によって検出することが可能であり、「走っている」という条件は、加速度センサの歩行検知機能によって検出することが可能であるとする。また、ＧＰＳの消費電力は、加速度センサの平均の消費電力より大きいとする。
【００８９】
この場合、状態遷移モデルにおいて、歩行検知機能の階層がジオフェンシング機能の階層より上で有れば、走っているという条件を満たしている間のみＧＰＳ動作する。これにより、消費電力の増加を抑制できる。
【００９０】
さらに、例えばサービスプロバイダによって、携帯端末１に「ショッピングセンタ周辺であれば、セールの情報を配信する」というルールを登録したとする。これにより、携帯端末１には、ルール１及びルール２が登録されていることになる。「ショッピングセンタ周辺」という条件は、ＧＰＳのジオフェンシング機能によって検出することが可能である。本実施の形態の処理によれば、ルール１の条件とルール２の条件とがＯＲで結合され、状態遷移モデルが再生成される。この状態遷移モデルにおいては、ジオフェンシング機能の階層が歩行検知機能の階層より上になる。これにより、ルール１の条件及びルール２の条件の両方について、判定を行うことができるようになる。
【００９１】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した携帯端末１の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００９２】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００９３】
また、プロバイダ等のサーバが、携帯端末１のルールデータ格納部１０５にルールを登録してもよい。
【００９４】
なお、上で述べた携帯端末１は、コンピュータ装置であって、図２９に示すように、ＲＡＭ２５０１とＣＰＵ（Central Processing Unit）２５０３とＲＯＭ（Read Only Memory）２５０５と表示装置２５０９に接続される表示制御部２５０７とフラッシュメモリ２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＲＯＭ２５０５又はフラッシュメモリ２５１３に格納されており、ＣＰＵ２５０３により実行される際にはＲＯＭ２５０５又はフラッシュメモリ２５１３からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７及び通信制御部２５１７を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてＲＡＭ２５０１に格納されるが、フラッシュメモリ２５１３に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムは、例えばインターネットなどのネットワーク及び通信制御部２５１７を経由して、フラッシュメモリ２５１３にインストールされる。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、ＲＡＭ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００９５】
以上述べた本実施の形態をまとめると以下のようになる。
【００９６】
本実施の形態の第１の態様に係る携帯端末は、（Ａ）各々状態の検出を行う複数の検出モジュールと、（Ｂ）複数の検出モジュールによる検出の結果に関する第１の条件について、複数の検出モジュールが起動される順序を決定する決定部と、（Ｃ）決定された順序における最初の検出モジュールを起動し、最初の検出モジュール以外の検出モジュールを、決定された順序における１つ前の検出モジュールによる検出の結果が、第１の条件に含まれる条件のうち当該１つ前の検出モジュールに対応する条件を満たす場合に起動する起動部とを有する。
【００９７】
或る条件を満たすか否か判定するために複数の検出モジュールを用いる場合であっても、はじめから全ての検出モジュールを起動しなければならないとは限らない。そこで、上で述べたように段階的に検出モジュールを起動すれば、携帯端末において状態の検出に要する電力を削減できるようになる。
【００９８】
また、上で述べた順序は、消費電力が少ない検出モジュールほど先に起動される順序であってもよい。このようにすれば、他の検出モジュールと比べて消費電力が多い検出モジュールが動作する時間が短くなるので、携帯端末の消費電力を減らせるようになる。
【００９９】
また、上で述べた順序は、第１の条件に含まれる条件のうち論理和によって結合される条件に対応する検出モジュールが同時に起動され、第１の条件に含まれる条件のうち論理積によって結合される条件に対応する検出モジュールが段階的に起動される順序であってもよい。論理和の場合、その論理和によって結合される条件のうち１つでも満たされた場合、その論理和についての条件は成立する。一方、論理積の場合、その論理積によって結合される条件のうち１つでも満たされない場合には、その論理積についての条件は成立しない。従って、上で述べたようにすることで、最低限の検出モジュールを動作させることができるようになる。
【０１００】
また、上で述べた決定部は、（ｂ１）第１の条件について、複数の検出モジュールを起動する順序を複数生成し、（ｂ２）複数の順序の各々について、複数の検出モジュールの各々の消費電力に重み付け値を乗じた値の合計値を算出し、（ｂ３）複数の順序のうち、算出された合計値が所定の値より小さい順序を選択してもよい。そして、上で述べた重み付け値は、先に起動される検出モジュールほど大きくてもよい。起動される順番が先であるほど、起動される確率が高くなるため、携帯端末の消費電力に占める割合が大きくなる。そこで、上で述べたようにすれば、消費電力を少なくすることができる順序を選択できるようになる。
【０１０１】
また、上で述べた決定部は、（ｂ４）第１の条件について、複数の検出モジュールを起動する順序を複数生成し、（ｂ５）複数の順序の各々について、複数の検出モジュールの各々の消費電力に重み付け値を乗じた値の合計値を算出し、（ｂ６）複数の順序のうち、算出された合計値が所定の値より小さい順序を選択してもよい。そして、上で述べた重み付け値は、検出モジュールに対応する条件を満たす状態が発生する確率であってもよい。たとえ検出モジュールの消費電力が少ない場合であっても、条件を満たす状態が頻繁に発生すれば、次の検出モジュールを頻繁に起動することになるので、全体として消費電力が多くなる可能性がある。そこで、上で述べたようにすれば、消費電力を少なくすることができる順序を選択できるようになる。
【０１０２】
また、上で述べた決定部は、（ｂ７）複数の検出モジュールによる検出の結果に関する条件が複数有る場合、複数の検出モジュールを起動する順序を、複数の検出モジュールの各々の消費電力に基づき、複数の条件に対して１つ決定してもよい。このようにすれば、複数の検出モジュールによる検出の結果に関する条件が複数有る場合であっても、消費電力を少なくすることができる順序を決定できるようになる。
【０１０３】
本実施の形態の第２の態様に係る起動方法は、（Ｄ）各々状態の検出を行う複数の検出モジュールによる検出の結果に関する第１の条件について、複数の検出モジュールが起動される順序を決定し、（Ｅ）決定された順序における最初の検出モジュールを起動し、（Ｆ）最初の検出モジュール以外の検出モジュールを、決定された順序における１つ前の検出モジュールによる検出の結果が、第１の条件に含まれる条件のうち当該１つ前の検出モジュールに対応する条件を満たす場合に起動する処理を含む。
【０１０４】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【図１】
2015068296.tif 000003
【図２】
2015068296.tif 000004
【図３】
2015068296.tif 000005
【図４】
2015068296.tif 000006
【図５】
2015068296.tif 000007
【図６】
2015068296.tif 000008
【図７】
2015068296.tif 000009
【図８】
2015068296.tif 000010
【図９】
2015068296.tif 000011
【図１０】
2015068296.tif 000012
【図１１】
2015068296.tif 000013
【図１２】
2015068296.tif 000014
【図１３】
2015068296.tif 000015
【図１４】
2015068296.tif 000016
【図１５】
2015068296.tif 000017
【図１６】
2015068296.tif 000018
【図１７】
2015068296.tif 000019
【図１８】
2015068296.tif 000020
【図１９】
2015068296.tif 000021
【図２０】
2015068296.tif 000022
【図２１】
2015068296.tif 000023
【図２２】
2015068296.tif 000024
【図２３】
2015068296.tif 000025
【図２４】
2015068296.tif 000026
【図２５】
2015068296.tif 000027
【図２６】
2015068296.tif 000028
【図２７】
2015068296.tif 000029
【図２８】
2015068296.tif 000030
【図２９】
2015068296.tif 000031
【手続補正書】
【提出日】平成28年5月10日(2016.5.10)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
生成部１０３は、ルールデータ格納部１０５に格納されているデータに基づき、後述するルールツリーを生成し、ルールツリーのデータをルールツリー格納部１０８に格納する。また、生成部１０３は、電力データ格納部１０６に格納されているデータ、ルールツリー格納部１０８に格納されているデータ、及び状態ログ格納部１０９に格納されているデータに基づき、後述する状態遷移モデルを生成し、モデル格納部１０７に格納する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
生成部１０３は、特定されたルールに含まれる条件について、要素データを生成する（図７：ステップＳ２１）。図８に、要素データの一例を示す。図８の例では、要素の種別と、サービスデータと、親要素（本実施の形態においては、その要素に接続される要素のうちルールツリーにおいて上の階層に属する要素）のリンクと、子要素（本実施の形態においては、その要素に接続される要素のうちルールツリーにおいて下の階層に属する要素）のリンクと、フラグとが含まれる。要素の種別には、単体、ＡＮＤ（論理積）、又はＯＲ（論理和）のいずれかが設定される。サービスデータには、サービスの識別情報及びパラメータが含まれる。親要素のリンクには、親要素の識別情報が登録される。子要素のリンクには、子要素の識別情報が登録される。フラグには、その要素についての条件を満たしているか否かを示すデータが登録される。但し、ステップＳ２１の時点では、要素データは空である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
また、ルールツリーが図１３に示したルールツリーである場合、機能についての条件１３０１が生成される。図形及び記号の意味は図１２と同様である。図１３における第２階層の種別がＡＮＤである要素１３０４以下のルールツリーについては、機能についての条件として条件１３０２が生成され、第２階層の種別がＡＮＤである要素１３０５以下のルールツリーについては、機能についての条件として条件１３０３が生成される。条件１３０１は、条件ｄ１を検出するための機能Ｄと、条件１３０２と、条件１３０３とを「＋」で結合することにより生成される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
未処理の階層が無い場合（ステップＳ９５：Ｎｏルート）、生成部１０３は、未処理のパターンが有るか判断する（ステップＳ９９）。未処理のパターンが有る場合（ステップＳ９９：Ｙｅｓルート）、未処理のパターンについて処理するため、ステップＳ８１の処理に戻る。一方、未処理のパターンが無い場合（ステップＳ９９：Ｎｏルート）、呼び出し元の処理に戻る。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
生成部１０３は、処理対象の状態を表す条件を、処理対象の状態の状態データに登録する（ステップＳ６９）。また、生成部１０３は、登録される機能が有れば、処理対象の状態の状態データに、符号付きの機能を登録する（ステップＳ７１）。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
生成部１０３は、登録された機能が有るか（すなわち、ステップＳ７１の処理を実行したか）判断する（ステップＳ７３）。登録された機能が有る場合（ステップＳ７３：Ｙｅｓルート）、その機能について処理するため、ステップＳ６５の処理に戻る。一方、登録された機能が無い場合（ステップＳ７３：Ｎｏルート）、呼び出し元の処理に戻り、図５に示した処理を終了する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００８５
【補正方法】変更
【補正の内容】
【００８５】
また、第２の実施の形態の処理を、複数のルールが登録されたケースに適用することを考える。例えば図２７に示すようなルール１及びルール２がルールデータ格納部１０５に登録されたとする。ルール１は、「場所ａ１又は場所ａ２において人ｂ１に会ったら通知をする」というルールであり、ルール２は、「場所ａ３において歩いて（ｃ１）いれば音楽をかける」というルールである。「場所ａ１」、「場所ａ２」及び「場所ａ３」という条件は、位置を検出する機能Ａを有する検出モジュールによって判定が行われ、「人ｂ１」という条件は、人を検出する機能Ｂを有する検出モジュールによって判定が行われ、「歩いている（ｃ１）」という条件は、行動を検出する機能Ｃを有する検出モジュールによって判定が行われる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００９４
【補正方法】変更
【補正の内容】
【００９４】
なお、上で述べた携帯端末１は、コンピュータ装置であって、図２９に示すように、ＲＡＭ２５０１とＣＰＵ（Central Processing Unit）２５０３とＲＯＭ（Read Only Memory）２５０５と表示装置２５０９に接続される表示制御部２５０７とフラッシュメモリ２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＲＯＭ２５０５又はフラッシュメモリ２５１３に格納されており、ＣＰＵ２５０３により実行される際にはＲＯＭ２５０５又はフラッシュメモリ２５１３からＲＡＭ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７及び通信制御部２５１７を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてＲＡＭ２５０１に格納されるが、フラッシュメモリ２５１３に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムは、例えばインターネットなどのネットワーク及び通信制御部２５１７を経由して、フラッシュメモリ２５１３にインストールされる。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、ＲＡＭ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図１０
【補正方法】変更
【補正の内容】
【図１０】
2015068296.tif 000032
【手続補正１０】
【補正対象書類名】図面
【補正対象項目名】図１３
【補正方法】変更
【補正の内容】
【図１３】
2015068296.tif 000033
【手続補正１１】
【補正対象書類名】図面
【補正対象項目名】図２１
【補正方法】変更
【補正の内容】
【図２１】
2015068296.tif 000034
【手続補正１２】
【補正対象書類名】図面
【補正対象項目名】図２４
【補正方法】変更
【補正の内容】
【図２４】
2015068296.tif 000035
【手続補正書】
【提出日】平成28年12月5日(2016.12.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各々状態の検出を行う複数の検出モジュールと、
前記複数の検出モジュールによる検出の結果に関する第１の条件に基づき、前記複数の検出モジュールが起動される順序を複数生成し、複数の順序の各々について、前記複数の検出モジュールの各々の消費電力に重み付け値を乗じた値の合計値を算出し、前記複数の順序のうち、算出された前記合計値が所定の値より小さい順序を選択する決定部と、
選択された前記順序における最初の検出モジュールを起動し、前記最初の検出モジュール以外の検出モジュールを、選択された前記順序における１つ前の検出モジュールによる検出の結果が、前記第１の条件に含まれる条件のうち当該１つ前の検出モジュールに対応する条件を満たす場合に起動する起動部と、
を有する携帯端末。
【請求項２】
前記重み付け値は、先に起動される検出モジュールほど大きい値、あるいは、検出モジュールに対応する条件を満たす状態が発生する確率である
請求項１記載の携帯端末。
【請求項３】
各々状態の検出を行う複数の検出モジュールと、
前記複数の検出モジュールによる検出の結果に関する第１の条件に基づき、前記複数の検出モジュールが起動される順序を決定する決定部と、
決定された前記順序における最初の検出モジュールを起動し、前記最初の検出モジュール以外の検出モジュールを、決定された前記順序における１つ前の検出モジュールによる検出の結果が、前記第１の条件に含まれる条件のうち当該１つ前の検出モジュールに対応する条件を満たす場合に起動する起動部と、
を有し、
前記決定部は、
前記第１の条件が複数有る場合、前記複数の検出モジュールが起動される順序を、前記複数の検出モジュールの各々の消費電力に基づき、複数の前記第１の条件に対して１つ決定する
携帯端末。
【請求項４】
前記決定部は、
消費電力が少ない検出モジュールほど先に起動されるように、前記複数の検出モジュールが起動される順序を生成する
請求項１乃至３のいずれか１つ記載の携帯端末。
【請求項５】
前記複数の検出モジュールが起動される順序は、
前記第１の条件に含まれる条件のうち論理和によって結合される条件に対応する検出モジュールが同時に起動され、前記第１の条件に含まれる条件のうち論理積によって結合される条件に対応する検出モジュールが段階的に起動される順序である
請求項１乃至４のいずれか１つ記載の携帯端末。
【請求項６】
各々状態の検出を行う複数の検出モジュールによる検出の結果に関する第１の条件に基づき、前記複数の検出モジュールが起動される順序を複数生成し、
複数の順序の各々について、前記複数の検出モジュールの各々の消費電力に重み付け値を乗じた値の合計値を算出し、
前記複数の順序のうち、算出された前記合計値が所定の値より小さい順序を選択し、
選択された前記順序における最初の検出モジュールを起動し、
前記最初の検出モジュール以外の検出モジュールを、選択された前記順序における１つ前の検出モジュールによる検出の結果が、前記第１の条件に含まれる条件のうち当該１つ前の検出モジュールに対応する条件を満たす場合に起動する、
処理をコンピュータが実行する起動方法。
【請求項７】
各々状態の検出を行う複数の検出モジュールによる検出の結果に関する第１の条件に基づき、前記複数の検出モジュールが起動される順序を複数生成し、
複数の順序の各々について、前記複数の検出モジュールの各々の消費電力に重み付け値を乗じた値の合計値を算出し、
前記複数の順序のうち、算出された前記合計値が所定の値より小さい順序を選択し、
選択された前記順序における最初の検出モジュールを起動し、
前記最初の検出モジュール以外の検出モジュールを、選択された前記順序における１つ前の検出モジュールによる検出の結果が、前記第１の条件に含まれる条件のうち当該１つ前の検出モジュールに対応する条件を満たす場合に起動する、
処理をコンピュータに実行させるための起動プログラム。
【国際調査報告】
2015068296.tif 000036
2015068296.tif 000037
2015068296.tif 000038
2015068296.tif 000039