(57)【要約】【課題】コンピュータシステムにおける情報を保護する技術を提供する。【解決手段】ホストコンピュータ２に接続されるメモリシステム３に記憶装置３１と、コントローラ３０とを設ける。記憶装置３１に、アプリケーションプログラム３１１と、様々なコンテンツ候補情報を複数の調整候補識別情報のうちのいずれかと関連づけたコンテンツデータベース３１６とを記憶させる。また、コントローラ３０に、推論を実行することにより、入力情報３１４に応じて、複数の調整候補識別情報のうちから特定の調整候補識別情報を調整識別情報３１９として推論する推論部３００と、調整識別情報３１９に対応する調整候補識別情報に関連づけられたコンテンツ候補情報をコンテンツデータベース３１６から選択して調整用コンテンツ情報３２０とする選択部３０２と、調整用コンテンツ情報３２０をホストコンピュータ２に向けて出力するインタフェース部３８とを設ける。【選択図】図３
2020166562.tif 000002
【特許請求の範囲】
【請求項１】
入力情報を作成するホストコンピュータに接続されるメモリシステムであって、
前記ホストコンピュータによって実行されるアプリケーションプログラムと、前記ホストコンピュータによって使用可能な様々なコンテンツ候補情報を複数の調整候補識別情報のうちのいずれかと関連づけたコンテンツデータベースと、前記ホストコンピュータから入力される前記入力情報とを記憶する記憶手段と、
コントローラと、
を備え、
前記コントローラは、
人工知能アルゴリズムによる推論を実行することにより、前記入力情報に応じて、前記複数の調整候補識別情報のうちから特定の調整候補識別情報を調整識別情報として推論する推論手段と、
前記調整識別情報に対応する調整候補識別情報に関連づけられた前記コンテンツ候補情報を前記コンテンツデータベースから選択して調整用コンテンツ情報とする選択手段と、
前記調整用コンテンツ情報を前記ホストコンピュータに向けて出力するインタフェース手段と、
を備えるメモリシステム。
【請求項２】
請求項１に記載のメモリシステムであって、
前記コントローラは、前記ホストコンピュータから入力される入力情報を分析して実行情報として前記記憶手段に記憶させる分析手段をさらに備え、
前記推論手段は、前記実行情報に応じて前記調整識別情報を推論することにより、前記入力情報に応じて前記調整識別情報を推論するメモリシステム。
【請求項３】
請求項１または２に記載のメモリシステムであって、
前記アプリケーションプログラムは、前記ホストコンピュータが前記入力情報を特定するための要求情報を含み、
前記入力情報は、前記要求情報に従って収集された情報であるメモリシステム。
【請求項４】
請求項１ないし３のいずれかに記載のメモリシステムであって、
前記コントローラは、前記インタフェース手段が前記ホストコンピュータに対して出力する前記調整用コンテンツ情報の出力タイミングを決定するタイミング決定手段をさらに備え、
前記インタフェース手段は、前記タイミング決定手段により決定された前記出力タイミングに応じて、前記選択手段により選択された前記調整用コンテンツ情報を前記ホストコンピュータに出力するメモリシステム。
【請求項５】
コンピュータシステムであって、
入力情報を作成するホストコンピュータと、
前記ホストコンピュータに接続されるメモリシステムと、
を備え、
前記メモリシステムは、
前記ホストコンピュータによって実行されるアプリケーションプログラムと、前記ホストコンピュータによって使用可能な様々なコンテンツ候補情報を複数の調整候補識別情報のうちのいずれかと関連づけたコンテンツデータベースと、前記ホストコンピュータから入力される入力情報とを記憶する記憶手段と、
コントローラと、
を備え、
前記コントローラは、
人工知能アルゴリズムによる推論を実行することにより、前記入力情報に応じて、前記複数の調整候補識別情報のうちから特定の調整候補識別情報を調整識別情報として推論する推論手段と、
前記調整識別情報に対応する調整候補識別情報に関連づけられた前記コンテンツ候補情報を前記コンテンツデータベースから選択して調整用コンテンツ情報とする選択手段と、
前記調整用コンテンツ情報を前記ホストコンピュータに向けて出力するインタフェース手段と、
を備えるコンピュータシステム。
【請求項６】
請求項５に記載のコンピュータシステムであって、
前記ホストコンピュータは、収集された情報を分析して前記入力情報を生成する分析手段をさらに備えるコンピュータシステム。
【請求項７】
入力情報を作成するホストコンピュータに接続されるメモリシステムに記憶される情報の情報保護方法であって、
前記ホストコンピュータによって実行されるアプリケーションプログラムと、前記ホストコンピュータによって使用可能な様々なコンテンツ候補情報を複数の調整候補識別情報のうちのいずれかと関連づけたコンテンツデータベースと、前記ホストコンピュータから入力される前記入力情報とを記憶手段に記憶させる工程と、
前記メモリシステムが備えるコントローラによって、人工知能アルゴリズムによる推論を実行することにより、前記入力情報に応じて、前記複数の調整候補識別情報のうちから特定の調整候補識別情報を調整識別情報として推論する工程と、
前記コントローラによって、前記調整識別情報に対応する調整候補識別情報に関連づけられた前記コンテンツ候補情報を前記コンテンツデータベースから選択して調整用コンテンツ情報とする工程と、
前記メモリシステムが備えるインタフェース手段によって、前記調整用コンテンツ情報を前記ホストコンピュータに向けて出力する工程と、
を有する情報保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人工知能機能を搭載したコンピュータシステムにおける情報を保護する技術に関する。
【背景技術】
【０００２】
従来より、ホストコンピュータとメモリシステムとを接続したコンピュータシステムが知られている。このようなコンピュータシステムとして、例えば、タブレットにメモリカードを装着したシステムなどが考えられる。
【０００３】
このようなコンピュータシステムでは、メモリカードにアプリケーションプログラムやコンテンツ情報を格納しておき、メモリカードを装着しているときにアプリケーションプログラムをホストコンピュータにロードする。そして、ロードしたアプリケーションプログラムをホストコンピュータが実行しつつ、装着されたメモリカードからコンテンツ情報を読み出して使用することにより、様々なアプリケーションを実現する。
【０００４】
一方、昨今では、コンピュータによって提供されるアプリケーションにおいて人工知能技術を提供し、人工知能による推論処理により決定した事象に応じてアプリケーションを変更する技術が提案されている。このような技術として、例えば、特許文献１に記載されている技術が提案されている。特許文献１には、プレイヤーの操作入力から推論された事象に応じて、ゲームキャラクタの行動を決定する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１８−０８６０８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところが、ホストコンピュータとメモリシステムとを接続したコンピュータシステムにおいて、ホストコンピュータに人工知能アルゴリズムによる推論処理を行わせるために、推論によって選択され得る全てのコンテンツ情報を、一旦ホストコンピュータに転送すると、コンテンツ情報を不正に抜き取られやすいという問題がある。
【０００７】
本発明は、上記課題に鑑みてなされたものであり、人工知能機能を搭載したコンピュータシステムにおける情報を保護する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、請求項１の発明は、入力情報を作成するホストコンピュータに接続されるメモリシステムであって、前記ホストコンピュータによって実行されるアプリケーションプログラムと、前記ホストコンピュータによって使用可能な様々なコンテンツ候補情報を複数の調整候補識別情報のうちのいずれかと関連づけたコンテンツデータベースと、前記ホストコンピュータから入力される前記入力情報とを記憶する記憶手段と、コントローラとを備え、前記コントローラは、人工知能アルゴリズムによる推論を実行することにより、前記入力情報に応じて、前記複数の調整候補識別情報のうちから特定の調整候補識別情報を調整識別情報として推論する推論手段と、前記調整識別情報に対応する調整候補識別情報に関連づけられた前記コンテンツ候補情報を前記コンテンツデータベースから選択して調整用コンテンツ情報とする選択手段と、前記調整用コンテンツ情報を前記ホストコンピュータに向けて出力するインタフェース手段とを備える。
【０００９】
また、請求項２の発明は、請求項１の発明に係るメモリシステムであって、前記コントローラは、前記ホストコンピュータから入力される入力情報を分析して実行情報として前記記憶手段に記憶させる分析手段をさらに備え、前記推論手段は、前記実行情報に応じて前記調整識別情報を推論することにより、前記入力情報に応じて前記調整識別情報を推論する。
【００１０】
また、請求項３の発明は、請求項１または２の発明に係るメモリシステムであって、前記アプリケーションプログラムは、前記ホストコンピュータが前記入力情報を特定するための要求情報を含み、前記入力情報は、前記要求情報に従って収集された情報である。
【００１１】
また、請求項４の発明は、請求項１ないし３のいずれかの発明に係るメモリシステムであって、前記コントローラは、前記インタフェース手段が前記ホストコンピュータに対して出力する前記調整用コンテンツ情報の出力タイミングを決定するタイミング決定手段をさらに備え、前記インタフェース手段は、前記タイミング決定手段により決定された前記出力タイミングに応じて、前記選択手段により選択された前記調整用コンテンツ情報を前記ホストコンピュータに出力する。
【００１２】
また、請求項５の発明は、コンピュータシステムであって、入力情報を作成するホストコンピュータと、前記ホストコンピュータに接続されるメモリシステムとを備え、前記メモリシステムは、前記ホストコンピュータによって実行されるアプリケーションプログラムと、前記ホストコンピュータによって使用可能な様々なコンテンツ候補情報を複数の調整候補識別情報のうちのいずれかと関連づけたコンテンツデータベースと、前記ホストコンピュータから入力される入力情報とを記憶する記憶手段と、コントローラとを備え、前記コントローラは、人工知能アルゴリズムによる推論を実行することにより、前記入力情報に応じて、前記複数の調整候補識別情報のうちから特定の調整候補識別情報を調整識別情報として推論する推論手段と、前記調整識別情報に対応する調整候補識別情報に関連づけられた前記コンテンツ候補情報を前記コンテンツデータベースから選択して調整用コンテンツ情報とする選択手段と、前記調整用コンテンツ情報を前記ホストコンピュータに向けて出力するインタフェース手段とを備える。
【００１３】
また、請求項６の発明は、請求項５の発明に係るコンピュータシステムであって、前記ホストコンピュータは、収集された情報を分析して前記入力情報を生成する分析手段をさらに備える。
【００１４】
また、請求項７の発明は、入力情報を作成するホストコンピュータに接続されるメモリシステムに記憶される情報の情報保護方法であって、前記ホストコンピュータによって実行されるアプリケーションプログラムと、前記ホストコンピュータによって使用可能な様々なコンテンツ候補情報を複数の調整候補識別情報のうちのいずれかと関連づけたコンテンツデータベースと、前記ホストコンピュータから入力される前記入力情報とを記憶手段に記憶させる工程と、前記メモリシステムが備えるコントローラによって、人工知能アルゴリズムによる推論を実行することにより、前記入力情報に応じて、前記複数の調整候補識別情報のうちから特定の調整候補識別情報を調整識別情報として推論する工程と、前記コントローラによって、前記調整識別情報に対応する調整候補識別情報に関連づけられた前記コンテンツ候補情報を前記コンテンツデータベースから選択して調整用コンテンツ情報とする工程と、前記メモリシステムが備えるインタフェース手段によって、前記調整用コンテンツ情報を前記ホストコンピュータに向けて出力する工程とを有する。
【発明の効果】
【００１５】
入力情報を作成するホストコンピュータに接続されるメモリシステムにおいて、コントローラが、人工知能アルゴリズムによる推論を実行することにより、入力情報に応じて、複数の調整候補識別情報のうちから特定の調整候補識別情報を調整識別情報として推論する推論手段と、当該調整識別情報に対応する調整候補識別情報に関連づけられたコンテンツ候補情報をコンテンツデータベースから選択して調整用コンテンツ情報とする選択手段と、調整用コンテンツ情報をホストコンピュータに向けて出力するインタフェース手段とを備えることにより、複数のコンテンツ候補情報のうちから選択された一部の調整用コンテンツ情報しかホストコンピュータに出力しない。したがって、すべてのコンテンツ候補情報をホストコンピュータに出力し、ホストコンピュータ側で推論して実際に使用する調整用コンテンツ情報を選択する場合に比べて、コンテンツ候補情報を不正に抜き取られる危険性が低下する。
【図面の簡単な説明】
【００１６】
【図１】第１の実施の形態におけるコンピュータシステムのブロック図である。
【図２】コンテンツデータベースを示す図である。
【図３】第１の実施の形態における構成後のコントローラが備える機能ブロックをデータの流れとともに示す図である。
【図４】コンピュータシステムを用いた情報保護方法を示す流れ図である。
【図５】アプリケーション実行処理において、第１の実施の形態におけるホストコンピュータが実行する処理を示す流れ図である。
【図６】アプリケーション実行処理において、第１の実施の形態におけるメモリシステムが実行する処理を示す流れ図である。
【図７】第２の実施の形態におけるコンピュータシステムを示す図である。
【図８】第２の実施の形態におけるホストコンピュータが備える機能ブロックをデータの流れとともに示す図である。
【図９】第２の実施の形態における構成後のコントローラが備える機能ブロックをデータの流れとともに示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。ただし、以下の説明において特に断らない限り、方向や向きに関する記述は、当該説明の便宜上、図面に対応するものであり、例えば実施品、製品または権利範囲等を限定するものではない。
【００１８】
＜１．  第１の実施の形態＞
図１は、第１の実施の形態におけるコンピュータシステム１のブロック図である。コンピュータシステム１は、ホストコンピュータ２とメモリシステム３とを備えている。
【００１９】
なお、以下の説明では、特に断らない限り、コンピュータシステム１において提供されるアプリケーションプログラム３１１がゲームプログラムである例について説明する。このようなコンピュータシステム１としては、例えば、家庭用のゲーム機などを想定することができる。ただし、コンピュータシステム１によって提供されるアプリケーションはゲームに限定されるものではない。アプリケーションとしては、例えば、ユーザの健康を管理するものや、道案内を提供するものなどが想定される。ユーザは、アプリケーションプログラム３１１を変更することにより、コンピュータシステム１において様々なアプリケーションを動作させることが可能である。
【００２０】
ホストコンピュータ２は、ＣＰＵ２０、記憶装置２１、操作部２２および表示部２３を備えている。
【００２１】
図１に示す起動プログラム２１０は、ホストコンピュータ２の起動時にＣＰＵ２０によって実行されるプログラムである。
【００２２】
収集情報２１１は、ホストコンピュータ２において要求情報３１２に従って収集（記録）される情報であり、かつ、メモリシステム３に向けて転送される情報である。ホストコンピュータ２では、収集タイミングが到来するたびに、後述する様々なハードウェアを制御することにより情報を収集し、収集情報２１１を作成する。以下の説明では、特に断らない限り、収集タイミングは、所定の周期で到来するように設定されているものとする。収集タイミングは、例えば、アプリケーションプログラム３１１に定義しておくことができる。なお、収集情報２１１の詳細は、後述する。
【００２３】
アプリケーションプログラム３１１は、メモリシステム３に記憶されているプログラムであるが、ホストコンピュータ２に向けてロード（転送）されて、記憶装置２１に記憶される。アプリケーションプログラム３１１は、要求情報３１２を含んでいる。
【００２４】
要求情報３１２は、ホストコンピュータ２が収集可能な情報のうち、どのような情報をメモリシステム３（アプリケーションプログラム３１１）が収集情報２１１（入力情報３１４）として要求するかを示す情報である。
【００２５】
ＣＰＵ２０は、起動プログラム２１０や、メモリシステム３からロードされたアプリケーションプログラム３１１を適宜読み取りつつ実行する。これにより、ＣＰＵ２０は、各種データの演算や制御信号の生成等を行う。すなわち、ＣＰＵ２０は、ホストコンピュータ２が備える各構成を制御するとともに、各種データを演算し作成する機能を有している。したがって、ホストコンピュータ２は、一般的なコンピュータを構成している。
【００２６】
なお、図１に示すように、メモリシステム３に記憶されているアプリケーションプログラム３１１は要求情報３１２を含んでいる。したがって、アプリケーションプログラム３１１がホストコンピュータ２に向けてロードされるときに、要求情報３１２もホストコンピュータ２に向けて転送されて記憶装置２１に記憶される。
【００２７】
このように、アプリケーションプログラム３１１が要求情報３１２を含んでいることにより、アプリケーションプログラム３１１ごとに専用の要求情報３１２を準備することができる。ただし、要求情報３１２は、必ずしもアプリケーションプログラム３１１に含まれていなければならないわけではない。記憶装置３１内において、アプリケーションプログラム３１１と要求情報３１２とは別に記憶されていてもよい。例えば、アプリケーションプログラム３１１が記憶装置３１内のＲＯＭに記憶され、要求情報３１２が記憶装置内の読み書き可能な記憶領域に記憶されていてもよい。すなわち、アプリケーションプログラム３１１が、当該アプリケーションプログラム３１１用の要求情報３１２と互いに対応付けられていればよい。
【００２８】
記憶装置２１は、ホストコンピュータ２において各種データを記憶する機能を提供する。言い換えれば、記憶装置２１がホストコンピュータ２において電子的に固定された情報を保存する。
【００２９】
記憶装置２１としては、ＣＰＵ２０の一時的なワーキングエリアとして使用されるＲＡＭやバッファ、読み取り専用のＲＯＭ、不揮発性のメモリ（例えばＮＡＮＤメモリなど）、比較的大容量のデータを記憶するハードディスク、専用の読み取り装置に装着された可搬性の記憶媒体（ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＢＤ−ＲＯＭ、ＰＣカード、ＳＤカード、ＵＳＢメモリなど）等が該当する。図１においては、記憶装置２１を、あたかも１つの構造物であるかのように図示している。しかし、通常、記憶装置２１は、上記例示した各種装置（あるいは媒体）のうち、必要に応じて採用される複数種類の装置から構成されるものである。すなわち、記憶装置２１は、データを記憶する機能を有する装置群の総称である。
【００３０】
また、現実のＣＰＵ２０は高速にアクセス可能なＲＡＭを内部に備えた電子回路である。しかし、このようなＣＰＵ２０が備える記憶装置も、説明の都合上、記憶装置２１に含めて説明する。すなわち、厳密にはＣＰＵ２０自体が記憶するデータも、記憶装置２１が記憶するとして説明する。
【００３１】
図１に示すように、記憶装置２１は、収集情報２１１および要求情報３１２を記憶するために使用される。ただし、記憶装置２１が記憶する情報は、収集情報２１１および要求情報３１２に限定されるものではない。記憶装置２１に記憶される情報としては、例えば、ＣＰＵ２０の起動プログラム２１０、メモリシステム３からロードされたアプリケーションプログラム３１１、後述する調整用コンテンツ情報３２０（図３参照）、表示部２３に表示される情報、あるいは、スピーカ２７に再生される音声情報なども記憶される。
【００３２】
操作部２２は、ホストコンピュータ２に対して、コンピュータシステム１のユーザが指示を入力するために操作するハードウェアである。操作部２２としては、例えば、各種キーやボタン類、スイッチ、タッチパネル、ポインティングデバイス、あるいは、ジョグダイヤルなどが該当する。操作部２２がユーザによって操作されると、操作に応じて、様々な情報が入力される。このようにして入力された情報はＣＰＵ２０に伝達される。
【００３３】
ＣＰＵ２０は、要求情報３１２を参照して、操作部２２から入力された情報を取捨選択し、その一部または全部を収集情報２１１として記憶装置２１に記憶させる。すなわち、収集情報２１１は、ユーザが操作部２２を操作することによって入力された情報を含む。ただし、収集情報２１１に含まれる情報は要求情報３１２によって決定されるため、収集情報２１１は必ずしも操作部２２から入力された情報を含まなければならないわけではない。
【００３４】
このように、要求情報３１２を参照することによって、ホストコンピュータ２（ＣＰＵ２０）は効率よく収集情報２１１を収集することができる。ただし、要求情報３１２は、本発明を実施するための必須の要件ではない。要求情報３１２が存在しなくても、ホストコンピュータ２が収集情報２１１を収集することは可能である。例えば、操作部２２から入力される情報を、ＣＰＵ２０が全て収集情報２１１としてもよい。
【００３５】
表示部２３は、各種データを表示することによりユーザ等に対して出力する機能を有するハードウェアである。表示部２３としては、例えば、ランプやＬＥＤ、ＣＲＴ、液晶ディスプレイや液晶パネルなどが該当する。
【００３６】
また、ホストコンピュータ２は、センサ２４、カメラ２５、マイク２６、スピーカ２７およびインタフェース部２８を備えている。
【００３７】
センサ２４は、周囲の環境を計測して数値化（情報化）し、電気信号としてＣＰＵ２０に伝達する。センサ２４としては、例えば、加速度センサ、ジャイロセンサ、磁気センサ、ＧＰＳ（位置センサ）、振動センサ、温度センサ、あるいは、湿度センサなどが該当する。ただし、このようなセンサに限定されるものではないし、ここに例示したセンサを全て備えていなければならないわけでもない。
【００３８】
ＣＰＵ２０は、要求情報３１２を参照して、センサ２４から入力された各種情報を取捨選択し、その一部または全部を収集情報２１１として記憶装置２１に記憶させる。すなわち、収集情報２１１は、センサ２４によって取得された情報を含む。
【００３９】
なお、図１においては、センサ２４を、あたかも１つの構造物であるかのように図示している。しかし、通常、センサ２４は、各種装置のうち、必要に応じて採用される１以上の装置から構成されるものである。すなわち、センサ２４は、周囲の環境を計測して情報化（数値化）する機能を有する装置群の総称である。
【００４０】
また、ＣＰＵ２０は、予め要求情報３１２を参照して、必要なセンサ２４にのみ情報を要求してもよい。あるいは、例えば、要求情報３１２において地磁気に関する情報が要求されていない場合には、ＣＰＵ２０は、磁気センサをスリープ状態（磁気の検出を停止した状態）にしてもよい。このように、ＣＰＵ２０が必要のないセンサ２４を停止させることにより、コンピュータシステム１の負荷を軽減することができる。
【００４１】
さらに、すでに説明したように、収集情報２１１に含まれる情報は、要求情報３１２によって決定されるため、収集情報２１１は必ずしもセンサ２４から入力された情報を含まなければならないわけではない。
【００４２】
カメラ２５は、図示しない光学系および光電変換素子などを備えており、一般的なデジタルカメラを構成している。カメラ２５は、周囲における撮像範囲内の被写体を撮像することにより撮像情報（画像情報）を取得し、ＣＰＵ２０に伝達する。ＣＰＵ２０は、要求情報３１２を参照して、カメラ２５から入力された情報を取捨選択し、その一部または全部を収集情報２１１として記憶装置２１に記憶させる。すなわち、収集情報２１１は、カメラ２５によって取得された画像情報を含む。ただし、すでに説明したように、収集情報２１１に含まれる情報は要求情報３１２によって決定されるため、収集情報２１１は必ずしもカメラ２５から入力された情報を含まなければならないわけではない。
【００４３】
マイク２６は、周囲の環境における音（空気振動）を電気信号（音声情報）に変換し、ＣＰＵ２０に伝達する。ＣＰＵ２０は、要求情報３１２を参照して、マイク２６から入力された音声情報を取捨選択し、その一部または全部を収集情報２１１として記憶装置２１に記憶させる。すなわち、収集情報２１１は、マイク２６によって取得された音声情報を含む。さらに、すでに説明したように、収集情報２１１に含まれる情報は要求情報３１２によって決定されるため、収集情報２１１は必ずしもマイク２６から入力された情報を含まなければならないわけではない。
【００４４】
スピーカ２７は、音声情報に基づいて音を再生し出力する機能を有するハードウェアである。スピーカ２７は、ＣＰＵ２０からの制御に従って、例えば、ゲーム音楽や効果音、あるいは、人物の声などを再生する。
【００４５】
インタフェース部２８は、メモリシステム３のインタフェース部３８との間で情報通信が可能な状態で、かつ、着脱自在に接続する機能を有している。すなわち、メモリシステム３のインタフェース部３８がインタフェース部２８に装着されることにより、ホストコンピュータとメモリシステムとの間で情報通信が可能となる。この状態で、電力もメモリシステム３に供給される。すなわち、メモリシステム３はインタフェース２８に装着されることによりホストコンピュータ２側から電力の供給を受ける。さらに、ユーザは、装着されているメモリシステム３を抜き取って別のメモリシステム３を装着することにより、メモリシステム３を交換することが可能である。
【００４６】
なお、ホストコンピュータ２は、図１に示す構成以外にも、例えば、通信部を備え、インターネットなどに接続する機能を有していてもよい。例えば、インターネットを介して外部のサーバ装置から様々な情報をダウンロードするように構成してもよい。あるいは、ホストコンピュータ２は、バイブレータを備えていてもよい。アプリケーションプログラム３１１の実行状況などに応じてバイブレータを振動させることにより、例えば、ユーザの臨場感を増大させることができる。
【００４７】
ホストコンピュータ２に接続されるメモリシステム３は、図１に示すように、コントローラ３０と、記憶装置３１と、インタフェース部３８とを備えている。先述のように、メモリシステム３は着脱自在に構成されている。したがって、ユーザはメモリシステム３を交換することができる。ただし、メモリシステム３は、必ずしも着脱自在でなければならないわけではない。
【００４８】
以下の説明では、コントローラ３０は、ＦＰＧＡ（Field-Programmable Gate Array）として説明する。ＦＰＧＡは、プログラム可能な論理コンポーネント（論理ブロック）を備えており、これらの論理ブロックを相互接続する再構成可能な配線階層を備えている。これによりＦＰＧＡは、製造後に構成を設定することができる集積回路である。ＦＰＧＡは、並列演算や畳み込み演算に威力を発揮するハードウェアである。ただし、コントローラ３０は、ＤＳＰや、比較的汎用性の高いＣＰＵなどの処理装置であってもよい。
【００４９】
コントローラ３０は、各種データの演算を行う。これにより、コントローラ３０は、各種データを作成する機能を有している。このようにメモリシステム３は一種のコンピュータとして構成されている。
【００５０】
記憶装置３１は、メモリシステム３において各種データを記憶する機能を提供する。言い換えれば、記憶装置３１がメモリシステム３において電子的に固定された情報を保存する。
【００５１】
記憶装置３１としては、コントローラ３０の一時的なワーキングエリアとして使用されるＲＡＭやバッファ、読み取り専用のＲＯＭ、不揮発性のメモリ（例えばＮＡＮＤメモリなど）等が該当する。図１においては、記憶装置３１を、あたかも１つの構造物であるかのように図示している。しかし、通常、記憶装置３１は、上記例示した各種装置（あるいは媒体）のうち、必要に応じて採用される複数種類の装置から構成されるものである。すなわち、記憶装置３１は、データを記憶する機能を有する装置群の総称である。
【００５２】
また、ＦＰＧＡであるコントローラ３０は、現実には、高速にアクセス可能なメモリや不揮発性のメモリを内部に備えた電子回路である。しかし、このようなコントローラ３０が備える記憶装置も、説明の都合上、記憶装置３１に含めて説明する。すなわち、厳密にはコントローラ３０自体が記憶するデータも、記憶装置３１が記憶するとして説明する。図１に示すように、記憶装置３１は、プログラム３１０、アプリケーションプログラム３１１、学習結果情報３１３、入力情報３１４、実行情報３１５およびコンテンツデータベース３１６を記憶するために使用される。ただし、記憶装置３１に記憶される情報はこれらに限定されるものではない。
【００５３】
プログラム３１０は、必要に応じてコントローラ３０を再構成するための情報である。ＦＰＧＡであるコントローラ３０は、出荷前に、論理ブロックやそれらを相互接続する配線階層の状態などを決定することにより、コントローラ３０における演算アルゴリズムを一旦固定する（以下の説明では、この状態のコントローラ３０を「構成後のコントローラ３０」と称する。）。一方で、構成後のコントローラ３０は、プログラム３１０に基づいて再構成も可能（演算アルゴリズムを変更可能）である。ただし、以下の説明では、プログラム３１０によるコントローラ３０の再構成については詳細な説明を省略する。なお、ＣＰＵやＭＰＵ（Micro Processing Unit）のように動作時にソフトウェアを必要とする演算回路としてコントローラ３０を構成した場合には、プログラム３１０は動作中にコントローラ３０によって実行されるプログラムである。
【００５４】
アプリケーションプログラム３１１は、ホストコンピュータ２によって実行されるプログラムである。アプリケーションプログラム３１１は、メモリシステム３から転送されて、ホストコンピュータ２の記憶装置２１にロードされ（図示せず）、逐次、ＣＰＵ２０により読み出されて実行される。すでに説明したように、アプリケーションプログラム３１１は、要求情報３１２を含んでいる。
【００５５】
なお、詳細は後述するが、アプリケーションプログラム３１１は、「状況」に応じて、当該アプリケーションプログラム３１１が使用可能なコンテンツを表現した情報を変更することによって、「調整」が可能である。厳密には、アプリケーションが調整されるのは、変更されたコンテンツを表現した情報が実際にアプリケーションにおいて使用されたときである。しかし、以下の説明では、ホストコンピュータ２において使用可能なコンテンツを表現した情報の少なくとも一部が調整用コンテンツ情報３２０（図３参照）によって変更されることも、便宜上、「調整」と呼ぶものとする。一方で、アプリケーションプログラム３１１によって使用可能なコンテンツを表現した情報には、例えば、セーブデータなども想定される。しかし、セーブデータが変更されたとしても、これは調整用コンテンツ情報３２０によって変更されたものではないので、以下の説明における「調整」には該当しない。
【００５６】
また、アプリケーションプログラム３１１は、調整に関わりなく（全ての調整に共通して）使用されるコンテンツを表現した情報（例えば、タイトル画面の情報）や、調整されるまでの間だけ初期的に使用されるコンテンツを表現した情報（例えば、調整後には削除されて出現しないキャラクタの情報や、調整後には書き替えられる情報）などを含んでいる。したがって、結果的に、何らの調整も行われなかったとしても、アプリケーションプログラム３１１は、ゲームを支障なく提供することができる。
【００５７】
学習結果情報３１３は、後述するコントローラ３０によって実現される人工知能による推論処理のときに使用される情報である。学習結果情報３１３は、例えば、推論処理に使用される演算係数や閾値などから構成されている。学習結果情報３１３は予め外部の装置などで実行された学習処理の結果作成された情報であり、記憶装置３１に記憶されている。
【００５８】
学習結果情報３１３の作成手法としては、例えば、遺伝的アルゴリズムによる学習や、教師なし学習で用いられるクラスタリング、教師あり学習で用いられるサポートベクターマシン、あるいは、多層ニューラルネットに用いられるディープラーニング（深層学習）などが知られている。つまり、学習結果情報３１３には、採用する人工知能アルゴリズムに関連した情報、例えば、採用する学習済みのネットワークモデル（層数、各層の種類、ノード／ユニット数、重み、活性化関数など）や、推論を行う際に必要とする入力情報３１４の種類、ビット／チャネル数などを含んだ情報である。ただし、採用する人工知能アルゴリズムによって学習結果情報３１３の内容や構造は異なる。
【００５９】
説明の便宜上、学習結果情報３１３が記憶装置３１に格納されているかのように説明した。しかし、コントローラ３０がＦＰＧＡである本実施の形態では、より厳密には、学習結果情報３１３を反映した状態でコントローラ３０が構成されている。ただし、コントローラ３０にＣＰＵなどのハードウェアを採用した場合、学習結果情報３１３は、記憶装置３１上のパラメータ情報などとしてコントローラ３０に与えられる。
【００６０】
以下の説明では、学習結果情報３１３は、固定の情報として説明する。ただし、学習結果情報３１３は、出荷後の学習処理によって更新され、適宜コントローラ３０によって参照されてもよい。あるいは、サーバへアップロードして、サーバ側でより最適化された学習結果情報３１３を生成してからダウンロードしてもよい。このようにして更新された学習結果情報３１３によってコントローラ３０が再構成されてもよい。
【００６１】
入力情報３１４は、ホストコンピュータ２からメモリシステム３に対して入力される収集情報２１１である。ホストコンピュータ２において収集（記録）された収集情報２１１は、メモリシステム３に転送されて、入力情報３１４として記憶装置３１に記憶される。
【００６２】
実行情報３１５は、入力情報３１４をコントローラ３０が分析した結果として得られる情報である。コントローラ３０は、ホストコンピュータ２から入力される入力情報３１４（収集情報２１１）を分析して実行情報３１５を作成して記憶装置３１に記憶させる。詳細は後述するが、コントローラ３０は、実行情報３１５に応じて適切な調整を推論（人工知能による推論演算を実行）する。
【００６３】
なお、先述のように、実行情報３１５は、入力情報３１４に応じて作成される情報である。したがって、コントローラ３０が実行情報３１５に応じて推論することは、間接的には、コントローラ３０が入力情報３１４に応じて推論することに相当する。
【００６４】
図１に示すコンテンツデータベース３１６は、様々な情報を互いに関連づけたテーブル構造のデータベースである。
【００６５】
図２は、コンテンツデータベース３１６を示す図である。コンテンツデータベース３１６は、複数のレコードから構成されている。また、各レコードは、２つの項目（データ格納領域）を有している。
【００６６】
各レコードの第１項目には、調整候補識別情報３１７が格納されている。したがって、記憶装置３１は、コンテンツデータベース３１６を記憶することによって、複数の調整候補識別情報３１７を記憶する。複数の調整候補識別情報３１７は、それぞれが互いに重複することのない固有の値である。これにより、コンテンツデータベース３１６には、値の異なる調整候補識別情報３１７ごとに１つのレコードが作成されることになる。
【００６７】
アプリケーションプログラム３１１の設計者（以下、単に「設計者」と称する。）は、アプリケーションプログラム３１１の実行中に想定される複数の状況に応じて、それぞれの状況に適した調整を決定し、予め準備する。すなわち、設計者は、想定される状況ごとに、適切な調整を設計する。これにより、準備される複数の調整はそれぞれ互いに異なる調整となる。
【００６８】
具体的には、例えば、ロールプレイングゲームにおいて、ユーザの「プレイヤーレベル」を「状況」として定義した場合、複数の状況としては、「低級者」、「中級者」あるいは「上級者」を想定することができる。そして、「低級者」、「中級者」、「上級者」といったそれぞれのプレイヤーレベルには、それぞれのプレイヤーレベルに適した調整が準備される。
【００６９】
例えば、「低級者」に対しては、「敵の動きを遅くする」、「敵の出現数を減らす」、「敵の武装を弱くする」、あるいは、「味方のキャラクタを出現させる」といった「低級者用の調整」が準備される。一方、「上級者」に対しては、「敵の動きを速くする」、「敵の出現数を増やす」、「敵の武装を強くする」、あるいは、「味方のキャラクタを出現させない」といった「上級者用の調整」が準備される。
【００７０】
このようにして準備されるそれぞれの調整は、コンピュータシステム１において提供されると決定されるまでは調整候補である。設計者は、１つの調整候補に、１つの調整候補識別情報３１７を対応付ける。これにより、それぞれの調整候補識別情報３１７は、準備された複数の調整候補に一対一で対応付けされる。したがって、調整候補識別情報３１７を特定すれば、複数の調整候補のうちから所望の調整候補を特定することができる。すなわち、調整候補識別情報３１７は、準備された複数の調整候補の中から特定の調整候補を識別するための識別子である。
【００７１】
先述の例で説明すると、「低級者用の調整」に対応する調整候補識別情報３１７として「１」を割り当て、「上級者用の調整」に対応する調整候補識別情報３１７として「３」を割り当てる。これにより、調整候補識別情報３１７が「１」であれば「低級者用の調整候補」、調整候補識別情報３１７が「３」であれば「上級者用の調整候補」であることがそれぞれ識別できる。
【００７２】
なお、定義する状況としては、ゲーム（アプリケーション）を調整することが適当と考えられる事象に応じて定義することが望ましい。例えば、プレイ環境（屋内、屋外、車内、コントローラの種類など）、ユーザのプレイ履歴情報（回数、時間、選択履歴など）、ユーザの心理状況（イライラしているか、楽しんでいるかなど）、あるいは、ユーザの個人情報（年令、性別、国籍、居所、癖、好みなど）などが状況として想定される。ただし、これらに限定されるものではなく、また、これらの全てを想定しなければならないわけでもない。
【００７３】
また、想定し得る複数の状況を組み合わせて、より総合的な１つの状況を定義してもよい。例えば、「プレイ回数が少ない」状況で、かつ、ユーザの操作の状況からユーザが「低級者」である状況を「初心者」という状況として定義してもよい。この場合、例えば、ゲームの背景（ストーリーなど）や操作方法の説明を詳細に表示するとともに、弱い敵キャラクタを出現させるように調整候補を設計する。一方で、同じく「低級者」であっても「プレイ回数が多い」状況のときは「初心者」ではなく別の状況として定義し、敵キャラクタは相変わらず弱いままとしつつも、「プレイ回数が多い」ことからゲームの背景や操作方法の説明は既に知っているものとして簡略化して表示するように調整候補を設計する。
【００７４】
図２に示すように、コンテンツデータベース３１６の各レコードの第２項目には、コンテンツ候補情報３１８が格納される。
【００７５】
コンテンツ候補情報３１８は、設計者によって調整用に準備された情報であって、様々なコンテンツを表現するための情報である。準備され、コンテンツデータベース３１６に格納されている各コンテンツは、必ずしも全てが実際にアプリケーションプログラム３１１によって使用されるわけではない。例えば、状況（調整）に応じて択一的に使用されるコンテンツは、一方が使用されると他方は使用されない。また、アプリケーションプログラム３１１が使用するのではなく、ホストコンピュータ２において実行される他のプログラムが使用するものも含まれる。したがって、少なくとも使用されることが決定されるまでは、準備されただけの状態のコンテンツ（コンテンツデータベース３１６に収録されただけのコンテンツ）は、ホストコンピュータ２が使用可能なコンテンツの「候補」である。
【００７６】
コンテンツ候補情報３１８の具体例は、画像情報（登場人物や物体、風景など）、音声情報（効果音やＢＧＭ、登場人物の声など）、その他の出力情報（バイブレーションなど）、あるいは、パラメータ情報（キャラクタの行動パターンやスピード、強さなど）などである。もちろんここに列挙した情報に限定されるものではない。
【００７７】
また、異なるゲームにおいては、通常、異なるキャラクタが登場する。すなわち、アプリケーションプログラム３１１がどのようなコンテンツ候補情報３１８を必要とするかは、アプリケーションプログラム３１１ごとに異なっている。したがって、コンテンツ候補情報３１８は、アプリケーションプログラム３１１ごとに準備される情報である。
【００７８】
同一のレコードに格納された調整候補識別情報３１７およびコンテンツ候補情報３１８は、互いに同一のレコードに格納されることにより、コンテンツデータベース３１６において互いに関連づけされている。すなわち、記憶装置３１に記憶されるコンテンツデータベース３１６は、ホストコンピュータ２によって使用可能なコンテンツを表す情報（コンテンツ候補情報３１８）を複数の調整候補識別情報３１７のうちのいずれかと関連づけた情報である。
【００７９】
コンテンツ候補情報３１８は、アプリケーションプログラム３１１に使用される情報以外の情報を含んでいてもよい。例えば、コンテンツ候補情報３１８は、アプリケーションプログラム３１１と直接関係の薄い「広告」を表現した情報であってもよい。広告は、例えば、アプリケーションプログラム３１１が実行されていないとき（例えば、別のアプリケーションプログラムが実行されているとき）に提供されてもよい。具体的には、ユーザがスポーツ体験型のゲーム（アプリケーションプログラム３１１）を頻繁にプレイするという状況に備えて、ゲームのプレイ中以外のときにスポーツ用品の広告を提供するといった調整が考えられる。アプリケーションプログラム３１１の実行中（ゲームのプレイ中）に広告が表示されても、注目度が低下するおそれがあるが、ユーザが注目しやすい状況を検出して、そのタイミングで広告を表示すれば効果的な広告を提供できる。したがって、このような広告を表現したコンテンツ候補情報３１８は、ホストコンピュータ２によって使用可能な情報ではあるが、アプリケーションプログラム３１１によって使用される情報ではない。
【００８０】
通常は、特定の調整を実現するために変更されるコンテンツは複数存在する。したがって、特定の調整候補識別情報３１７に関連づけされるコンテンツ候補情報３１８は、当該調整候補識別情報３１７によって識別される調整を実現するために必要となるコンテンツを表現した情報の集合体となる。例えば、１つの調整候補識別情報３１７に関連づけられているコンテンツ候補情報３１８が、キャラクタＡ（１つのコンテンツ）の画像情報、および、キャラクタＡとは異なるキャラクタＢ（もう１つのコンテンツ）の画像情報を含んでいる。ただし、調整ごとに変更されるコンテンツは複数でなくてもよい。すなわち、各調整において変更（調整）されるコンテンツが１つであってもよい。
【００８１】
なお、異なる調整候補識別情報３１７にそれぞれ関連づけられるコンテンツ候補情報３１８において、一部の情報が共通していてもよい。先述の例で説明すれば、「低級者」に関連づけられたコンテンツ候補情報３１８には「味方のキャラクタＡ」および「味方のキャラクタＢ」を表現した情報がいずれも含まれており、「中級者」に関連づけられたコンテンツ候補情報３１８には「味方のキャラクタＡ」を表現した情報が含まれている一方で、「味方のキャラクタＢ」を表現した情報は含まれていなくてもよい。このような場合、「低級者」および「中級者」に対しては、いずれも「キャラクタＡ」が味方として登場するが、「中級者」に対しては「キャラクタＢ」は味方として登場することはない。すなわち、異なる調整候補識別情報３１７（異なる調整に対応する）に関連づけられるコンテンツ候補情報３１８は互いに完全に同一でさえなければ、これによって互いに異なる調整を実現することができる。
【００８２】
また、調整の対象となっていないコンテンツ（異なる調整において変更されないコンテンツ）を表現した情報を、全てのコンテンツ候補情報３１８に共通して含めるようにしてもよい。
【００８３】
本実施の形態では、すでに説明したように、調整の対象となっていないコンテンツを表現した情報はアプリケーションプログラム３１１とみなしてアプリケーションプログラム３１１に含める。このような場合、アプリケーションプログラム３１１に含まれるコンテンツを表現した情報は、コンテンツデータベース３１６から除外される。すなわち、コンテンツデータベース３１６は、アプリケーションプログラム３１１が使用する全てのコンテンツを含んでいなければならないわけではない。
【００８４】
すでに説明したように、各調整候補識別情報３１７は、それぞれが互いに重複することのない固有の値である。したがって、調整候補識別情報３１７が特定されれば、特定された調整候補識別情報３１７を検索キーとしてコンテンツデータベース３１６を検索することができる。詳細は後述するが、このような検索を実行することにより、メモリシステム３は、検索キーとして使用された調整候補識別情報３１７に関連づけられたコンテンツ候補情報３１８をコンテンツデータベース３１６から選択（抽出）することができる。
【００８５】
インタフェース部３８は、ホストコンピュータ２との間でデータ通信が可能な状態でメモリシステム３を着脱自在に接続する機能を有している。すなわち、インタフェース部３８とインタフェース部２８とは、いわゆるコネクタを構成している。これにより、ホストコンピュータ２から入力される情報は、インタフェース部３８により受信される。また、インタフェース部３８は、コントローラ３０から伝達された情報をホストコンピュータ２に向けて送信する。
【００８６】
なお、図１では、ホストコンピュータ２とメモリシステム３の記憶装置３１との間の情報の入力および出力を、すべてコントローラ３０が制御するように図示している。ただし、記憶装置３１へのアクセスを専門的に行うコントローラを、コントローラ３０とは別構成として設けてもよい。
【００８７】
図３は、第１の実施の形態における構成後のコントローラ３０が備える機能ブロックをデータの流れとともに示す図である。図３に示す推論部３００、分析部３０１、および、選択部３０２は、コントローラ３０によって実現される機能ブロックである。
【００８８】
推論部３００は、学習結果情報３１３を用いて人工知能アルゴリズムによる推論を実行することにより、入力情報３１４に応じて、複数の調整候補識別情報３１７のうちから特定の調整候補識別情報３１７を調整識別情報３１９として推論する。より詳細には、推論部３００は、実行情報３１５に応じて調整識別情報３１９を推論することにより、入力情報３１４に応じて調整識別情報３１９を推論する。
【００８９】
言い換えれば、推論部３００に入力される実行情報３１５に応じて、最適な調整識別情報３１９が推論されるように人工知能アルゴリズムおよび学習結果情報３１３が設計されている。そして、当該設計に応じてコントローラ３０が構成される。なお、このような推論を実行するための人工知能アルゴリズムは、従来の技術を適宜採用することにより実現可能である。したがって、推論部３００が実行する人工知能アルゴリズムについての詳細な説明は省略する。
【００９０】
実行情報３１５は、ホストコンピュータ２において観測され収集された収集情報２１１に基づいて作成される。したがって、実行情報３１５は、収集情報２１１が収集されたときの状況を表現した情報である。すなわち、推論部３００による推論は、収集情報２１１に表現されている現実の状況が設計者によって想定された複数の状況のうちのいずれであるかを判定して、準備された複数の調整候補のうちから特定の調整候補を、最適な調整として推論するものである。
【００９１】
これにより、設計者によって準備された複数の調整候補（調整候補識別情報３１７によって識別される各調整）の中から、実際に提供される調整（調整識別情報３１９によって識別される調整）が決定される。なお、推論部３００は、調整識別情報３１９を記憶装置３１に記憶させる機能も有している。
【００９２】
分析部３０１は、ホストコンピュータ２から入力される入力情報３１４を分析して、その分析結果を実行情報３１５として記憶装置３１に記憶させる。
【００９３】
すでに説明したように、入力情報３１４は、収集情報２１１と等価な情報である。そして、収集情報２１１は、ホストコンピュータ２において、操作部２２、センサ２４、カメラ２５およびマイク２６によって検出された情報である。収集情報２１１（入力情報３１４）は、要求情報３１２によって取捨選択されている。とはいえ、入力情報３１４は、センサ２４からの生のバイナリ情報や、カメラ２５からの画像情報などを含んでいる場合があり、依然として情報の項目や容量が膨大な情報である。
【００９４】
分析部３０１は、入力情報３１４に対して、圧縮、分類といった処理を施すことにより、推論部３００による推論処理に対する入力として、より適した実行情報３１５を作成する。
【００９５】
例えば、分析部３０１は、入力情報３１４に含まれる画像情報や音声情報に、単純な間引き処理を行って実行情報３１５とすることにより、入力情報３１４を圧縮してもよい。入力情報３１４に含まれる画像情報や音声情報などは、カメラ２５やマイク２６の性能に従ったサンプリングレートで作成されている。このような情報を予め分析部３０１が間引くことによって、推論部３００の負荷が軽減される。
【００９６】
また、分析部３０１は、ユーザを撮像した画像情報と、ユーザの音声を含む音声情報とが入力情報３１４に含まれている場合に、これらの情報に基づいて認識処理を実行してユーザの心理状態を判定して実行情報３１５としてもよい。このような認識処理は、推論部３００による推論処理に類似した処理も採用可能である。推論部３００による推論処理に類似した認識処理を採用して当該推論処理の前段に実行することによっても、直接、入力情報３１４に対して推論部３００が推論処理を行う場合に比べてコントローラ３０の負荷が軽減される場合がある。
【００９７】
また、分析部３０１は、入力情報３１４に含まれる画像情報にエッジ処理を施して、検出したエッジに関する情報を実行情報３１５としてもよい。すなわち、画素情報をエッジ情報に変換することにより、入力情報３１４を圧縮してもよい。
【００９８】
ゲームにおいて年令が１つ違うだけで調整する必要はあまりないと想定される。したがって、分析部３０１は、ユーザの年令が入力情報３１４に含まれていた場合に、単純に適当な閾値と比較することによって、ユーザの年令を、例えば、１０才未満、１０代前半、１０代後半、２０代、３０代、４０代以上のように分類して実行情報３１５としてもよい。あるいは、日付を示す入力情報３１４を分析して、季節を示す実行情報３１５としてもよい。
【００９９】
また、分析部３０１は、一度入力されれば一定期間変更されないような入力情報３１４については、入力情報３１４から一定期間削除してもよい。このような情報としては、例えば、ユーザの個人情報やハードウェア構成情報、日付情報などが想定される。このような情報は、ゲーム中に頻繁に変更されるものではない。
【０１００】
また、分析部３０１は、操作部２２によって収集された操作部２２に対する物理的な操作量を、アプリケーションにおける操作量に変換して実行情報３１５としてもよい。例えば、カーレーシングゲームが提供されているときに得られた入力情報３１４に、操作部２２の現実の操作量が含まれている場合に、この現実の操作量を、当該カーレーシングゲームにおけるハンドルの操作量に変換するといったことが想定される。
【０１０１】
ここに示した分析は、あくまでも分析部３０１による分析の例示であって、上記の例に限定されるものではない。ただし、分析部３０１による分析は、当該分析を実行することによって、推論部３００が直接入力情報３１４に対する推論を実行する場合に比べて全体としてコントローラ３０の負荷が軽減されるとともに、推論結果に大きな影響がでないような分析であることが好ましい。
【０１０２】
選択部３０２は、調整識別情報３１９に対応する調整候補識別情報３１７に関連づけられたコンテンツ候補情報３１８をコンテンツデータベース３１６から選択して調整用コンテンツ情報３２０とする機能を有している。
【０１０３】
より詳細には、選択部３０２は、調整識別情報３１９（推論処理により特定された調整候補識別情報３１７）を検索キーとしてコンテンツデータベース３１６を検索する。これにより、選択部３０２は、検索キーとして使用した調整候補識別情報３１７に関連づけられたコンテンツ候補情報３１８をコンテンツデータベース３１６から選択（抽出）する。さらに、選択部３０２は、抽出したコンテンツ候補情報３１８を調整用コンテンツ情報３２０とする。すなわち、調整用コンテンツ情報３２０は、調整識別情報３１９（特定された調整候補識別情報３１７）に関連づけられたコンテンツ候補情報３１８に相当する。
【０１０４】
調整候補識別情報３１７に関連づけられたコンテンツ候補情報３１８は、当該調整候補識別情報３１７によって識別される調整を実現するために必要となるコンテンツを表現した情報である。したがって、調整用コンテンツ情報３２０は、調整識別情報３１９によって識別される調整を実現するために必要なコンテンツを表現した情報である。
【０１０５】
このように、選択部３０２により選択された調整用コンテンツ情報３２０をホストコンピュータ２が使用することによって、入力情報３１４（実行情報３１５）により表現された状況に応じた最適な調整（そのように準備された調整）が実現される。これにより、コンピュータシステム１は、ユーザに意識（例えば、選択操作）させることなく、状況に応じて、最適な状態にアプリケーション（ゲーム）を調整することができる。
【０１０６】
また、第１の実施の形態における選択部３０２は、インタフェース部３８がホストコンピュータ２に対して出力すべき調整用コンテンツ情報３２０の出力タイミングを決定する機能も有している。すなわち、選択部３０２は、タイミング決定手段としても構成されている。
【０１０７】
第１の実施の形態における選択部３０２は、入力情報３１４を監視しつつ、入力情報３１４に示される情報（例えば、時刻、ユーザによる選択操作、進捗状況など）に応じて出力タイミングを決定する。選択部３０２は、決定した出力タイミングが到来したときに、調整識別情報３１９を参照して、調整用コンテンツ情報３２０を作成する。インタフェース部３８は、調整用コンテンツ情報３２０が作成されたタイミングで、当該調整用コンテンツ情報３２０をホストコンピュータ２に向けて転送する。すなわち、第１の実施の形態では、調整用コンテンツ情報３２０の作成タイミングが実質的に出力タイミングに相当する。
【０１０８】
想定される状況に応じて準備される調整は、当該状況が生じたときに直ちに提供されなければならないとは限らない。例えば、所定の時間が経過した後に提供されるべき場合や、次回の起動時に提供されるべき場合などもあり得る。しかし、選択部３０２が出力タイミングを決定し、決定された出力タイミングに応じて調整が実現されるタイミングが実質的に決定されることにより、コンピュータシステム１は、効果的なタイミングで調整することができる。
【０１０９】
ただし、出力タイミングを決定する手法は、このような手法に限定されるものではない。例えば、選択部３０２は、出力タイミングにかかわらず、調整用コンテンツ情報３２０を作成し、別途、入力情報３１４に応じて決定した出力タイミングが到来したときに、インタフェース部３８に対して制御信号（出力タイミングが到来したことを示す信号）を伝達してもよい。インタフェース部３８は、この制御信号が伝達されたタイミングで、調整用コンテンツ情報３２０をホストコンピュータ２に向けて転送することができる。このように構成することによっても、調整用コンテンツ情報３２０の出力タイミングを適切に制御することができる。
【０１１０】
コンテンツ候補情報３１８は、様々なコンテンツを表現した情報の集合体である。これらの情報による調整は、必ずしも、同時に提供されなければならないわけではない。例えば、ゲームの強さを調整するコンテンツはゲーム中に使用される必要があるが、先述の例における広告を表現したコンテンツはゲーム中に使用されない方が好ましい。したがって、選択部３０２は、調整識別情報３１９に応じて選択されるコンテンツ候補情報３１８に含まれるコンテンツごとに、出力タイミングを決定する。
【０１１１】
ここで、メモリシステム３においてセキュリティレベルが向上する原理について説明する。
【０１１２】
アプリケーションプログラム３１１を複製しただけでは、アプリケーションプログラム３１１によるアプリケーションを再現することはできない。アプリケーションを再現するためには、アプリケーションプログラム３１１だけでなく、全てのコンテンツ候補情報３１８（コンテンツデータベース３１６）を複製することが必要である。これらを不正に複製しようとする者（以下、「悪意者」と称する。）は、これらの情報がメモリシステム３からホストコンピュータ２に向けて読み出される（転送される）ときに、インタフェース部３８などに接続した装置などで不正にモニターして複製する。
【０１１３】
メモリシステム３は、アプリケーションプログラム３１１については、例えば、起動時にホストコンピュータ２から与えられるコマンド等により一挙にホストコンピュータ２に転送する。しかし、メモリシステム３は、コンテンツ候補情報３１８を、一挙に転送することはない（通常、そのようなコマンドは存在しない。）。各コンテンツ候補情報３１８は、それぞれについて想定された状況を表現した入力情報３１４がインタフェース部３８に入力されない限り、記憶装置３１から読み出されることはない。しかも、どのような状況がどれだけの数だけ想定されているか（コンテンツデータベース３１６内のレコードの数）、あるいは、各状況を表現する入力情報３１４がどのようなものか（どのような入力情報３１４を再現すれば、調整用コンテンツ情報３２０が読み出されるのか）について、悪意者は全く知ることができない。
【０１１４】
したがって、準備されている複数のコンテンツ候補情報３１８を、悪意者が不正に複製しようとしても、各コンテンツ候補情報３１８を読み出すコマンドはなく、再現が困難な入力情報３１４を入力としなければ読み出すことができない。したがって、コンテンツ候補情報３１８のうちの１つすらもメモリシステム３から読み出すことは容易ではない。
【０１１５】
あるいは、でたらめな入力情報３１４によって何らかのコンテンツ候補情報３１８が読み出せたとしても、それがどのような状況に対応して提供されるものかを知ることも困難である。すなわち、入力情報３１４とコンテンツ候補情報３１８は、読み出しコマンドとその対象情報のような一対一の対応ではなく、多対一の対応である。したがって、ある入力情報３１４から特定のコンテンツ候補情報３１８が読み出せたとしても、当該コンテンツ候補情報３１８から、これを読み出す入力情報３１４（ある意味では無限に存在する）を特定することはできない。すなわち、例え、１つのコンテンツ候補情報３１８が複製できたとしても、コンテンツデータベース３１６のレコードを構築することはできない。
【０１１６】
さらに、コンテンツ候補情報３１８は、出力タイミングが制御されていて、単に状況を再現した入力情報３１４を入力しただけでは直ちに出力されないものまで存在する。このような状態で、全てのコンテンツ候補情報３１８を完全に読み出して複製することは相当困難である。
【０１１７】
このような原理により、メモリシステム３は、不正な複製に対するセキュリティレベルを高めることができる。
【０１１８】
以上が、コンピュータシステム１の構成および機能の説明である。次に、コンピュータシステム１を用いて情報を保護する方法について説明する。
【０１１９】
図４は、コンピュータシステム１を用いた情報保護方法を示す流れ図である。なお、図４に示す各工程が開始されるまでに、すでにコントローラ３０は構成後の状態であるものとする。さらに、記憶装置３１には、プログラム３１０、アプリケーションプログラム３１１、学習結果情報３１３、および、コンテンツデータベース３１６が格納されているものとする。すなわち、各情報を記憶装置３１に記憶させる工程は、すでに完了しているものとする。
【０１２０】
図４に示す工程が開始されると、コンピュータシステム１が起動する（ステップＳ１）。これにより、少なくともホストコンピュータ２に電源が投入され、ホストコンピュータ２が起動する。このとき、ＣＰＵ２０は、起動用プログラム２１０の実行を開始する。なお、ステップＳ１が実行されたときにメモリシステム３がすでに装着されている場合には、メモリシステム３に対する電力供給が開始される。この場合、メモリシステム３も起動する。
【０１２１】
次に、ＣＰＵ２０は、インタフェース部２８を監視し、メモリシステム３が装着されているか否かを判定する（ステップＳ２）。メモリシステム３が装着されていない場合（ステップＳ２においてＮｏ。）、コンピュータシステム１はステップＳ２を繰り返しながら待機する。
【０１２２】
メモリシステム３が装着されていると判定すると（ステップＳ２においてＹｅｓ。）、ＣＰＵ２０は、アプリケーションプログラム３１１を転送するようにメモリシステム３に要求する。コンピュータシステム１が起動しており、かつ、メモリシステム３が装着されている場合には、通常、メモリシステム３は起動している。なお、メモリシステム３が、例えば、スリープモードであることも想定されるが、その場合であっても、ＣＰＵ２０からの要求によって復帰する。
【０１２３】
したがって、ＣＰＵ２０からの要求に応じて、メモリシステム３からアプリケーションプログラム３１１がロード（転送）される（ステップＳ３）。すでに説明したように、このときロードされるアプリケーションプログラム３１１には要求情報３１２が含まれている。要求情報３１２は、記憶装置２１に記憶される。
【０１２４】
アプリケーションプログラム３１１がロードされると、コンピュータシステム１は、図４に示すアプリケーション実行処理（ステップＳ４）を実行する。ステップＳ４を実行することにより、ホストコンピュータ２は、ロードされたアプリケーションプログラム３１１の実行を開始するが、詳細は後述する。
【０１２５】
アプリケーション実行処理を終了すると、ＣＰＵ２０は、アプリケーションを終了するか否かを判定する（ステップＳ５）。ステップＳ５における判定は、例えば、ユーザが操作部２２を操作するなどして、アプリケーションを終了させる指示を入力したか否かに応じて判定することができる。ただし、ユーザ操作に限定されるものではなく、例えば、アプリケーションプログラム３１１自体がアプリケーションを終了させてもよい。
【０１２６】
ステップＳ５においてアプリケーションを終了すると判定すると（ステップＳ５においてＹｅｓ。）、ＣＰＵ２０はアプリケーションを終了する（ステップＳ７）。すなわち、アプリケーションプログラム３１１の実行を停止する。ステップＳ５における判定は、例えば、ユーザが操作部２２を操作することにより入力される情報などに基づいて判定することができる。
【０１２７】
一方、ステップＳ５においてアプリケーションを終了しないと判定すると（ステップＳ５においてＮｏ。）、ＣＰＵ２０は、さらに、メモリシステム３が装着されているか否かを判定する（ステップＳ６）。そして、メモリシステム３が装着されていない場合（ステップＳ６においてＮｏ。）、ＣＰＵ２０はステップＳ７を実行する。すなわち、何らかの理由でメモリシステム３が抜き取られた場合にも、ＣＰＵ２０はアプリケーションを終了させる。
【０１２８】
ステップＳ６においてＹｅｓと判定すると、コンピュータシステム１はステップＳ４に戻って処理を継続する。このように、コンピュータシステム１は、ステップＳ５においてＹｅｓと判定するか、あるいは、ステップＳ６においてＮｏと判定するまで、アプリケーションを提供し続ける。
【０１２９】
ステップＳ７が実行されてアプリケーションが終了すると、ＣＰＵ２０は、コンピュータシステム１による処理を終了するか否かを判定する（ステップＳ８）。
【０１３０】
ステップＳ８においてＮｏと判定すると、コンピュータシステム１は、ステップＳ２の処理に戻って、新たなメモリシステム３が装着されるまで待機する。図４において図示をしていないが、ホストコンピュータ２は、この待機期間に調整してもよい。この期間は、アプリケーションプログラム３１１が実行されておらず、アプリケーションは提供されていないので、例えば、調整用コンテンツ情報３２０を使用して広告を表示するように調整すれば、ユーザの注目度を向上させることが期待できる。なお、広告を表現した調整用コンテンツ情報３２０は、先述のように、アプリケーションプログラム３１１によって使用されなくてもよいコンテンツを表現した情報として構成できる。
【０１３１】
一方、ステップＳ８においてＹｅｓと判定すると、コンピュータシステム１は処理を終了する。このとき、ホストコンピュータ２およびメモリシステム３は動作を停止する。
【０１３２】
次に、ステップＳ４に示すアプリケーション実行処理におけるホストコンピュータ２の動作について説明する。
【０１３３】
図５は、アプリケーション実行処理において、第１の実施の形態におけるホストコンピュータ２が実行する処理を示す流れ図である。
【０１３４】
アプリケーション実行処理が開始されると、ＣＰＵ２０は、アプリケーションプログラム３１１を実行する（ステップＳ１１）。ステップＳ１１が実行されるまでに、図４のステップＳ１，Ｓ３が実行されている。したがって、ステップＳ１１を実行するとき、すでにＣＰＵ２０がアプリケーションプログラム３１１を実行する準備は整っている。
【０１３５】
なお、アプリケーションプログラム３１１がロード（ステップＳ３）されてから初めてステップＳ１１が実行されるときとは、アプリケーションが開始されるときに相当する。その後は、ステップＳ７を実行することによりアプリケーションを終了するまで、ステップＳ４を繰り返し実行する。ステップＳ４が実行されるたびにステップＳ１１が実行されることにより、アプリケーションプログラム３１１が逐次実行され、アプリケーションが進行する。
【０１３６】
ステップＳ１１を実行すると、ＣＰＵ２０は、収集タイミングが到来しているか否かを判定する（ステップＳ１２）。すでに説明したように、収集タイミングとは、収集情報２１１を収集するタイミングであり、周期的に到来するように定義されている。
【０１３７】
収集タイミングが到来している場合（ステップＳ１２においてＹｅｓ。）、ＣＰＵ２０は、要求情報３１２に要求されている情報を収集するために必要なハードウェアを特定し、それらのハードウェアがすべて正常に作動しているか（情報収集が可能な状態か）否かを判定する（ステップＳ１３）。ステップＳ１３において判定の対象となるハードウェアとは、操作部２２、センサ２４、カメラ２５、および、マイク２６のうち、要求情報３１２において要求されている情報の収集に必要なハードウェアである。
【０１３８】
必要なハードウェアが作動していない場合（ステップＳ１３においてＮｏ。）、ＣＰＵ２０は、該当するハードウェアを作動させる（ステップＳ１４）。したがって、ステップＳ１４を実行した後、ＣＰＵ２０は、必要な情報の収集（操作部２２によるユーザ操作の記録、センサ２４によるセンシング、カメラ２５による撮像、および、マイク２６による収録のうちの必要な収集）が可能な状態となる。一方で、ＣＰＵ２０は、ステップＳ１３において、必要のないハードウェアを停止させてもよい。なお、必要な全てのハードウェアが作動している場合（ステップＳ１３においてＹｅｓ。）、ＣＰＵ２０は、ステップＳ１４をスキップする。
【０１３９】
ステップＳ１３，Ｓ１４が実行されて、情報の収集に必要な全てのハードウェアが作動している状態となると、ＣＰＵ２０は、これらのハードウェアからの入力信号に基づいて、収集情報２１１を作成する（ステップＳ１５）。このとき、ＣＰＵ２０は、再び要求情報３１２を参照して、得られた入力信号の要否を判定しつつ収集情報２１１を作成する。したがって、収集情報２１１は要求情報３１２に従って収集された情報となる。
【０１４０】
ステップＳ１５を実行するときには、すでにＣＰＵ２０は、要求情報３１２を参照して、収集情報２１１を作成するために必要なハードウェアのみを作動させている。しかし、ハードウェアを取捨選択しただけでは、要求情報３１２に従った収集情報２１１が作成できない場合がある。例えば、白黒画像情報を要求されているために、ＣＰＵ２０がカメラ２５を作動させたが、カメラ２５はカラー画像情報を取得する場合が考えられる。このような場合、ＣＰＵ２０は、カメラ２５から得られたカラー画像情報を、要求情報３１２に従って白黒画像情報に変換して収集情報２１１を作成する。
【０１４１】
なお、上記の説明では、便宜上、ＣＰＵ２０がすべての情報をほぼ同時に収集して、ほぼ同時に収集情報２１１とすると説明した。しかし、各ハードウェアごとに収集タイミングが異なっていてもよい。
【０１４２】
すでに説明したように、メモリシステム３に向けて送信された収集情報２１１は、メモリシステム３において入力情報３１４として記憶される。したがって、ＣＰＵ２０がステップＳ１５を実行して収集情報２１１を作成することは、メモリシステム３に向けてホストコンピュータ２から入力される入力情報３１４を、ホストコンピュータ２が作成することに相当する。すなわち、ステップＳ１５は、ホストコンピュータ２が入力情報３１４を作成する処理ともいえる。
【０１４３】
ステップＳ１５を実行することにより、新しい収集情報２１１を作成すると、ＣＰＵ２０は、作成した収集情報２１１をメモリシステム３に向けて送信する（ステップＳ１６）。
【０１４４】
なお、ステップＳ１２において収集タイミングが到来していない場合（ステップＳ１２においてＮｏ。）、ＣＰＵ２０は、ステップＳ１３ないしＳ１６をスキップする。これにより、収集タイミングが到来していないとき、収集情報２１１は作成されない。
【０１４５】
ステップＳ１２においてＮｏと判定されるか、または、ステップＳ１６が実行されると、ＣＰＵ２０は、調整用コンテンツ情報３２０を受信した否かを判定する（ステップＳ１７）。
【０１４６】
調整用コンテンツ情報３２０を受信した場合（ステップＳ１７においてＹｅｓ。）、ＣＰＵ２０は、受信した調整用コンテンツ情報３２０を記憶装置２１に記憶させる。このようにして、コンピュータシステム１は、ホストコンピュータ２により使用可能なコンテンツを表現した情報を調整用コンテンツ情報３２０によって調整する（ステップＳ１８）。ステップＳ１８においてＣＰＵ２０は、ステップＳ１８が実行されるときまで記憶装置２１に記憶されていたコンテンツを表現した情報（調整前の情報）を新たに受信した調整用コンテンツ情報３２０によって書き替える。ただし、すでに説明したように、調整前の情報は存置しつつ、調整用コンテンツ情報３２０を追加してもよい。あるいは、単に、調整前の情報に使用不可を示す識別子（調整用コンテンツ情報３２０）を付加した状態にしてもよい。さらには、調整前の情報を削除してもよいが、その場合は、調整用コンテンツ情報３２０は記憶されない。
【０１４７】
ステップＳ１８を実行するか、あるいは、ステップ１７においてＮｏと判定すると、ホストコンピュータ２はアプリケーション実行処理（図４：ステップＳ４）を終了する。
【０１４８】
以上がアプリケーション実行処理におけるホストコンピュータ２の動作の説明である。
【０１４９】
次に、ステップＳ４に示すアプリケーション実行処理におけるメモリシステム３の動作について説明する。
【０１５０】
図６は、アプリケーション実行処理において、第１の実施の形態におけるメモリシステム３が実行する処理を示す流れ図である。なお、図６に示す各工程が開始されるまでに、メモリシステム３は、ホストコンピュータ２からのロード要求に応じて、アプリケーションプログラム３１１の送信を完了している。
【０１５１】
アプリケーション実行処理が開始されると、メモリシステム３は、ホストコンピュータ２から入力情報３１４（収集情報２１１）を受信したか否かを判定する（ステップＳ２１）。
【０１５２】
入力情報３１４を受信した場合（ステップＳ２１においてＹｅｓ。）、メモリシステム３は、当該入力情報３１４を記憶装置３１に記憶する（ステップＳ２２）。
【０１５３】
また、選択部３０２が入力情報３１４を参照して、入力情報３１４に応じて、調整用コンテンツ情報３２０の出力タイミングを決定する（ステップＳ２３）。
【０１５４】
例えば、入力情報３１４に所定の操作がされたことが示されており、それによって出力タイミングが到来したことを検出すると、選択部３０２はステップＳ２３において、出力タイミングが到来したことを示すフラグ（以下、「タイミングフラグ」と称する。）を直ちにオンにする。出力するタイミングを制御しない調整用コンテンツ情報３２０についても、選択部３０２は同様に直ちにタイミングフラグをオンにする。一方、例えば、所定の時間経過後に出力タイミングが到来することを検出した場合、選択部３０２は、当該所定の時間をタイマ（図示せず）にセットし、所定の時間が経過した後にタイミングフラグがオンに切り替わるようにタイマを制御する。ただし、ここに示す例に限定されるものではない。
【０１５５】
また、分析部３０１が入力情報３１４の分析により実行情報３１５を作成し（ステップＳ２４）、記憶装置３１に記憶させる。なお、分析部３０１による分析については、すでに説明したのでここでは省略する。
【０１５６】
ステップＳ２４が実行されて実行情報３１５が作成されると、推論部３００が、人工知能アルゴリズムにより、実行情報３１５に対して推論処理を実行する（ステップＳ２５）。ステップＳ２５において、推論部３００は、複数の調整候補識別情報３１７の中から、推論により決定した特定の調整候補識別情報３１７を調整識別情報３１９とする。
【０１５７】
なお、ステップＳ２１においてＮｏと判定すると、メモリシステム３は、ステップＳ２２ないしＳ２５の処理をスキップする。
【０１５８】
ステップＳ２１においてＮｏと判定するか、または、ステップＳ２５を実行すると、メモリシステム３は、調整用コンテンツ情報３２０の出力タイミングが到来しているか否かを判定する（ステップＳ２６）。ステップＳ２６における判定は、例えば、選択部３０２がタイミングフラグがオンであるか否かを判定することにより判定できる。
【０１５９】
出力タイミングが到来している場合（ステップＳ２６においてＹｅｓ。）、選択部３０２は、調整識別情報３１９に対応する調整候補識別情報３１７に関連づけられたコンテンツ候補情報３１８をコンテンツデータベース３１６から選択して調整用コンテンツ情報３２０とする（ステップＳ２７）。このとき、選択部３０２は、選択したコンテンツ候補情報３１８の中から、出力タイミングが到来した情報のみを選択して、調整用コンテンツ情報３２０とする。すなわち、選択部３０２は、未だ出力タイミングが到来していない情報は調整用コンテンツ情報３２０に含めることはない。
【０１６０】
ステップＳ２７が実行され、新たな調整用コンテンツ情報３２０が作成されると、インタフェース部３８が当該調整用コンテンツ情報３２０をホストコンピュータ２に向けて送信する（ステップＳ２８）。
【０１６１】
ステップＳ２６においてＮｏと判定すると、メモリシステム３はステップＳ２７およびＳ２８の処理をスキップする。
【０１６２】
なお、ステップＳ２６においてＮｏと判定するか、または、ステップＳ２８を実行すると、メモリシステム３はアプリケーション実行処理（図４：ステップＳ４）を終了して図４に示す処理にもどる。
【０１６３】
以上のように、第１の実施の形態におけるメモリシステム３は、入力情報３１４（収集情報２１１）を作成するホストコンピュータ２に接続される。そして、メモリシステム３は、ホストコンピュータ２によって実行されるアプリケーションプログラム３１１と、ホストコンピュータ２において使用可能な様々なコンテンツ候補情報３１８を複数の調整候補識別情報３１７のうちのいずれかと関連づけたコンテンツデータベース３１６と、ホストコンピュータ２から入力される入力情報３１４とを記憶する記憶装置３１と、コントローラ３０とを備える。さらに、コントローラ３０は、人工知能アルゴリズムによる推論を実行することにより、入力情報３１４に応じて、複数の調整候補識別情報３１７のうちから特定の調整候補識別情報３１７を調整識別情報３１９として推論する推論部３００と、調整識別情報３１９に対応する調整候補識別情報３１７に関連づけられたコンテンツ候補情報３１８をコンテンツデータベース３１６から選択して調整用コンテンツ情報３２０とする選択部３０２と、調整用コンテンツ情報３２０をホストコンピュータ２に出力するインタフェース部３８とを備える。これにより、複数のコンテンツ候補情報３１８のうちから選択された一部の調整用コンテンツ情報３２０しかホストコンピュータ２に出力しない。したがって、例えば、すべてのコンテンツ候補情報３１８をホストコンピュータ２に出力し、ホストコンピュータ２側で推論して実際に使用する調整用コンテンツ情報３２０を選択する場合に比べて、コンテンツ候補情報３１８を不正に抜き取られる危険性が低下する。
【０１６４】
また、コントローラ３０は、ホストコンピュータ２から入力される入力情報３１４を分析して実行情報３１５として記憶装置３１に記憶させる分析部３０１をさらに備え、推論部３００は、実行情報３１５に応じて調整識別情報３１９を推論することにより、入力情報３１４に応じて調整識別情報３１９を推論する。これにより、入力情報３１４から直接推論する場合に比べて推論処理を軽減することができる。
【０１６５】
また、アプリケーションプログラム３１１は、ホストコンピュータが入力情報３１４を特定するための要求情報３１２を含み、入力情報３１４は、要求情報３１２に従って収集された情報である。アプリケーションプログラム３１１に応じて必要となる入力情報３１４に絞り込んでホストコンピュータ２に要求することができる。したがって、アプリケーション毎に必要な情報のみが入力情報３１４として入力されるので、不要な入力情報３１４がメモリシステム３に入力されることを抑制できる。
【０１６６】
また、コントローラ３０は、インタフェース部３８がホストコンピュータ２に対して出力すべき調整用コンテンツ情報３２０の出力タイミングを決定する選択部３０２をさらに備え、インタフェース部３８は、選択部３０２により決定された出力タイミングに応じて、選択部３０２により選択された調整用コンテンツ情報３２０をホストコンピュータ２に出力する。これにより、リアルタイムに調整するだけでなく、任意のタイミングで調整することができる。例えば、次回以降の起動時に調整することなどもできる。
【０１６７】
＜２．  第２の実施の形態＞
第１の実施の形態では、メモリシステム３において入力情報３１４（収集情報２１１）を分析して実行情報３１５を作成すると説明した。しかし、このような構成に限定されるものではない。例えば、実行情報３１５に相当する情報の作成が、ホストコンピュータ２において実行されてもよい。
【０１６８】
図７は、第２の実施の形態におけるコンピュータシステム１ａを示す図である。コンピュータシステム１ａは、ホストコンピュータ２の代わりにホストコンピュータ２ａを備える点と、メモリシステム３の代わりにメモリシステム３ａを備える点がコンピュータシステム１と異なっている。
【０１６９】
なお、以下の説明では、第２の実施の形態におけるコンピュータシステム１ａにおいて、第１の実施の形態におけるコンピュータシステム１と異なる点について説明し、共通する点については適宜説明を省略する。
【０１７０】
ホストコンピュータ２ａは、ＣＰＵ２０の代わりにＣＰＵ２０ａを備えている点がホストコンピュータ２と異なっている。また、ホストコンピュータ２ａの記憶装置２１は、要求情報３１２の代わりに要求情報３１２ａを記憶する点と、実行情報２１５を記憶する点がホストコンピュータ２と異なっている。
【０１７１】
要求情報３１２ａは、メモリシステム３ａの記憶装置３１に記憶される要求情報３１２ａである。要求情報３１２ａは、要求情報３１２と同様に、どのような情報に基づいて収集情報２１１を作成するかを示す情報を含んでいる。ただし、要求情報３１２ａは、収集情報２１１に応じて、どのような実行情報２１５を作成するかを示す情報も含まれている点が要求情報３１２と異なっている。
【０１７２】
実行情報２１５は、ホストコンピュータ２ａで作成される情報であって、実行情報３１５と等価な情報である。実行情報２１５は、メモリシステム３ａに向けて転送され、入力情報３１４ａとして記憶装置３１に記憶される。
【０１７３】
図８は、第２の実施の形態におけるホストコンピュータ２ａが備える機能ブロックをデータの流れとともに示す図である。図８に示す分析部２００ａは、アプリケーションプログラム３１１をＣＰＵ２０ａが実行することにより実現される機能ブロックである。
【０１７４】
第１の実施の形態における分析部３０１は、収集情報２１１（入力情報３１４）に対する分析を行って、その分析結果として実行情報３１５を作成した。一方、分析部２００ａは、収集情報２１１に対する分析を行い、分析結果として実行情報２１５を作成する機能を有している。すなわち、分析部２００ａは、分析部３０１と同様の機能を有している。
【０１７５】
分析部２００ａによって作成された実行情報２１５は、インタフェース部２８を介して、メモリシステム３ａに向けて送信される。
【０１７６】
図７に戻って、メモリシステム３ａは、コントローラ３０の代わりにコントローラ３０ａを備えている点がメモリシステム３と異なっている。また、メモリシステム３ａの記憶装置３１は、アプリケーションプログラム３１１の代わりに要求情報３１２ａを含んだアプリケーションプログラム３１１ａを記憶する点と、入力情報３１４の代わりに入力情報３１４ａを記憶する記憶する点がメモリシステム３と異なっている。なお、メモリシステム３ａの記憶装置３１は、実行情報３１５を記憶することはない。
【０１７７】
図９は、第２の実施の形態における構成後のコントローラ３０ａが備える機能ブロックをデータの流れとともに示す図である。図９に示す推論部３００ａ、および、選択部３０２ａは、コントローラ３０ａによって実現される機能ブロックである。
【０１７８】
コントローラ３０ａは、推論部３００および選択部３０２の代わりに、推論部３００ａおよび選択部３０２ａを備えている点がコントローラ３０と異なっている。また、コントローラ３０ａは、分析部３０１を備えていない点がコントローラ３０と異なっている。
【０１７９】
推論部３００ａは、入力情報３１４ａに対する推論処理を実行し、推論結果として調整識別情報３１９を作成する。
【０１８０】
すでに説明したように、ホストコンピュータ２ａは、収集情報２１１の代わりに、収集情報２１１を分析することにより作成された実行情報２１５をメモリシステム３ａに向けて送信する。これにより、メモリシステム３ａは、収集情報２１１ではなく、実行情報２１５を入力情報３１４ａとして記憶する。また、実行情報２１５は実行情報３１５と等価な情報である。したがって、推論部３００ａに入力される入力情報３１４ａは実行情報３１５と等価な情報である。すなわち、推論部３００ａは、推論部３００が実行する推論処理と等価な推論処理を実行することにより、推論結果として、調整識別情報３１９を作成することができる。
【０１８１】
選択部３０２ａは、入力情報３１４（収集情報２１１）の代わりに、入力情報３１４ａ（収集情報２１１を分析して作成される実行情報２１５）を参照して出力タイミングを決定する点が選択部３０２と異なっている。
【０１８２】
以上のように構成したコンピュータシステム１ａにおいても、コンテンツデータベース３１６をホストコンピュータ２ａに向けて送信する必要はない。したがって、コンピュータシステム１と同様にメモリシステム３ａのセキュリティレベルが向上する。
【０１８３】
また、コンピュータシステム１ａは、収集情報２１１に対する分析を、ホストコンピュータ２ａが行う。これにより、メモリシステム３ａは、分析部３０１に相当する機能ブロックを備える必要がない。したがって、ホストコンピュータ２ａのＣＰＵ２０ａに比べて、演算能力の低いメモリシステム３ａのコントローラ３０ａの負担を軽減することができる。
【０１８４】
＜３．  変形例＞
以上、本発明の実施の形態について説明してきたが、本発明は上記実施の形態に限定されるものではなく様々な変形が可能である。
【０１８５】
例えば、上記実施の形態に示した各工程は、あくまでも例示であって、上記に示した順序や内容に限定されるものではない。すなわち、同様の効果が得られるならば、適宜、順序や内容が変更されてもよい。例えば、図６に示すステップＳ２３とステップＳ２４の順序は入れ替わってもよいし、並行的に実行してもよい。
【０１８６】
上記実施の形態では、選択部３０２がタイミング決定手段としての機能を有する例について説明した。しかし、インタフェース部３８がタイミング決定手段としての機能を有していてもよい。例えば、インタフェース部３８が、入力情報３１４に示される情報を監視し、調整用コンテンツ情報３２０の出力タイミングを決定してもよい。インタフェース部３８は、ホストコンピュータ２から受信した収集情報２１１に基づいて入力情報３１４を記憶させるときに、当該入力情報３１４に示される情報を監視することができる。
【０１８７】
また、上記実施の形態に示した機能ブロック（例えば、分析部２００ａ）は、ＣＰＵ２０ａがアプリケーションプログラム３１１ａに従って動作することにより、ソフトウェア的に実現されると説明した。しかし、このような機能ブロックの一部または全部を専用の論理回路で構成し、ハードウェア的に実現してもよい。
【符号の説明】
【０１８８】
１，１ａ  コンピュータシステム
２，２ａ  ホストコンピュータ
２０，２０ａ  ＣＰＵ
２１，３１  記憶装置
２００ａ，３０１  分析部
２１０  起動プログラム
２１１  収集情報
２１５，３１５  実行情報
２２  操作部
２３  表示部
２４  センサ
２５  カメラ
２６  マイク
２７  スピーカ
２８，３８  インタフェース部
３，３ａ  メモリシステム
３０，３０ａ  コントローラ
３００，３００ａ  推論部
３０２，３０２ａ  選択部
３１０  プログラム
３１１，３１１ａ  アプリケーションプログラム
３１２，３１２ａ  要求情報
３１３  学習結果情報
３１４，３１４ａ  入力情報
３１６  コンテンツデータベース
３１７  調整候補識別情報
３１８  コンテンツ候補情報
３１９  調整識別情報
３２０  調整用コンテンツ情報
【図１】
2020166562.tif 000003
【図２】
2020166562.tif 000004
【図３】
2020166562.tif 000005
【図４】
2020166562.tif 000006
【図５】
2020166562.tif 000007
【図６】
2020166562.tif 000008
【図７】
2020166562.tif 000009
【図８】
2020166562.tif 000010
【図９】
2020166562.tif 000011