(57)【要約】【課題】  ランチャーソフトウェアの使い勝手が悪かった。【解決手段】  複数のプログラムモジュールを起動候補として提供する際の順序を制御するにあたり、プログラムモジュールの起動指示を検出し、上記起動指示が検出されたプログラムモジュールと起動指示が検出されていないプログラムモジュールとで、プログラムモジュールの起動履歴に対する重みの変化特性が異なるように重みを取得し、同重みに従って各プログラムモジュールの順序を決定し、起動候補として所定の出力装置に出力する。【選択図】  図５
2005301797.tif 000002
【特許請求の範囲】
【請求項１】
プログラムモジュールの起動履歴に対する重みの変化がプログラムモジュールの起動指示の有無によって異なる特性となるように当該重みを定義した重み定義データを記憶する重み定義データ記憶手段と、
上記プログラムモジュールの起動指示を検出する起動指示検出手段と、
上記重み定義データを参照して上記起動指示が検出されたプログラムモジュールと起動指示が検出されていないプログラムモジュールとの重みを取得する重み取得手段と、
同重みに従って各プログラムモジュールの順序を決定し、起動候補として所定の出力装置に出力する起動候補出力手段とを具備することを特徴とする起動候補制御装置。
【請求項２】
上記重み定義データはプログラムモジュール毎の起動履歴に応じた履歴変数を含み、上記重み取得手段は上記起動指示の検出の有無に基づいて履歴変数を更新することを特徴とする上記請求項１に記載の起動候補制御装置。
【請求項３】
上記重み定義データは、上記起動指示が検出されたプログラムモジュールの重みを大きくするように重みを定義していることを特徴とする上記請求項１または請求項２のいずれかに記載の起動候補制御装置。
【請求項４】
上記重み定義データは、上記起動履歴と起動指示がなされたプログラムモジュールの重みとの第１対応関係および上記起動履歴と起動指示がなされていないプログラムモジュールの重みとの第２対応関係を含み、上記第１対応関係においては上記第２対応関係より値域の下限から上限まで重みが急激に変化するように定義されており、上記重み取得手段は、当該対応関係を参照して各プログラムモジュールの重みを取得することを特徴とする上記請求項１〜請求項３のいずれかに記載の起動候補制御装置。
【請求項５】
上記重み定義データは、プログラムモジュールの起動累計が大きいほど起動履歴に対する重みの変化が小さくなるように重みを定義していることを特徴とする上記請求項１〜請求項４のいずれかに記載の起動候補制御装置。
【請求項６】
上記重み定義データは、プログラムモジュールの起動履歴に応じた履歴変数を独立変数とし、重みを従属変数としたシグモイド関数に従って上記重みを算出することによって生成されることを特徴とする上記請求項１〜請求項５のいずれかに記載の起動候補制御装置。
【請求項７】
複数のプログラムモジュールを起動候補として提供する際の順序を制御する起動候補制御方法であって、
プログラムモジュールの起動指示を検出する起動指示検出工程と、
上記起動指示が検出されたプログラムモジュールと起動指示が検出されていないプログラムモジュールとで、プログラムモジュールの起動履歴に対する重みの変化特性が異なるように重みを取得する重み取得工程と、
同重みに従って各プログラムモジュールの順序を決定し、起動候補として所定の出力装置に出力する起動候補出力工程とを具備することを特徴とする起動候補制御方法。
【請求項８】
複数のプログラムモジュールを起動候補として提供する際の順序を制御する起動候補制御プログラムであって、
上記プログラムモジュールの起動履歴に対する重みの変化がプログラムモジュールの起動指示の有無によって異なる特性となるように当該重みを定義した重み定義データを記憶する重み定義データ記憶機能と、
上記プログラムモジュールの起動指示を検出する起動指示検出機能と、
上記重み定義データを参照して上記起動指示が検出されたプログラムモジュールと起動指示が検出されていないプログラムモジュールとの重みを取得する重み取得機能と、
同重みに従って各プログラムモジュールの順序を決定し、起動候補として所定の出力装置に出力する起動候補出力機能とをコンピュータに実現させることを特徴とする起動候補制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラムモジュールを起動する際の起動候補制御装置、起動候補制御方法および起動候補制御プログラムに関する。
【背景技術】
【０００２】
近年のコンピュータにおいては、アプリケーションプログラムなど、多数のプログラムモジュールをインストール可能であり、利用者所望のプログラムモジュールを選択して実行する。このとき、任意のプログラムモジュールを選択しやすいように選択肢を提供するために、いわゆるランチャーソフトウェアが使用されている。このランチャーソフトウェアにおいては、限られた画面内に選択肢を提供するため、使用頻度の高いプログラムモジュールを選択しやすい位置に配置するなど、選択肢の表示順序を変更することがある。このように選択肢の表示順序を変更する際の手法は、種々の手法を採用可能であり、例えば、起動回数の累計を表示順序としたり、並べ替え対象にキーワードを対応づけるとともに当該キーワードに重要度を設定し、その重要度の順序を表示順序とする構成（例えば、特許文献１参照）を採用可能である。
【特許文献１】特開２００１−７５９６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述した従来の起動候補制御装置では、ランチャーソフトウェアの使い勝手が悪いという課題があった。すなわち、起動回数の累計を選択肢の表示順序としたのでは、時期を問わず多用するプログラムモジュールと一時的に利用するプログラムモジュールとが存在する場合に後者の表示順序が全く上位にならず、後者のプログラムモジュールに関しては表示順序を変更する意味がない。また、特許文献１に開示された技術のようにキーワードを設定するのは煩雑であるし、プログラムモジュールの動的な使用状況に的確に対応することは不可能であった。
本発明は、上記課題にかんがみてなされたもので、一時的な利用頻度の変動を含めてプログラムモジュールの使用態様に応じた選択肢を提供可能な起動候補制御装置、起動候補制御方法および起動候補制御プログラムの提供を目的とする。
【課題を解決するための手段】
【０００４】
上記目的を達成するため本発明では、各プログラムモジュール毎に重みを取得して起動候補としての順序を特定することとし、プログラムモジュールの起動指示の有無を重みに反映させる。このとき、起動指示の有無に応じて相対的に異なる変動量で重みが更新されるように重みを取得する。すなわち、起動候補は重みに従った順序で出力されるので、起動指示がなされたプログラムモジュールの重みを増大させる様子はそのプログラムモジュールの順序が上昇する様子に対応し、起動指示がなされていないプログラムモジュールの重みを減少させる様子はそのプログラムモジュールの順序が下降する様子に対応する。
【０００５】
そこで、重み定義データにおいて起動指示の有無によって異なる特性（起動履歴に対する重みの変化特性）で重みを定義することにより、起動指示の有無に応じて相対的に異なる変動量で重みを更新することが可能になり、起動指示の有無によって異なる速度でプログラムモジュールの順序を変動させることができる。この結果、継続的に多用することはないが一時的に使用頻度が増加したプログラムモジュールについて、出力装置上での出力順序が即座に上位になるように反映させたり、一時的な利用によって敏感に出力順序が変動しないようにするなど所望の制御を行うことができる。すなわち、一時的な利用頻度の変動を含めてプログラムモジュールの使用態様に応じた選択肢を提供可能である。
【０００６】
ここで、プログラムモジュールとしては、コンピュータ上で種々の機能を実現するためのプログラムであれば良く、アプリケーションプログラムであっても良いし、プラグインソフトウェア等であっても良く種々のプログラムを採用可能である。また、プログラムモジュールの起動候補を提供するのは、起動候補の中から特定のプログラムモジュールを特定する起動指示を受け付けて、指示されたプログラムモジュールを起動するためである。そこで、各プログラムモジュールのデータを記憶手段に記憶しておき、プログラムを実行可能な制御手段によって起動指示されたプログラムモジュールを起動する構成としてもよい。但し、上述の起動候補制御装置としての手段を備えていれば、コンピュータを起動候補制御装置として機能させることは可能である。
【０００７】
各プログラムモジュールの重みは、起動候補の順序を特定するための値であれば良く、プログラムモジュール毎にその値を比較して順序を特定することができればよい。従って、重み自体を各プログラムモジュールに対応づけて記憶しても良いし、各プログラムモジュールの重みを特定するためのデータ、例えば各プログラムモジュール毎の起動履歴を記憶しておいても良い。むろん、重みの値が同じである場合に、他の視点、例えば、インストールがなされた順番や起動回数等を参照して順序を決定するように構成することも可能である。
【０００８】
また、重みの初期値としては各種の初期値を採用可能であり、各プログラムモジュールのインストール時に予め決められた値、例えば、重みの値域内で最大あるいは最小の値や中間の値等を割り当てればよい。起動履歴は、各プログラムモジュールがインストールされた時点から現在まででプログラムモジュールが起動された経歴を示していれば良く、各種の値で表現可能である。例えば、あるプログラムモジュールが起動されることによって増加する値や他のプログラムモジュールが起動されたことによって（その時点で起動されていないことによって）減少する値、またはその双方の性質を持つ値等を採用可能である。
【０００９】
起動指示検出手段においては、起動指示がなされたプログラムモジュールを特定することができれば良く、種々の構成を採用可能である。本発明においては、起動候補出力手段によってプログラムモジュールの起動候補を出力するので、この出力を視認した利用者が所定の入力装置によって起動指示を与えるように構成し、起動指示検出手段によって当該起動指示を検出する構成が好ましい。すなわち、起動候補制御装置において、起動指示検出手段と起動候補出力手段とによって起動候補の提示と入力の受付を行うインタフェースを提供する。
【００１０】
この構成において、重み取得手段が重みを取得すれば、起動指示を反映した順序で起動候補を出力することが可能になる。尚、重みを取得して起動候補の出力順序を変更するタイミングとしては、種々のタイミングを採用可能である。例えば、各プログラムモジュールを起動したタイミングで更新された重みを反映させても良いし、定期的に重みを取得するとともにその重みに従った順序になるようにしても良い。
【００１１】
起動候補出力手段においては、所定の出力装置に起動候補としてプログラムモジュールを出力することができれば良く、種々の構成を採用可能である。例えば、各プログラムモジュールを示すために文字やアイコンを使用しても良いし、これらの文字やアイコンを出力する部位がスクロールしたり所定の単位で画面が切り替わることによって多数のプログラムモジュールを候補として提供可能にしても良い。
【００１２】
どのような出力装置であったとしても、起動候補を表示するための画面の大きさなど出力範囲が限られているため、多数のプログラムモジュールが存在する場合には、出力範囲内で全プログラムモジュールを出力できない場合もある。このような場合であっても、上記重み取得手段によって重みが決定されることにより一時的な利用頻度の変動を含めてプログラムモジュールの使用態様に応じた順序を定義することができるので、画面内に出力される起動候補に所望のプログラムモジュールが含まれる可能性が非常に高くなる。従って、非常に使い勝手の良い起動候補制御装置を提供することができる。
【００１３】
尚、出力装置においては、起動候補を重みに従った順序によって出力することができれば良く、コンピュータのディスプレイなど種々の出力装置を採用可能である。また、この順序による出力としては、高い順序の起動候補が起動させやすいような出力を実現きればよい。例えば、起動候補を出力するための出力範囲が限られていることによって一定数の起動候補のみを同時に出力可能であり、必要に応じて表示候補の切り換えを行うなどして全起動候補を把握する構成において、重みが大きな順に一定数のプログラムモジュールを初期の出力範囲内に出力する。そして、表示候補の切替指示がなされたときには残りのプログラムモジュールをその重みが大きな順に抽出して出力範囲内に出力する。
【００１４】
重み取得手段においては、重み定義データを参照することによって起動指示の有無に応じて重みの変化特性が異なるように重みを変化させつつ重みを取得することができればよい。このために、重み定義データでは、起動履歴に対する重みの変化が起動指示の有無によって異なるように定義することができればよく、種々の構成を採用可能である。
【００１５】
また、起動指示の有無によって異なる変化特性で重みを変化させることで、起動指示の有無に従って起動候補の順序を変動させるが、一回ごとの起動指示のみならず起動履歴（累計等）も反映する。このため、重みの値自体はプログラムモジュールの起動履歴を反映した値にする。すなわち、重みの変化は一時的な起動の有無を反映した変化となるように構成しつつも、重みの絶対値は起動履歴を反映した値となるように構成する。この結果、起動された回数が多いと起動候補としての順序が比較的上位になる傾向を持たせることができる。
【００１６】
このように、起動履歴を反映して重みを変更するために好適な構成として、プログラムモジュール毎の起動履歴に応じた履歴変数を使用する構成を採用可能である。この構成によれば、起動指示の検出の有無に応じて履歴変数を更新することによって、各プログラムモジュールの起動履歴を反映した変数を容易に定義することができる。そして、当該履歴変数から重みを算出することによって、容易に起動履歴を反映した重みの更新が可能になる。
【００１７】
履歴変数としては、起動履歴に応じた値を持つように定義できれば良く、種々の構成を採用可能である。例えば、プログラムモジュールが起動されるたびにインクリメントするように定義した変数や、他のプログラムモジュールが起動されたときに起動されていないプログラムモジュールについてデクリメントするように定義した変数等を採用可能である。このように、履歴変数によって起動履歴を反映することができれば、当該履歴変数に基づいて重みを算出することによって、各プログラムモジュールの起動指示の有無に応じた重みとすることができる。例えば、履歴変数から重みを算出する関数を定義すれば、容易に重みを算出可能である。
【００１８】
重み取得手段にて重みを取得する際の好適な構成例としては、起動指示の検出前後で、起動指示が検出されたプログラムモジュールの重みが大きくなるように重みを更新する構成を採用可能である。すなわち、重み定義データにおいて、起動指示が検出されたプログラムモジュールの重みを大きくするように定義する。このとき、起動指示が検出されていないプログラムモジュールの重みは減少させるあるいは変化させないのが好ましい。いずれにしても、以上の構成により、起動指示が検出されたプログラムモジュールについて起動候補としての順位は上昇する。この結果、起動頻度が高いほど順位が上位になる傾向を持たせるとともに一時的な利用も反映して順位が上昇する構成を提供することができる。
【００１９】
また、重み定義データの具体例として、予め起動履歴と重みとの対応関係を定義する構成を採用可能である。当該対応関係を定義しておけば、当該対応関係を参照することにより、容易に重みを取得することが可能になる。より具体的には、各プログラムモジュールの起動履歴と上記起動指示が検出されたプログラムモジュールの重みとを対応づけて所定の記憶媒体に記憶する（第１対応関係）。また、各プログラムモジュールの起動履歴と上記起動指示が検出されていないプログラムモジュールの重みを対応づけて所定の記憶媒体に記憶する（第２対応関係）。
【００２０】
そして、この第１および第２対応関係を定義する際に、上記第１対応関係においては第２対応関係より値域の下限から上限まで重みが急激に変化するように定義する。このため、起動指示が検出されたプログラムモジュールについては、起動指示が検出されていないものと比較して、起動履歴のわずかな変化によって大きく重みが変動する。従って、一時的な利用によって起動候補としての順位を急激に上昇させることができる。むろん、上記対応関係においては、起動履歴と重みとを対応づけることによって重みを示すことができれば良く、種々の構成を採用可能である。例えば、起動履歴は上述の履歴変数であっても良いし、対応関係として規定する重みは重み自体の他、重みの変動量であっても良い。
【００２１】
また、本発明においては、各プログラムモジュールの起動累計によって重みを変化させる度合いを変動するのが好ましい。これにより、一時的なプログラムモジュールの利用に対して敏感または鈍感な重みを定義し、各種の意図に従って起動候補の順序を制御することができる。この具体例として、起動累計数が大きな値であるほど起動履歴（例えば、履歴変数）に対する重みの変化が小さくなるように重みの変化特性を定義する構成を採用可能である。
【００２２】
この構成によれば、起動累計数が大きい場合には、累計数が小さい場合と比較して重みが大きく変動せず、他のプログラムモジュールを使用したときに急激に順位が低下しないように制御することができる。逆に、起動累計数が小さい場合には、累計数が大きい場合と比較して重みが大きく変動し、急激に順位を変動させることができる。従って、プログラムモジュールを一時的に利用した場合に、即座に順位が上昇するが、しばらく起動しないと急激に順位が低下するように構成することができる。
【００２３】
起動履歴と重みとの関係は予め定義されればよいが、関数によって両者の関係を定義すると重みの算出が非常に容易になる。この関数としては、例えば、シグモイド関数を採用可能である。すなわち、シグモイド関数ｆ（ｘ）は、ｆ（ｘ）＝β／（１＋ｅｘｐ（−αｘ））と表現され、αの大きさによってｆ（ｘ）の傾きを制御することができる。従って、起動履歴に応じた履歴変数をｘ，重みをｆ（ｘ）で表現するとともに、起動指示が検出されたプログラムモジュールと起動指示が検出されていないプログラムモジュールとでαを異なる値にすることで、両者の重みの変動量が相対的に異なる構成を容易に実現することができる。
【００２４】
さらに、シグモイド関数ｆ（ｘ）では、ｘの値が大きくなるにつれ、βを上限としてｆ（ｘ）が増大する。従って、履歴変数が大きいと重みが敏感に変化せず、履歴変数が小さいと重みが敏感に変化する構成を容易に実現することができる。むろん、重み取得手段においてシグモイド関数を利用して重みを取得するにあたり、起動指示を検出する度にシグモイド関数で演算を行っても良いし、シグモイド関数による算出結果を予め取得しておき、対応関係として定義しておいても良い。
【００２５】
このように起動指示の有無に応じて重みの変動量を変えることによって起動候補として提示する順序を制御する手法は必ずしも実体のある装置に限られるものではなく、請求項７に記載した発明のように方法の発明としても有効である。また、上述の起動候補制御装置は単独で存在する場合もあるし、ある機器に組み込まれた状態で利用されることもあるなど、発明の思想としては、各種の態様を含むものである。また、ソフトウェアであったりハードウェアであったりするなど、適宜、変更可能である。
【００２６】
発明の思想の具現化例として起動候補制御装置のソフトウェアとなる場合の一例として、請求項８にかかる発明は、コンピュータによって起動候補制御を行うプログラムとして発明を特定している。また、本発明はかかるソフトウェアを記録した記録媒体上においても当然に存在し、利用される。従って、コンピュータによって起動候補制御を行うプログラムを記録した媒体として発明を特定してもよい。むろん、その記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体においても全く同様に考えることができる。さらに、これらの起動候補制御方法，起動候補制御プログラムにおいて上記請求項２〜請求項６に対応した構成にすることも可能である。
【発明を実施するための最良の形態】
【００２７】
ここでは、下記の順序に従って本発明の実施の形態について説明する。
（１）本発明の構成：
（１−１）ランチャーモジュールの構成：
（２）ランチャー制御処理：
（３）起動候補制御動作：
（４）他の実施形態：
【００２８】
（１）本発明の構成：
図１は本発明にかかる起動候補制御装置として機能するコンピュータの構成を示すブロック図である。本実施形態では図１に示すランチャーモジュールが機能することによりコンピュータを起動候補制御装置として機能させる。コンピュータ１０は演算処理の中枢をなすＣＰＵ１１を備えており、このＣＰＵ１１はＲＯＭ１２やＲＡＭ１３にアクセス可能となっている。
【００２９】
また、コンピュータ１０は、ＨＤＤ１５を備えており、オペレーティングシステム（ＯＳ）プログラムのデータ（図示せず）や各種アプリケーションプログラムのデータ（ＡＰＬ１データ１５ｃ１〜ＡＰＬｎデータ１５ｃｎおよび画像処理プログラムのデータ（図示せず））、シグモイド関数の特性を示すデータ（シグモイド関数テーブル１５ａ）、起動履歴に対応した値のデータである履歴変数１５ｂが記録されている。ＯＳ２０や画像処理プログラム３０のデータはＨＤＤ１５からＲＡＭ１３に転送され、ＣＰＵ１１はＲＯＭ１２とＲＡＭ１３に適宜アクセスしてこれらのプログラムを実行する。
【００３０】
この例では各プログラムの類はＨＤＤ１５に記憶されているが、記録媒体はこれに限定されるものではない。例えば、フレキシブルディスク、ＣＤ−ＲＯＭなど各種記録媒体を採用可能である。これらの記録媒体に記録されたプログラムはコンピュータ１０に読み込まれ、ＨＤＤ１５にインストールされる。そして、ＨＤＤ１５を介してＲＡＭ１３上に読み込まれてコンピュータを制御することになる。
【００３１】
コンピュータ１０には図示しないインタフェースを介してキーボード１６やマウス１７等の操作用入力機器が接続されており、図示しないビデオボードを介して表示用のディスプレイ１８も接続されている。尚、本コンピュータ１０の構成は簡略化して説明しているが、パーソナルコンピュータとして一般的な構成を有するものを採用することができる。むろん、図示しないインタフェースにプリンタを接続して使用可能にすること等も可能である。
【００３２】
また、上述のＯＳ２０には、入力機器ドライバ（ＤＲＶ）２１とディスプレイドライバ（ＤＲＶ）２２とが組み込まれている。ディスプレイＤＲＶ２２はディスプレイ１８における画像やマウスポインタ等の表示を制御するドライバであり、入力機器ＤＲＶ２１は図示しないインタフェースを介して入力される上記キーボード１６やマウス１７からのコード信号を受信して所定の入力操作を受け付けるドライバである。
【００３３】
画像処理プログラム３０は、カラー画像のレタッチや画像のレイアウト編集等を実行可能な統合アプリケーションプログラムであり、上記ＡＰＬ１データ１５ｃ１〜ＡＰＬｎデータ１５ｃｎを適宜読み込んでＡＰＬ１〜ＡＰＬｎを実行可能である。すなわち、画像処理プログラム３０は、各ＡＰＬ１〜ＡＰＬｎを実行する際の共通のインタフェース画面の提供や画像ファイルの管理処理等を司るとともに、ＡＰＬ１〜ＡＰＬｎによって実現されるレタッチ等の各種処理を司る。
【００３４】
図１においては、この機能を実現するための構成の一部を示しており、起動対象となるアプリケーションプログラムを選択させるためのランチャー機能を実現するランチャーモジュール３１と各ＡＰＬ１〜ＡＰＬｎの起動を制御するための起動制御部３２とを示している。ここで、ランチャー機能は、実行可能なアプリケーションプログラムを起動候補として提供し、その選択を受け付けることによって任意のアプリケーションプログラムの起動指示を受け付ける機能であり、本実施形態においては、画像処理プログラム３０が提供するインタフェース画面の一部として提供される。
【００３５】
図２は、当該画像処理プログラム３０が提供するインタフェース画面３０ａの例を示す図である。すなわち、画像処理プログラム３０が起動されると、図示しない所定のデータをディスプレイＤＲＶ２２に出力し、図２に示す画面３０ａをディスプレイ１８上に表示させる。画面３０ａにおいては、ファイルディレクトリ表示部３０ａ１とサムネイル表示部３０ａ２とランチャー部３１ｃ１とを備えている。
【００３６】
ランチャー部３１ｃ１には、矩形の表示領域内にＡＰＬ１〜ＡＰＬｎのアイコンを横に並べて表示可能であり、当該表示領域内に起動可能なアプリケーションプログラムの全アイコンを表示できないときには、スクロールによって任意のアイコンを表示できるようになっている。すなわち、図２においてランチャー部３１ｃ１の矩形内には、各アプリケーションプログラムを示すアイコンを表示する（図２では、ＡＰＬ１，ＡＰＬ３などと記載）。また、同図に示す例ではランチャー部３１ｃ１の右端に矢印状のボタンが配置され、これによりスクロール方向を指示するようになっている。
【００３７】
利用者は、この画面３０ａを視認しながら上記マウス１７を操作し、画面上に表示されるマウスポインタでＡＰＬ１〜ＡＰＬｎのいずれかを指示するとともにクリック動作を行うことで、起動対象を指示する。また、上記マウス１７を操作し、画面上に表示されるマウスポインタで上記矢印状のボタンのいずれかを指示するとともにクリック動作を行うことで、ランチャー部３１ｃ１でのスクロールを指示する。これらの指示による指示内容は入力機器ＤＲＶ２１によって取得され、画像処理プログラム３０に受け渡される。
【００３８】
ファイルディレクトリ表示部３０ａ１においては、ＨＤＤ１５に記録された画像データを矩形の表示領域内に表示するための部位であり、階層構造によって管理された画像データをその階層構造とともに表示する。利用者は、上記マウス１７の操作によって処理対象の画像を指示することが可能であり、この指示内容は入力機器ＤＲＶ２１によって取得され、画像処理プログラム３０に受け渡される。これにより、画像処理プログラム３０において処理対象の画像が特定される。
【００３９】
サムネイル表示部３０ａ２においては、ファイルディレクトリ表示部３０ａ１で指示された画像データを読み出してサムネイル表示するための部位である。すなわち、上記画像処理プログラム３０において特定された処理対象の画像を示す画像データからサムネイルデータを取得あるいは生成し、当該サムネイルデータをディスプレイＤＲＶ２２に受け渡す。ディスプレイＤＲＶ２２は当該サムネイルデータに基づいてサムネイル表示部３０ａ２にサムネイル画像を表示する。
【００４０】
（１−１）ランチャーモジュールの構成：
ランチャーモジュール３１は、ランチャー部３１ｃ１における表示候補の制御と起動指示の受付とを実施するため、起動指示検出部３１ａと重み取得部３１ｂと起動候補出力部３１ｃとを備えている。起動指示検出部３１ａは、上記入力機器ＤＲＶ２１から上記アプリケーションプログラムの起動指示を受け取り、起動指示がなされたアプリケーションプログラムを検出する。
【００４１】
重み取得部３１ｂは、ＡＰＬ１〜ＡＰＬｎに対して対応づけられる重みを取得するためのモジュールである。すなわち、上記起動指示検出部３１ａによって起動指示が検出されたアプリケーションプログラムと起動指示が検出されていないアプリケーションプログラムとでは、異なる関数を参照して重みを取得する。本実施形態においては、このために起動指示の有無に応じて別個のデータを備えたシグモイド関数テーブル１５ａと履歴変数１５ｂとが予め用意されている。
【００４２】
シグモイド関数テーブル１５ａはシグモイド関数の特性を予め算出してテーブル化したデータであり、本実施形態においては図３の上部に示す構造である。シグモイド関数ｆ（ｘ）はｆ（ｘ）＝β／（１＋ｅｘｐ（−αｘ））と定義され、本実施形態においてはβ＝１００００、α＝１，１／３である。すなわち、起動指示の有無に応じて重みの変化特性を異なる特性にするため、起動指示がなされたときにはα＝１，起動指示がなされないときにはα＝１／３としている。また、βの値は、シグモイド関数の上限値に対応しているが、重みとしては、アプリケーションプログラム毎の重みを相互に比較することができればよいので、βの値は限定されず、どのように規格化しても良い。
【００４３】
また、シグモイド関数ｆ（ｘ）における従属変数は履歴変数１５ｂであり、本実施形態においては、その値域が”１”〜”２０”であるとともに整数値で定義される。そこで、履歴変数”１”〜”２０”のそれぞれをｘとして上記シグモイド関数に代入し、α＝１，１／３それぞれの場合についてｆ（ｘ）を計算する。この結果を重みとしてテーブルにしたものが図３の上部に示すシグモイド関数テーブル１５ａであり、左端の列に履歴変数の値、中央の列に起動指示がなされたときの重み、右端の列に起動指示がなされないときの重みを示している。
【００４４】
図３の下部には横軸を履歴変数，縦軸を重みとしてテーブルの値をグラフにしてある。当該グラフに示すように、重みは、履歴変数の値が逓増するに従って”１００００”を上限として逓増するとともに、履歴変数が大きくなるに従って履歴変数に対する重みの変化率が小さくなる。また、起動指示がなされた場合と起動指示がなされない場合とを比較すると、履歴変数の値が小さい値域では、起動指示がなされた場合の方が重みが大きく変化する。
【００４５】
尚、履歴変数１５ｂは起動履歴に対応した値であり、起動頻度が大きければその値が大きくなり、起動頻度が小さいとその値が小さくなるように後述の処理によってアプリケーションプログラム毎に値を調整する。このため、履歴変数１５ｂにおいてはＡＰＬ１〜ＡＰＬｎのそれぞれに対応させて履歴変数ｘ1〜ｘnが定義され、ＨＤＤ１５に記録されている。
【００４６】
重み取得部３１ｂは、以上のデータを利用して重みを取得する。すなわち、履歴変数１５ｂを参照して各アプリケーションプログラム毎の履歴変数を取得し、上記起動指示検出部３１ａによって検出された起動指示に従って各アプリケーションプログラムの履歴変数の値を更新する。そして、シグモイド関数テーブル１５ａを参照し、各履歴変数における重みの値を取得する。この結果、各アプリケーションプログラム毎の重みが特定されたことになる。
【００４７】
起動候補出力部３１ｃは、上記ランチャー部３１ｃ１におけるアイコンの表示を制御するモジュールであり、各アプリケーションプログラム（ＡＰＬ１〜ＡＰＬｎ）に対応づけられた重みを上記重み取得部３１ｂから取得する。また、ＨＤＤ１５に記録されたＡＰＬ１データ１５ｃ１〜ＡＰＬｎデータ１５ｃｎに含まれるアイコンデータを取得する。アイコンデータは、各ＡＰＬ１〜ＡＰＬｎを示す画像のデータであり、各ＡＰＬ１〜ＡＰＬｎは上記重みによって表示順序が特定されているので、起動候補出力部３１ｃは当該重みが示す順序でアイコンを表示するための制御データをディスプレイＤＲＶ２２に出力する。
【００４８】
この結果、ランチャー部３１ｃ１においては、各ＡＰＬ１〜ＡＰＬｎの重みに示された順序でアイコンが表示される。尚、本実施形態においては、重みが大きいほど（高順位であるほど）表示順序が左に位置するようになっており、表示画面の初期状態では最も高順位のアプリケーションプログラムのアイコンが最も左に表示されるように制御する。また、起動候補出力部３１ｃにおいては、上記入力機器ＤＲＶ２１が上述のスクロール指示を取得したときに、この指示に応じて画面がスクロールするようにディスプレイＤＲＶ２２に対して制御データを出力する。以上のようにして、ランチャー部３１ｃ１における起動候補の出力制御が実施される。
【００４９】
このようにして、起動候補を出力した状態で上記起動指示検出部３１ａが起動指示を検出すると、起動制御部３２が当該指示されたアプリケーションプログラムを起動する。すなわち、ＡＰＬ１データ１５ｃ１〜ＡＰＬｎデータ１５ｃｎの中から当該指示されたアプリケーションプログラムのデータを抽出してＲＡＭ１３に転送し、そのプログラムの実行を開始する。この結果、起動指示の有無に応じてランチャー部３１ｃ１における表示順位を変更するランチャー機能を提供することが可能になる。
【００５０】
（２）ランチャー制御処理：
本発明では、以上の構成において、ランチャーに表示するアプリケーションプログラムの表示順位を制御することにより、アプリケーションプログラムの一時的な利用頻度の変動を含めてプログラムモジュールの使用態様に応じた選択肢を提供しており、以下、図に基づいてランチャーモジュール３１の制御処理を詳細に説明する。
【００５１】
図４は、ランチャーモジュール３１における制御処理のフローチャートである。画像処理プログラム３０を実行する前には、少なくとも一つ以上のアプリケーションプログラムをインストールしておく。ここでは、図１に示すようにＡＰＬ１〜ＡＰＬｎをインストールし、ＨＤＤ１５にＡＰＬ１データ１５ｃ１〜ＡＰＬｎデータ１５ｃｎをコピーした状態について説明する。本実施形態において、このインストールがなされると、当該インストールがなされたアプリケーションプログラムについての履歴変数値が上記履歴変数１５ｂに追加される。このとき、履歴変数の初期値を最大値”２０”としている。
【００５２】
ランチャーモジュール３１による処理は、画像処理プログラム３０の起動とともに開始され、上記ＡＰＬ１〜ＡＰＬｎの実行とは別個に並列的にランチャーモジュール３１における処理が実行される。まずステップＳ１００では、重み取得部３１ｂが履歴変数１５ｂを参照し、インストール済みのＡＰＬ１〜ＡＰＬｎのそれぞれについてその時点における履歴変数ｘ1〜ｘnを取得する。さらに、重み取得部３１ｂは、ステップＳ１１０においてシグモイド関数テーブル１５ａを参照し、各ＡＰＬ１〜ＡＰＬｎの重みを取得する。
【００５３】
尚、このステップＳ１１０では、ランチャーモジュール３１が起動された直後であり、各ＡＰＬ１〜ＡＰＬｎにおいて起動指示はされていないので、上記図３上部に示す右端列の重みを取得する。以上の処理によって各ＡＰＬ１〜ＡＰＬｎの重みを取得すると、上記起動候補出力部３１ｃはステップＳ１２０で起動候補を表示する。すなわち、この重みが大きい順にＡＰＬ１〜ＡＰＬｎをソートし、ランチャー部３１ｃ１に、左から順にアイコンを並べて表示する。
【００５４】
ステップＳ１３０においては起動指示検出部３１ａが起動指示を受け付け、ステップＳ１４０において起動指示がなされたと判別されるまでステップＳ１３０を繰り返す。すなわち、上記入力機器ＤＲＶ２１によって上記キーボード１６やマウス１７の操作を受け付け、この操作が上記ランチャー部３１ｃ１におけるアプリケーションプログラムの起動指示であれば起動指示検出部３１ａが起動指示されたアプリケーションプログラムを特定する。むろん、ここで起動制御部３２は、起動指示されたアプリケーションプログラムを起動する。
【００５５】
特定のアプリケーションプログラムについての起動指示がなされると、そのアプリケーションプログラムを特定するためのデータが重み取得部３１ｂに受け渡され、重み取得部３１ｂはステップＳ１５０にて当該起動指示がなされたアプリケーションプログラムの履歴変数をインクリメントする。さらに、重み取得部３１ｂは、ステップＳ１６０にて起動指示がなされなかったアプリケーションプログラムの履歴変数をデクリメントする。尚、ステップＳ１５０，Ｓ１６０にてインクリメントあるいはデクリメントした履歴変数の値は履歴変数１５ｂとしてＨＤＤ１５に記録される。
【００５６】
次にステップＳ１７０では、重み取得部３１ｂが、起動指示の有無を区別しながらシグモイド関数テーブル１５ａを参照し、各アプリケーションプログラムの重みを取得する。すなわち、起動指示がなされたアプリケーションプログラムについては、図３上部に示す中央列の重みを参照し、このアプリケーションプログラムに対して対応づけられた履歴変数値に対応する重みを取得する。起動指示がなされていないアプリケーションプログラムについては、図３上部に示す右端列の重みを参照し、このアプリケーションプログラムに対して対応づけられた履歴変数値に対応する重みを取得する。
【００５７】
このように起動指示の有無を反映した重みを取得した後には、ステップＳ１２０以降の処理を繰り返す。すなわち、起動指示の有無に応じて重みの値が更新されているので、その重みに従って再度アプリケーションプログラムをソートし、ランチャー部３１ｃ１に、左から順にアイコンを並べて表示する。この結果、起動指示がなされる度に、ランチャー部３１ｃ１による起動候補の表示順序が上記重みを反映した順序になるよう更新される。
【００５８】
（３）起動候補制御動作：
次に、上記処理によってアプリケーションプログラムの起動候補順位が変動する様子を動作例に沿って説明する。図５は、５つのアプリケーションプログラム（ＡＰＬ１〜ＡＰＬ５）について、同図の上部に示す表の通りの順序で計３０回起動した場合の例を示しており、同図下部のグラフは回数に対する重みの移り変わりを示している。尚、ここでは、いずれかのアプリケーションプログラムが起動される動作を１回と数えている。また、この例は、初期状態でＡＰＬ１〜ＡＰＬ４がインストール済みであり、途中でＡＰＬ５がインストールされる例である。
【００５９】
本実施形態において、インストール直後は履歴変数が上限値の”２０”であり、図５に示す例では初期状態でＡＰＬ１〜ＡＰＬ４の履歴変数が総て”２０”である。重みの初期値が上限値”２０”であり、アプリケーションプログラムの起動指示が検出されると履歴変数がインクリメントされ、その時点で起動指示が検出されなていない総てのアプリケーションプログラムについては履歴変数がデクリメントされる。従って、複数のプログラムモジュール全体で見ると、履歴変数は回数の増加に伴って低下する傾向にあり、この結果、全体としては重みも低下する傾向にある。
【００６０】
但し、図３の下部に示すように起動指示がされた場合の重みは履歴変数の全値域に渡って起動指示がなされない場合の重みより大きいので、あるアプリケーションプログラムが起動されたとき、その重みは図５のグラフに示すように急激に上昇する。また、回数の増加に対する重みの変化は、起動指示がなされたアプリケーションプログラムの方が起動指示がなされないアプリケーションプログラムより大きい。さらに、履歴変数値が小さくなるほど履歴変数に対する重みの変化が急激になるため、小さな重みであるほど一回の起動指示に対する重みの変動は激しい。
【００６１】
このような重みの変化特性であることにより、以下の作用が得られる。
作用１：初期に使用頻度の低いＡＰＬ４は即座に最低順位の配置となる。
作用２：ＡＰＬ４を３回続けて起動した場合は、即座に左から２番目まで順位が上昇する。
作用３：ＡＰＬ４を３回続けて起動した後、ＡＰＬ４を起動しなければ即座に最低順位まで下降する。
作用４：最も使用頻度の高いＡＰＬ３の順位が低下する速度は遅い。
作用５：新規インストールされたＡＰＬ５は最上位に配置され、その後の順位低下速度は遅い。
作用６：使用頻度の低いＡＰＬ２については徐々に順位の低下速度が上がる。
【００６２】
すなわち、図５に示す例では４回目の起動まででＡＰＬ１〜ＡＰＬ３が少なくとも１回ずつ起動されるので、この起動によって履歴変数はインクリメントされる。しかし、ＡＰＬ４については（２２回目まで）デクリメントされ続けるので、ＡＰＬ１〜ＡＰＬ４の中で重みが即座に最低値になる。この結果、ＡＰＬ４のアイコンがランチャー部３１ｃ１で表示される位置は即座に右端になる（作用１）。ランチャー部３１ｃ１においてアイコンを表示するために充分な広さの領域があれば、この領域の右端にＡＰＬ４のアイコンが表示されるし、広さが充分でなければＡＰＬ４のアイコンは表示されず、スクロールによってアイコンを表示することになる。
【００６３】
また、２２回目まで一度もＡＰＬ４を起動しないが、２２回目から２４回目まで３回続けてＡＰＬ４を起動すると、履歴変数が”２”〜”４”まで変化し、重みが急激に上昇する。このとき、ＡＰＬ１〜ＡＰＬ３の履歴変数はデクリメントされ続け、ＡＰＬ１〜ＡＰＬ３の重みは徐々に小さくなる。この結果、図５下部のグラフに示すようにＡＰＬ４の重みは２番目に大きな値となる。従って、ＡＰＬ４のアイコンがランチャー部３１ｃ１で表示される位置は左方向に移動する（作用２）。
【００６４】
さらに、２５回目以降にＡＰＬ４を起動しなければ、履歴変数は再び”３”，”２”，”１”とデクリメントされ、”３”〜”１”より大きな履歴変数が対応づけられているＡＰＬ１〜ＡＰＬ３と比較して高速に重みが低下する。従って、ＡＰＬ４のアイコンがランチャー部３１ｃ１で表示される位置は即座に右方向に移動し、最低順位に達する（作用３）。
【００６５】
さらに、１回目〜３０回目までまんべんなく起動されるＡＰＬ３においては、履歴変数のインクリメントとデクリメントとがまんべんなく繰り返され、上記図５に示す例では履歴変数が”１３”程度までしか低下しない。この値域における履歴変数に対応づけられた重みは、起動指示有りに対応した重みであっても起動指示なしに対応した重みであっても非常に大きな値である。従って、ＡＰＬ３のアイコンがランチャー部３１ｃ１で表示される位置は比較的高順位（左側）に維持される。（作用４）。
【００６６】
さらに、ＡＰＬ１〜ＡＰＬ４を使用している途中（２６回目）で新規にインストールされるＡＰＬ５は、履歴変数が”２０”に設定される。従って、インストール直後には、ＡＰＬ５のアイコンがランチャー部３１ｃ１で表示される位置が最上位となる。また、履歴変数の値が大きいので、重みが低下する速度が遅く、ＡＰＬ５が起動されなかったとしても、履歴変数が小さい他のアプリケーションプログラムと比較して、アイコンがランチャー部３１ｃ１で表示される順位が低下する速度は遅い（作用５）。
【００６７】
さらに、ＡＰＬ２は、起動される頻度が低い。起動されない状態が続くと徐々に履歴変数がデクリメントされ、徐々に重みの変化度合いが急激になりながら重み値が傾向的に低下する。また、上述のように起動指示有りの重みの方が起動指示なしの重みより大きくなるように定義されているため、このようなＡＰＬ２が起動された場合には、即座に順位が上昇するが、起動されない場合には再び起動指示なしの重みとなるので順位はすぐに元の傾向に戻る。従って、起動される頻度が低いＡＰＬ２については、ランチャー部３１ｃ１における表示順位は徐々に変化し、当該順位の低下速度は次第に上がる（作用６）。
【００６８】
（４）他の実施形態：
本発明においては、起動指示の有無に応じて重みを制御することによって、一時的な利用頻度の変動を的確に反映させながら起動候補の順序を変動させることができればよく、この意味で上記実施形態の構成の他にも種々の構成を採用することができる。例えば、画像処理プログラム３０の一部の機能としてランチャー機能を構成する他、ランチャー機能のみを独立して実現できるように構成しても良い。この構成によれば、画像処理プログラム３０にて使用するプログラムモジュール以外にも各種のアプリケーションプログラム等を起動候補にすることができる。
【００６９】
また、パーソナルコンピュータを起動候補制御装置として機能させる構成以外にも、種々のコンピュータを起動候補制御装置とすることができる。例えば、ＰＤＡ（Personal Digital Assistance）や携帯電話等、各種端末に本発明を適用可能である。さらに、起動候補の順序を特定する際の情報として重みのみを採用することが必須というわけではない。例えば、インストールされた順序や累計数、直近の所定期間内での使用頻度の順序を参照しても良い。また、上述の重みがＡＰＬ毎に同じ値になったときにこれらの順序を参照するように構成しても良い。
【００７０】
さらに、上記実施形態では、シグモイド関数テーブル１５ａと履歴変数１５ｂとによって重み定義データを構成していたが、重み定義データにおいては重みを算出できるように定義することができれば良く、種々の構成を採用可能である。例えば、シグモイド関数テーブル１５ａにおいて履歴変数値と重みとを対応づけるのではなく、重みのみをテーブル化しておくとともに、履歴変数１５ｂの替わりに各アプリケーションプログラムにおける重みの現在値を記憶するように構成する。
【００７１】
この構成において、起動指示が検出されると、シグモイド関数テーブルを参照してそのアプリケーションプログラムの現在値を大きくするように更新し、起動指示がなされないアプリケーションプログラムに対応づけられた重みの現在値を小さくするように更新する。この構成においても、一時的な利用頻度の変動を的確に反映させながら起動候補の順序を変動させることが可能である。
【００７２】
むろん、シグモイド関数に基づいて重みを予め計算し、シグモイド関数テーブルとする構成の他、シグモイド関数のパラメータを記憶しておき、起動指示に応じて逐次重みを算出するように構成しても良い。この構成によれば、演算時間は多少増加するが、データを記憶しておくための記憶容量を抑えることができる。また、上述の重みに対しては、起動指示の有無に応じて異なる変化特性を与えられれば良く、重みを算出するために使用する関数はシグモイド関数に限られず、種々の関数を使用可能であるし、関数を使用せずに、経験的に好ましい値を取得しても良い。
【図面の簡単な説明】
【００７３】
【図１】コンピュータの構成を示すブロック図である。
【図２】インタフェース画面の例を示す図である。
【図３】シグモイド関数テーブルの説明図である。
【図４】ランチャーモジュールにおける制御処理のフローチャートである。
【図５】ＡＰＬの起動回数に対する重みの移り変わりを示す図である。
【符号の説明】
【００７４】
１０…コンピュータ、１５…ＨＤＤ、１５ａ…シグモイド関数テーブル、１５ｂ…履歴変数、１５ｃ１〜１５ｃｎ…アプリケーションプログラムデータ、３０…画像処理プログラム、３０ａ…インタフェース画面、３１…ランチャーモジュール、３１ａ…起動指示検出部、３１ｂ…重み取得部、３１ｃ…起動候補出力部、３１ｃ１…ランチャー部、３２…起動制御部
【図１】
2005301797.tif 000003
【図２】
2005301797.tif 000004
【図３】
2005301797.tif 000005
【図４】
2005301797.tif 000006
【図５】
2005301797.tif 000007