(57)【要約】【課題】コンピュータが生成した文書に関連するデータを格納し、関連付けるため、および使用できるようにするためのデータ・ストアを提供する。【解決手段】文書メタデータといった文書に関連する情報を構造化するためのデータがデータ・ストア内に維持され、そこでは異なるデータ片間の関係が文書の表面レベルのビューとは違う場所に維持される。データ・ストアは、異なるアプリケーションが１つまたは複数のデータ片にアクセスし、および動作することを可能にするために、データ・ストア内の様々なデータ片へのインターフェースを公開する。データ片は、拡張可能マークアップ言語（ＸＭＬ）といったマークアップ言語に従って構造化されることができ、ＸＭＬスキーマは各データ片に関連付けられることができ、データ・ストアは、所与のデータ片に関連付けられたＸＭＬスキーマに基づいて、データに適用された構造の妥当性を検証することができる。【選択図】図１
2006236321.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが生成した文書に関連するデータを管理する方法であって、
文書を関連する文書データ・ストアに格納するステップと、
前記文書に関連する構造化データ項目を前記文書データ・ストアに格納するステップと、
１つまたは複数のアプリケーション・プログラミング・インターフェース（ＡＰＩ）を１つまたは複数のソフトウェア・アプリケーションに公開して、前記１つまたは複数のソフトウェア・アプリケーションによる前記構造化データ項目へのプログラマチック・アクセスを可能にするステップと、
を備えることを特徴とする方法。
【請求項２】
拡張可能マークアップ言語（ＸＭＬ）に従って構造化データ項目を構造化するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記構造化データ項目に有効に適用できるＸＭＬマークアップ・データおよびＸＭＬマークアップ構文を提供するために、ＸＭＬスキーマ・ファイルを前記構造化データ項目に関連付けるステップをさらに備えることを特徴とする請求項２に記載の方法。
【請求項４】
前記公開された１つまたは複数のＡＰＩを経由して、前記構造化データ項目に適用されたＸＭＬマークアップ・データへの変更を受け取るステップをさらに備えることを特徴とする請求項３に記載の方法。
【請求項５】
前記構造化データ項目に適用されたＸＭＬマークアップ・データへの変更を受け取るステップに応答して、
ＸＭＬマークアップ・データへの変更が指示された前記構造化データ項目に関連するＸＭＬスキーマ・ファイルを読み取るステップと、
前記読み取ったＸＭＬスキーマ・ファイルに従って前記ＸＭＬマークアップ・データへの変更が妥当であるかを判断するステップと、
を含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記読み取ったＸＭＬスキーマ・ファイルにより前記ＸＭＬマークアップ・データへの変更が妥当でない場合に、前記ＸＭＬマークアップ・データへの変更を許可しないステップをさらに備えることを特徴とする請求項５に記載の方法。
【請求項７】
前記１つまたは複数のアプリケーション・プログラミング・インターフェースを経由して、前記１つまたは複数のソフトウェア・アプリケーションの１つによる前記文書に関連する前記構造化データ項目へのプログラマチック・アクセスを受けるステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項８】
前記文書および前記構造化データ項目へのアクセスを有する前記１つまたは複数のソフトウェア・アプリケーションの１つを経由して前記構造化データ項目への変更が受け取られた場合に、前記構造化データ項目へのアクセスを有するその他の１つまたは複数のソフトウェア・アプリケーションに、前記構造化データ項目への変更が受け取られたことを通知するステップをさらに備えることを特徴とする請求項７に記載の方法。
【請求項９】
通知された前記１つまたは複数のソフトウェア・アプリケーションの１つが、前記受け取られた構造化データ項目への変更に応答して、前記構造化データ項目への変更を行うようにするステップをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１０】
前記受け取られた構造化データ項目への変更が前記１つまたは複数のソフトウェア・アプリケーションの１つによって取り消された場合には、それに対応して前記他の１つまたは複数のソフトウェア・アプリケーションによって前記構造化データ項目になされたいずれの変更も取り消すステップを含み、前記他の１つまたは複数のソフトウェア・アプリケーションによってなされたいずれの変更も前記取り消された変更に対応してなされることを特徴とする請求項９に記載の方法。
【請求項１１】
前記文書に関連する構造化データ項目を前記文書データ・ストアに格納するのに先立って、前記１つまたは複数のソフトウェア・アプリケーションの１つから前記１つまたは複数のアプリケーション・プログラミング・インターフェース（ＡＰＩ）を経由して前記構造化データ項目を受け取るステップを含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記文書に関連する前記構造化データ項目は前記コンピュータが生成した文書に関連するメタデータを含むことを特徴とする請求項１に記載の方法。
【請求項１３】
コンピュータが生成した文書に関連するデータを管理するための文書データ・ストアであって、
文書に関連する構造化データ項目を文書データ・ストアに格納し、
１つまたは複数のアプリケーション・プログラミング・インターフェース（ＡＰＩ）を１つまたは複数のソフトウェア・アプリケーションに公開して、前記１つまたは複数のソフトウェア・アプリケーションによる前記構造化データ項目へのプログラマチック・アクセスを可能にする
ように動作可能であることを特徴とする文書データ・ストア。
【請求項１４】
前記公開された１つまたは複数のＡＰＩを経由して、前記構造化データ項目に適用された拡張可能マークアップ言語（ＸＭＬ）のマークアップ・データへの変更を受け取り、
前記ＸＭＬマークアップ・データへの変更が指示された前記構造化データ項目に関連するＸＭＬスキーマ・ファイルを読み取り、
前記読み取ったＸＭＬスキーマ・ファイルに従って前記ＸＭＬマークアップ・データへの変更が妥当であるかを判断し、
前記読み取ったＸＭＬスキーマ・ファイルに従って前記ＸＭＬマークアップ・データへの変更が妥当でない場合に、前記ＸＭＬマークアップ・データへの変更を許可しない
ようにさらに動作可能であることを特徴とする請求項１３に記載の文書データ・ストア。
【請求項１５】
前記１つまたは複数のアプリケーション・プログラミング・インターフェースを経由して、前記１つまたは複数のソフトウェア・アプリケーションの１つによる前記文書に関連する前記構造化データ項目へのプログラマチック・アクセスを受け、
前記構造化データ項目へのアクセスを有する前記１つまたは複数のソフトウェア・アプリケーションの１つを経由して前記構造化データ項目への変更が受け取られた場合に、前記構造化データ項目へのアクセスを有するその他の１つまたは複数のソフトウェア・アプリケーションに、前記構造化データ項目への変更が受け取られたことを通知する
ようにさらに動作可能であることを特徴とする請求項１３に記載の文書データ・ストア。
【請求項１６】
コンピュータによって実行されたときにコンピュータが生成した文書に関連するデータを管理する方法であって、
文書に関連する構造化データ項目を文書データ・ストアに格納するステップと、
１つまたは複数のアプリケーション・プログラミング・インターフェース（ＡＰＩ）を１つまたは複数のソフトウェア・アプリケーションに公開して、前記１つまたは複数のソフトウェア・アプリケーションによる前記格納された文書および前記構造化データ項目へのプログラマチック・アクセスを可能にするステップと、
を含む方法を実施するコンピュータ実行可能命令を格納したことを特徴とするコンピュータ可読媒体。
【請求項１７】
前記拡張可能マークアップ言語（ＸＭＬ）に従って前記構造化データ項目を構造化するステップと、
前記構造化データ項目に有効に適用できるＸＭＬマークアップ・データおよびＸＭＬマークアップ構文を提供するために、ＸＭＬスキーマ・ファイルを前記構造化データ項目に関連付けるステップと、
をさらに含むことを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記公開された１つまたは複数のＡＰＩを経由して、前記構造化データ項目に適用されたＸＭＬマークアップ・データへの変更を受け取るステップと、
ＸＭＬマークアップ・データへの変更が指示された前記構造化データ項目に関連するＸＭＬスキーマ・ファイルを読み取るステップと、
前記読み取ったＸＭＬスキーマ・ファイルに従って前記ＸＭＬマークアップ・データへの変更が妥当であるかを判断するステップと、
前記読み取ったＸＭＬスキーマ・ファイルに従って前記ＸＭＬマークアップ・データへの変更が妥当でない場合に、前記ＸＭＬマークアップ・データへの変更を許可しないステップと、
をさらに含むことを特徴とする請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
前記１つまたは複数のアプリケーション・プログラミング・インターフェースを経由して、前記１つまたは複数のソフトウェア・アプリケーションの１つによる前記文書に関連する前記構造化データ項目へのプログラマチック・アクセスを受けるステップと、
前記構造化データ項目へのアクセスを有する前記１つまたは複数のソフトウェア・アプリケーションの１つを経由して前記構造化データ項目への変更が受け取られた場合に、前記構造化データ項目へのアクセスを有するその他の１つまたは複数のソフトウェア・アプリケーションに、前記構造化データ項目への変更が受け取られたことを通知するステップと、
通知された前記１つまたは複数のソフトウェア・アプリケーションの１つが、前記受け取られた構造化データ項目への変更に対応して、前記構造化データ項目への変更を行うようにするステップと、
をさらに備えることを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項２０】
前記受け取られた構造化データ項目への変更が前記１つまたは複数のソフトウェア・アプリケーションの１つによって取り消された場合には、それに対応して前記他の１つまたは複数のソフトウェア・アプリケーションによって前記構造化データ項目になされたいずれの変更も取り消すステップを含み、前記他の１つまたは複数のソフトウェア・アプリケーションによってなされたいずれの変更も前記取り消された変更に応答してなされることを特徴とする請求項１９に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、コンピュータが生成した文書に関連するデータの管理に関する。さらに具体的には、本発明は、コンピュータが生成した文書に関連するデータを、文書の典型的なプレゼンテーション・フォーマットのプレゼンテーション・データとは別の位置に格納し、関連付けるためのデータ・ストアに関する。
【背景技術】
【０００２】
コンピュータ時代の到来と共に、コンピュータおよびソフトウェアのユーザは、書く、計算する、整理する、プレゼンテーションを作成する、電子メールを送信および受信する、作曲すること等に役立つ、使いやすいソフトウェア・アプリケーションに慣れてきた。例えば、最新の電子ワープロ・アプリケーションは、ユーザが多様な有用な書類を作成することを可能にする。最新の表計算アプリケーションは、ユーザがデータを入力する、操作する、および整理することを可能にする。最新の電子スライド・プレゼンテーション・アプリケーションは、ユーザがテキスト、ピクチャ、データまたは他の有用なオブジェクトを含む多様なスライド・プレゼンテーションを作成することを可能にする。
【０００３】
従来の方法およびシステムによれば、そういったアプリケーションを用いて作成された文書（例えば、ワープロ文書、表計算、スライド・プレゼンテーション文書）は、文書のコンテキストに必要である任意メタデータの内容を格納／移転するための限られた機能しかなかった。例えば、ワープロ文書の先頭に設けられたソリューションは、例えば、以前のワークフロー承認状態（日付、時間、名前）、現在の承認状態、完了前の将来のワークフロー状態、文書作成者の名前とオフィス・アドレス、文書の変更などの、文書の様々な状態を記述するワークフロー・データの記憶装置を必要とする可能性がある。そのような従来の方法およびシステムによれば、この情報を格納するための選択肢は、主に、文書変数、または、いくつかの制限を有する既存のカスタム・オブジェクト・リンキング・アンド・エンベディング（ＯＬＥ）文書プロパティの利用に限られていた。例えば、そのような従来方法は、（階層データでなく）名前／値の対のみ格納できる。そのような方法は、最大２５５文字までに制限されている。そのような方法は、テキストのみを含むように構築されている。そのような方法の全てのプロパティは、単一のストアに、例えばＯＬＥプロパティ・ストアに格納され、それはプロパティが対立する可能性があることを意味する。さらに、そのように格納されたプロパティは、プレーンテキストであるためにデータ妥当性検査がない。これらの制限の結果、そのようなアプリケーションおよび関連する文書のユーザにとって、多くのユーザに共通のニーズであるにもかかわらず、文書と共に任意データを格納することが困難となっている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の方法およびシステムに伴う別の問題は、構造化されたマークアップ言語データ、例えば拡張可能マークアップ言語（ＸＭＬ）データが、複数のクライアント（例えば、１つのワープロ文書のコンテキストにおいてそれぞれ独立して実行している複数のアドイン）によって同時に編集され得ないことである。しかしながら、多くの文書のコンテキストにおいては、このメタデータを含むシナリオは、１つまたは複数のソースによる同時編集を必要とする可能性が高い。
【０００５】
従って、コンピュータが生成した文書に関連するデータを格納し、関連付けるため、および、そのようなデータを１つまたは複数のソフトウェア・アプリケーションによって使用し、操作できるようにするためのデータ・ストアへの必要性がある。本発明は、これらのおよびその他の検討を行うことに関係する。
【課題を解決するための手段】
【０００６】
本発明の実施形態は、コンピュータが生成した文書に関連するデータを格納し、関連付けるため、および該データを使用可能にするために、一次プレゼンテーション格納場所から文書内の別の場所（場合によってはフォーマット）にデータ・ストアを設けることによって、上記のおよび他の問題を解決するものである。
【０００７】
本発明の一態様によれば、文書メタデータといった文書に関連する情報を構造化するためのデータがデータ・ストア内に維持され、そこでは異なるデータ片（ｄａｔａ  ｐｉｅｃｅｓ）間の関係が維持される。データ・ストアは、異なるアプリケーションが１つまたは複数のデータ片にアクセスし、および動作することを可能にするために、データ・ストア内の様々なデータ片へのインターフェースを公開する。
【０００８】
本発明の別の態様によれば、データ片は、拡張可能マークアップ言語（ＸＭＬ）といったマークアップ言語に従って構造化される。ＸＭＬスキーマは各データ片に関連付けられることができ、データ・ストアは、所与のデータ片に関連付けられたＸＭＬスキーマに基づいて、データに適用されたＸＭＬ構造の妥当性を検証することができる。本発明のこの態様によれば、文書は、例えばメタデータといった拡張可能マークアップ言語（ＸＭＬ）に従って構造化されたどのような数の任意データ項目をも含むことができる。従って、文書ソリューション・プロバイダは、所与の文書と共にＸＭＬとして任意のメタデータを格納することができ、ユーザによって文書が開かれる／編集される／保存されるときに、データへのアクセスを有する所与のソリューションによって自動的にその情報を処理する。
【０００９】
本発明の別の態様によれば、文書が編集されている間、データへのプログラマチック（ｐｒｏｇｒａｍｍａｔｉｃ）・アクセスが該データのＸＭＬ方式で与えられる。よって、ソリューション開発者にはよく知られている標準的機構が与えられ、それを介して、文書が開いている間にデータがプログラマチックにアクセスされ、修正される。このプログラマチック・アクセスは、標準ＸＭＬインターフェースを模倣している。データへのプログラマチック・アクセスは、アプリケーション・プログラミング・インターフェースを介して１つまたは複数の編集クライアント・アプリケーションに与えられる（例えば、文書編集またはアプリケーション作成、および／または、第三者アプリケーションのアドインソリューションなど）。この態様によれば、複数のクライアント・アプリケーションが、同じ文書データ片にアクセスして編集することができ、所与のデータ片へのいずれの競合する変更も解決される。どのような所与の変更にも「副次作用」が起こる可能性がある（例えば、社名を「Ｍｉｃｒｏｓｏｆｔ」と設定するのに応じて、銘柄記号（ｓｔｏｃｋ  ｓｙｍｂｏｌ）を「ＭＳＦＴ」に変更すること）。加えて、データへの変更およびいかなる関連する副次作用もデータ・ストアによって「バンドルされる」ことができ、それにより１つまたは複数の変更の取り消しが全ての関連する変更を覆すようにすることができる。これはソリューション自身から開発の負担を取り除き、例えばユーザが取り消しコマンドを押すことによって文書表面から当初の変更の取り消しを始めるときに、全ての変更が覆されたことを保証する。
【００１０】
本発明の別の態様によれば、標準ＸＭＬスキーマ（ＸＳＤｓ）は、文書データに適用されたＸＭＬデータ文書が妥当であることを保証するため、文書メタデータに関連するカスタムＸＭＬデータ片のいずれの内容をも定義するのに使用することができる。これらのスキーマは、文書内に格納されたいずれのＸＭＬデータ・インスタンスにも付加することができ、データ・ストアは、そのデータのＸＭＬ構造が無効となるような（すなわち、ＸＭＬタグがその内容と対立する）ＸＭＬデータへのいかなる変更も許可しない。これは、ソリューション開発者が、特定のＸＭＬメタデータ片を文書に付加できることを保証し、ＸＭＬデータが、該データを変更するのにどの処理（例えば、アドイン）が使用されたかに関係なしに、関連するスキーマに従って構造上「適正」であり続けることを保証する。
【００１１】
本発明を特徴づけるこれらのおよび他の特色と利点は、以下の詳細な説明を読み、関連図面を見ることによって明らかとなるであろう。前述の概要と、後述の詳細な説明は、共に例示的および説明的なものにすぎず、本発明を特許請求されたとおりに制限するものではないと理解されたい。
【発明を実施するための最良の形態】
【００１２】
上記で簡単に説明されたように、本発明の実施形態は、コンピュータが生成した文書に関連するデータを格納し、関連付けるため、および、コンピュータが生成した文書に関連するデータを１つまたは複数のソフトウェア・アプリケーションによって効果的に使用し、操作できるようにするための方法およびシステムに向けられている。これらの実施形態は組み合わされても良く、他の実施形態が用いられても良く、本発明の精神および範囲からかけ離れることなしに構造的変更が為されても良い。従って、以下の詳細な説明は、制限する意味で解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲およびそれらの均等物によって定められる。
【００１３】
図１を参照すると、本発明を実施するための１つの例示的システムは、コンピューティング・デバイス１００といったコンピューティング・デバイスを含む。ごく基本の設定では、コンピューティング・デバイス１００は、通常、少なくとも１つの処理装置１０２とシステム・メモリ１０４とを含む。正確な設定とコンピューティング・デバイスのタイプに応じて、システム・メモリ１０４は、（ＲＡＭのように）揮発性、（ＲＯＭ、フラッシュ・メモリ、その他のように）不揮発性、またはその２つのいずれかの組み合わせとすることが可能である。システム・メモリ１０４は、通常はオペレーティング・システム１０５と１つまたは複数のアプリケーション１０６とを含み、そしてプログラム・データ１０７を含むことができる。１つの実施形態において、アプリケーション１０６はワード・プロセッサ・アプリケーション１２０を含むことができる。この基本設定は、図１の点線１０８の内側にあるコンポーネントによって図示されている。
【００１４】
コンピューティング・デバイス１００は、付加的な特色または機能性を持つことができる。例えば、コンピューティング・デバイス１００は、例えば、磁気ディスク、光ディスク、またはテープといった、付加的なデータ記憶装置（取り外し可能および／または固定）も含むことができる。そういった付加的な記憶装置は、取り外し可能記憶装置１０９と固定記憶装置１１０によって図１に図示されている。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータといった情報を格納するためのいずれかの方法または技術において実行される、揮発性および不揮発性、取り外し可能および固定媒体を含む。システム・メモリ１０４、取り外し可能記憶装置１０９、および固定記憶装置１１０は、全てコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル・バーサタイル・ディスク（ＤＶＤ）または他の光学的記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは望ましい情報の格納に使用可能であってコンピューティング・デバイス１００によりアクセス可能であるいずれかの他の媒体も含むが、これに限定されない。そのようないずれかのコンピュータ記憶媒体は、デバイス１００の一部とすることが可能である。コンピューティング・デバイス１００はまた、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどのような入力デバイス１１２を有することが可能である。ディスプレイ、スピーカ、プリンタなどといった出力デバイス１１４も含むことが可能である。これらのデバイスは当該技術分野ではよく知られており、ここで詳細に検討する必要はない。
【００１５】
コンピューティング・デバイス１００はまた、ネットワーク上などでデバイスが他のコンピューティング・デバイス１１８と通信できるようにする通信接続１１６を含む。通信接続１１６は通信媒体の一例である。通信媒体は通常、コンピュータ可読命令、データ構造、プログラム・モジュール、あるいは、搬送波または他の搬送機構といった変調されたデータ信号内の他のデータによって具現されることができ、いずれかの情報伝達媒体を含む。「変調されたデータ信号」という用語は、信号内の情報をエンコードする方法で設定または変更されたその１つまたは複数の特徴を有する信号を意味する。限定でなく例として、通信媒体は、有線ネットワークまたは直接有線接続といった有線媒体、並びに、音響、ＲＦ、赤外線および他の無線媒体といった無線媒体を含む。ここで使用されるコンピュータ可読媒体という用語は、記憶媒体および通信媒体の両方を含む。
【００１６】
本件特許出願人によるＷＩＮＤＯＷＳ（登録商標）オペレーション・システムのような、ネットワーク化されたパーソナル・コンピュータの操作を制御するのに適したオペレーティング・システム１０５を含む、多くのプログラム・モジュールおよびデータ・ファイルが、コンピューティング・デバイス１００のシステム・メモリ１０４内に格納されることができる。システム・メモリ１０４はまた、ワード・プロセッサ・アプリケーション１２０のような１つまたは複数のプログラム・モジュール、および以下に説明されるその他のものを格納できる。ワード・プロセッサ・アプリケーション１２０は、電子文書の作成、編集、および加工のための機能を与えるように動作することができる。
【００１７】
本発明の１つの実施形態によれば、ワード・プロセッサ・アプリケーション１２０は、本件特許出願人のＷＯＲＤプログラムを備える。しかしながら、本発明の多様な態様を具現するために他社のワード・プロセッサ・アプリケーション・プログラムを利用することもできると認識されたい。ワード・プロセッシング・アプリケーションの図は、単なる例であり、本発明に従って文書を作成し、該文書に対して動作できる他のタイプのアプリケーションを制限するものではないことをさらに認識されたい。例えば、表計算アプリケーション・プログラム、データベース・アプリケーション・プログラム、スライド・プレゼンテーション・アプリケーション・プログラム、描画またはコンピュータ支援のアプリケーション・プログラム等の多様な形態のコンテンツ（例えば、テキスト、画像、写真、その他）を処理する能力を持つ他のアプリケーション・プログラム１０６は、本発明の実施形態に等しく適用されることができる。様々な異なるタイプの文書を作成し、該文書に対して動作する例示的アプリケーション・プログラム１０６には、本件特許出願人のＯＦＦＩＣＥがある。
【００１８】
本発明の実施形態は、コンピュータ・プロセス、コンピューティング・システムとして、若しくは、コンピュータ・プログラム製品またはコンピュータ可読媒体といった製品として実装することができる。コンピュータ・プログラム製品は、コンピュータ・システムによって読み取り可能な、およびコンピュータ処理を実行するための命令のコンピュータ・プログラムをエンコーディングする、コンピュータ記憶媒体とすることができる。コンピュータ・プログラム製品はまた、コンピューティング・システムによって読み取り可能な、およびコンピュータ処理を実行するための命令のコンピュータ・プログラムをエンコーディングする搬送波上の伝搬信号とすることができる。
【００１９】
明細書および特許請求の範囲において、用語の文脈を別に記述しない限り、以下の用語はここで関連付けられた意味をもつ。
【００２０】
用語「データ」は、例えばワープロ文書により実行され、参照され、使用されるメタデータといった補足情報だけでなく、単語、文、段落等といった文書の表面レベルまたはプレゼンテーション・レベルの情報のことをいう。この情報は、多くの場合大きく、文書のプレゼンテーション層にはあまり出てこない。
【００２１】
用語「マークアップ言語」または「ＭＬ」は、文書の断片がアプリケーションによってどのように解釈されるかを指定する文書内の特別なコード用の言語のことをいう。ワード・プロセッサのファイルにおいて、マークアップ言語は、テキストがどのようにフォーマットされ、またはレイアウトされるかを指定する。
【００２２】
用語「要素」は、ＸＭＬ文書の基本単位のことをいう。要素とは、ＸＭＬ文書の属性、他の要素、テキスト、および他のコンテンツ領域を含むことができる。
【００２３】
用語「プレゼンテーション」は、文書の可視部分、すなわち文書が印刷された場合に現れるテキストおよびレイアウトを表す。
【００２４】
用語「タグ」は、ＸＭＬ文書内の要素を線引きする、文書中に挿入された文字のことをいう。各々の要素は、開始タグと終了タグの２つ以上のタグを持つことができない。１つのタグが可能な場合には、（内容のない）空要素を備えることが可能である。
【００２５】
タグの間のＸＭＬコンテンツは、その要素の「子」（または子孫）とみなされる。従って、その要素のコンテンツに組み込まれた他の要素は、その要素の「子要素」または「子ノード」と呼ばれる。その要素のコンテンツに直接組み込まれたテキストは、その要素の「子テキスト・ノード」とみなされる。合わせて、子要素と要素内のテキストは、その要素の「コンテンツ」を構成する。
【００２６】
用語「属性」は、特定の値に設定され、要素に関連付けられた付加的なプロパティのことをいう。要素は、０を含む任意の数のそれらに関連付けられた属性設定を有することができる。属性は、付加的な情報を、付加的な要素を含まない要素と関連付けるのに使用されるか、または、テキスト・ノードとして扱われる。
【００２７】
「ＸＰａｔｈ」は、パターン表現を用いてＸＭＬ文書内のノードを識別する演算子である。ＸＰａｔｈパターンは、ＸＭＬ文書を通じてパスを説明する子要素名の、スラッシュで分けられたリストである。そのパターンは、そのパスに適合する要素を「選択する」。
【００２８】
用語「ＸＭＬデータ・ストア」は、ワープロ文書、表計算文書、スライド・プレゼンテーション文書等といった文書内の保管部のことをいい、記憶装置へのアクセスと、ファイルが開いている間に文書に保存されたデータの（例えばＸＭＬフォーマットへの）変更とを与える。ＸＭＬデータ・ストアのさらなる定義は、図２を参照して以下に提供される。
【００２９】
図２は、本発明の実施形態に係る、１つまたは複数のクライアント・アプリケーションの間の関係と、データ・ストアと、データ・ストアのコンテンツを図示するブロック図である。図２を参照すると、文書データ２２０は、ＸＭＬ構造データと、文書の表面またはプレゼンテーション・レベルのビューを表す文書データを含む。例えば、文書データ２２０は、ＸＭＬ構造（例えば、見出しタグ、本文タグ、結びタグ）と、ワープロ文書、表計算文書、スライド・プレゼンテーション文書等の関連する表面ビュー・データ（例えば単語、文、段落）を含むことができる。
【００３０】
データ・ストア２０８は、所与の文書に関連する１つまたは複数のタイプのデータに関連する１つまたは複数の構造化データ片を格納するための文書データ・リポジトリである。メタデータ１  ２２５（構造化データ項目）は、ＸＭＬ構造データと、文書に関連する第１メタデータ片の関連データとを含むことができる。例えば、メタデータ１  ２２５は、文書作成者をリスティングするメタデータに適用されたＸＭＬ構造データ（例えば、日付タグ、名前タグ、その他）、文書作成の日付、文書が最後に変更／保存された日付等を含むことができる。メタデータ２  ２３０（構造化データ項目）は、ＸＭＬ構造データ（タグ）と、文書に関連する第２メタデータ片を表す関連メタデータとを含むことができる。メタデータ１およびメタデータ２は例示を目的としており、所与の文書に関連してデータ・ストア２０８に維持されることができる多様な数多くの異なるタイプのデータを制限するものでないことを理解されたい。例えば、ここに説明されるように、任意データは、文書データへのアクセスを有するソリューション・プロバイダまたはユーザによって望まれるときに、１つまたは複数のソフトウェア・アプリケーションによって構造化され、文書に加えられることが可能である。
【００３１】
引き続き図２を参照すると、スキーマ・ファイル２４０、２４５は、各データ片２２５、２３０に適用された拡張可能マークアップ言語（ＸＭＬ）データに関連する構文および検証ルールを命令するために、データ・ストア２０８に格納された各々のデータ片に添付されることが可能である。当業者にはよく知られるように、ＸＭＬスキーマ・ファイルは、ＸＭＬ環境においてデータを記述し、検証する方法を提供する。スキーマ・ファイルは、要素および属性を含むどのようなＸＭＬマークアップ・データがＸＭＬ文書内のコンテンツを記述するのに使用されているかを記載し、該スキーマ・ファイルは、各要素がどこに割り当てられるか、どのタイプのコンテンツが要素内で割り当てられるか、および他の要素内にどの要素が表示できるかを含むＸＭＬマークアップ構文を定義する。スキーマ・ファイルの使用は、文書（またはこの場合には個別のデータ片）が一貫した予測できる方法で確実に構造化されることを可能にする。スキーマ・ファイル２４０、２４５は、ユーザによって作成されることができ、ＸＭＬといった関連するマークアップ言語により一般的に支援されることができる。
【００３２】
文書のこの図式化は、データ・ストアが、所与のスキーマ・ファイルを侵害するいずれの変更もデータ格納レベルで拒否することにより、文書の構造的妥当性を「保証」する能力を提供できるようにする。一実施形態によれば、データ・ストア２０８は、関連するスキーマ・ファイルに対し、所与のデータ片に付加または変更されたＸＭＬ構造を検証するために、スキーマ検証モジュール２６０を活用する。例えば、文書作成者（ｄｏｃｕｍｅｎｔ  ｃｒｅａｔｏｒ）または編集者（ｅｄｉｔｏｒ）が、所与のデータ片、例えばメタデータ１に対して、編集者が所与のＸＭＬタグを付加または除去するといったＸＭＬ構造変更をすると、データ・ストア２０８は、スキーマ検証モジュールを活用して、関連スキーマ・ファイルに対しＸＭＬ構造変更を確認し、変更の妥当性を保証する。その変更が妥当でなければ、編集者に対しエラーが生成される。理解されるように、所与のデータ片に適用されたＸＭＬ構造のそういった制御は、クライアントおよび第三者アプリケーションが関連するデータと対話できるようにするのに特に重要である、構造的一貫性および予測可能性の効果を持つ。
【００３３】
本発明の一実施形態によれば、データ・ストア２０８は、１つまたは複数のアプリケーション・プログラミング・インターフェース（ＡＰＩ）２７０を提供し、それは、クライアント・アプリケーション２０５（例えば、ワープロ・アプリケーション、表計算アプリケーション、スライド・プレゼンテーション・アプリケーション、その他）ならびに第三者アプリケーション２１０、２１５によって、それぞれのアプリケーション２０５、２１０、２１５のオブジェクト・モデル（ＯＭ）を介してアクセスされることができる。これらのインターフェースは、クライアント・アプリケーションおよび第三者アプリケーションが所与の文書のデータ・ストア２０８に所与のいずれのＸＭＬファイルも取り込むことができるようにし、従って、そのデータが今度はその文書の一部となり、その存続期間（例えば、開始／編集／保存／名前変更などを通じて）、またはデータ・ストアからデータが削除されるまでの間、文書内を動くことを保証する。本発明の１つの実施形態によれば、データ・ストア内のデータは、所与のデータ片２２５、２３０用のソース・アプリケーションが閉じているか、または別の状態で使用可能でないときにも、ＸＭＬフォーマットで使用可能である。つまり、所与のデータ片２２５、２３０は、（ソース・アプリケーションというよりも）他のアプリケーションによって、ＡＰＩ２７０を経由してアクセス可能である。以下に説明されるように、ＡＰＩはまた、クライアントおよび第三者アプリケーションがデータ項目２２５、２３０に適用されたＸＭＬマークアップ・データに変更を加えることを可能にする。
【００３４】
ＸＭＬデータ２２５、２３０は、文書２２０との関連でいったんデータ・ストアに取り込まれると、開発者のＸＭＬプログラミング基準の現在知識を活用するために、既存のＸＭＬ編集インターフェースに類似の方法を提供するように設計されたデータ・ストア・インターフェースを用いて標準ＸＭＬとして取り扱われることができる。これにより、ユーザは、データ・ストアに追加されたＸＭＬデータ上で、要素および属性を追加する、要素および属性を除去する、既存の要素／属性値を変更する、および関連ＸＭＬツリーの既存部分のいずれかの値を読み取る、といった標準ＸＭＬ操作を文書に実行できるようになる。これらの標準ＸＭＬ操作を用いて、ソリューションは、データの長さ／大きさのそれまでの制限、またはデータの構造にとらわれずに、構造化された複合メタデータを文書と共に格納することができ、それは、このＸＭＬデータ・ストアを従来ソリューションよりも著しく構造化されたソリューションのために使用できるようにする。例えば、第三者アプリケーション２１５は、各々の文書に関してデータ・ストア２０８に追加されたメタデータ１  ２２５を読み取ることによって多数の文書２０４から文書作成者名および文書作成日を検索および抽出するために書き込まれることができる。例示的な第三者アプリケーションは、所与の組織により作成された全ての文書に関する文書作成者名および文書作成日のリストを作るようにプログラムされた表計算アプリケーションとすることができる。本発明の実施形態によれば、第三者アプリケーションは、所望のデータの効率的な検索および抽出のため、メタデータ１に適用されたＸＭＬ構造を活用できる。例えば、第三者アプリケーションは、メタデータ１ファイルのＸＭＬ構造を解析して、＜ｄｏｃａｕｔｈｏｒ＞および＜ｄｏｃｃｒｅａｔｉｏｎｄａｔｅ＞といった、それらタグに関連するデータを取得し使用するためのＸＭＬタグを突き止めるために、書き込みがなされる。上記は、１つ以上のアプリケーションがデータ・ストア２０８を介して文書に関連する構造データと対話することができる多くの方法の一例にすぎないと認識されたい。
【００３５】
加えて、データ・ストア２０８は、（格納項目としても知られる）個別のＸＭＬデータ片２２０、２２５、２３０のいずれにも、任意の数のＡＰＩインターフェース２７０を与えて、複数のアプリケーション２０５、２１０、２１５が同じデータ片と作用できるようにすることができる。例えば、クライアント・アプリケーション（例えばワープロ・アプリケーション）と第三者アプリケーション・ソリューション（例えば、上記で説明した例示的な表計算アプリケーション）といったいくつかのソリューションは、文書プロパティ（例えば、メタデータ２  ２３０ファイルに含まれるプロパティ）の同じ組と作用できる。データ・ストア２０８を用いると、これらのアプリケーションの各々は、それら自身のデータ・ストアＡＰＩインターフェース２７０を経由して、所望のＸＭＬデータ２３０への別々のアクセスを受けて、各々のアプリケーションが、同じデータ片にアクセスするのに複数のプロセスを有するという複雑さに対処する必要なしに、それ自身のＯＭを介してデータと通信することができる。
【００３６】
これらの複数のアプリケーション２０５、２１０、２１５が同じデータにアクセスできるようにするために、ＸＭＬデータのどこかが別のアプリケーションにより変更されたときに、データ・ストア２０８はこれらのアプリケーションの各々に通知し、それにより所与のアプリケーションはその変更に対処することができる（同じデータに対し、自身の処理に内部的に、および他の変更による外部的に、の両方）。１つのアプリケーションが所与のデータ項目への変更を要求すると、その要求が他の全てのアプリケーションに自動的に送信されて、他のアプリケーションが要求された変更にどのように対応するかまたは対応するかどうかを決定できるようにされる。一実施形態によれば、これは、各々のアプリケーションを、それへのインターフェースを備えるＸＭＬデータのいずれの部分をも「リスンする」ように登録させることで達成され、それにより所与のアプリケーション・ソリューション／プログラムは、それ自身の論理に関係するメッセージのみを受け取ることができる。例えば、１つのタイプのアプリケーション２１０は、第三者ソリューションに詳細なビジネス論理能力を与えるために、所与のＸＭＬデータになされた全ての変更をリスンするように登録することを望んでもよく、しかし、別タイプのアプリケーション２１５は、その論理がＸＭＬデータの他の部分への変更を考慮しないので、１つまたは２つの特定のＸＭＬ要素への変更だけをリスンすることを望んでもよい。
【００３７】
この実施形態によれば、複数のアプリケーション２０５、２１０、２１５は、同じ文書データ片にアクセスし、および編集し、そして、所与のデータ片へのいかなる相反する変更をも解決することができる。例えば、１つのアプリケーションによる１つの変更が他のアプリケーションによる副次作用変更の原因となるときには、いずれの所与の変更に対しても「副次作用」が起こる可能性がある。例えば、第１アプリケーション２１０は、入手可能であれば所与の文書に関連する会社銘柄記号のリストをコンパイルするために、所与の文書に関連する１つまたは複数のデータ項目２２５、２３０から企業名を抽出して、それらの名前を対応する銘柄記号に変換する仕事を割当てられることができる。第２アプリケーション２１５が所与のメタデータ片の所与の企業名を追加し、または変更する場合、例えば、「Ｃｏｍｐａｎｙ  ＡＢＣ」から「Ｃｏｍｐａｎｙ  ＸＹＺ」に企業名を変更する場合には、第１アプリケーションは、この変更をリスンして、その銘柄記号リストを、「Ｃｏｍｐａｎｙ  ＡＢＣ」の代わりに「Ｃｏｍｐａｎｙ  ＸＹＺ」という銘柄記号を含むように自動的に更新することができる。加えて、そのような変更およびいかなる関連する副次作用もデータ・ストア２０８によってバンドルされることができ、それにより１つまたは複数の変更の取り消しが全ての関連する変更を覆すようにすることができる。
【００３８】
ここに説明されるように、本発明の実施形態は、コンピュータが生成した文書に関連するデータを格納し、関連付けるため、および使用できるようにするためのデータ・ストアを提供する。本発明の範囲および精神から離れることなく、多様な修正または変化が可能であることは、当業者には明らかであろう。本発明の他の実施形態は、ここに開示された発明の詳細な説明の考察および実施から、当業者には明らかとなるであろう。
【図面の簡単な説明】
【００３９】
【図１】本発明の１つの例示的な実施形態で使用できる、例示的なコンピューティング・デバイスの図である。
【図２】本発明の実施形態に係る、１つまたは複数のクライアント・アプリケーションと、データ・ストアと、データ・ストアのコンテンツとの関係を図示するブロック図である。
【符号の説明】
【００４０】
１００：コンピューティング・デバイス
１０２：処理装置
１０４：システム・メモリ
１０５：オペレーティング・システム
１０６：アプリケーション
１０７：プログラム・データ
１０８：基本設定
１０９：取り外し可能記憶装置
１１０：固定記憶装置
１１２：入力装置
１１４：出力装置
１１６：通信接続
１１８：他のコンピューティング・デバイス
１２０：ワード・プロセッサ
２０５：クライアント・アプリケーション
２０８：データ・ストア
２１０、２１５：第三者アプリケーション
２２０：文書データ
２２５：メタデータ１
２３０：メタデータ２
２４０：メタデータ１スキーマ
２４５：メタデータ２スキーマ
２６０：スキーマ妥当性検査モジュール
２７０：アプリケーション・プログラミング・インターフェース
【図１】
2006236321.tif 000003
【図２】
2006236321.tif 000004