(57)【要約】【課題】データベース・オブジェクトへのデータベース・モデルのマッピングを容易にするシステム及び／又は方法を提供すること。【解決手段】タイプ格納システムがファイル格納データ・モデルの格納マッピングを使用できる。このマッピングは、スキーマとその中で記述されたタイプのインスタンスの格納かつ／又はアクセスする方法とに少なくとも部分的に基づいて作成されるデータベース・オブジェクトを記述できる。さらに少なくとも１つのクリテリアを満足する項目、ドキュメント及び／又は連絡先のうちの少なくとも１つを見つけるためのクエリを提供できる。タイプ格納システムは、スキーマ、データ・モデル、タイプ、クエリ及びクエリ・クリテリアのうちの少なくとも１つのデータの格納及びクエリを提供するインターフェースを介して受信可能である。さらに、タイプ格納システムは、タイプの少なくとも１つのインスタンスを公開するビューを生成できる。【選択図】図１
2006277726.tif 000002
【特許請求の範囲】
【請求項１】
データ・モデルのマッピングを容易にするシステムであって、
マッピング・スキーマを定義するのに使用されるファイル格納データ・モデルと、
前記関連付けられたマッピング・スキーマに基づいて、スキーマ・オブジェクトをデータベース・オブジェクトにマップするタイプ格納コンポーネントであって、前記マッピング・スキーマ中のあるタイプのインスタンスが格納されているタイプ格納コンポーネントと
を備えることを特徴とするシステム。
【請求項２】
前記タイプの前記インスタンスは、ドキュメント、画像、音楽、ビデオ、連絡先、メッセージ、人、組織、ｅメール、ファックス、音声、およびオーディオ・クリップのうちの少なくとも１つであることを特徴とする請求項１に記載のシステム。
【請求項３】
前記タイプ格納コンポーネントは、
それぞれのクリテリアを満足する、前記システム内の少なくとも１つの項目、
それぞれのクリテリアを満足する、前記システム内の少なくとも１つのドキュメント、および
それぞれのクリテリアを満足する少なくとも１つの連絡先
のうちの少なくとも１つを見つけ出すためのクエリをさらに提供する
ことを特徴とする請求項１に記載のシステム。
【請求項４】
前記連絡先は、個人、組織、およびグループのうちの少なくとも１つを含むことができることを特徴とする請求項３に記載のシステム。
【請求項５】
リレーショナル格納およびリレーショナル・クエリ能力の少なくとも一方を使用するリレーショナル・コンポーネントをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項６】
前記リレーショナル・コンポーネントは、形式的に記述された１組のテーブルとして編成されたデータ項目の集合体であるリレーショナル・データベース技術を使用し、そこではデータは、再編成せずにアクセスされるデータ、再編成せずに再アセンブリされるデータのうちの少なくとも１つであることが可能なあることを特徴とする請求項５に記載のシステム。
【請求項７】
前記マッピングは、前記スキーマに基づいて、および前記スキーマ中で記述される前記タイプの前記インスタンスがどのようにして格納されアクセスされるかに基づいて、作成される前記データベース・オブジェクトの少なくとも１つを記述することを特徴とする請求項１に記載のシステム。
【請求項８】
前記スキーマ中の前記タイプは、前記ファイル格納データ・モデルの記憶域内の共通言語ランタイム（ＣＬＲ）クラスにマップすることを特徴とする請求項１に記載のシステム。
【請求項９】
前記タイプは、項目、項目のエクステンション、項目フラグメント、およびリンクのうちの少なくとも１つであることを特徴とする請求項８に記載のシステム。
【請求項１０】
１）前記それぞれのタイプの少なくとも１つのインスタンスを含む列、および
２）前記タイプ・インスタンスを表す前記ＣＬＲクラス・インスタンスの直列化表現を含む行
のうちの少なくとも１つを有するテーブル
をさらに備えることを特徴とする請求項１に記載のシステム。
【請求項１１】
前記タイプの少なくとも１つのインスタンスを公開するビューを生成するビュー・コンポーネントをさらに備え、前記ビューは、基本タイプに関連付けられた前記ビューの前記それぞれのタイプのサブセットを投影することを特徴とする請求項１に記載のシステム。
【請求項１２】
前記タイプは、タイプ階層および継承のうちの少なくとも一つを含むことを特徴とする請求項１に記載のシステム。
【請求項１３】
請求項１に記載のシステムの前記各構成要素を格納していることを特徴とするコンピュータ可読媒体。
【請求項１４】
データ・モデルのマッピングを容易にするコンピュータ実装方法であって、
ファイル格納データ・モデルを取得すること、
スキーマ、タイプ、クリテリア、およびクエリ情報のうちの少なくとも１つを受け取ること、
前記ファイル格納データ・モデルに関連付けられた前記スキーマに基づいて、スキーマ・オブジェクトをデータベース・オブジェクトにマップすること、ならびに
前記スキーマからの前記タイプのインスタンスを格納すること
を備えることを特徴とするコンピュータ実装方法。
【請求項１５】
それぞれのクリテリアを満足する、前記システム内の少なくとも１つの項目、
それぞれのクリテリアを満足する、前記システム内の少なくとも１つのドキュメント、および
それぞれのクリテリアを満足する少なくとも１つの連絡先
のうちの少なくとも１つを見つけ出すためのクエリを行うこと
をさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１６】
リレーショナル・データベース・エンジンを使用して、リレーショナル格納およびリレーショナル・クエリ能力を提供することをさらに備えることを特徴とする請求項１４に記載の方法。
【請求項１７】
前記タイプの少なくとも１つのインスタンスを公開するビューを生成することをさらに備え、前記ビューは、基本タイプに関連付けられた前記ビューの前記それぞれのタイプのサブセットを投影することを特徴とする請求項１４に記載の方法。
【請求項１８】
ファイル格納データ・モデルとタイプ格納コンポーネントの間で伝達を行い、請求項１４に記載の方法を容易にすることを特徴とするデータパケット。
【請求項１９】
データ・モデルのマップを容易にするコンピュータ実装システムであって
スキーマ、タイプ、クリテリア、およびクエリ・クリテリアのうちの少なくとも１つを受け取る手段と、
ファイル格納データ・モデルに関連付けられたスキーマに基づいて、スキーマ・オブジェクトをデータベース・オブジェクトにマップする手段であって、前記スキーマ内のあるタイプのインスタンスが格納される手段と
を備えることを特徴とするコンピュータ実装システム。
【請求項２０】
前記ビュー・コンポーネントは、ユーザ・インターフェースを呼び出して、ユーザと前記タイプ格納コンポーネントとの間で対話させることを特徴とする請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、データベースに関し、より詳細には、タイプ・インスタンスの格納および／またはデータについてのクエリを容易にするシステムおよび／または方法に関する。
【背景技術】
【０００２】
コンピュータ技術（例えば、マイクロ・プロセッサの速度、メモリ容量、データ転送帯域幅、ソフトウェアの機能性など）における進歩は概して、様々な産業におけるコンピュータ・アプリケーションの増加に寄与している。より一層強力なサーバ・システムは、しばしば複数のサーバからなるアレイとして構成され、例えばワールド・ワイド・ウェブなどの外部ソースから発せられたサービス・リクエストに対して一般的に提供される。
【０００３】
利用可能な電子データ量の増化にしたがって、このようなデータを、ユーザ・フレンドリで、高速なデータ検索および取得を容易にする、管理可能なやり方で格納することがより重要になっている。今日、一般的な手法は、電子データを１つまたは複数のデータベースに格納するものである。概して、通常のデータベースは、コンピュータ・プログラムが、例えば所望のいくつかのデータを素早く検索し選択できるように構造化されたデータを備える、編成された情報の集合体と呼ぶことができる。一般に、データベース中のデータは、１つまたは複数のテーブルにより編成される。このようなテーブルは、複数の行（row）および複数の列（column）を有して構成することができる。
【０００４】
このテーブルは、１つまたは複数のレコードを備えることができ、１つのレコードは、１組のフィールドを含むことができる。レコードは一般に、テーブル中の行（row）として索引付けられ、そのレコード・フィールドは通常、列（column）として索引付けられ、こうすることによって、索引の行／列ペアが、テーブル中の特定のデータを参照することができるようになる。例えば、１行に、１つの売買取引、人、またはプロジェクトに関する１つの完全なデータ・レコードを格納することができる。同様に、テーブルの列（column）は、同じ一般データ形式である行の個々の部分を定義することができ、列は（column）、レコードのフィールドを定義することができる。
【０００５】
データの個々の部分それぞれは、独立しており、概してあまりインフォマティブ（informative：特別に伝えることに意味があること）ではない。データベース・アプリケーションは、データをより有用なものにし、それにより、ユーザがデータを編成し処理するのを助ける。データベース・アプリケーションは、ユーザが、データを比較し、ソートし、順序付け、マージし、分離し、連係することを可能とし、その結果、そのデータから有用な情報を生成することができる。それでも、データベースの容量および汎用性は、驚くべき量まで増化し、ほぼ限りない記憶容量をデータベースに利用することを可能にしている。さらに、通常のデータベース・システムは、時間、ファイル・エクステンション、場所、およびサイズに基づく、限られたクエリ性能を提供する。例えば、データベースに関連付けられた膨大なデータを検索するために、通常の検索は、ファイル名、ファイル・サイズ、作成日付に限られるが、このような技術は不完全であり、不十分である。
【０００６】
エンド・ユーザからのデータが引き続き存在し、その作成が増加するのに伴って、このようなデータを見つけ出し、関連付け、および格納することを取り巻く課題および問題点が、ピークに達しつつある。エンド・ユーザは、ドキュメントを書き、写真を格納し、コンパクト・ディスクから音楽をリッピングし、ｅメールを受け取り、送信したｅメールのコピーを保持するなどのことを行う。例えば、音楽のコンパクト・ディスクを作成するという簡単なプロセスにおいて、エンド・ユーザは、数メガ・バイトのデータを作成する場合がある。コンパクト・ディスクからの音楽のリッピング、適切な形式（format）へのファイルのコンバート、ジュエル・ケース・カバーの作成、コンパクト・ディスクのラベルのデザインは、すべてデータの作成を必要とする。
【０００７】
ユーザを取り巻く面倒な事態だけでなく、開発者も、データに関して同様の問題を抱えている。開発者は、個人向けアプリケーションから、高度化した企業向けアプリケーションに及ぶ無数のアプリケーションを作成し、書く。作成し、かつ／または開発する間、開発者は、常時ではないにしても、頻繁にデータを（一個所に）集める。このようなデータを取得する間、そのデータは格納されていることが必要となる。言い換えると、データの見つけ出し、関連付け、および格納を取り巻く課題および問題点は、開発者およびエンド・ユーザ両方に影響を与える。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記のことを鑑みて、従来のシステムおよびデータベースに関連する欠陥を緩和するシステムおよび／または方法を改善し、かつ／または提供する必要性が存在する。
【課題を解決するための手段】
【０００９】
以下では、本発明のいくつかの態様の基本的な理解をもたらすために、本発明の簡略な要約を提示する。この要約は、本発明の包括的な概要ではない。本発明についての手がかりや／重要な要素を特定することも、本発明の範囲を定めることも意図していない。以下に提示するより詳細な説明の前置きとして、本発明のいくつかの概念を簡略な形で提示することだけを目的としている。
【００１０】
本発明は、データベース・オブジェクトへのデータ・モデルのマッピングを容易にするシステムおよび／または方法に関する。タイプ格納システムが、タイプ・インスタンスを格納することおよび／またはクエリを行うことを提供することができる。タイプを格納することによって、そのデータベース・オブジェクト、および複数のタイプのインスタンスがどのようにして格納され、かつ／またはアクセスされるかを記述することができる。クエリを行うことは、それぞれ一定のクリテリア（criteria：基準）を満足する項目（item）、ドキュメント、および連絡先のうちの少なくとも１つを見つけ出すことができる。さらに、タイプ格納システムは、データを受け取るためにインターフェースを使用することができ、このデータには、スキーマ、タイプ、クリテリア、クエリ・クリテリアなどを含めることができる。
【００１１】
本発明の一態様によると、このタイプ格納システムは、少なくとも１つのタイプ・インスタンスを格納するストア・コンポーネントを含むことができる。この格納は、データ・モデルのマッピングであることでき、このデータ・モデルは、ファイル格納システムを表すことができる。さらに、このタイプ格納システムは、クエリ・コンポーネントも含むことができ、このクエリ・コンポーネントは、クリテリアを満足するように、ファイル格納システム・データ・モデルにおいて、少なくとも１つのクエリを提供することができる。本発明の別の態様によると、このタイプ格納システムは、リレーショナル格納および／またはリレーショナル・クエリ能力を使用することができるリレーショナル・コンポーネントを含むことができる。このリレーショナル・コンポーネントは、このようなリレーショナル技術を提供するためにデータベース・エンジンを呼び出すことができ、こうした技術は、タイプ・インスタンス格納すること、および／またはクエリを行うことを容易にすることができる。
【００１２】
さらに、このタイプ格納システムは、所与のタイプのすべてのインスタンスを公開する（エクスポーズする）ビューを提供することができるビュー・コンポーネントをさらに含むことができる。このタイプは、階層構造および／または継承構造であることができる。このビューは、基本タイプを有するタイプのサブセットを投影する特定のタイプに関連付けることができる。本発明の他の態様では、データベース・オブジェクトへのデータ・モデルのマッピングを容易にする方法が提供される。
【００１３】
以下の説明および添付の図面では、本発明の特定の例示的な態様を詳細に説明する。ただし、こうした態様は、本発明の原理を利用することができる様々な方法のごくわずかを示しているに過ぎず、本発明は、このような態様およびそれらの均等物すべてを含むことを意図している。本発明についての他の目的、利点および新規の特徴は、本発明の以下の詳細な説明から、図面と併せて考察されることにより、明らかになるであろう。
【発明を実施するための最良の形態】
【００１４】
本出願において使用する「コンポーネント」、「システム」、「インターフェース」、「スキーマ」などの用語は、コンピュータ関連のエンティティ、すなわちハードウェア、（例えば実行中の）ソフトウェア、および／またはファームウェアのいずれかを指すことを意図している。例えば、コンポーネントは、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、実行ファイル、プログラム、および／またはコンピュータでよい。例として、サーバ上で実行されているアプリケーションおよびそのサーバが両方とも、コンポーネントとなることができる。１つまたは複数のコンポーネントが１つのプロセス中に存在してよく、１つのコンポーネントを、１台のコンピュータに配置することも、かつ／または２台以上のコンピュータ間に分散させることもできる。
【００１５】
本発明が、図面を参照して説明されるが、図における同じ参照番号は、全体を通して同じ要素を指すのに使用される。以下の記述では、説明の目的で、具体的な多くの詳細を、本発明の完全な理解を提供するために説明する。ただし、こうした具体的な詳細なしでも本発明を実施できることが明らかであろう。他の例では、本発明を説明しやすくするために、公知の構造およびデバイスをブロック図の形で示している。
【００１６】
ここで図面に移ると、図１は、データ・モデルに関連付けられたタイプ・インスタンスを格納することを容易にする例示的なシステム１００を示している。このデータ・モデルは、情報を格納すること、見つけ出すこと、および関連付けをすること、を可能にするファイル格納データ・モデル１０２とすることができる。例えば、情報タイプは、ドキュメント、画像、ビデオ、連絡先、メッセージ、ｅメール、オーディオ・クリップなどであることができるが、それに限定されない。情報のタイプは、情報の単位と見なすことができ、継承をサポートするタイプ・システムの一部である複合タイプのインスタンスとして表すことができる。継承は、いくつかの特性が、あるコンテクストから別のコンテクストに渡される状況として定義することができる。特にオブジェクト指向プログラミングの場合、オブジェクトは、他のオブジェクトから属性（attributes）および／または振る舞い（behaviors）を継承する。継承は、階層構造および／または形式と見なすことができることを理解されたい。
【００１７】
タイプ格納システム１０４は、項目、ドキュメント、および／または連絡先のうちの少なくとも１つを、効率的、効果的に見つけ出す、タイプ・インスタンスおよびクエリを格納することができる。タイプ格納システム１０４は、データを受け取ることができ、このデータには、タイプ、クリテリア、スキーマ、クエリ・クリテリアなどを含めることができる。具体的には、情報のタイプ（例えば、ドキュメント、画像、ビデオ、連絡先、メッセージ、ｅメール、オーディオ・クリップ）に関するタイプ・インスタンスを格納することにより、以下の少なくとも１つを実現することができる。すなわち、１）ファイル格納データ・モデル１０２中で、あるクリテリアを満足する少なくとも１つの項目を見つけ出すこと、２）ファイル格納データ・モデル１０２中で、ある特定のクリテリアを満足する少なくとも１つのドキュメントを見つけ出すこと、３）あるクリテリアを満足する少なくとも１つの連絡先（例えば、個人、組織、およびグループを含む）を見つけ出すこと。
【００１８】
タイプ格納システム１０４は、リレーショナル格納およびリレーショナル・クエリに関連するリレーショナル・データベース技術を使用することができる。このような能力は、データベース・エンジン（図示せず）によって提供できることを理解されたい。リレーショナル・データベース技術は、リレーショナル・データベースに関連付けることができ、ここで、リレーショナル・データベースとは、形式的に記述された１組のテーブルとして編成された、データ項目の集合体である。そのテーブル中のデータについては、データベース・テーブルを再編成する必要なく、様々なやり方でアクセスし、かつ／または再アセンブルすることができる。さらに、このリレーショナル・データベースは、既存のアプリケーションおよび／またはデータに変更を加えずに新しいカテゴリを追加するなど、容易に拡張することができる。本発明は、リレーショナル・データベースおよび／または関連する技術に限定されず、任意の適切な技術を使用することができることを理解されたい。
【００１９】
システム１００は、インターフェース・コンポーネント１０６をさらに含み、このコンポーネント１０６は、タイプ格納システム１０４を実質上どのオペレーティング・システムにも統合させるための様々なアダプタ、コネクタ、チャネル、通信経路などを提供する。さらに、インターフェース・コンポーネント１０６は、データおよびタイプ格納システム１０４との対話をもたらす様々なアダプタ、コネクタ、チャネル、通信経路などを提供することができる。インターフェース・コンポーネント１０６は、タイプ格納システム１０４に組み込まれるが、このような実装は、そのようには限定されないことを理解されたい。例えば、インターフェース・コンポーネント１０６は、システム１００と関係してデータを受信し、または送信するスタンドアロン・コンポーネントであることができる。
【００２０】
図２は、タイプ・インスタンスを格納すること、ならびに／あるいはデータ・モデル２０２に関連付けられた項目、ドキュメント、および連絡先を見つけ出すためのクエリを行うことを容易にする例示的なシステム２００を示す。データ・モデル２０２は、階層特性および／または継承を使用するファイル格納システムのモデル表現とすることができる。このタイプには、ドキュメント、画像、ビデオ、連絡先、メッセージ、ｅメール、オーディオ・クリップなどを含めることができる。ただし、タイプは、データ・モデル２０２で表されるシステムに格納される通常の情報タイプとすることができることを理解されたい。タイプ格納システム２０４は、タイプ・インスタンスを格納し、データ・モデル２０２中の項目、データ・モデル２０２中のドキュメント、およびデータ・モデル２０２中の連絡先のうちの少なくとも１つを効率的に見つけ出すことができるクエリを行うことを提供することができる。タイプ格納システム２０４は、データを受け取ることができ、このデータは、クエリ・クリテリア、スキーマ、クリテリア、スキーマ定義、データ・モデル、タイプなどであることができる。システム２００はさらに、インターフェース２０６を利用して、タイプ格納システム２０４を実質的にどのオペレーティング・システムにも統合するための様々なアダプタ、コネクタ、チャネル、通信経路などの提供を容易にすることができる。
【００２１】
タイプ格納システム２０４は、タイプ・インスタンスを格納することができるストア・コンポーネント２０８（「ストア２０８」）をさらに含むことができる。この格納は、データ・モデル２０２のマッピングであることができ、この格納マッピングは、スキーマ定義に基づいて、およびスキーマ中に記述されたタイプのインスタンスがどのようにして格納され、かつ／またはアクセスされるかに基づいて、作成されたデータベース・オブジェクトを記述することができる。言い換えると、ストア２０８は、そのタイプのインスタンスと、データベース・オブジェクトへのタイプ宣言のマッピングに関連付けられた少なくとも１つの規則と、を格納することができる。
【００２２】
タイプ格納システム２０４は、データをクエリすることを提供するクエリ・コンポーネント２１０（「クエリ２１０」）を含むことができる。クエリ２１０は、データ・モデル２０２で表されるシステム内の項目、データ・モデル２０２で表されるシステム内のドキュメント、ならびにデータ・モデル２０２で表されるシステム内の連絡先（例えば、個人、組織、およびグループを含む）のうちの少なくとも１つを取得することができる。クエリは、インターフェース２０６を介して入手される一定のクリテリアおよび／またはクエリ・クリテリアに少なくとも基づくことができることを理解されたい。さらに、クエリ２１０は、項目、ドキュメント、および連絡先に限定されず、データ・モデル２０２で表されるシステムに格納される適切な、どの情報タイプも使用することができる。
【００２３】
図３は、リレーショナル格納およびリレーショナル・クエリ能力の使用を容易にする例示的なシステム３００を示す。タイプ格納システム３０４は、タイプ・インスタンスと、項目、ドキュメント、および連絡先を効率的、効果的に見つけ出すようにクエリとを格納することができ、このような要素は、データ・モデル３０２で表されるファイル・システムに関連付けられる。このファイル・システムは、階層構造および／または継承特性を使用する格納ファイル・システムであることができることを理解されたい。タイプ格納システム３０４は、それぞれ図１、図２に示す、タイプ格納システム１０４、２０４と実質的に同様とすることができる。タイプ格納システム３０４は、通信および／またはデータの受け取りを容易にするためのインターフェース３０６を呼び出すことができ、本発明に従ってさらに利用することができる。
【００２４】
タイプ格納システム３０４は、ストア・コンポーネント３０８（ストア３０８）およびクエリ・コンポーネント３１０（「クエリ３１０」）を含むことができる。ストア３０８は、適切な、任意の格納技術を備えて、タイプ・インスタンスを格納することができる。クエリ３１０は、クリテリアを満たすシステム内の少なくとも１つの項目と、クリテリアを満足するシステム内の少なくとも１つのドキュメントと、クリテリアを満たす少なくとも１つの連絡先のうちの少なくとも１つを効率的且つ効果的に取得することが可能なクエリを提供することができる。ストア３０８およびクエリ３１０は、図２に示すストア２０８およびクエリ２１０と実質的に同様とすることができることを理解されたい。
【００２５】
タイプ格納システム３０４は、リレーショナル・コンポーネント３１２（「リレーショナル３１２」）をさらに含むことができる。リレーショナル３１２は、データベース技術を使用して（例えば、データベース・エンジンの使用）、リレーショナル格納を構築し、かつ／またはリレーショナル・クエリ能力を提供し、タイプ・インスタンスを格納することおよび／またはクエリを行うことを容易にする。リレーショナル３１２は、リレーショナル・データベースに関連する技術を組み込むことができ、このリレーショナル・データベースは、上で詳しく説明したように、形式的に記述された１組のテーブルとして編成された、データ項目の集合体である。本発明は、リレーショナル・データベースおよび関連する技術に限定されず、適切な任意の技術を使用することができることを理解されたい。
【００２６】
図４は、データ・モデル４０２と連動してマッピングおよび／またはビューイングを容易にする例示的なシステム４００を示す。データ・モデル４０２は、情報を格納すること、見つけ出すこと、および関連付けをすることを可能にするファイル格納システムを表すことができる。システムに格納することができる通常の情報タイプは、ドキュメント、画像、音楽、ビデオ、連絡先、メッセージなどを含むことができる。情報タイプは、継承をサポートするタイプ・システムの一部である複合タイプのインスタンスとして表すことができる。タイプ格納システム４０４は、タイプ・インスタンスを格納し、一定のクリテリアを満足する項目、ドキュメント、および連絡先を見つけ出すためのクエリを提供することができる。システム４００はさらに、通信ならびに／あるいはクリテリア、タイプ、スキーマ、モデル、およびクエリ・クリテリアを含むことができるデータの受け取りを容易にするためのインターフェース４０６を利用することができる。
【００２７】
タイプ格納システム４０４は、タイプ・インスタンスの格納を容易にするためのマップ・コンポーネント４０８をさらに含むことができる。マップ・コンポーネント４０８は、スキーマ中で記述されるタイプの、定義済みタイプおよびデータベース・オブジェクトへのマッピングを提供する。マップ・コンポーネント４０８は、少なくとも１つのデータベース・オブジェクトを記述する格納マッピングであることができ、このデータベース・オブジェクトは、スキーマ定義に基づいて、および／またはそのスキーマ中で記述されるタイプのインスタンスがどのようにして格納され、かつ／またはアクセスされるかに基づいて、作成することができる。言い換えると、タイプのインスタンスは格納することができ、規則は、タイプ宣言をデータベース・オブジェクトにマップするのに使用することができる。スキーマ中の各タイプは、記憶域内のクラス（例えば、共通言語ランタイム（ＣＬＲ））にマップする。
【００２８】
タイプ格納システム４０４は、ビュー投影を提供するためのビュー・コンポーネント４１０を含むことができる。ビュー投影は、閲覧されているタイプのインスタンスを公開することができる。このタイプは、少なくとも継承を使用する階層構造でよいことを理解されたい。言い換えると、各タイプは、タイプ階層の一部である。このビューは、所与のタイプに関連付けることができ、その基本タイプに関連付けられたビューのそれぞれのタイプのサブセットを投影することができる。このビューは、特定のタイプに関連付けられたインスタンスを投影することができる。例えば、「メッセージ」タイプに関して、メッセージが親であるインスタンスのみが、階層構造に少なくとも基づいて閲覧することができる。
【００２９】
ビュー・コンポーネント４１０は、ユーザと、タイプ格納システム４０４に結合されたどのコンポーネントとの間の対話も容易にするための様々なタイプのユーザ・インターフェースを提供することができる。図に示すように、ビュー・コンポーネント４１０は、タイプ格納システム４０４に組み込まれた別個のエンティティである。ただし、ビュー・コンポーネント４１０および／または同様のビュー・コンポーネントは、タイプ格納システム４０４および／またはスタンドアローン・ユニットとは別個のコンポーネントでよいことを理解されたい。ビュー・コンポーネント４１０は、１つまたは複数のグラフィカル・ユーザ・インターフェース（ＧＵＩ）、コマンド・ライン・インターフェースなどを提供することができる。例えば、データをロードし、インポートし、読むなどするための領域または手段をユーザに提供するＧＵＩをレンダリングすることができ、ＧＵＩは、このような操作の結果を提示するための領域を含むことができる。こうした領域は、編集コントロール、コンボ・ボックス、ラジオ・ボタン、チェック・ボックス、プッシュ・ボタン、および画像ボックスなどの、ダイアログ・ボックス、静的コントロール、ドロップ・ダウン・メニュー、リスト・ボックス、ポップアップ・メニューを備える公知のテキストおよび／または画像領域を備えることができる。さらに、領域が閲覧可能になるかどうか決定するためのナビゲーション用のこのような垂直および／または水平スクロール・バー、ならびにツール・バー・ボタンの提示を容易にするためのユーティリティを利用することができる。例えば、ユーザは、タイプ格納システム４０４に結合されたコンポーネントの１つまたは複数と対話することができる。
【００３０】
ユーザは、例えば、マウス、ローラー・ボール、キーパッド、キーボード、ペンおよび／または音声活動化など、様々なデバイスを介して情報を選択し提供するための領域と対話することもできる。通常、キーボード上のプッシュ・ボタンやエンター・キーなどの機構は、検索を開始するために、その後の情報入力に利用することができる。ただし、本発明は、それらに限定されないことを理解されたい。例えば、チェック・ボックスを単に強調表示するだけで、情報の伝達を開始することができる。別の例では、コマンド・ライン・インターフェースを利用することができる。例えば、コマンド・ライン・インターフェースは、ユーザに、テキスト・メッセージを与えることにより、情報の入力を促す（例えば、ディスプレイ上のテキスト・メッセージおよび音声トーンを介して）ことができる。ユーザは次いで、インターフェース・プロンプトで提供される選択肢に対応する文字数字入力や、そのプロンプト内で提示された質問への回答など、適切な情報を提供することができる。コマンド・ライン・インターフェースは、ＧＵＩおよび／またはＡＰＩと関連して利用できることを理解されたい。さらに、コマンド・ライン・インターフェースは、限られた画像サポート、かつ／または低帯域幅の通信チャネルのハードウェア（例えば、ビデオ・カード）および／またはディスプレイ（例えば、白黒、およびＥＧＡ）と関連して利用することができる。
【００３１】
図５は、インテリジェンスを利用して、データ・モデル５０２に関連付けられたタイプ・インスタンスを格納することを容易にする例示的なシステム５００を示す。システム５００は、タイプ格納システム５０４、インターフェース５０６、およびデータ・モデル５０２を含み、これらは、今までの図面に示したコンポーネントと実質的に同様とすることができる。インターフェース５０６は、クリテリア、タイプ、スキーマ、データ・モデル、およびクエリ・クリテリアを含むことができるデータに関連する通信を容易にすることができる。システム５００は、タイプの格納、クエリ、および／またはビューを提供することを提供できる。データベース・エンジンは、システム５００にリレーショナル格納およびリレーショナル・クエリを提供できることを認識し、理解されたい。
【００３２】
システム５００は、インテリジェント・コンポーネント５０８をさらに含む。インテリジェント・コンポーネント５０８は、タイプ格納システム５０４によって、システム５００に対して格納することおよび／またはクエリを行うことを容易にするのに使用することができる。例えば、インテリジェント・コンポーネント５０８は、格納されるユーザ定義タイプを決定することを容易にするのに使用することができる。ユーザ・プロファイルと連動した履歴データは、インテリジェント・コンポーネント５０８が、タイプを格納することおよび／または一定のクリテリアを用いたクエリを行うことを決定させることができる。
【００３３】
インテリジェント・コンポーネント５０８は、推理を提供すること、すなわちイベントおよび／またはデータを介して取り込まれた１組の観察結果から、システム、環境、および／またはユーザの状態を判断したり、それを推論したりすることができることを理解されたい。推論は、例えば、具体的なコンテクストまたはアクションを識別するのに利用することもでき、複数の状態に及ぶ確率分布を生成することもできる。推論は、確率的、つまり、データおよびイベントの考慮に基づく、対象となっている複数の状態に及ぶ確率分布の計算とすることができる。推論は、１組のイベントおよび／またはデータからの上位レベルのイベントの構築に利用される技術を指すこともある。このような推論は、観察された１組のイベントおよび／または格納されたイベントデータから、そのイベントが時間的に接近した近接性（close temporal proximity）で相関付けられていてもいなくても、かつそのイベントおよびデータが１つのイベントおよびデータソースに由来するのか、それともいくつかのイベントおよびデータソースに由来するのかに関わらずに、新しいイベントまたはアクションが構成される。様々な分類（明示的にかつ／または暗黙的にトレーニングされた）方式および／またはシステム（例えば、サポート・ベクトル・マシン、ニューラル・ネットワーク、エキスパート・システム、ベイズの確信ネットワーク（Bayesian belief network）、ファジー論理、データ融合エンジンなど）を、本発明に関連して、自動および／または推論によるアクションの実施と関連して利用することができる。
【００３４】
分類装置（classifier：クラシファイア）とは、入力属性ベクトル、すなわちｘ＝（ｘ１，ｘ２，ｘ３，ｘ４，ｘｎ）を、あるクラスに入力が属す確信度（confidence）にマップする関数、つまりｆ（ｘ）＝ｃｏｎｆｉｄｅｎｃｅ（ｃｌａｓｓ）である。このような分類は、確率および／または統計に基づく分析（例えば、分析ユーティリティおよびコストへのファクタリング）を利用して、ユーザが自動的に実施させたいと望むアクションを予知し、または推論することができる。サポート・ベクトル・マシン（ＳＶＭ）が、利用することができる分類装置の例である。ＳＶＭは、入力が起こり得るスペース中で超曲面（hypersurface）を見つけ出すことによって動作し、この超曲面は非トリガ・イベントからトリガ・クリテリアを分割しようと試みる。こうすることによって、トレーニングデータと近似しているが同一ではないテスト用データに対する分類を直観的に正しく補正する。例えば単純ベイズ、ベイズのネットワーク、決定木、ニューラル・ネットワーク、ファジー論理モデル、および相異なるパターンの独立を提供する、確率的分類モデルを含む他の有向および無向モデル分類手法も利用することができる。本明細書で使用する分類も、優先度のモデルを開発するのに使用される統計的回帰を含めている。
【００３５】
さらに、インテリジェント・コンポーネント５０８は、データ・ストア５１０を使用して、ユーザ・プロファイルおよび／または履歴データを格納することができる。データ・ストア５１０は、例えば、揮発性メモリまたは不揮発性メモリのいずれかでもよく、揮発性および不揮発性メモリを両方とも含んでもよい。限定ではなく例として、不揮発性メモリは、ＲＯＭ（読出し専用メモリ）、ＰＲＯＭ（プログラム可能ＲＯＭ）、ＥＰＲＯＭ（電気的プログラム可能ＲＯＭ）、ＥＥＰＲＯＭ（電気的消去可能ＲＯＭ）、またはフラッシュ・メモリを含むことができる。揮発性メモリは、外部キャッシュ・メモリとして作用するＲＡＭ（ランダム・アクセス・メモリ）を含む。限定ではなく例として、ＲＡＭは、ＳＲＡＭ（同期ＲＡＭ）、ＤＲＡＭ（ダイナミックＲＡＭ）、ＳＤＲＡＭ（シンクロナスＤＲＡＭ）、ＤＤＲ  ＳＤＲＡＭ（ダブル・データ・レート方式ＳＤＲＡＭ）、ＥＳＤＲＡＭ（拡張ＳＤＲＡＭ）、ＳＬＤＲＡＭ（シンクリンクＤＲＡＭ）、ＲＤＲＡＭ（ランバス・ダイレクトＲＡＭ）、ＤＲＤＲＡＭ（ダイレクト・ランバス・ダイナミックＲＡＭ）、およびＲＤＲＡＭ（ランバス・ダイナミックＲＡＭ）など、多くの形で利用可能である。本システムおよび方法のデータ・ストア５１０は、こうしたおよび他の適切な任意のタイプのメモリも備えることを意図しているが、それに限定されない。さらに、データ・ストア５１０は、サーバおよび／またはデータベースでよいことを理解されたい。
【００３６】
図６は、ストアの高水準構造（high-level structure）を示す。複数のタイプの様々なインスタンスを、そのタイプに応じてテーブルに格納することができるスキーマを提供することができる。タイプは、項目（item）、項目のエクステンション、項目フラグメント、およびリンクとすることができるが、それに限定されない。各タイプは、オブジェクト・インスタンスをその中に有する列（カラム）を収容可能な対応するテーブルを有することができる。例えば、項目テーブル中の一列（カラム）が、ストア内の項目のすべてのインスタンスを収容できる。各行ごとに、列（カラム）は、項目タイプ・インスタンスを表すＣＬＲクラス・インスタンスの直列化表現を収容できる。項目のエクステンション、項目フラグメントおよびリンクごとにタイプ・インスタンスを、同様の構造で表すことができることを理解されたい。インライン・タイプ・インスタンスは、別個のテーブルおよび／または列に格納するのではなく、親オブジェクト・インスタンスの中に格納することができる。各項目、項目のエクステンション、項目フラグメント、およびリンクごとに、そのタイプのインスタンスすべてを公開するビューを生成することができる。各タイプは、あるタイプ階層の一部である。例えば、項目ビューは、ストア中のすべての項目を投影する。
【００３７】
一時的に図７に移ると、項目７０２を示してある。項目７０２のテーブル７０４は、ストア（図示せず）中の項目のすべてのインスタンスを収容することができる。テーブル７０４は、オブジェクト・インスタンス７０６（「Ｄｏｃｕｍｅｎｔ」）およびオブジェクト・インスタンス７０８（「Ｃｏｎｔａｃｔ」）を収容できる。スキーマ中の各タイプは、記憶域内のＣＬＲクラスにマップすることを理解されたい。オブジェクト・インスタンス７０６は、タイトル、アブストラクト、印刷済み（a printed）、作者、およびオブジェクト・インスタンス７０６に関連付けられた他の様々なメタデータを含むことができる。同様に、オブジェクト・インスタンス７０８は、例えば名前、アドレス、ｅメールなど、様々なメタデータを含むことができる。
【００３８】
図８は、タイプ階層８００および対応するビュー投影８２０を示す。タイプ階層８００は、項目８０２、連絡先８０４、ドキュメント８０６、メッセージ８０８、人８１０、組織８１２、ｅメール８１４、ファックス８１６、および音声８１８を含むことができる。このタイプ階層８００は、１例であり、本発明に従って適切などの階層および／またはタイプを使用することができることを理解されたい。図に示すように、項目８０２は、そこに含まれる全タイプについての親と見なされる。したがって、連絡先８０４は、人８１０および組織８１２にとって親であり、メッセージ８０８は、ｅメール８１４、ファックス８１６、および音声８１８にとって親である。さらに、対応するビュー投影８２０は、タイプ階層８００を反映することができる。所与のタイプに関連付けられたビューは、その基本タイプに関連付けられたビューの項目のサブセットを投影することができる。例えば、項目ビューは、ストア中の項目をすべて投影する。連絡先ビューは、Ｃｏｎｔａｃｔタイプである項目のみを投影する。人ビューは、人という最終派生タイプを有する連絡先のみを投影する。
【００３９】
図６に戻ると、タイプを、ストア中の対応する格納構造を記述するのに使われるタイプにマップするアルゴリズムを使用して、タイプ・マッピングを提供することができる。このマッピングは、どのファイル格納システム（例えば、情報の単位を記述し、かつ／または表すための、複数のタイプの複合インスタンスを使用するシステムに基づくデータ・モデル）にも関連付けることができることを理解されたい。スキーマ中で宣言された各タイプは、ＳＱＬ  ＵＤＴコントラクトをサポートするＣＬＲクラスにマップされる。以下の例ではＳＱＬが使用されるが、適切な任意のデータベース管理システムを利用することができることを理解されたい。このタイプは、添字「．Ｓｔｏｒｅ」が付加されたスキーマの名前空間にその名前が対応する名前空間に属する。所与の名前空間中のタイプは、スキーマの展開単位として使用される単一アセンブリにコンパイルされる。このＣＬＲタイプの名前は、スキーマ中で宣言された名前に等しい。タイプの宣言された各プロパティごとに、対応するＣＬＲタイプに、以下のものが追加される。１）スキーマ中で指定された名前と等しい名前のプライベート・フィールドであって、「ｍ＿」が前置される。このフィールドは、属性としてＵＤＴ固有属性であるＳｙｓｔｅｍ．Ｄａｔａ．ＳｑｌＴｙｐｅｓ．ＳｑｌＵｄｔＦｉｅｌｄを有する。２）スキーマおよび対応するｇｅｔ／ｓｅｔステートメントにおいて指定された名前と等しい名前のパブリック・プロパティ。このプロパティは、属性としてＵＤＴ固有属性Ｓｙｓｔｅｍ．Ｄａｔａ．ＳｑｌＴｙｐｅｓ．ＳｑｌＵｄｔＰｒｏｐｅｒｔｙを有する。３）そのフィールドおよびそのプロパティのタイプは、スキーマ中で宣言されたタイプに対応するＣＬＲタイプである。このタイプは、スカラー・タイプの１つである場合、スカラーＳＱＬタイプ（後で論じる）の１つにマップされる。
【００４０】
以下のテーブルは、対応するＳＱＬ管理タイプへの、ファイル格納システム・スカラー・タイプのマッピングを記述する。
【００４１】
【表１】
2006277726.tif 000003
【００４２】
ファイル格納システム・ストア中に作成されるデータベース・オブジェクトは、ファイル格納システムのスキーマ名から派生したＳＱＬスキーマ名で格納することができる。ファイル格納システム・スキーマ名に添字「．Ｓｔｏｒｅ」が付加されて、ＳＱＬスキーマ名となる。例えば、ファイル格納のｓｙｓｔｅｍ．ｓｔｏｒａｇｅスキーマは、「［Ｓｙｓｔｅｍ．Ｓｔｏｒａｇｅ．Ｓｔｏｒｅ］．Ｉｔｅｍ」のように、ＳＱＬスキーマ「［Ｓｙｓｔｅｍ．Ｓｔｏｒａｇｅ．Ｓｔｏｒｅ］」中にオブジェクトを形成させる。
【００４３】
ファイル格納システムのコンテンツには、ビューを介してアクセスすることができる。下に示すビューは読み取り専用だが、ビューは書き込み可能にすることができるので、本発明はそのようには限定されない。各項目タイプは、タイプ付きビューにマップすることができる。各タイプ付き項目ビューは、命名規則［＜ｓｃｈｅｍａ  ｎａｍｅ＞．Ｓｔｏｒｅ］．［＜Ｉｔｅｍ  ｔｙｐｅ  ｎａｍｅ＞］を用いて、ファイル格納システム・ストア中で識別することができる。タイプＴ用のタイプ・ビューは、タイプＴであるすべての項目およびＴから派生するすべてのタイプを返すことができる。Ｓｙｓｔｅｍ．Ｓｔｏｒａｇｅ．Ｉｔｅｍタイプに対応するビューは、［Ｓｙｓｔｅｍ．Ｓｔｏｒａｇｅ．Ｓｔｏｒｅ］．［Ｉｔｅｍ］である。このビューは、ファイル格納システム・ストア中の項目すべてを返すことができる。以下のテーブルは、項目タイプ・ビューの列（カラム）を記述する。
【００４４】
【表２】
2006277726.tif 000004
【００４５】
各リンク・タイプは、タイプ付きビューにマップされる。各タイプ付きリンク・ビューは、命名規則［＜ｓｃｈｅｍａ  ｎａｍｅ＞．Ｓｔｏｒｅ］．［＜ｌｉｎｋ  ｔｙｐｅ  ｎａｍｅ＞］を用いてファイル格納システム・ストア中で識別される。Ｓｙｓｔｅｍ．Ｓｔｏｒａｇｅ．Ｌｉｎｋタイプに対応するビューは、［Ｓｙｓｔｅｍ．Ｓｔｏｒａｇｅ．Ｓｔｏｒｅ］．［Ｌｉｎｋ］である。このビューは、ファイル格納システム・ストア中のリンクをすべて収容できる。以下のテーブルは、リンク・タイプ・ビューの列（カラム）を記述する。
【００４６】
【表３】
2006277726.tif 000005
【００４７】
すべての項目フラグメントは、単一のビュー［Ｓｙｓｔｅｍ．Ｓｔｏｒａｇｅ．Ｓｔｏｒｅ］．［ＩｔｅｍＦｒａｇｍｅｎｔ］を介してアクセス可能である。以下のテーブルは、グローバル項目フラグメント・ビューの列（カラム）を記述する。
【００４８】
【表４】
2006277726.tif 000006
【００４９】
各ストアは、［Ｓｙｓｔｅｍ．Ｓｔｏｒａｇｅ．Ｓｔｏｒｅ］．［ＩｔｅｍＥｘｔｅｎｓｉｏｎ］と命名されたグローバル・エクステンション・ビューを提供する。すべてのエクステンション・タイプのインスタンスが、このビューを介してアクセス可能である。以下のテーブルは、グローバル・エクステンション・ビューにおける列（カラム）を記述する。
【００５０】
【表５】
2006277726.tif 000007
【００５１】
各エクステンション・タイプは、タイプ付きビューにマップされる。各タイプ付きエクステンション・ビューは、命名規則［＜ｓｃｈｅｍａ  ｎａｍｅ＞．Ｓｔｏｒｅ］．［＜ｅｘｔｅｎｓｉｏｎ  ｔｙｐｅ  ｎａｍｅ＞］を用いて、ファイル格納システム・ストア中で識別される。以下のテーブルは、エクステンション・タイプ・ビューの列を記述する。
【００５２】
【表６】
2006277726.tif 000008
【００５３】
ファイル格納システムにおいて、インライン・タイプ・インスタンスを、エンティティ・タイプ・インスタンス内部に格納することができる。こうしたインスタンスは、適切な検索ビューにクエリを行うことによってアクセスされることを理解されたい。
【００５４】
すべての項目は、［Ｓｙｓｔｅｍ．Ｓｔｏｒａｇｅ．Ｓｔｏｒｅ］．［Ｔａｂｌｅ！Ｉｔｅｍ］と呼ばれる単一の項目テーブルに格納される。以下のテーブルにおける一意のキーは、ＩｔｅｍＩｄである。
【００５５】
【表７】
2006277726.tif 000009
【００５６】
項目テーブルに対する索引は、以下のテーブルに記述される。
【００５７】
【表８】
2006277726.tif 000010
【００５８】
すべてのリンクがリンク・テーブルに格納され、このテーブルは、［Ｓｙｓｔｅｍ．Ｓｔｏｒａｇｅ．Ｓｔｏｒｅ］．［Ｔａｂｌｅ！Ｌｉｎｋ］と命名される。以下のテーブルにおける一意のキーは、ＩｔｅｍＩｄ、ＬｉｎｋＩｄである。
【００５９】
【表９】
2006277726.tif 000011
【００６０】
リンク・テーブルに対する索引は、以下のテーブルに記述される。
【００６１】
【表１０】
2006277726.tif 000012
【００６２】
すべてのＥｎｔｉｔｙＥｘｔｅｎｓｉｏｎが、［Ｓｙｓｔｅｍ．Ｓｔｏｒａｇｅ．Ｓｔｏｒｅ］．［Ｔａｂｌｅ！ＩｔｅｍＥｘｔｅｎｓｉｏｎ］と呼ばれる単一のテーブルに格納される。以下のテーブルは、項目のエクステンション・テーブルを記述する。
【００６３】
【表１１】
2006277726.tif 000013
【００６４】
ＩｔｅｍＥｘｔｅｎｓｉｏｎテーブルに対する索引は、以下のテーブルに記述される。
【００６５】
【表１２】
2006277726.tif 000014
【００６６】
すべてのＩｔｅｍＦｒａｇｍｅｎｔタイプ・インスタンスが、［Ｓｙｓｔｅｍ．Ｓｔｏｒａｇｅ．Ｓｔｏｒｅ］．［Ｔａｂｌｅ！ＩｔｅｍＦｒａｇｍｅｎｔ］と命名された単一のテーブルに格納される。以下のテーブルは、ＩｔｅｍＦｒａｇｍｅｎｔタイプを示す。
【００６７】
【表１３】
2006277726.tif 000015
【００６８】
ＩｔｅｍＦｒａｇｍｅｎｔテーブルに対する索引が、以下のテーブルに記述される。
【００６９】
【表１４】
2006277726.tif 000016
【００７０】
図９〜１０は、本発明による方法を示す。説明を簡単にするために、こうした方法は一連の作用（acts）として示してある。本発明は、例示した作用（acts）および／または作用（acts）の順序に限定されないことを理解されたい。例えば、作用（acts）は、様々な順序で、かつ／または並行して起こってよく、本明細書に提示も記述もしていない他の作用（acts）とともに発生することができる。さらに、例示するすべての作用（acts）が、本発明による方法の実装に必要となるわけではない。さらに、本方法は、別法として、状態図またはイベントによる相関付けられた一連の状態として表すことができることが、当業者には理解されよう。
【００７１】
図９は、データ・モデルにマップするタイプ・インスタンスを格納し、かつ／またはクエリを提供する例示的な方法９００を示す。このデータ・モデルは、情報を格納すること、見つけ出すこと、および関連付けることを可能にするファイル格納データ・モデルとすることができる。情報タイプは、ドキュメント、画像、ビデオ、連絡先、メッセージ、ｅメール、オーディオ・クリップなどとすることができるが、それに限定されない。こうした情報のタイプ（例えば、情報の単位）は、継承をサポートするタイプ・システムの一部である複合タイプのインスタンスとして表すことができ、継承は、オブジェクトに、他のオブジェクトから属性（attributes）および／または振る舞い（behaviors）を継承させる。継承は、階層構造および／または形式（format）と見なすことができることを理解されたい。
【００７２】
参照番号９０２で、タイプ、クリテリア、スキーマ、クエリ・クリテリアなどを含むことができるデータを受け取ることができる。参照番号９０４で、タイプ・インスタンスが格納され、データ・モデル（例えば、ファイル格納データ・モデル）にマップすることができる。例えば、このモデルは、スキーマ中で記述されるタイプを、ユーザ定義タイプおよびデータベース・オブジェクトにマップすることができる。格納マッピングは、スキーマ定義に基づいて、およびそのスキーマ中で記述される複数のタイプのインスタンスがどのようにして格納され、かつ／またはアクセスされるかに基づいて、作成されるデータベース・オブジェクトを記述することができる。一例では、複数のタイプのインスタンスおよびデータベース・オブジェクトへのタイプ宣言のマッピング規則を提供することができるように、データベース構造を設計することができる。
【００７３】
参照番号９０６で、少なくとも１つのクリテリアを満足するようなクエリを呼び出して、項目、ドキュメント、および連絡先を効率的、効果的に見つけ出すことができる。例えば、情報タイプに関するタイプ・インスタンスを格納することは、クエリを使用して、以下の少なくとも１つを提供することができる。すなわち、１）ファイル格納データ・モデル１０２中の、一定のクリテリアを満足する少なくとも１つの項目を見つけ出すこと、２）ファイル格納データ・モデル１０２中の、特定のクリテリアを満足する少なくとも１つのドキュメントを見つけ出すこと、３）一定のクリテリアを満足する少なくとも１つの連絡先（例えば、個人、組織、およびグループを含む）を見つけ出こと。
【００７４】
図１０は、データ・モデルにマップするタイプ・インスタンスを格納すること、かつ／またはクエリを提供することを容易にする例示的な方法１０００を示す。参照番号１００２で、データが入手され、かつ／または受け取られる。このデータは、タイプ、クリテリア、スキーマ、クエリ・クリテリアなどを含むことができる。参照番号１００４で、データベース・エンジンを使用して、タイプ・インスタンスを格納し、かつ／またはクエリを行う少なくとも１つの機構を提供することができる。例えば、リレーショナル・データベース・エンジンを使用して、リレーショナル格納およびリレーショナル・クエリ能力を提供することができる。リレーショナル・データベース・エンジンは、形式的に記述された１組のテーブルとして編成されたデータ項目の集合体を使用することができる。このテーブル中のデータは、データベース・テーブルを再編成する必要なく、様々なやり方でアクセスし、かつ／または再アセンブルすることができる。さらに、リレーショナル・データベースは、既存のアプリケーションおよび／またはデータに変更を加えずに新しいカテゴリを追加するなど、容易に拡張することができる。
【００７５】
参照番号１００６で、データ・モデルにマップするタイプ・インスタンスが格納され、このデータ・モデルは、ファイル格納システムとすることができる。この格納マッピングは、スキーマに基づいて、およびそのスキーマ中に記述される複数のタイプのインスタンスがどのようにして格納され、かつ／またはアクセスされるかに基づいて、作成されるデータベース・オブジェクトを記述する。このマッピングは、スキーマ中に記述されるタイプとすることができ、このようなマッピングは、ユーザ定義タイプおよびデータベース・オブジェクトへのマッピングである。参照番号１００８で、項目、ドキュメント、および連絡先のうちの少なくとも１つを見つけ出すためのクエリを提供することができる。クエリは、クリテリアに少なくとも部分的に基づいて検索を行うのに使用することができる。さらに、参照番号１０１０で、ビューを利用して、該当するタイプのインスタンスを公開することができる。例えば、このタイプ・システムは、階層状の構造とすることができ、このビューは、特定のタイプの任意のインスタンスも公開するように生成することができる。言い換えると、階層状であるという理由で、このビューは、その基本タイプに関連付けられたビューの特定のタイプのサブセットを投影する所与のタイプに関連付けられる。
【００７６】
本発明の様々な態様を実装するコンテクストをさらに提供するために、図１１〜図１２および以下の説明は、本発明の様々な態様を実装することができる適切なコンピューティング環境の、簡潔で一般的な説明を提供することを意図している。これまで、ローカル・コンピュータおよび／またはリモート・コンピュータ上で実行されるコンピュータ・プログラムのコンピュータ実行可能命令という一般的なコンテクストで本発明を説明してきたが、本発明は他のプログラム・モジュールとの組合せでも実装できることが当業者には理解されよう。概して、プログラム・モジュールは、特定のタスクを実施し、かつ／または特定の抽象データ・タイプを実装するルーチン、プログラム、コンポーネント、データ構造などを含む。
【００７７】
さらに、本発明の方法は、他のコンピュータ・システム構成とともに実施できることが当業者には理解されよう。他のコンピュータ・システム構成は、シングル・プロセッサ・コンピュータ・システムまたはマルチ・プロセッサ・コンピュータ・システム、ミニ・コンピュータ、メインフレーム・コンピュータ、ならびにパーソナル・コンピュータ、ハンドヘルド・コンピューティング・デバイス、マイクロ・プロセッサ・ベースの家電製品および／またはプログラム可能な家電製品などを含み、こうしたシステムはそれぞれ、関連付けられた１つまたは複数のデバイスと動作可能に通信することができる。例示した本発明の態様は、通信ネットワークを介してリンクされるリモート処理デバイスによって特定のタスクが実施される分散型コンピューティング環境でも実施することができる。ただし、すべてではなくともいくつかの本発明の態様は、スタンドアローン・コンピュータにおいても実施することができる。分散型コンピューティング環境では、プログラム・モジュールは、ローカル・メモリ記憶デバイスおよび／またはリモート・メモリ記憶デバイスの両方に配置することができる。
【００７８】
図１１は、本発明が相互作用することができる、例としてのコンピューティング環境１１００の概略的なブロック図である。システム１１００は、１つまたは複数のクライアント（群）１１１０を含む。クライアント（群）１１１０は、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティング・デバイス）とすることができる。システム１１００は、１つまたは複数のサーバ（群）１１２０も含む。サーバ（群）１１２０は、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティング・デバイス）とすることができる。サーバ１１２０は、例えば、本発明を利用して変換を実施するためのスレッドを収容することができる。
【００７９】
クライアント１１１０とサーバ１１２０の間で起こり得る１つの通信は、２つ以上のコンピュータ・プロセスの間で伝送されるように適合されたデータパケットの形をとることができる。システム１１００は、クライアント（群）１１１０とサーバ（群）１１２０の間の通信を容易にするのに利用することができる通信フレームワーク１１４０を含む。クライアント（群）１１１０は、クライアント（群）１１１０にローカルな情報を格納するのに利用することができる、１つまたは複数のクライアント・データ・ストア（群）１１５０に動作可能に接続される。同様に、サーバ（群）１１２０は、サーバ１１２０にローカルな情報を格納するのに利用することができる、１つまたは複数のサーバ・データ・ストア（群）１１３０に動作可能に接続される。
【００８０】
図１２を参照すると、本発明の様々な態様を実装する例示的な環境１２００が、コンピュータ１２１２を含む。コンピュータ１２１２は、処理ユニット１２１４、システム・メモリ１２１６、およびシステム・バス１２１８を含む。システム・バス１２１８は、システム・メモリ１２１６を含むがそれに限定されないシステム・コンポーネントを処理ユニット１２１４に結合する。処理ユニット１２１４は、市販されている様々なプロセッサのいずれでもよい。デュアル・マイクロ・プロセッサおよび他のマルチ・プロセッサ・アーキテクチャも、処理ユニット１２１４として利用することができる。
【００８１】
システム・バス１２１８は、市販されている様々などのバス・アーキテクチャも用いるメモリ・バスもしくはメモリ・コントローラ、周辺バスもしくは外部バス、および／またはローカル・バスを含むいくつかのタイプのバス構造（群）のどれでもよく、こうしたバス構造は、ＩＳＡ（業界標準アーキテクチャ）、ＭＳＡ（マイクロ・チャネル・アーキテクチャ）、ＥＩＳＡ（拡張ＩＳＡ）、ＩＤＥ（インテリジェント・ドライブ・エレクトロニクス）、ＶＬＢ（ＶＥＳＡローカル・バス）、ＰＣＩ（周辺装置相互接続）、カードバス、ＵＳＢ（ユニバーサル・シリアル・バス）、ＡＧＰ（拡張グラフィックス・ポート）、ＰＣＭＣＩＡ（ＰＣカード・アダプタ）、ファイアワイア（ＩＥＥＥ１１９４）、およびＳＣＳＩ（小型コンピュータ・システム・インターフェース）を含むが、それに限定されない。
【００８２】
システム・メモリ１２１６は、揮発性メモリ１２２０および不揮発性メモリ１２２２を含む。例えば起動中に、コンピュータ１２１２内部の要素の間で情報を転送するための基本ルーチンを含む基本入出力システム（ＢＩＯＳ）が、不揮発性メモリ１２２２に格納される。限定ではなく例として、不揮発性メモリ１２２２は、ＲＯＭ（読出し専用メモリ）、ＰＲＯＭ（プログラム可能ＲＯＭ）、ＥＰＲＯＭ（電気的プログラム可能ＲＯＭ）、ＥＥＰＲＯＭ（電気的消去可能プログラム可能ＲＯＭ）、またはフラッシュ・メモリを含むことができる。揮発性メモリ１２２０は、外部キャッシュ・メモリとして作用するＲＡＭ（ランダム・アクセス・メモリ）を含む。限定ではなく例として、ＲＡＭは、ＳＲＡＭ（静的ＲＡＭ）、ＤＲＡＭ（ダイナミックＲＡＭ）、ＳＤＲＡＭ（シンクロナスＤＲＡＭ）、ＤＤＲ  ＳＤＲＡＭ（ダブル・データ・レート方式ＳＤＲＡＭ）、ＥＳＤＲＡＭ（拡張ＳＤＲＡＭ）、ＳＬＤＲＡＭ（シンクリンクＤＲＡＭ）、およびＲＤＲＡＭ（ランバス・ダイレクトＲＡＭ）、ＤＲＤＲＡＭ（ダイレクト・ランバス・ダイナミックＲＡＭ）、ＲＤＲＡＭ（ランバス・ダイナミックＲＡＭ）など、多くの形で市販されている。
【００８３】
コンピュータ１２１２は、取り外し可能／固定式、揮発性／不揮発性コンピュータ記憶媒体も含む。図１２は、例えばディスク記憶装置１２２４を示す。ディスク記憶装置１２２４は、磁気ディスク・ドライブ、フロッピー（登録商標）ディスク・ドライブ、テープドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックなどのデバイスを含むが、それに限定されない。さらに、ディスク記憶装置１２２４は、記憶媒体を別個に含むことも、ＣＤ−ＲＯＭ（コンパクト・ディスクＲＯＭデバイス）、ＣＤ−Ｒドライブ（書き込み可能ＣＤドライブ）、ＣＤ−ＲＷドライブ（書換え可能ＣＤドライブ）、またはＤＶＤ−ＲＯＭ（デジタル・ビデオ・ディスクＲＯＭドライブ）などの光ディスク・ドライブを含むがそれに限定されない他の記憶媒体と組み合わせて含むこともできる。システム・バス１２１８へのディスク記憶装置１２２４の接続を容易にするために、インターフェース１２２６などの取り外し可能または固定式インターフェースが、通常は使われる。
【００８４】
図１２は、適切な動作環境１２００において述べられる、ユーザと基本的なコンピュータ・リソースとの間の媒介として作用するソフトウェアを示すことを理解されたい。このようなソフトウェアは、オペレーティング・システム１２２８を含む。オペレーティング・システム１２２８は、ディスク記憶装置１２２４に格納することができ、コンピュータ・システム１２１２のリソースを制御し割り振るように作用する。システム・アプリケーション１２３０は、システム・メモリ１２１６またはディスク記憶装置１２２４のどちらかに格納された、プログラム・モジュール１２３２およびプログラム・データ１２３４を介して、オペレーティング・システム１２２８によるリソース管理を活用する。本発明は、様々なオペレーティング・システム、またはオペレーティング・システムの組合せを用いて実装できることを理解されたい。
【００８５】
ユーザは、入力デバイス（群）１２３６を介して、コマンドまたは情報をコンピュータ１２１２に入力する。入力デバイス１２３６は、ポインティング・デバイス、例えばマウス、トラック・ボール、スタイラス、タッチパッド、キーボード、マイクロホン、ジョイスティック、ゲーム・パッド、衛星パラボラ・アンテナ、スキャナ、ＴＶチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラなどを含むが、それに限定されない。こうしたおよび他の入力デバイスは、インターフェース・ポート（群）１２３８を介して、システム・バス１２１８によって処理ユニット１２１４に接続される。インターフェース・ポート（群）１２３８は、例えば、シリアル・ポート、パラレル・ポート、ゲームポート、およびＵＳＢ（ユニバーサル・シリアル・バス）を含む。出力デバイス（群）１２４０は、入力デバイス（群）１２３６と同じタイプのポートの一部を使う。したがって、例えば、ＵＳＢポートは、コンピュータ１２１２への入力を可能にし、コンピュータ１２１２から出力デバイス１２４０に情報を出力するのに用いることができる。出力アダプタ１２４２は、他の出力デバイス１２４０の中でも、専用アダプタを必要とする、モニタ、スピーカ、およびプリンタのようないくつかの出力デバイス１２４０があることを示すために図示してある。出力アダプタ１２４２は、限定ではなく例として、出力デバイス１２４０とシステム・バス１２１８の間の接続手段を提供するビデオ・カードおよびサウンド・カードを含む。リモート・コンピュータ（群）１２４４など、他のデバイスおよび／またはデバイスからなるシステムは、入力および出力機能両方を提供することに留意されたい。
【００８６】
コンピュータ１２１２は、１つまたは複数のリモート・コンピュータ、例えばリモート・コンピュータ（群）１２４４への論理接続を使用してネットワーク接続された環境において動作することができる。リモート・コンピュータ（群）１２４４は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロ・プロセッサ・ベースの機器、ピア・デバイスまたは他の共通ネットワーク・ノードなどでよく、通常、コンピュータ１２１２に関連して説明した要素の多くまたはすべてを含む。簡潔にするために、メモリ記憶装置１２４６のみをリモート・コンピュータ（群）１２４４とともに示してある。リモート・コンピュータ（群）１２４４は、ネットワーク・インターフェース１２４８を介してコンピュータ１２１２に論理的に接続され、さらに通信接続１２５０を介して物理的に接続される。ネットワーク・インターフェース１２４８は、ＬＡＮ（ローカルエリアネットワーク）およびＷＡＮ（ワイド・エリア・ネットワーク）などの有線および／または無線通信ネットワークを包含する。ＬＡＮ技術は、ＦＤＤＩ（光ファイバ分散データ・インターフェース）、ＣＤＤＩ（銅線配線データ・インターフェース）、イーサネット（登録商標）、トークン・リングなどを含む。ＷＡＮ技術は、二地点間リンク、ＩＳＤＮ（統合サービス・デジタル・ネットワーク）のような回路交換ネットワークおよびその変形、パケット交換ネットワーク、ならびにＤＳＬ（デジタル加入者線）を含むが、それに限定されない。
【００８７】
通信接続（群）１２５０は、ネットワーク・インターフェース１２４８をバス１２１８に接続するのに利用されるハードウェア／ソフトウェアを指す。通信接続１２５０は、説明をわかりやすくするためにコンピュータ１２１２内部に示してあるが、コンピュータ１２１２の外部にあってもよい。ネットワーク・インターフェース１２４８への接続に必要なハードウェア／ソフトウェアは、単なる例として、標準的な電話レベルのモデム、ケーブルモデム、およびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタ、ならびにイーサネット（登録商標）カードなど、内部および外部技術を含む。
【００８８】
上で説明した内容は、本発明のいくつかの例を含む。当然ながら、本発明を説明するためのコンポーネントまたは方法のあらゆる組合せを説明することはできないが、本発明のさらに多くの組合せおよび入替えが可能であることが当業者には理解されよう。したがって、本発明は、添付の請求項の精神およびその範囲内であるこのようなすべての変更形態、修正形態、および変形形態を包含することを意図したものである。
【００８９】
特に、上述したコンポーネント、デバイス、回路、システムなどによって実施される様々な機能に関して、このようなコンポーネントを説明するのに用いた用語（「手段」への言及も含む）は、特に示さない限り、説明した（例えば、機能的に等価な）コンポーネントの指定された機能を実施するとともに、開示した構造と構造的に等価でないとしても、本明細書において示した本発明の例示的な態様においてそうした機能を実施する、どのコンポーネントにも対応することを意図している。この点に関して、本発明は、システム、ならびに本発明の様々な方法の作用および／またはイベントを実施するコンピュータ実行可能命令を有するコンピュータ可読媒体を含むことも理解されよう。
【００９０】
さらに、本発明のある特定の特徴は、いくつかの実装形態のただ１つに関して開示したが、このような特徴は、所与のまたは特定のどのアプリケーションにとっても望ましく、有利であるように、他の実装形態の他の１つまたは複数の特徴と組み合わせることができる。さらに、詳細な説明または特許請求の範囲において「含む（include）」という用語およびその変形が使われている限りでは、そうした用語は、「備える（comprising）」という用語と同様に包括的であることを意図している。
【図面の簡単な説明】
【００９１】
【図１】データ・モデルに関連付けられたタイプ・インスタンスの格納を容易にする例示的なシステムを示すブロック図である。
【図２】タイプ・インスタンスの格納ならびに／あるいは項目、ドキュメント、および連絡先の少なくとも１つを見つけ出すためのクエリを容易にする例示的なシステムを示すブロック図である。
【図３】リレーショナル格納および／またはリレーショナル・クエリ能力の使用を容易にする例示的なシステムを示すブロック図である。
【図４】タイプ格納システムと連動して、マッピングおよび／または表示を容易にする例示的なシステムを示すブロック図である。
【図５】データ・モデルに関連付けられたタイプ・インスタンスの格納を容易にする例示的なシステムを示すブロック図である。
【図６】ファイル格納データ・モデル内部の、ストアの高水準構造を示すブロック図である。
【図７】関連付けられたテーブルを有するタイプ・インスタンスを示すブロック図である。
【図８】タイプ階層および対応するビュー投影を示すブロック図である。
【図９】データ・モデルにマップするタイプ・インスタンスを格納し、かつ／またはクエリを提供する例示的な方法を示す図である。
【図１０】データ・モデルにマップするタイプ・インスタンスを格納し、かつ／またはクエリを提供する例示的な方法を示す図である。
【図１１】本発明の新規の態様を利用することができる例示的なネットワーク接続環境を示す図である。
【図１２】本発明に従って利用することができる例示的な動作環境を示す図である。
【符号の説明】
【００９２】
１００    例示的なシステム
１０２    ファイル格納データ・モデル
１０４    タイプ格納システム
１０６    インターフェース
２００    例示的なシステム
２０２    データ・モデル
２０４    タイプ格納システム
２０６    インターフェース
２０８    ストア
２１０    クエリ
３００    例示的なシステム
３０２    データ・モデル
３０４    タイプ格納システム
３０６    インターフェース
３０８    ストア
３１０    クエリ
３１２    リレーショナル
４００    例示的なシステム
４０２    データ・モデル
４０４    タイプ格納システム
４０６    インターフェース
４０８    マップ・コンポーネント
４１０    ビュー・コンポーネント
５００    例示的なシステム
５０２    データ・モデル
５０４    タイプ格納システム
５０６    インターフェース
５０８    インテリジェント・コンポーネント
５１０    データ・ストア
６００    ストアの高水準構造
７０２    項目
７０４    テーブル
７０６、７０８    オブジェクト・インスタンス
８００    タイプ階層
８０２    項目
８０４    連絡先
８０６    ドキュメント
８０８    メッセージ
８１０    人
８１２    組織
８１４    Ｅメール
８１６    ファックス
８１８    音声
８２０    ビュー投影
９００、１０００    例示的な方法
１１００    コンピューティング環境
１１１０    クライアント（群）
１１２０    サーバ（群）
１１３０    サーバ・データ・ストア（群）
１１４０    通信フレームワーク
１１５０    クライアント・データ・ストア（群）
１２００    例示的な環境
１２１４    処理ユニット
１２１６    システム・メモリ
１２１８    バス
１２２０    揮発性メモリ
１２２２    不揮発性メモリ
１２２４    ディスク記憶装置
１２２６    インターフェース
１２２８    オペレーティング・システム
１２３０    アプリケーション
１２３２    モジュール
１２３４    データ
１２３６    入力デバイス（群）
１２３８    インターフェース・ポート（群）
１２４０    出力デバイス（群）
１２４２    出力アダプタ（群）
１２４４    リモート・コンピュータ（群）
１２４６    メモリ記憶装置
１２４８    ネットワーク・インターフェース
１２５０    通信接続（群）
【図１】
2006277726.tif 000017
【図２】
2006277726.tif 000018
【図３】
2006277726.tif 000019
【図４】
2006277726.tif 000020
【図５】
2006277726.tif 000021
【図６】
2006277726.tif 000022
【図７】
2006277726.tif 000023
【図８】
2006277726.tif 000024
【図９】
2006277726.tif 000025
【図１０】
2006277726.tif 000026
【図１１】
2006277726.tif 000027
【図１２】
2006277726.tif 000028