(57)【要約】【課題】モジュラー・コンテンツ・フレームワークで文書を表すためのファイル・フォーマット、方法、及びコンピュータ・プログラム製品を提供すること。【解決手段】モジュラー・コンテンツ・フレームワークはモジュラー・パーツに関連付けられたファイル・フォーマット・コンテナを含むことができる。ファイル・フォーマットは各モジュラー・パーツが１つの関係タイプに関連付けられている１つ又は複数の関係性に互いに関連付けられた、論理的には個別のモジュラー・パーツを含む。モジュラー・パーツは文書プロパティのガイドとして動作する文書パーツを含む。モジュラー・パーツはファイル・フォーマットに関連付けられた組み込みプロパティを収容するキュメント・プロパティ・パーツ、及び関連サムネイルを収容するサムネイル・パーツを含むこともできる。モジュラー・パーツへの個別問い合わせ、文書からの抽出及び／又は異なる文書で再利用が可能である。【選択図】図２a
2006178944.tif 000002
【特許請求の範囲】
【請求項１】
ワードプロセッシング・アプリケーションによって作成された文書を表し、コンピューティング装置内に実装されたモジュラー・コンテンツ・フレームワークで文書を表す、ファイル・フォーマットであって、
それぞれが、論理的には個別であるが、１つまたは複数の関係性によって関連付けられた複数のモジュラー・パーツであって、それぞれは、１つの関係性のタイプと関連付けられ、文書のプロパティのガイドとして動作する文書パーツを含む複数のモジュラー・パーツを備え、
各モジュラー・パーツは、他のモジュラー・パーツに問い合わせずに個別に問い合わせできることを特徴とするファイル・フォーマット。
【請求項２】
前記モジュラー・コンテンツ・フレームワークは、前記モジュラー・パーツに関連付けられたファイル・フォーマット・コンテナを含み、前記モジュラー・パーツは、
前記ファイル・フォーマットに関連付けられた組み込みプロパティを収容する文書プロパティ・パーツと、
前記ファイル・フォーマットに関連付けられたサムネイルを収容するサムネイル・パーツと
をさらに含むことを特徴とする請求項１に記載のファイル・フォーマット。
【請求項３】
各モジュラー・パーツは、前記文書から抽出およびコピーしたパーツであることが可能で、再利用されるモジュラー・パーツの関係性をトラバースすることによって識別された関連モジュラー・パーツとともに、異なる文書で再利用することができることを特徴とする請求項１に記載のファイル・フォーマット。
【請求項４】
前記モジュラー・パーツは、
前記文書に関連付けられたコメントを含むコメント・パーツ、
前記文書に関連付けられた様々な単語の定義を含む用語集パーツ、および
前記文書のテキストに関連付けられたデータを含むチャンク・パーツ
のうちの少なくとも１つをさらに含むことを特徴とする請求項３に記載のファイル・フォーマット。
【請求項５】
前記モジュラー・パーツは、前記文書に読み込み、変更することができるカスタマイズされたデータを含むユーザ・データ・パーツをさらに含むことを特徴とする請求項４に記載のファイル・フォーマット。
【請求項６】
前記モジュラー・パーツは、
前記文書に関連付けられた脚注を含む脚注パーツ、
前記文書に関連付けられた文末脚注を含む文末脚注パーツ、
前記文書に関連付けられたフッタデータを含むフッタ・パーツ、
前記文書に関連付けられたヘッダデータを含むヘッダ・パーツ、および
前記文書に関連付けられた書誌の少なくとも１つの書誌データと基礎データを含む書誌パーツ
のうちの少なくとも１つをさらに含むことを特徴とする請求項４に記載のファイル・フォーマット。
【請求項７】
前記モジュラー・パーツは、
前記文書に関連付けられたスプレッドシート・オブジェクトを定義するデータを収容するスプレッドシート・パーツ、
前記文書に関連付けられたオブジェクトを収容する埋込みオブジェクト・パーツ、
前記文書に関連付けられたフォントを定義するデータを収容するフォント・パーツ、
前記文書に関連付けられたオブジェクトを収容する描画オブジェクト・パーツであって、前記描画オブジェクトは、描画プラットフォームを使用して構築される、描画オブジェクト・パーツ、
前記文書のユーザが電子メールを介して文書を送信した場所である封筒データを収容するメール封筒パーツ、
前記文書に関連付けられたコードを収容するコード・ファイル・パーツであって、外部リンクを介してアクセスすることができるコード・ファイル・パーツ、および
前記文書に関連付けられたハイパーリンクを含むハイパーリンク・パーツであって、１つのユニフォーム・リソース・ロケータ（Uniform Resource Locator）を備えるハイパーリンク・パーツ
のうちの少なくとも１つをさらに含むことを特徴とする請求項４に記載のファイル・フォーマット。
【請求項８】
少なくともいくつかの前記モジュラー・パーツは、コレクション・タイプで編成され、前記コレクション・タイプは、
前記コード・ファイル・パーツを含むコード・コレクション、
前記描画オブジェクト・パーツを含む画像コレクション、
前記ユーザ・データ・パーツを含むデータ・パーツ
前記埋込みオブジェクト・パーツを含む埋込みコレクション、
前記フォント・パーツを含むフォント・コレクション、および
コメント・パーツ、前記脚注パーツ、前記文末脚注パーツ、前記フッタ・パーツ、前記ヘッダ・パーツ、および前記書誌パーツのうち少なくとも１つを含むコメント・コレクション
のうちの少なくとも１つを含むことを特徴とする請求項７に記載のファイル・フォーマット。
【請求項９】
前記モジュラー・パーツに関連付けられた関係性タイプは、潜在的に有害なコード・ファイルを識別することができるコード・ファイル関係性と、ユーザ・データ関係性、ハイパーリンク関係性、コメント関係性、埋込みオブジェクト関係性、描画オブジェクト関係性、画像関係性、メール封筒関係性、文書プロパティ関係性、サムネイル関係性、用語集関係性、チャンク関係性、およびスプレッドシート関係性、のうち少なくとも１つを備えることを特徴とする請求項３に記載のファイル・フォーマット。
【請求項１０】
前記文書のコンテンツは、前記文書から抽出およびコピーされ、異なる文書で再利用されるコンテンツであることが可能であることを特徴とする請求項３に記載のファイル・フォーマット。
【請求項１１】
各モジュラー・パーツは個別にロックされることが可能であり、それ以外のモジュラー・パーツはロックすることができる状態にあり、それによって、複数の編集者が、それぞれ同時に、前記ファイル・フォーマットの１つのモジュラー・パーツを編集することが可能であることを特徴とする請求項３に記載のファイル・フォーマット。
【請求項１２】
前記モジュラー・パーツは、あるモジュラー・パーツが問い合わされたときに、前記文書内のコンテンツについてのセマンティクスを提供することができることを特徴とする請求項３に記載のファイル・フォーマット。
【請求項１３】
前記ファイル・フォーマットは、前記文書内の各ページについてのサムネイルの高解像度のプレビューを提供することができることを特徴とする請求項３に記載のファイル・フォーマット。
【請求項１４】
前記ファイル・フォーマットは、マークアップ言語フォーマットおよびバイナリ・フォーマットのうちの少なくとも１つにしたがって、フォーマットされることを特徴とする請求項１に記載のファイル・フォーマット。
【請求項１５】
少なくとも１つのモジュラー・パーツは、前記少なくとも１つのモジュラー・パーツのコンテンツ・フォーマットを宣言するコンテンツ・タイプを含み、それによって前記コンテンツ・タイプについてのクエリが、クエリされる前記少なくとも１つのモジュラー・パーツの前記コンテント・フォーマットを識別することを特徴とする請求項１に記載のファイル・フォーマット。
【請求項１６】
宣言された前記コンテンツ・フォーマットが正しくないときに、前記ワードプロセッシング・アプリケーションは、前記少なくとも１つのモジュラー・パーツを開くことに失敗することを特徴とする請求項１５に記載のファイル・フォーマット。
【請求項１７】
ファイル・フォーマットで文書を表す方法であって、前記文書に関連付けられたモジュラー・パーツは前記ファイル・フォーマット内に書き込まれた各パーツを含み、前記方法は、
前記ファイル・フォーマットの第１のモジュラー・パーツを書き込むこと、
論理的には前記第１のモジュラー・パーツとは別であるが、１つまたは複数の関係性によって前記第１のモジュラー・パーツに関連付けられたモジュラー・パーツに関連付けられている関係性タイプに関して、前記文書をクエリすること、
前記第１のモジュラー・パーツは別の、前記ファイル・フォーマットの第２のモジュラー・パーツを書き込むこと、および
前記第１のモジュラー・パーツと前記第２のモジュラー・パーツとの間に関係性を確立すること
を備え、
各モジュラー・パーツを、他のモジュラー・パーツを問い合わせずに、個別に問い合わせることができることを特徴とする方法。
【請求項１８】
関係性タイプに関連付けられた他のモジュラー・パーツを、共有されるべき前記他のモジュラー・パーツが１回のみ書き込まれる態様で、書き込むこと、および
書き込まれた前記他のモジュラー・パーツとの関係性を確立すること
をさらに備えることを特徴とする請求項１７に記載の方法。
【請求項１９】
前記関係性タイプに関連付けられた前記他のモジュラー・パーツを書き込むことは、
ａ）前記文書に関連付けられたデータを調べること、
ｂ）調べた前記データは、モジュラー・パーツに書き込まれたか否かを判定すること、
ｃ）調べた前記データがモジュラー・パーツに書き込まれていなかったときに、前記モジュラー・パーツに書き込んで調べた前記データを含ませること、
ｄ）前記文書に関連付けられた他のデータを、調べたか否かを判定すること、
ｅ）前記他のデータを調べていないという判定に応答して、前記文書に関連付けられた前記他のデータを調べること、および
ｂ）からｅ）まで繰り返すこと
を備えることを特徴とする請求項１８に記載の方法。
【請求項２０】
ファイル・フォーマット内に書き込まれた各パーツを含むモジュラー・パーツを備えるファイル・フォーマットでコンピュータに文書を表させる制御論理を有するコンピュータ可読媒体を備えるコンピュータ・プログラム製品であって、前記制御論理は、コンピュータに
前記ファイル・フォーマットの文書パーツを書き込むこと、
論理的に個別であるが、１つまたは複数の関係性によって関連付けられたモジュラー・パーツに関連付けられた関係性タイプについて前記文書をクエリすること、
前記文書パーツとは別の前記ファイル・フォーマットの前記モジュラー・パーツを書き込むこと、および
書き込まれた前記文書パーツと前記モジュラー・パーツとの間に関係性を確立すること
を実行させるコンピュータ可読プログラム・コードを備えることを特徴とするコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にファイル・フォーマットに関し、より詳細には、コンポーネント化されたワードプロセッシング・アプリケーション・プログラムで文書（documents）を表す方法およびファイル・フォーマットに関する。
【背景技術】
【０００２】
情報化時代になって、ワードプロセッシング・ソフトウェア・アプリケーションを利用して複雑な文書を組み立てる時代になった。しかし、従来のファイル・フォーマットが、ある文書を格納するために作成され、および構造化される方法には、いくつかの欠点がある。例えば、従来の文書ファイル・フォーマットは、モノリシック・データを含む単一ファイルといった形で作成される。一般的に独自のフォーマットを使用してこれらの単一ファイルを作成するので、文書ストレージを構築する各会社は、異なるファイル・フォーマットを開発する。このため、従来のファイル・フォーマットで、デフォルト・ファイル・フォーマットとして技術的に優れているものはない。このような異なるファイル・フォーマット内のデータは、モノリシックであり、また離散的なパーツの状態でのアクセスができないため、一連の問題が生じている。
【０００３】
【特許文献１】米国特許出願番号１０／７３１９００号
【特許文献２】米国特許出願番号１１／０１８４０５号
【特許文献３】米国特許出願番号１１／１２５９０７号
【特許文献４】米国特許出願番号１１／０１８７１８号
【特許文献５】米国特許出願番号１１／０１８９１２号
【特許文献６】米国特許出願番号１１／０１８９１０号
【特許文献７】米国特許出願番号１１／０１９０８８号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
プログラマにとっての１つの問題は、文書の基本的な再利用である。例えば、ワードプロセッシング・アプリケーションを走らせずに１つのワードプロセッシング・アプリケーションから１または複数の文書を抽出し、抽出した文書を異なるワードプロセッシング・アプリケーションで再利用し、文書の整合性を保つことは困難であり、同一のアプリケーションで再利用する場合であっても困難である。これに比べ、異なるアプリケーション間で文書を再利用する場合は、さらに悪い。ある文書の表またはチャートなどのコンテンツを再利用することも同様に困難である。
【０００５】
第２に、モノリシック・ファイル・フォーマットであるため、ある文書の一部をロックすることは、実質的に不可能である。このため、おそらく異なるプラットフォーム上の、および／または異なるローカルからの、多くの人々がロッキング機構を活用して１つの文書を協力して編集するマルチ・ユーザ編集というような機能は禁じられている。ロックに関する技術の多くがファイル・レベル全体でなされるので、ファイルが１人のユーザによってロックされると、他のユーザは、そのファイルを編集することができない。閲覧は可能であるが、編集は不可能である。
【０００６】
また、文書ファイルの問い合わせ（document file interrogation）という問題もある。例えば２００４年の販売予測についての文書を見つけることなど、ある文書ファイル内のコンテンツを見つけることは、面倒な作業になる可能性がある。コンテンツのセマンティクスが決定されている可能性のあるモノリシック・ファイル・フォーマット文書内で離散的なパーツを見つけることは、非常に困難である。この問題は、既存のバイナリ・ファイル・フォーマットを文書化するときにも存在する。また、既存のバイナリ・ファイル・フォーマットを満足に取り扱うことができるリーダ・クラスおよびライタ・クラスを実装することは、依然困難である。あるアプリケーションをターゲットとしたツールが開発されたとしても、そのツールは、文書の全フォーマットを問い合わせる（interrogate）ことはできないであろう。この問題は、単一ファイル・フォーマットの不透明さ（opaqueness）と呼ばれている。
【０００７】
また、文書のサーフェシング（document surfacing）、つまり１つのファイル・フォーマット化された文書のピース（一部）を取り、それを別の文書にドロップする能力も問題である。例えば、ワードプロセッサ文書からプレゼンテーション文書にコピーした表を、モノリシックなスタイルのファイル・フォーマットで問い合わせる（interrogate）ことは困難である。
【０００８】
さらに、例えばグラフィカルにブラウザするアクセス可能なコンテンツなど、文書をプレビューする場合に、ブラウザ内、または第三者のアプリケーション内のシェルを通してエクスポーズされたコンテンツの高解像度のプレビューを取り出すことは、困難である。ワードプロセッシング・アプリケーションの中には、単一ページでの複数のサムネイルまたはプレビューを提供することが可能なものもあるが、文書内の全てのパーツについての高解像度のプレビューを提供するものはない。
【０００９】
従って、当業分野では、前記の欠陥および不備な点に対処する、これまでに対処されていない必要性が存在する。
【課題を解決するための手段】
【００１０】
本発明の実施形態は、コンピューティング装置内に実装されたモジュラー・コンテンツ・フレームワークで文書を表すための、ファイル・フォーマット、その方法、およびコンピュータ・プログラム製品を提供する。本発明の実施形態は、拡張可能マークアップ言語（ＸＭＬ）ファイル・フォーマットおよび／またはバイナリ・ファイル・フォーマットなどのオープンなファイル・フォーマットを開示し、また、ワードプロセッシング・アプリケーション内で文書の特徴およびデータを編成し、モデル化する方法を開示する。このファイル・フォーマットは、それがコレクション（collections）およびパーツ（parts）を構成するように設計される。各コレクションは、フォルダとして機能し、各モジュラー・パーツは、ファイルとして機能する。これら個別のファイルは、個別の関係性（relationships）のそれぞれが１つの関係タイプを有する複数の関係性に関係付けられる。関係タイプを使用して、パーツのどのタイプが参照されているのかを識別することができる。この設計によって、ワードプロセッシング・アプリケーションが文書の特徴およびデータを編成する方法が大いに簡素化され、分かりやすい論理モデルが提示される。
【００１１】
一実施形態は、モジュラー・コンテンツ・フレームワークで文書を表すファイル・フォーマットである。このモジュラー・コンテンツ・フレームワークは、そのモジュラー・パーツに関連付けられたファイル・フォーマット・コンテナを含むことができる。このファイル・フォーマットは、論理的には個別のモジュラー・パーツであるが、１または複数の関係性によって互いに関連付けられたモジュラー・パーツを含む。各モジュラー・パーツは、１つの関係タイプと関連付けられ、複数のモジュラー・パーツは、文書のプロパティのガイドとして動作する文書パーツを含む。ワードプロセッシング・アプリケーションの有無に関わらず、また他のモジュラー・パーツに問い合わせることなく、各モジュラー・パーツに個別に問い合わせることができ、それにより文書にクエリを行うときの効率が上がる。
【００１２】
また、モジュラー・パーツは、ファイル・フォーマットに関連付けられた組み込みプロパティ（built-in properties）を含む文書プロパティ・パーツと、ファイル・フォーマットに関連付けられた１または複数のサムネイルを含むサムネイル・パーツ、を含むことができる。各モジュラー・パーツを文書から抽出および／またはコピーすることができ、また、再利用するモジュラー・パーツの関係性をトラバースまたはナビゲートすることによって識別された関連モジュラー・パーツとともに各モジュラー・パーツを、異なる文書内で再利用することができる。関係性をナビゲートすることによって、抽出または再利用したモジュラー・パーツが他のどのパーツを活用するかを判定することができる。
【００１３】
別の実施形態は、文書を、その文書に関連付けられたモジュラー・パーツが、そのファイル・フォーマット内に書き込まれた各パーツを収容する態様のファイル・フォーマットで、表す方法である。この方法は、ファイル・フォーマットの第１のモジュラー・パーツを書き込むことと、論理的には個別であるが１または複数の関係性によって関連付けされたモジュラー・パーツに関連付けられた関係タイプについて第１のモジュラー文書にクエリを行うことを含む。加えて、この方法は、第１のモジュラー・パーツとは別のファイル・フォーマットの第２のモジュラー・パーツを書き込むことと、第１のモジュラー・パーツと第２のモジュラー・パーツとの間に関係性を確立すること、を含むことができる。各モジュラー・パーツは、他のモジュラー・パーツに問い合わせする（interrogate）ことをせずに、個別に問い合わせを受けることができる。
【００１４】
またこの方法は、文書パーツとファイル・フォーマット・コンテナとの間に、ファイル・フォーマット・コンテナが、ファイル・フォーマットに関連付けられた組み込みプロパティを含む文書プロパティ・パーツと、ファイル・フォーマットと関連付けられたサムネイルを含むサムネイル・パーツとを含む、関係性を確立することを含むことができる。
【００１５】
さらにこの方法は、共有されるべき他のモジュラー・パーツが１回だけ書き込まれる関係タイプと関連付けられた他のモジュラー・パーツを書き込むこと、また書き込まれた他のモジュラー・パーツへの関係性を確立すること、を含むことができる。関係タイプに関連付けられた他のモジュラー・パーツを書き込むことは、文書に関連付けられたデータを調べることと、調べたデータがモジュラー・パーツに書き込まれたか否かを判定することを含み、調べたデータがモジュラー・パーツに書き込まれていなかったときは、モジュラー・パーツを書き込み、調べたデータを含めること、も含む。
【００１６】
さらに別の実施形態は、そのモジュラー・パーツがファイル・フォーマット内に書き込まれた各パーツを含むファイル・フォーマットで文書を表すようにコンピュータにさせるための、格納された制御ロジックを有するコンピュータ可読媒体を含むコンピュータ・プログラム製品である。この制御ロジックは、コンピュータに、そのファイル・フォーマットの文書パーツを書き込ませること、論理的に個別のモジュラー・パーツであるが、１または複数の関係性によって文書パーツに関連付けられたモジュラー・パーツに関連付けられた関係タイプについて文書にクエリを行わせること、文書パーツと別個のファイル・フォーマットのモジュラー・パーツを書き込ませること、文書パーツと書き込まれたモジュラー・パーツとの間に関係性を確立させること、をさせるためのコンピュータ可読プログラム・コードを含む。
【００１７】
パーツを全体的に結びつける関係性を使用することとは別に、全モジュラー・パーツまたは全ファイルに、各モジュラー・パーツに対するコンテンツのタイプを記述する単一パーツも存在する。これによって、ファイルの内部にどのようなタイプのコンテンツがあるかを見出すためのクエリを行う場所の予測が与えられる。
【００１８】
本発明は、コンピュータ・プロセス、コンピューティング・システムを利用するか、またはコンピュータ・プログラム製品またはコンピュータ可読媒体などの製品として、実装することができる。コンピュータ・プログラム製品は、コンピュータ・システムによって読み取り可能であり、コンピュータ・プロセスを実行するための命令であるコンピュータ・プログラムを符号化するコンピュータ・ストレージ媒体とすることもできる。また、コンピュータ・プログラム製品は、コンピュータ・システムによって読み取り可能であり、コンピュータ・プロセスを実行するための命令であるコンピュータ・プログラムを符号化するキャリア上の伝播信号とすることができる。
【発明を実施するための最良の形態】
【００１９】
本発明を特徴づけるこれらおよび各種の他の特徴ならびに利点は、下記の詳細な説明を読み、関連した図面を検討することによって、明らかとなる。
【００２０】
同様の数字が同様の要素を表す図面を参照することによって、本発明の各種態様を記述する。詳細には、図１および図１に対応する記述は、本発明の実施形態を実装してもよい適切なコンピューティング環境の簡潔で一般的な説明を提供することを意図したものである。パーソナル・コンピュータ上のオペレーティング・システムを走るプログラム・モジュールとの関連で実行するプログラム・モジュールの一般のコンテキストにおいて、本発明を記述するが、他のタイプのコンピュータ・システムおよびプログラム・モジュールとの組合せで本発明を実装してもよいことが、当業者によって認められるだろう。
【００２１】
一般に、プログラム・モジュールは、ルーチン、プログラム、オペレーション、コンポーネント、データ構造、および特定のタスクを行うか、特定の抽象データ型を実装する他種の構造を含む。さらに、当業者であれば、本発明を、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサ・ベースまたはプログラム可能な家庭用電化製品、ミニ・コンピュータ、メインフレーム・コンピュータなどを含む他のコンピュータ・システム構成を用いて実施することができることを理解されたい。本発明は、通信ネットワークを通してリンクされたリモート処理装置によってタスクが行われる分散コンピューティング環境において実施することができる。分散コンピューティング環境において、プログラム・モジュールは、ローカルとリモート両方のメモリストレージ・デバイスに配置することができる。
【００２２】
図１を参照し、本発明の実施形態において利用されるコンピュータ２の図示コンピュータ・アーキテクチャを記述する。図１に示したコンピュータ・アーキテクチャは、サーバ、デスクトップ、またはハンドヘルド・コンピューティング装置などのコンピューティング装置を示し、コンピューティング装置は、中央処理装置５（「ＣＰＵ」）、ランダム・アクセス・メモリ９（「ＲＡＭ」）およびリード・オンリ・メモリ１１（「ＲＯＭ」）を含むシステム・メモリ７、およびシステム・メモリをＣＰＵ５に結合するシステムバス１２を含む。起動中など、コンピュータ内の要素間で情報を転送するのを助ける基本的なルーチンを含む基本入／出力システムは、ＲＯＭ１１に格納されている。コンピュータ２には、オペレーティング・システム１６、アプリケーション・プログラム、および他のプログラム・モジュールを格納する大容量ストレージ・デバイス１４がさらに含まれ、これについては、下記により詳しく記述する。
【００２３】
大容量ストレージ・デバイス１４は、バス１２に接続された大容量ストレージ・コントローラ（図示せず）を通してＣＰＵ５に接続される。大容量ストレージ装置１４およびその関連コンピュータ可読媒体は、コンピュータ２に不揮発性のストレージを提供する。本明細書に含まれるコンピュータ可読媒体の記述では、ハードディスク・ドライブまたはＣＤ−ＲＯＭドライブなどの大容量ストレージ・デバイスについて述べるが、当業者には当然のことながら、コンピュータ可読媒体は、コンピュータ２によってアクセスすることができる利用可能な任意の媒体とすることできる。
【００２４】
例として、コンピュータ可読媒体は、コンピュータ・ストレージ媒体および通信媒体を備えてもよいが、それらに限るものではない。コンピュータ・ストレージ媒体は、コンピュータ可読命令、データ構造、プログラム・モジュールまたは他のデータなどの情報を蓄積するための、任意のストレージ方法または技術に実装された揮発性および不揮発性で、取り外し可能および取り外し不可能な媒体を含む。コンピュータ・ストレージ媒体は、これに限定されないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリもしくは他の固体メモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（「ＤＶＪＳ'」）、もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージもしくは他の磁気ストレージ・デバイス、または所望の情報を格納するのに使用することができ、コンピュータ２によってアクセスすることができる任意の他の媒体、を含む。
【００２５】
本発明の各種の実施形態によれば、コンピュータ２は、インターネットなどのネットワーク１８を通したリモート・コンピュータへの論理接続を使用するネットワーク環境において動作することができる。コンピュータ２は、ネットワーク１８に、バス１２に接続されたネットワーク・インターフェース・ユニット２０を通して接続することができる。ネットワーク・インターフェース２０を利用して、他種のネットワークおよびリモートコンピュータ・システムに接続することができることを認識されたい。コンピュータ２には、キーボード、マウス、または電子スタイラス（図１では不図示）を含む多くの他の装置からの入力を受信し、処理する入力／出力コントローラ２２が含めることができる。同様に、入力／出力コントローラ２２は、ディスプレイスクリーン、プリンタ、または他種の出力装置へ出力を提供することができる。
【００２６】
手短に上述したように、コンピュータ２の大容量ストレージ装置１４およびＲＡＭ９内に、多数のプログラム・モジュールおよびデータ・ファイルを格納することができる、コンピュータ２は、ワシントン州レッドモンドのマイクロソフト・コーポレーション製のＷＩＮＤＯＷＳ（登録商標）  ＸＰオペレーティング・システムなどのネットワーク化されたパーソナル・コンピュータのオペレーションを制御するのに適したオペレーティング・システム１６を含む。大容量ストレージ装置１４およびＲＡＭ９はまた、１または複数のプログラム・モジュールを格納してもよい。詳細には、大容量ストレージ装置１４およびＲＡＭ９は、ワードプロセッシング・アプリケーション・プログラム１０を格納することができる。ワードプロセッシング・アプリケーション・プログラム１０は、ＸＭＬファイル・フォーマットおよび／またはバイナリ・ファイル・フォーマットのようなオープンなファイル・フォーマット２４で、文書２７のようなワードプロセッサ文書を作成および構成するための機能性を提供するように動作する。本発明の一実施形態によれば、ワードプロセッシング・アプリケーション・プログラム１０および他のアプリケーション・プログラム２６は、ワード、エクセルおよびパワーポイントのアプリケーション・プログラムを含むマイクロソフト・コーポレーション製のアプリケーション・プログラムであるオフィス・スイートを備えている。
【００２７】
本発明の実施形態は、文書の特徴およびデータの編成（organization）を大幅に単純化し、明確にする。ワードプロセッシング・プログラム１０は、文書の「パーツ」（特徴、データ、テーマ、スタイル、オブジェクトなど）を論理的に個別のピースに編成した後で、その個別のパーツ間の関係性を表現する。これらの関係性と文書の「パーツ」の論理的な分離によって、開発者のコードなどが容易にアクセスすることができる新規のファイル編成を構成する。
【００２８】
ここで図２ａ〜２ｃを参照して、本発明の各種実施形態例に従う文書を表すために、ファイル・フォーマット２４において利用される各種モジュラー・パーツのワードプロセッサ文書関係性階層（word processor document relationship hierarchy）２０８を示すブロック図を説明する。ワードプロセッサ文書関係性階層２０８は、モジュラー・パーツのコンテンツ内の関係性への明示的な参照を、例えば、関係性識別子を介して示す、明示的な参照インディケータ２０５を有する特定のファイル・フォーマットの関係性を列挙する。この一例が、親パーツまたは、親パーツが関係性を有するモジュラー・パーツを参照する参照パーツ、によって参照される画像パーツ２６０である。本発明のいくつかの実施形態においては、例えば、親モジュラー・パーツ、または、文書パーツ２０２のような参照モジュラー・パーツから画像パーツ２６０への関係性を有するだけでは十分ではない場合がある。親パーツが画像パーツ２６０の画像がどこへ行くのかを把握するために、親パーツにとっても、その画像パーツ関係性への明示的な参照をインラインで有することが必要である場合がある。非明示的なインディケータ２０６は、ある参照パーツが関連付けられること、親パーツのコンテンツ内で直接呼び出されてはいないこと、を示す。この一例がスタイル・シート２６１であり、関連付けられた何らかのスタイル・シートが常に存在し、それゆえコンテンツ内でスタイル・シート２６１を呼び出す必要がないことを示唆している。スタイル・シート２６１を見つけようとする人は、このタイプの関係性を探すだけでよい。妥当性に関するオプションの関係性については、イタリックで示されている。
【００２９】
提示階層２０８の各種のモジュラー・パーツまたはコンポーネントは、論理的に個別であるが、１つまたは複数の関係性によって関連付けられている。また、各モジュラー・パーツは、１つの関係タイプと関連付けられ、ワードプロセッシング・アプリケーション・プログラム１０の有無、および／または問い合わせた他のモジュール・パーツおよび／または理解された他のモジュラー・パーツの有無に係わらず、個別に問い合わせされ、理解されることができる。それゆえ例えば、文書情報のバイナリ記録の全部を検索する代わりに、文書内の関係性を容易に検査し、ファイル・フォーマット２４内の他の特徴およびデータを効果的に無視する文書パーツを見つけることができるように、コードを書き込むことができるので、文書のコンテンツを突きとめることがより容易になる。このように、コードは、従来の問い合わせコードよりはるかに単純な手法で文書全体にわたって書き込まれる。従って、全画像を取り除くなどのアクションは、これまで複雑であったが、ここでははるかに簡単となる。
【００３０】
モジュラー・コンテンツ・フレームワークは、モジュラー・パーツに関連付けられたファイル・フォーマット・コンテナ２０７を含むことができる。モジュラー・パーツは、その文書のプロパティのガイドとして動作する文書パーツ２０２を含む。また、文書関係性階層２０８は、ファイル・フォーマット２４に関連付けられた組み込みプロパティを収容する文書プロパティ・パーツ２０５、およびファイル・フォーマット２４に関連付けられたサムネイルを収容するサムネイル・パーツ２０９を含むことができる。文書から各モジュラー・パーツを抽出またはコピーすることができ、また再利用されるモジュラー・パーツの関係性をトラバースすることによって識別される関連付けられたモジュラー・パーツとともに、各モジュラー・パーツを異なる文書で再利用することができることを理解されたい。関連付けられたたモジュラー・パーツは、ワードプロセッシング・アプリケーション１０が再利用されるモジュラー・パーツのインバウンドなおよびアウトバウンドな関係性をトラバースする際に、識別される。
【００３１】
パーツを１つに結びつける関係性の使用とは別に、各モジュラー・パーツのコンテンツ・タイプを記述する単一のパーツもファイルごとに存在する。これは、そのファイル内にどのようなタイプのコンテンツがあるのかを見出すクエリに、予測的な場所を与える。関係性タイプは、親パーツがどのように（「画像」または「スタイル・シート」などの）ターゲットパーツを使用するのかを記述するのに対し、コンテンツまたはパーツ・タイプ２０３は、実際のモジュラー・パーツがどの（「ＪＰＥＧ」または「ＸＭＬ」などの）コンテンツ形式に関するのかを記述する。これは、理解されるコンテンツを見つけることと、（セキュリティー上の理由などのために）不必要と思われる可能性のあるコンテンツを迅速に取り除くのを容易にすることの両方に役立つ。これに重要なのは、ワードプロセッシング・アプリケーションが、宣言されたコンテンツ・タイプが本当に正しいことを守らせなければならないということである。表明されたコンテンツ・タイプが正しくなく、そのモジュラー・パーツの実際のコンテンツ・タイプまたはコンテンツ形式にマッチしない場合、ワードプロセッシング・アプリケーションは、そのモジュラー・パーツまたはファイルを開くのに失敗しなければならない。そうでなければ、潜在的に悪意のあるコンテンツが、開かれてしまうことになる。
【００３２】
図２ｂを参照すると、他のモジュラー・パーツには、文書に関連付けられたコメントを収容するコメント・パーツ２２０、例えば文書に関連付けられた様々な単語の定義を含む用語集などのオートテキスト・パーツ２１４、文書のテキストに関連付けられたデータを収容するチャンク・パーツ（chunk part）２１８が含むことができる。さらにモジュラー・パーツには、文書内への読み込みおよび変更ができるカスタマイズされたデータを収容するユーザ・データ・パーツ２２２、文書に関連付けられた脚注を収容する脚注パーツ２２４、および文書に関連付けられた文末脚注を収容する文末脚注パーツ２２５を含むことができる。
【００３３】
他のモジュラー・パーツには、文書に関連付けられたフッタデータを収容するフッタ・パーツ２２７、文書に関連付けられたヘッダデータを収容するヘッダ・パーツ２２９、および文書に関連付けられた書誌データおよび／または書誌の内在データを収容する書誌パーツ２３１を含む。さらにまた、モジュラー・パーツには、文書に関連付けられたスプレッドシート・オブジェクトを定義するデータを収容するスプレッドシート・パーツ２４９、文書に関連付けられたオブジェクトを収容する埋め込みオブジェクト・パーツ２５１、および文書に関連付けられたフォントを定義するデータを収容するフォント・パーツ２５３を含むこともできる。
【００３４】
図２ｃを参照すると、モジュラー・パーツは、描画プラットフォームを使用して描画オブジェクトが構築されている文書に関連付けられた、Ｅｓｃｈｅｒ２．０などの、オブジェクトなどを収容する描画オブジェクト・パーツ２５７、その文書のユーザが電子メールを介してその文書を送信した場合の封筒データを含むメール封筒パーツ２５９、外部リンク２７０を介してアクセスされることが可能で、文書に関連付けられたコードを含むコード・ファイル・パーツ２５５、および、ＵＲＬを含んでいる、文書に関連付けられたハイパーリンク、も含む。
【００３５】
他のモジュラー・パーツには、文書に関連付けられたオブジェクトを収容する埋め込みオブジェクト・パーツ２５１、ファイル・フォーマット・コンテナに読み込むことができ、変更することもできるカスタマイズされたデータを収容する第２のユーザ・データ・パーツ２４５を含むことができる。一例として、本発明の実施形態は、埋め込まれたオブジェクトのいずれもが、ファイル・フォーマット２４内に、対応する明示された関係性を有する状態で、区分された埋め込みオブジェクト・パーツ２５１を有するので、プログラマ／開発者が、ある文書内に埋め込まれたオブジェクトを突きとめることを容易にする。他のモジュラー・パーツのように、埋め込みオブジェクト・パーツ２５１は、文書の他の特徴およびデータから、論理的に分断され（broken out）、かつ分離されている。２つ以上の関係性に共有されているモジュラー・パーツは、通常、メモリへ１回だけ書き込まれることを理解されたい。また、ある種のモジュラー・パーツは、グローバルであり、そのためファイル・フォーマット内の任意の場所に使用することができることも理解されたい。対照的に、いくつかのモジュラー・パーツは、非グローバルであり、このため、限られたベースに基づいて共有することのみが可能である。
【００３６】
本発明の各種実施形態において、ファイル・フォーマット２４は、拡張可能マークアップ言語（「ＸＭＬ」）および／またはバイナリ形式にしたがって、フォーマットすることが可能である。当業者によって理解されるように、ＸＭＬは、データを通信するための標準フォーマットである。ＸＭＬのデータ・フォーマットにおいて、スキーマは、通信することが可能なデータのタイプおよび構造を統制する構文上の規則およびデータタイプの規則をＸＭＬのデータに提供するために、使用される。ＸＭＬのデータ形式は、当業者には公知であるため、本明細書では詳細に記述しない。ＸＭＬでフォーマットすることは、内部メモリ構造を厳密に反映する。このため、取り込みと保存（load and save）の速度は明らかに増加する。
【００３７】
本発明の実施形態によって、文書をプログラムでアクセスすることが容易になる。これによって、従来のファイル・フォーマットに対しては達成することがあまりにも困難であったかなり多くの新規な使用法が可能になる。例えば、本発明の実施形態を利用することによって、サーバ側のプログラムが、何者かの入力に基づき、その者のために文書を作成することができる。例えば、会社Ａに関し、２００４年１月１日から２００４年１２月３１日までの期間についての報告書を作成することができる。
【００３８】
また、図２ａ〜２ｃは、本発明の各種実施形態例に従うファイル・フォーマット２４内で利用される関係タイプも含む。モジュラー・パーツに関連付けられた関係タイプは、関連性または依存性を識別するだけでなく、その依存性の基（base）をも識別する。関係タイプは、以下を含む。すなわち、危害を加える可能性のあるコード・ファイルを識別することができるコード・ファイル関係性、ユーザ・データ関係性、ハイパーリンク関係性、コメント関係性、埋め込みオブジェクト関係性、描画オブジェクト関係性、画像関係性、メール封筒関係性、文書プロパティ関係性、サムネイル関係性、用語集関係性、チャンク関係性、およびスプレッドシート関係性、を含む。
【００３９】
図２ａを参照すると、モジュラー・パーツを編成するためのタイプのコレクションを列挙するリスティング２１１が示されている。このコレクション・タイプは、コード・ファイル・パーツ２５５を含むコード・コレクション、描画オブジェクト・パーツ２５７を含む画像コレクション、およびユーザ・データ・パーツ２２２を含むデータ・パーツを含む。また、このコレクション・タイプは、埋め込みオブジェクト・パーツ２５１を含む埋め込みコレクション、フォント・パーツ２５３を含むフォント・コレクション、およびコメント・パーツ２２０、脚注パーツ２２４、文末脚注パーツ２２５、フッタ・パーツ２２７、ヘッダ・パーツ２２９、および／または書誌パーツ２３１、を含むコメント・コレクションも含む。
【００４０】
図３〜４は、本発明の図示した実施形態例にしたがって、モジュラー・コンテンツ・フレームワークで文書を表すことにおいて実行されるルーチンの例である。ここに示したルーチンの記述を読む際に、本発明の各種実施形態の論理オペレーションは、（１）コンピューティング・システム上で動く、コンピュータに実装された動作のシーケンスまたはプログラム・モジュールとして、および／または（２）相互接続されたマシン論理回路またはコンピュータ・システム内の回路モジュール、として実装されることを理解されたい。実装形態は、本発明を実装するコンピューティング・システムのパフォーマンス要件に依存する選択の問題である。従って、図３〜４に示す論理オペレーション、およびここに説明した本発明の実施形態を構成することは、オペレーション、構造上の装置、動作（acts）、またはモジュール、として様々に述べられる。これらの、オペレーション、構造上の装置、動作、およびモジュールは、ソフトウェア、ファームウェア、特殊な用途のデジタルロジックで実装すること、およびそれらの任意の組合せで実装することが、本明細書に規定した請求項に記載した本発明の精神および範囲から逸脱することなく、可能であることが、当業者には認識されるであろう。
【００４１】
ここで図２ａ〜２ｃおよび図３を参照すると、ルーチン３００は、オペレーション３０４で開始し、ここで、ワードプロセッシング・アプリケーション・プログラム１０は、文書パーツ２０２を書き込む。ルーチン３００は、オペレーション３０４からオペレーション３０５へと継続する。ここで、ワードプロセッシング・アプリケーションプログラム１０が、文書パーツと論理的には別であるが、１つまたは複数の関係性によって、その文書パーツに関連付けられたモジュラー・パーツ、に関連付けされた関係タイプについて、文書にクエリする。次に、オペレーション３０８で、ワードプロセッシング・アプリケーション・プログラム１０は、文書パーツとは別のファイル・フォーマットのモジュラー・パーツを書き込む。各モジュラー・パーツは他のモジュラー・パーツを問い合わせおよび理解することなく、個別に問い合わせることが可能である。他のモジュラー・パーツと共有されるモジュラー・パーツはいずれも１度だけ書き込まれる。次いでルーチン３００は、オペレーション３１０へと継続する。
【００４２】
オペレーション３１０で、スプレッドシート・アプリケーション１０が、新たに書き込まれたモジュラー・パーツと以前に書き込まれたモジュラー・パーツとの間に関係性を確立する。ルーチン３００は、戻りオペレーション３１２で終了する。
【００４３】
ここで図４を参照し、モジュラー・パーツを書き込むためのルーチン４００を説明する。ルーチン４００は、オペレーション４０２で開始し、ここで、ワードプロセッシング・アプリケーション１０がワードプロセッシング・アプリケーション内のデータを調べる。次いでルーチン４００は、検出オペレーション４０４へと継続し、ここで、データがモジュラー・パーツに書き込まれたか否かについての判定がなされる。データがモジュラー・パーツに書き込まれていなかった場合、ルーチン４００は、検出オペレーション４０４から、オペレーション４０５へと継続し、ここで、ワードプロセッシング・アプリケーションは、調べたデータを含むモジュラー・パーツを書き込む。ルーチン４００は、以下に説明する検出オペレーション４０７へと継続する。
【００４４】
検出オペレーション４０４で、調べたデータがモジュラー・パーツに書き込まれていた場合、ルーチン４００は、検出オペレーション４０４から検出オペレーション４０７へ継続する。検出オペレーション４０７で、全てのデータが調べられたか否かについての判定がなされる。全てのデータが調べられていた場合、ルーチン４００は、戻りオペレーション４１２で他のオペレーションに制御を戻す。調べるべきデータがまだある場合、ルーチン４００は、検出オペレーション４０７から、オペレーション４１０へと継続し、ここで、ワードプロセッシング・アプリケーション１０は他のデータをポイントする。次いでルーチン４００は、上述したオペレーション４０２へ戻る。
【００４５】
上記に基づき、本発明の各種実施形態は、モジュラー・コンテンツ・フレームワークにおいて文書を表すためのファイル・フォーマット、方法およびコンピュータ・プログラム製品を含むことが理解されよう。上記の明細書、例、およびデータは、本発明の構成の製造および使用の十分な説明を提供する。本発明の精神および範囲から逸脱せずに、本発明は多数の実施形態をなすことができるので、本発明は、請求項に属する。
【図面の簡単な説明】
【００４６】
【図１】本発明の各種図示実施形態によって利用および提供されるコンピューティング装置を示すコンピュータシステム・アーキテクチャの図である。
【図２ａ】本発明の各種図示実施形態による、ワードプロセッサ文書を表すファイル・フォーマットにおいて利用される各種モジュラー・パーツに関する文書関係性階層を示すブロック図である。
【図２ｂ】本発明の各種図示実施形態による、ワードプロセッサ文書を表すファイル・フォーマットにおいて利用される各種モジュラー・パーツに関する文書関係性階層を示すブロック図である。
【図２ｃ】本発明の各種図示実施形態による、ワードプロセッサ文書を表すファイル・フォーマットにおいて利用される各種モジュラー・パーツに関する文書関係性階層を示すブロック図である。
【図３】本発明の図示実施形態による、モジュラー・コンテンツ・フレームワークで文書を表す際に行われる図示ルーチンの図である。
【図４】本発明の図示実施形態による、モジュラー・コンテンツ・フレームワークで文書を表す際に実行されるルーチンの例を示す図である。
【符号の説明】
【００４７】
２    コンピュータ
５    中央演算処理装置
７    システム・メモリ
９    ランダム・アクセス・メモリ
１０    ワードプロセッシング・アプリケーション・プログラム
１１    読み取り専用メモリ
１４    大容量ストレージ・デバイス
１６    オペレーティング・システム
１８    ネットワーク
２０    ネットワーク・インターフェース・ユニット
２２    入／出力コントローラ
２４    ファイル・フォーマット
２６    他のアプリケーション・プログラム
２７    ワードプロセッサ文書
２０８    各種モジュラー・パーツのワードプロセッサ文書関係性階層
【図１】
2006178944.tif 000003
【図２ａ】
2006178944.tif 000004
【図２ｂ】
2006178944.tif 000005
【図２ｃ】
2006178944.tif 000006
【図３】
2006178944.tif 000007
【図４】
2006178944.tif 000008