データモデリングの方法であって、以下の動作を実行するためにメモリに記憶されたコンピュータ実行可能命令を実行するように構成された少なくとも1つのプロセッサを使用するステップと、第1のデータモデルから第2のデータモデルを生成するステップであって、前記第2のデータモデルは前記第1のデータモデルの数学的双対であるステップとを含むことを特徴とする方法。前記第2のデータモデルを二重化することによって、前記第2のデータモデルを前記第1のデータモデルに変形するステップをさらに含むことを特徴とする請求項1に記載の方法。リレーショナルデータモデルから非リレーショナルデータモデルを生成するステップを含むことを特徴とする請求項1に記載の方法。前記リレーショナルデータモデルからkey-valueモデルを生成するステップを含むことを特徴とする請求項3に記載の方法。非リレーショナルデータモデルからリレーショナルデータモデルを生成するステップを含むことを特徴とする請求項1に記載の方法。構造化データモデルから非構造化データモデルを生成するステップを含むことを特徴とする請求項1に記載の方法。XMLデータモデルからドキュメントデータモデルを生成するステップを含むことを特徴とする請求項6に記載の方法。データモデルの変形を容易にするシステムであって、メモリに結合されたプロセッサであって、メモリに記憶された以下のコンピュータ実行可能コンポーネントを実行するように構成されたプロセッサと、第1のデータモデルを第2のデータモデルに変形するように構成された変形コンポーネントであって、前記第2のデータモデルは前記第1のデータモデルの数学的双対である、変形コンポーネントとを備えたことを特徴とするシステム。前記第1のデータモデルは、リレーショナルデータモデルであることを特徴とする請求項8に記載のシステム。前記第1のデータモデルは、非リレーショナルデータモデルであることを特徴とする請求項8に記載のシステム。前記第1のデータモデルは、構造化データモデルであることを特徴とする請求項8に記載のシステム。前記第2のデータモデルは、XMLデータモデルであることを特徴とする請求項11に記載のシステム。前記第2のデータモデルは、非構造化データモデルであることを特徴とする請求項8に記載のシステム。前記第2のデータモデルは、key-valueデータモデルであることを特徴とする請求項8に記載のシステム。前記第2のデータモデルは、ドキュメントデータモデルであることを特徴とする請求項8に記載のシステム。以下の詳細は、一般的にデータモデルの二重化を目的としている。データモデルは、別のデータモデルを二重化することによって生成することができる。言い換えれば、第1のデータモデルは第2のデータモデルに変形することができ、その場合第2のデータモデルは第1のデータモデルの数学的双対である。例えば、リレーショナルデータモデルからは、key-valueキーバリューストアのような非リレーショナルデータモデルが結果として生成されること可能であり、このことはNoSQLデータモデルがSQLデータモデルの双対であることを証明している。本明細書の中で用いられている双対の用語およびその種々の形体は、その用語がカテゴリ理論に関する限り数学的二重性を指すことを目的としている。もっと具体的には、二重性は、カテゴリCのプロパティおよび反対カテゴリCopの双対プロパティとの間の対応性である。カテゴリCに関するステートメントが与えられているとき、各形態のソースとターゲットを入れ替えるマッピングと共に2形態を合成する順序を入れ替えることにより、反対カテゴリCopに関して対応する双対ステートメントを得ることができる。例えば、カテゴリCはデータモデルに対応付けることができ、反対カテゴリCopは双対または共同データモデルを指すことができる。二重化とは、例えば、データモデルから双対を生成することである。次に、添付図面を参照して本開示事項の種々の態様についてより詳しく説明するが、類似符号は図面全体を通して類似または対応するエレメントを指している。なお、当然に理解されるように、図面および図面に関する詳細説明は、請求項に記載の主題を開示した特定の形体に限定するものではない。もしろ、その意図は、請求項に記載の主題の精神および範囲に属するすべての変更、等価および代替を包含することである。先ず図1を参照すると、データモデリングシステム100が示されている。このデータモデリングシステム100は、第1のデータモデルを受信し、取り出し、さもなければ、取得または獲得して、第1のデータモデルを二重化することによって第2のデータモデルを生成する変形コンポーネント110を含んでいる。別の言い方をすれば、第2のデータモデルは第1のデータモデルの数学的双対である。さらに、変形コンポーネント110は、第1のデータモデルの双対である第2のデータモデルを受信し、取り出し、さもなければ取得または獲得し、第2のデータモデルを二重化することによって第2のデータモデルを第1のデータモデルに変形する。この関連性の結果として、第1のデータモデルは単純にデータモデルと呼ぶことができ、第2のデータモデルは双対または共同データモデルと呼ぶことができる。従って、左から右に向かって、変形コンポーネント110はデータモデルDを共同データモデルcoDに変形する。言い換えれば、データモデルDの関数として共同データモデルcoDを生成する。右から左に向かって、変形コンポーネント110は、共同データモデルcoDをデータモデルに変形する例えば、cocoD→D。言い換えれば、共同データモデルcoDの関数としてデータモデルDを生成する。変形コンポーネント110は、エンティティコンポーネント112および関係コンポーネント114を含んでいる。データモデルはエンティティと関係のセット、言い換えれば、エンティティ間の関連を含んでいる。エンティティコンポーネント112は、例えば、第1のデータモデルのエンティティから双対または共同エンティティを生成するように構成されている。同様に、関係コンポーネント114は、例えば、第1のデータモデルに指定された関係から双対または共同関係を派生することができる。さらに、関係コンポーネント114は、例えば、第1のデータモデルから関係または関連の双対合成を生成することができる。図2は、明確性と理解を容易にするために、2つのデータモデル間の抽象的変形を示している。より具体的には、第1のデータモデル200からは、第2のデータモデ210が結果として得られ、その逆も同じである。第1のデータモデルは3つのエンティティS202、T204およびG206を含んでいる。これらのエンティティ間の関係は矢印で示されている。より具体的は、関係FはS202からT204に向かっており、関係GはT202からG206に向かっている。Gは、G202から出発し、G202に戻る同一性関係IDも含んでいる。さらに、合成関係F;GはS202とG206の間に存在している。第1のデータモデル200を二重化するために、反対エンティティが識別され、反対エンティティ間の関係、より正式には形態が逆にされる。図示のように、第2のデータモデル210は、エンティティCO-S212、CO-T214およびCO-G216を含んでいる。さらに、形態を表す矢印は逆にされ、このことは形態のソースとターゲットの変化を表わしている。例えば、第1のデータモデル200の合成関係F;Gは、第2のデータモデル210ではG;Fになる。真の双対として、第2のデータモデル210が二重化されれば、その結果は第1のデータモデル200である。以下は、図1の変形コンポーネント110によって実行できる例示の変形プロセスを詳細に説明したものである。ここでは、双対がリレーショナルデータベースに関して派生される。言い換えれば、第1のデータモデルはリレーショナルモデルである。以下に図示するように、その結果は、つまり、第2のデータモデルは非リレーショナルモデル、より具体的には、key-valueキーバリューモデルにすることができる。図3は、プロダクト情報を記憶するための例示の関係表現を示している。図示のように、主キーと外部キーによって共にリンクされた3つのテーブルが存在している。プロダクトテーブル310は、タイトル、著者、発行年度、およびページ総数などのプロダクト情報に関する他の列と共に、主キーIDを提供している。レーティングテーブル320は、プロダクトレーティング情報およびプロダクトテーブル310の単独レコードを参照する外部キーPRODUCTIDを提供している。同様に、キーワードテーブル330は、プロダクトに関連するキーワードを提供し、プロダクトテーブル310の対応するレコードに逆に指している外部キーPRODUCTIDを含んでいる。図4を参照して簡単に説明すると、図3の例示の関係コンポーネント300が、外部キーと主キーの間に挿入されたポインタと共に示されている。具体的には、ポインタ410は、レーティングテーブル320の外部キーPRODUCTIDからプロダクトテーブル310の主キーID312によって識別された対応するレコードを指している。同様に、ポインタ420は、キーワードテーブル330の外部キーPRODUCTIDからプロダクトテーブル310の主キーID312によって識別された対応するレコードを指している。図5は、図3および図4の例示の関係コンポーネントに対して提供された同じデータの例示の非リレーショナルkey-value表現500を示している。ここでは、510、520、および530のような行は、値、つまり、スカラー値を指すポインタとして示したどちらかのキーを記憶することができる。例えば、行510は、タイトル、著者、キーワードのキー、およびレーティングおよび発行年とページ総数のスカラー値を含むことができる。行520は、3つのキーワードにマッピングする3つのキーワードを含み、行530は2つのレーティング表現にマッピングする2つのキーを含んでいる。図6を参照して説明すると、例示の非リレーショナルkey-value表現600が示されている。ここでは、行がスカラー値とキーを含むことを許容するのではなく、その制約は、種々タイプのデータを許容するように緩和されている。図5の行510に対応する行610は、ここではタイトルと著者の値およびキーワードとレーティングの両方のキー620と630の集まりを、それぞれ含んでいる。さらに具体的には、キー620はキーワードを指し、キー630はレーティング情報を指している。図4の例示リレーショナル表現を図6の例示非リレーショナル表現と比較するとわかるように、それらを区別する主な特徴は矢印が逆であることである。より具体的には、リレーショナルの矢印は外部キーのある行から対応する主キーのある行に向かっており、非リレーショナルの矢印は行からデータが記憶されている個所のロケーションに向かっている。言い換えれば、リレーショナルのコンテキストでは、子がその親を指しており、非リレーショナルのコンテキストでは、親がその子を指している。ここで示されているのは、非リレーショナルのkey-valueデータモデルがリレーショナルの主キーと外部キーのデータモデルの双対であることである。したがって、NoSQLデータモデルは、SQLデータモデルの数学的双対である。より正式には、リレーショナルデータモデルでは、エンティティeは次のように定義することができる。すなわち、テーブル内の∀e、ek≠e’kとして定義することができる。ただし、列はスカラー値である。形態では、およびe1.Ffk=e2.Fpk。非リレーショナルデータモデルのコンテキストでは、エンティティeはドメインにおける∃k、Lookupkvとして定義することができ、形態はe1←e2、Lookupc2ke1として定義される。さらに、関係または関連の合成では、順序が次のように逆にされる。すなわち、coF;G=coG;coF。より簡単には、リレーショナルモデルエンティティ内のワードはユニークな主キーをもつ行であり、2つのエンティティe1とe2は、e1とe2の間に直接的または間接的な主キーと外部キーの関係があれば、関係付けられている。非リレーショナルまたはkey-valueモデルでは、エンティティはストア内のキーを通して見つけることができる値であり、2つのエンティティe1とe2は、ストアを通してキーによって直接的または間接的にリンクされていれば関係付けられている。二重性には多くの結果がある。具体的には、ステートメントTがCにおいて真であれば、その双対coTはcoCにおいて真である。リレーショナルまたはSQLデータモデルおよび非リレーショナルまたはNoSQLデータモデルに関して、結果のいくつかが以下の表1に要約されている。さらに、SQLデータモデルとNoSQLデータモデルは、一部の人が示唆するように善と悪のような対立関係にない。むしろ、これらの2つのデータモデルは、調和して共存でき、相互に変形できる反対関係にある。さらに、重要なことは、NoSQLデータモデルの形式化が発見されなかったことである。SQLデータモデルの形式化以前は、リレーショナルデータモデルと漠然に呼ぶことができるものに対して作業が行なわれてきたが、いくつかのアドホックな実装が存在しており、業界は、特にどの実装にも集中していなかった。今日まで急速に前進しており、その事情は、現在データモデルがNoSQLであることを除けば完全に類似している。NoSQLをSQLの双対として形式化することにより、現在では、その作業はこのバージョンのデータモデルに集中することが可能になっている。明確化と簡潔化の目的のために、リレーショナルデータモデルと非リレーショナルデータモデル間の変形について詳細に説明してきたが、請求項に記載の主題はそのことに限定されない。むしろ、その意図は、二重化の結果得られるすべてのデータモデルを包含することである。例を挙げると、構造化データモデルは非構造化データモデルに変形することができ、またはそれを生成することができ、その逆も同じであるが、この例に限定されない。例えば、図1の変形コンポーネント110は、XMLデータモデルを入力として受信し、ドキュメントデータモデルを出力することができ、そこではドキュメントまたはオブジェクトデータアイテムは、迅速かつ効率的にクエリを行なうために索引インデックス付けされている。さらに、注目すべきことは、図1の変形コンポーネント110が自動的にまたは半自動的に動作できることである。自動モードでは、変形コンポーネント110は第1のデータモデルを受信し、双対第2のデータモデルを自動的に出力することができる。これとは別に、半自動モードでは、変形コンポーネント110はユーザからの入力を求めて、双対データモデルの生成を容易にしている。ある実装では、例えば、変形コンポーネント110は、二重化に関してユーザによるデータモデリングを支援するツールとなることができる。上述のシステム、アーキテクチャ、環境などは、複数のコンポーネント間のやりとりに関して説明してきた。このようなシステムおよびコンポーネントは、これらのコンポーネントまたはその中で指定されたサブコンポーネント、指定されたコンポーネントまたはサブコンポーネントの一部、および/または追加のコンポーネントを含むことができることを理解されたい。サブコンポーネントは、親コンポーネント内に含まれるのではなく通信可能に他のコンポーネントに結合されたコンポーネントとして実現することも可能である。さらに、1つまたは2つ以上のコンポーネントおよび/またはサブコンポーネントは、単一のコンポーネントになるように結合されて集合的機能性を提供することがある。システム、コンポーネントおよび/またはサブコンポーネント間の通信は、プッシュモデルおよび/またはプルモデルに従って実行することができる。コンポーネントは、簡潔化のために本明細書に特定して記載していないが、この分野の当業者に知られている1つまたは2つ以上の他のコンポーネントとやりとりすることもある。さらに、認識されるように、開示した上記のシステムおよび下記の方法の種々の部分は、人工知能、機械学習、または知識またはルールベースのコンポーネント、サブコンポーネント、プロセス、手段、方法またはメカニズム例えば、サポートベクトルマシン、ニューラルネットワーク、エキスパートシステム、ベイジアン信念ネットワーク、ファジーロジック、データフュージョンエンジン、クラシファイヤなどを含むことも、これらで構成することもできる。中でもこのようなコンポーネントは、システムおよび方法の一部をより適応化すると共に効率化およびインテリジェントにするためにこれらのコンポーネントによって実行されるある種のメカニズムまたはプロセスを自動化することができる。例を挙げると、変形コンポーネント110またはその1つまたは2つ以上のサブコンポーネントは、このようなメカニズムを採用してデータモデルのプロパティおよび双対データモデルの特徴を効率的に判断し、さもなければ推論することができるが、その例には限定されない。上記に説明した例示システムに鑑みて、開示した主題に従って実現することができる方法は、図7および図8のフローチャートを参照するとよりよく理解されよう。説明の単純化の目的のために、これらの方法は一連のブロックとして示され、説明されているが、当然に理解および認識されるように、請求項に記載の主題は、図示され、本明細書に記載されているものとは、一部のブロックが異なる順序でおよび/または他のブロックと同時並行に現れることがあるように、ブロックの順序には限定されない。さらに、本明細書に以下に記載の方法を実現するために図示のブロックのすべてが必要になるとは限らない。図7を参照すると、データモデル生成の方法700が示されている。参照符号710において、第1のデータモデルが受信され、取り出され、さもなければ取得または獲得される。符号720において、第1のデータモデルは双対第2のデータモデルに変形されるか、言い換えればその生成のために使用される。例を挙げると、主キーと外部キーを含む第1のリレーショナルデータモデルは、非リレーショナルkey-valueデータモデルに変形されるか、またはその生成のために使用されることができるが、その例に限定されない。この例は、既知の第1のデータモデルが特定形体の別のデータモデルに変形され、双対第2のデータモデルがそれ自体二重化されていれば、その結果として第1のデータモデルが得られることを示している。これが驚きの結果であるのは、これらの2つのデータモデルが少なくとも業界の一部によって正反対であると考えられていたからである。もちろん、データモデル二重化の結果は、驚きの結果または目立たない結果を等しくもつ、完全に新しく、かつ、以前には認識されなかったデータモデルである。図8は、データモデルを二重化する方法800を示すフローチャート図である。参照符号810において、第1のエンティティから第2のエンティティが派生され、この場合第2のエンティティは第1のエンティティの双対である。参照符号820において、エレメント間の双対関係が、例えば矢印を逆にする例えば、S→RをR←Sにすることによって定義される。符号830において、双対合成関係が、例えば矢印を逆にすることであり、合成の順序を逆にすることであると判断される例えば、FcomposeGからGcomposeFに。本明細書で用いられているコンポーネントおよびシステムの用語ならびにその用語の種々の形体は、コンピュータ関連エンティティを指すことを目的としており、これはハードウェアであることも、ハードウェアとソフトウェアの組み合わせであることも、ソフトウェアであることも、実行中のソフトウェアであることもある。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、インスタンス、実行可能コード、実行スレッド、プログラム、および/またはコンピュータであることがあるが、これらに限定されない。図例として、コンピュータ上で実行されるアプリケーションとそのコンピュータは、どちらもコンポーネントにすることができる。1つまたは2つ以上のコンポーネントはプロセスおよび/または実行スレッド内に置かれることがあり、またコンポーネントは1つのコンピュータ上に置かれていることも、および/または2つまたは3つ以上のコンピュータ間に分散されていることもある。例示の用語またはその種々の形体は、本明細書では、例、事例または図例となることを意味するために用いられている。例示として本明細書に記載されているどの態様または設計も、他の態様または設計よりも好ましいまたは有利であると必ずしも解釈される必要がない。さらに、例が提供されているのは、単に明確化を目的としており、請求項に記載の主題またはこの開示事項の関係部分をどのようにも限定または制約することを意味していない。当然に認識されるように、範囲を変更する無数の追加または代替例を提示することも可能であったが、これらの例は簡潔化のために省略されている。本明細書で用いられている推論または推論するの用語は、イベントおよび/またはデータを通してキャプチャされるときの観察セットからシステム、環境、および/またはユーザのステート状態について推論し、またはそのステートを推論するプロセスを一般的に指している。推論は、特定のコンテキストまたはアクションを識別するために採用することも、例えば、ステート上の確率分布を生成することもできる。推論は確率に基づくことができる。すなわち、関心のあるステート上の確率分布をデータとイベントに基づいて計算することができる。推論は、イベントおよび/またはデータのセットからより高レベルのイベントを合成するために採用される手法を指すこともできる。このような推論の結果として、イベントが時間的に密接に近接して相互関係があるかどうかに関係なく、およびイベントとデータが1つまたは複数のイベントとデータソースに由来するかどうかに関係なく、観察したイベントおよび/またはストアしたイベントデータのセットから新しいイベントまたはアクションが構築される。種々の分類体系および/またはシステム例えば、サポートベクトルマシン、ニューラルネットワーク、エキスパートシステム、ベイジアン信念ネットワーク、ファジロジック、データフュージョンエンジンなどは、請求項に記載した主題に関連する自動的および/または推論したアクションと関連付けて採用することができる。さらに、含む、収容する、持つ、持っているの用語またはこれらの変形が詳細説明または請求項のどちらかで用いられている限りにおいて、これらの用語は、備えるの用語が請求項において移行語として採用されるとき解釈されるように、備えるの用語と同じように包含的であることを目的としている。請求項に記載の主題に関するコンテキストを提供するために、図9ならびに以下の説明は、主題の種々の態様が実現可能である適当な環境の簡単な概要説明を提供することを目的としている。なお、適当な環境は単なる例であり、使用または機能性の範囲についていかなる制限も示唆することを目的としていない。上記に開示したシステムおよび方法は、1つまたは2つ以上のコンピュータ上を走行するプログラムのコンピュータ実行可能命令の一般的なコンテキストのもとで説明されており、当業者ならば認識されるように、その態様は他のプログラムモジュールなどと組み合わせて実現することも可能である。一般的に、プログラムモジュールとしては、中でも、特定のタスクを実行し、および/または特定の抽象データ型を実現するルーチン、プログラム、コンポーネント、データ構造がある。さらに、当業者であれば認識されるように、上記のシステムおよび方法は種々のコンピュータシステム構造と共に実行することができ、その構成の中には、シングルプロセッサ、マルチプロセッサまたはマルチコアプロセッサのコンピュータシステム、ミニコンピューティングデバイス、メインフレームコンピュータのほかに、パーソナルコンピュータ、ハンドヘルドコンピューティングデバイス例えば、PDA、電話、時計など、マイクロプロセッサベースまたはプログラマブルコンシューマまたはインダストリアルエレクトロニクスなどが含まれている。一部の態様は分散コンピューティング環境で実施することも可能であり、そこでは通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行されている。なお、請求項に記載の主題のすべてはないとしても、その一部の態様がスタンドアロンコンピュータ上で実行されことが可能である。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモートのメモリストレージデバイスの一方に置かれていることもあれば、両方に置かれていることもある。図9を参照すると、汎用コンピュータ910またはコンピューティングデバイス例えば、デスクトップ、ラップトップ、サーバ、ハンドヘルド、プログラマブルコンシューマまたはインダストリアルエレクトロニクス、セットトップボックス、ゲームシステムなどの例が示されている。コンピュータ910は、1つまたは2つ以上のプロセッサ920、システムメモリ930、システムバス940、マスストレージ950および1つまたは2つ以上のインタフェースコンポーネント970を含んでいる。システムバス940は、少なくとも上記システムコンポーネントを通信可能に結合している。なお、当然に認識されるように、最も単純な形体では、コンピュータ910は、システムメモリ930に結合されていて、種々のコンピュータ実行可能アクション、命令および/またはコンポーネントを実行する1つまたは2つ以上のプロセッサ920を含むことができる。プロセッサまたは複数920は、汎用プロセッサ、DSP、ASIC、FPGAまたはその他のプログラマブルロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、または本明細書に記載した機能を実行するように設計されたこれらの任意の組み合わせと共に実現することができる。汎用プロセッサはマイクロプロセッサであることがあるが、代替的には、プロセッサは任意のプロセッサ、コントローラ、マイクロコントローラまたはステートマシンであることがある。プロセッサまたは複数は、コンピューティングデバイスの組み合わせとして、例えば、DSPおよびマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、マルチコアプロセッサ、DSPと併用される1つまたは2つ以上のマイクロプロセッサ、またはその他のかかる構成として実現されることもある。コンピュータ910は、種々のコンピュータ可読媒体を含むか、さもなければ、これらの媒体とやりとりして、請求項に記載の主題の1つまたは2つ以上の態様を実現するためにコンピュータ910の制御を容易にすることができる。コンピュータ可読媒体は、コンピュータ910によってアクセス可能であって、揮発性媒体と不揮発性媒体および取り外し可能媒体と取り外し不能媒体を含む利用可能な媒体ならば、どの媒体であってもよい。例を挙げると、コンピュータ可読媒体としては、コンピュータ記憶媒体と通信媒体があるが、この例に限定されない。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータのような情報を記憶するために任意の方法またはテクノロジで実現された揮発性と不揮発性であって、取り外し可能と取り外し不能の媒体がある。コンピュータ記憶媒体としては、メモリデバイス例えば、RAM、EEPROMなど、磁気記憶デバイス例えば、ハードディスク、フロッピディスク、カセット、テープなど、光ディスク例えば、CD、DVDなどおよびソリッドステートデバイス例えば、SSD、フラッシュメモリドライブ例えば、カード、スティック、キードライブなど、または望みの情報を記憶し、コンピュータ910によってアクセス可能である他の任意の媒体がある。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータを搬送波またはその他のトランスポートメカニズムのような変調データ信号で具現化し、いずれかの情報配信媒体を含んでいるのが代表的である。変調エータ信号の用語は、その特性の1つまたは2つ以上が信号の情報を符号化するような形でセットまたは変更されている信号を意味している。例を挙げると、通信媒体としてはワイヤードネットワークまたはダイレクトワイヤードコネクションのようなワイヤード媒体、および音響、RF、赤外線およびその他のワイヤレス媒体のようなワイヤレス媒体があるが、その例に限定されない。上記に挙げたものの任意の組み合わせも、当然にコンピュータ可読媒体の範囲内に含まれる。システムメモリ930およびマスストレージ950はコンピュータ記憶媒体の例である。コンピューティングデバイスの正確な構成とタイプに応じて、システムメモリ930は揮発性例:RAM、不揮発性例:ROM、フラッシュメモリなどまたはこれら2つのなんらかの組み合わせであることがある。例を挙げると、スタートアップ期間のようにコンピュータ910内のエレメント間で情報を転送する基本ルーチンを含むBIOSは不揮発性メモリ内に記憶されることができ、他方では、揮発性メモリは外部キャッシュメモリとして働いて、なかでもプロセッサまたは複数920による処理を容易にすることができる。マスストレージ950としては、システムメモリ930に比べて大量のデータを記憶するための取り外し可能/取り外し不能で、揮発性/不揮発性の記憶媒体がある。例えば、マスストレージ950としては、磁気または光ディスクドライブのような1つまたは2つ以上のデバイス、フロッピディスクドライブ、フラッシュメモリ、ソリッドステートドライブまたはメモリスティックがあるが、これらに限定されない。システムメモリ930およびマスストレージ950は、オペレーティングシステム960、1つまたは2つ以上のアプリケーション962、1つまたは2つ以上のプログラムモジュール964およびデータ966を収容し、またはそこに記憶しておくことができる。オペレーティングシステム960は、コンピュータ910のリソースを制御し、割り振る働きをする。アプリケーション962はシステムソフトウェアとアプリケーションソフトウェアの一方または両方を含み、オペレーティングシステム960によるリソースの管理を、システムメモリ930および/またはマスストレージ950に記憶されて1つまたは2つ以上のアクションを実行するプログラムモジュール964とデータ966を通して利用することができる。従って、アプリケーション962は、アプリケーションによって提供されるロジックに従って汎用コンピュータ910を特殊化マシンに変えることができる。請求項に記載の主題のすべてまたは一部は、標準的プログラミング手法またはエンジニアリング手法を使用してソフトウェア、ファームウェア、ハードウェアまたはこれらの任意の組み合わせを生成し、開示した機能性を実現するためにコンピュータを制御するように実現することができる。例を挙げると、変形コンポーネント110はアプリケーション962にすることも、その一部を形成することもでき、メモリストレージおよび/またはマスストレージ950に記憶されていて、図示のように、1つまたは2つ以上のプロセッサによって実行されるときその機能性を実現することができる1つまたは2つ以上のモジュール964およびデータ966を含むことができる。コンピュータ910は、通信可能にシステムバス940に結合され、コンピュータ910とのやりとりを容易にする1つまたは2つ以上のインタフェースコンポーネント970も含んでいる。例を挙げると、インタフェースコンポーネント970はポート例えば、シリアル、パラレル、PCMCIA、USB、FireWireなどにすることも、インタフェースカード例えば、音声、ビデオなどにすることもできる。1つの実装例では、インタフェースコンポーネント970は、ユーザ入出力インタフェースとして実現して、ユーザが1つまたは2つ以上の入力デバイス例えば、マウスのようなポインティングデバイス、トラックボール、スタイラス、タッチパッド、キーボード、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、カメラ、他のコンピュータなどを通してコマンドおよび情報をコンピュータに入力可能にすることができる。別の実装例では、インタフェースコンポーネント970は出力周辺インタフェースとして実現して、中でも出力をディスプレイ例えば、CRT、LCD、プラズマなど、スピーカ、プリンタおよび/または他のコンピュータに与えることができる。さらに、インタフェースコンポーネント970はネットワークインタフェースとして実現して、ワイヤードまたはワイヤレス通信ネットワーク上のように、他のコンピューティングデバイス図示せずとの通信を可能にすることができる。上述してきたものには、請求項に記載の主題の態様の例が含まれている。請求項に記載の主題を説明する目的でコンポーネントまたは方法の想到し得る限りの組み合わせを記述することが不可能であることは勿論であるが、この分野の精通者ならば認識されるように、開示した主題の多くの他の組み合わせおよび置換が可能である。従って、開示した主題は、請求項の精神および範囲に属するすべてのかかる変更、改良および変形を包含することを目的としている。