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