(57)【要約】  ユーザ・インターフェースを提供するシステムおよび方法を開示する。開示のシステムおよび方法は、データ・ファイルを生成するように構成されたアプリケーション・プログラムの開始要求を受け取ることを含むことができる。さらに、開示のシステムおよび方法は、当該要求に応答して、開始されたアプリケーション・プログラムにより、プロパティ・パネルを表示することを含むことができる。プロパティ・パネルは、アプリケーション・プログラムの生成したデータ・ファイルと関連付けるべきメタデータを受け取るように構成することができる。また、プロパティ・パネルは、アプリケーション・プログラムによってメタデータを受け取る唯一の場所を提供するように構成することができる。さらに、開示のシステムおよび方法は、プロパティ・パネルでメタデータを受け取ることを含むことができる。
2008547112.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ・インターフェースを提供する方法であって、
データ・ファイルを生成するように構成されたアプリケーション・プログラムの開始要求を受け取ること、
前記要求に反応して、開始された前記アプリケーション・プログラムにより、前記アプリケーション・プログラムにより生成された前記データ・ファイルに関連付けられるべきメタデータを受け取るように構成されたプロパティ・パネルであって、前記アプリケーション・プログラムによって前記メタデータを受け取る唯一の場所を提供するように構成されたプロパティ・パネルを表示すること、および
前記プロパティ・パネルで前記メタデータを受け取ること
を備えることを特徴とする方法。
【請求項２】
前記プロパティ・パネルを表示することは、
仕様書タイトル（specification title）、状態（status）、プログラム管理者（program manager）、マイルストーン（milestone）、開発者（developer）、優先度（priority）、およびテスト（test）のうちの少なくとも１つを備える前記メタデータを受け取るように構成された前記プロパティ・パネルを表示することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記プロパティ・パネルを表示することは、ディスプレイの最上部に表示されるモードレス水平タスクペインを備える前記プロパティ・パネルを表示することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記プロパティ・パネルを表示する前に、前記プロパティ・パネルをカスタムとすべきかそれとも自動生成すべきかを決定することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記プロパティ・パネルを自動生成すべきことが決定された場合は、自動生成プログラム・モジュールによって作成される自動生成フォームを取り出すことをさらに備えることを特徴とする請求項４に記載の方法。
【請求項６】
前記プロパティ・パネルをカスタムとすべきことが決定された場合は、
事前定義されたユーザ向けに調整されたカスタム・フォームを取り出すこと、および
前記プロパティ・パネルを表示すること、および受け取られた前記メタデータを操作すること、のうちの少なくとも１つを実行するために、前記カスタム・フォームを使用すること
をさらに備えることを特徴とする請求項４に記載の方法。
【請求項７】
受け取られた前記メタデータのデータ妥当性検査を実行することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項８】
ユーザ・インターフェースを提供するシステムであって、
データベースを維持するメモリ・ストレージ、および
前記メモリ・ストレージと結合された処理ユニットを備え、
前記処理ユニットは、
データ・ファイルを生成するように構成されたアプリケーション・プログラムの開始要求を受け取り、
前記要求に反応して、開始された前記アプリケーション・プログラムにより、前記アプリケーション・プログラムによって生成された前記データ・ファイルに関連付けられるべきメタデータを受け取るように構成されたプロパティ・パネルであって、前記アプリケーション・プログラムによって前記メタデータを受け取る唯一の場所を提供するように構成されたプロパティ・パネルを表示し、
前記プロパティ・パネルで前記メタデータを受け取る
ように動作可能であることを特徴とするシステム。
【請求項９】
前記プロパティ・パネルを表示するように動作する前記処理ユニットは、仕様書タイトル（specification title）、状態（status）、プログラム管理者（program manager）、マイルストーン（milestone）、開発者（developer）、優先度（priority）、およびテスト（test）のうちの少なくとも１つを備える前記メタデータを受け取るように構成された前記プロパティ・パネルを表示するように動作する前記処理ユニットをさらに備えることを特徴とする請求項８に記載のシステム。
【請求項１０】
前記プロパティ・パネルを表示するように動作する前記処理ユニットは、ディスプレイの最上部に表示されるモードレス水平タスクペインを備える前記プロパティ・パネルを表示するように動作する前記処理ユニットをさらに備えることを特徴とする請求項８に記載のシステム。
【請求項１１】
前記処理ユニットが前記プロパティ・パネルを表示する前に、前記プロパティ・パネルをカスタムとすべきかそれとも自動生成すべきかを決定するように動作する前記処理ユニットをさらに備えることを特徴とする請求項８に記載のシステム。
【請求項１２】
前記プロパティ・パネルを自動生成すべきことが前記処理ユニットによって決定された場合は、自動生成プログラム・モジュールによって作成される自動生成フォームを取り出すように動作する前記処理ユニットをさらに備えることを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記プロパティ・パネルをカスタムとすべきことが前記処理ユニットによって決定された場合は、
事前定義されたユーザ向けに調整されたカスタム・フォームを取り出すように動作可能であり、
前記プロパティ・パネルを表示すること、および受け取られた前記メタデータを操作すること、のうちの少なくとも１つを実行するために、前記カスタム・フォームを使用するように動作する
前記処理ユニットをさらに備えることを特徴とする請求項１１に記載のシステム。
【請求項１４】
実行されると、ユーザ・インターフェースを提供する方法を実行する１組の命令が格納された、コンピュータ読取り可能な媒体であって、前記１組の命令によって実行される前記方法は、
データ・ファイルを生成するように構成されたアプリケーション・プログラムの開始要求を受け取ること、
前記要求に反応して、開始された前記アプリケーション・プログラムにより、前記アプリケーション・プログラムにより生成された前記データ・ファイルに関連付けられるべきメタデータを受け取るように構成されたプロパティ・パネルであって、前記アプリケーション・プログラムによって前記メタデータを受け取る得一の場所を提供するように構成された、プロパティ・パネルを表示すること、および
前記プロパティ・パネルで前記メタデータを受け取ること
を備えることを特徴とするコンピュータ読取り可能な媒体。
【請求項１５】
前記プロパティ・パネルを表示することは、仕様書タイトル（specification title）、状態（status）、プログラム管理者（program manager）、マイルストーン（milestone）、開発者（developer）、優先度（priority）、およびテスト（test）のうちの少なくとも１つを備える前記メタデータを受け取るように構成された前記プロパティ・パネルを表示することをさらに備えることを特徴とする請求項１４に記載のコンピュータ読取り可能な媒体。
【請求項１６】
前記プロパティ・パネルを表示することは、ディスプレイの最上部に表示されるモードレス水平タスクペインを備える前記プロパティ・パネルを表示することをさらに備えることを特徴とする請求項１４に記載のコンピュータ読取り可能な媒体。
【請求項１７】
前記プロパティ・パネルを表示する前に、前記プロパティ・パネルをカスタムとすべきかそれとも自動生成すべきかを決定することをさらに備えることを特徴とする請求項１４に記載のコンピュータ読取り可能な媒体。
【請求項１８】
前記プロパティ・パネルを自動生成すべきことが決定された場合は、自動生成プログラム・モジュールによって作成される自動生成フォームを取り出すことをさらに備えることを特徴とする請求項１７に記載のコンピュータ読取り可能な媒体。
【請求項１９】
前記プロパティ・パネルをカスタムとすべきことが決定された場合は、
事前定義されたユーザ向けに調整されたカスタム・フォームを取り出すこと、および
前記プロパティ・パネルを表示すること、および受け取られた前記メタデータを操作すること、のうちの少なくとも１つを実行するために、前記カスタム・フォームを使用すること
をさらに備えることを特徴とする請求項１７に記載のコンピュータ読取り可能な媒体。
【請求項２０】
受け取られた前記メタデータのデータ妥当性検査を実行することをさらに備えることを特徴とする請求項１４に記載のコンピュータ読取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、カスタマイズされたユーザ・インターフェースを提供する方法およびシステムに関する。より詳細には、本発明は、ドキュメント・プロパティを閲覧し、および編集するためのカスタマイズされたユーザ・インターフェースを提供することに関する。
【背景技術】
【０００２】
メタデータは、他のデータを記述するのに使用されるデータである。メタデータという用語は、各データ要素に関する大量の情報を提供するデータ辞書やデータ・リポジトリなどの詳細な編集物（compilations）を指すこともある。また、ＨＴＭＬメタ・タグやメディア・ファイル内のタイトル・フィールドといったコンテンツ、あるいは電子スプレッドシードまたはワード・プロセッシング・ファイルに関連する属性などのデータに関する任意の記述アイテムを指すこともある。企業内ユーザが、メタデータの作成に時間を割く余裕がない可能性がある点に、問題が存在する。例えば、彼らは、メタデータを作成することに何らの価値も見出さない可能性がある。
【０００３】
一方、各企業におけるサーバおよび他のデータ・レポジトリに重要なドキュメントおよび他のファイルが一杯になると、企業は、例えば、メタデータでデータ・コンテンツを記述するよう望む傾向にある。したがって、所望のデータを発見するのに、検索すべきあまりにも多くのドキュメントを事業体が所有することになる可能性もある。知識労働者がメタデータを作成することによって、事業体がドキュメントまたは他のファイルを分析するのを容易にする可能性があるが、そのメタデータは正確なものでなければならない。したがって、従来の戦略は、知識労働者がメタデータを提供するのを可能にすることである。このため、知識労働者が高品質のメタデータを提供することをいやがる可能性があるので、このことは、しばしば問題を引き起こす。例えば、知識労働者は、メタデータを求める形式を無くすために、リスト内の最初の選択肢である「ｍｉｓｃ」を選択して、または無作為に選んだわずかな文字「ｆｄ」をタイプして、メタデータに求めるフォームを無くすこともある。知識労働者の観点から見ると、殆ど無いか、知覚できない利益のために、あまりにも多くの時間が掛かる可能性があることに気付く可能性がある。
【０００４】
さらに、ユーザの多くはメタデータをオフラインで更新したいと望む。例えば、ドキュメントは、サーバからクライアント・システムにダウンロードすることができる。しかしながら、従来のシステムは、サーバ上のみにメタデータに関連付けられたスキーマを格納することができる。したがって、従来のシステムを用いると、スキーマはサーバ上にしか置くことができず、クライアント上に置くことができないので、メタデータをオフラインで表示することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記に鑑みて、メタデータをより最適な形で提供する方法およびシステムが必要とされている。さらに、ドキュメントのプロパティの閲覧および編集用のカスタマイズ・ユーザ・インターフェースを提供することも必要とされている。また、例えば、あるドキュメントをオフラインで使用する際に使用可能なドキュメント・スキーマであって、当該ドキュメントがオフラインで使用された後、当該ドキュメントのアップロードが行われた際に更新可能なドキュメント・スキーマを作成することも必要とされている。
【課題を解決するための手段】
【０００６】
本発明の諸実施形態に従ってカスタマイズされたユーザ・インターフェースを提供するシステムおよび方法を開示する。
【０００７】
一実施形態によれば、ユーザ・インターフェースを提供する方法は、データ・ファイルを生成するように構成されたアプリケーション・プログラムの開始要求を受け取ること、  前記要求に反応して、開始された前記アプリケーション・プログラムにより、前記アプリケーション・プログラムにより生成された前記データ・ファイルに関連付けられるべきメタデータを受け取るように構成されたプロパティ・パネルであって、前記アプリケーション・プログラムによって前記メタデータを受け取る唯一の場所を提供するように構成されたプロパティ・パネルを表示すること、および前記プロパティ・パネルで前記メタデータを受け取ることを備える。
【０００８】
別の実施形態によれば、ユーザ・インターフェースを提供するシステムは、データベースを維持するメモリ・ストレージ、および前記メモリ・ストレージと結合された処理ユニットを備え、前記処理ユニットは、データ・ファイルを生成するように構成されたアプリケーション・プログラムの開始要求を受け取り、前記要求に反応して、開始された前記アプリケーション・プログラムにより、前記アプリケーション・プログラムによって生成された前記データ・ファイルに関連付けられるべきメタデータを受け取るように構成されたプロパティ・パネルであって、前記アプリケーション・プログラムによって前記メタデータを受け取る唯一の場所を提供するように構成されたプロパティ・パネルを表示し、前記プロパティ・パネルで前記メタデータを受け取るように動作可能である。
【０００９】
他の実施形態によれば、コンピュータ読取り可能な媒体には、それ自体が実行されたときにユーザ・インターフェースを提供する方法を実行する１組の命令が格納されており、前記１組の命令によって実行される前記方法は、
データ・ファイルを生成するように構成されたアプリケーション・プログラムの開始要求を受け取ること、
前記要求に反応して、開始された前記アプリケーション・プログラムにより、前記アプリケーション・プログラムにより生成された前記データ・ファイルに関連付けられるべきメタデータを受け取るように構成されたプロパティ・パネルであって、前記アプリケーション・プログラムによって前記メタデータを受け取る唯一の場所を提供するように構成されたプロパティ・パネルを表示すること、および前記プロパティ・パネルで前記メタデータを受け取ることを備える。
【００１０】
上記の概略的説明および以下の詳細な説明は、例示的な説明にすぎず、本明細書および添付の特許請求の範囲に記載される本発明の範囲を限定するものと解釈すべきではないことを理解されたい。さらに、本明細書に詳細に記載されるものに加え、様々な機能および／または変更形態を提供することができる。例えば、本発明の諸実施形態は、以下の詳細な説明に記載される各機能の様々な組合せおよびサブ・コンビネーションを対象とするものであってもよい。
【発明を実施するための最良の形態】
【００１１】
本明細書の一部を構成し、その内容が本明細書に組み込まれる添付の図面は、本発明の様々な実施形態および態様を図示するものである。
【００１２】
以下の詳細な説明は、添付の図面を参照して行う。添付の図面および以下の説明で使用する同じ参照番号は、可能な限り、同じ部分または同様の部分を示して使用する。本明細書では、本発明のいくつかの例示的な実施形態および機能について説明するが、本発明の趣旨および範囲から逸脱しない限り、様々な修正形態、適応形態、および他の実装形態を提供することが可能である。例えば、添付の図面に示される各構成要素については、他の構成要素に置き換えることも、他の構成要素をさらに追加することも、修正を加えることもでき、本明細書に記載される例示的な方法については、本明細書に開示される方法の各段階を他の段階に置き換えることも、各段階の順序を入れ替えることも、他の段階をさらに追加することもできる。したがって、以下の詳細な説明は、本発明を限定するものではない。むしろ、本発明の厳密な範囲は、添付の特許請求の範囲によって定義されるものである。
【００１３】
本発明の諸実施形態によるシステムおよび方法は、カスタマイズ・ユーザ・インターフェースを提供し、ドキュメント・コンテンツ内にメタデータを組み込み、ドキュメント・スキーマを作成するものである。例えば、本発明の諸実施形態は、ユーザにとってシームレスなドキュメント編集体験をもたらすとともに、それらのユーザがメタデータを容易に入力することができるように調整されたプロパティ・パネルを提供することができる。このプロパティ・パネルは、該当ドキュメントの任意のポイントで、ユーザが一時に、１つの場所で、全てのドキュメント・プロパティをまとめて指定できるようにすることが可能である。ユーザの１つの利点としては、ユーザが保存時またはそれ以降の時点で任意選択のプロパティとして提供する必要がないプロパティを、プロパティ・パネル内で指定された任意のプロパティに含めることが可能となる点を挙げることができる。１つの目標としては、ユーザの時間を節約することを挙げることができる。また、プロパティ・パネルは、ユーザに関連するドキュメントを記述する際に役立つプロパティを、ユーザにとって押し付けがましくならないタイミングで（即ち、保存時点ではなく編集時点で）出現させる良い方法を提供することもできる。
【００１４】
さらに、企業はプロパティ入力のレイアウトおよび設計を制御できる機能を必要とする可能性がある。例えば、企業はかねてから、各企業のユーザが作業をする上で「新しい」やり方を身に付けることを強いられずに、各自の作業を継続することができるようにしたいと望む、既存の特定のプロセスを有することが多い。本発明の諸実施形態によれば、プロパティ・パネルは、適用される特定のタイプの全てのドキュメント用のユーザ・インターフェース（ＵＩ）内に示すことが可能な豊富なカスタマイゼーションを、ソリューション設計者が実施できるようにすることができる。例えば、会社のロゴ、写真、カラー・スキーム、およびプロパティ・フィールドの並べ替えを挙げることができる。さらに、ソリューション設計者は、それらを様々な「ビュー」内に、ユーザのユーザ自身の仕事に対する考え方に応じて上記の各要素を論理的に分類することができるように、編成することができる。最後に、ソリューション設計者は、ビジネス・ロジック、カスタム・データ接続および検索（lookups）を実施することができ、その結果、当該データを所望の状態にする上で必要となるどのようなタイプの計算も、事実上実行することができるようになる。カスタマイズされると、カスタマイズ後のバージョンをそれらのドキュメント・タイプに関連付ける簡易なメカニズムを提供することができ、その結果、当該ドキュメントが、そのカスタマイズされたプロパティ入力フォームを、アプリケーション・プログラム内で常に表示できるようにすることが可能となる。
【００１５】
再利用のためにテンプレートとなるドキュメントを編集中のユーザ、または所有するドキュメント全体の何らかのメタデータを参照する既存のドキュメントを編集中のユーザは、当該メタデータをコピーすることなく任意の場所で再利用することができる。本発明の諸実施形態によれば、ユーザは、プロパティ・パネル内に示すことが可能なデータ部分を参照する、それらのドキュメント全体を通した参照を付けることができるようになる。このようにすれば、ユーザがプロパティ・パネル内のデータを変更する場合に、ドキュメント内の他の場所に所在する、このデータを変更することが可能となり、逆もまた同様に可能となる。このプロセスは、「データ・バインディング」と呼ばれることもあり、例えばあるデータと、当該データが表示されることが想定されるドキュメント内の何らかの参照とをバインディングするものである。本発明の諸実施形態によれば、データは、データ（プロパティ）自体から「ドラッグ」および「ドロップ」することができる。これは、ユーザが、含むことが可能なメタデータを考慮したドキュメントのセットアップを行う際のオーバーヘッドを削減することができ、また、それらのドキュメントに任意のオブジェクトを挿入すること同じくらい容易に、ユーザがそれらのドキュメント全体を通した参照を付けることが可能となる。
【００１６】
データ・バインディングは、いくつかの理由で強力な能力を発揮する可能性がある。第１に、データ・バインディングは、ユーザがある場所でメタデータを変更したにも関わらず、他の場所のメタデータを変更し忘れるという可能性を減少させることが可能である。例えば、データ・バインディングを用いると、あるドキュメントにおいて、ドキュメント全体でたくさんの同じデータへ参照する際にも、当該ドキュメントが自動的に最新の状態に保たれることができることを保証することが可能となる。第２に、データ・バインディングは、アプリケーション自体の外部に所在するコンテンツとバインディングされるプロパティについてもユーザが変更できるようにすることが可能である。このようなデータ・バインディングは、拡張マークアップ言語（ＸＭＬ）の操作または他のメカニズムを利用して実現することができる。上記の各種変更は、次回のドキュメント使用時に、そのような変更を行うアプリケーションを走らせることを必要とせずに、ドキュメント・コンテンツに自動的に反映させることができる。
【００１７】
本発明の諸実施形態によれば、プロパティ・パネルは、カスタムＵＩ定義とドキュメントとの関連付けを可能にすることができる。また、プロパティ・パネルは、ドキュメント・プロパティの表示メカニズム、例えばアプリケーション上部のモードレス水平タスクペイン（modeless horizontal task-pane）の働きをすることができる。さらに、データ・バインディングは、例えばプロパティの名前、値、および制御を、ドラッグ／ドロップを利用して、ドキュメント・コンテンツにワンステップで関連付けすることを含むことができる。
【００１８】
さらに、本発明の諸実施形態は、例えばサーバ・フィールド・スキーマ定義に基づく拡張マークアップ言語（ＸＭＬ）のスキーマ定義（ＸＳＤ）を作成する方法およびシステムを提供することができる。上述のプロパティ・パネルおよびデータ・バインディング・プロセスは、より操作しやすいＸＭＬ表現で提示されるメタデータ（例えばプロパティ）を格納することができる。一例を挙げると、ＸＭＬとして格納することは、例えばサーバ上の共通のＸＭＬデータ・ストアにメタデータが格納できるようにすることを可能とする。したがって、後に複数のクライアントがメタデータと系統的に対話することが可能となる。
【００１９】
「スキーマ」は、プロパティ・パネル内の各データ要素が収容可能なコンテンツの構造およびタイプを定義することができる。例えば、スキーマは、プロパティ・パネル内でメタデータがどのように表示され得るかを決定することができる。実際のタグおよびそれらに対応するスキーマを以下の表に示す。
【００２０】
（使用される実際のタグ）
【００２１】
【表１】
2008547112.tif 000003
【００２２】
（タグに対応するスキーマ）
【００２３】
【表２】
2008547112.tif 000004
【００２４】
本発明の諸実施形態によれば、より迅速なアクセスおよび操作を得るために、データベースとの親和性が高められた構造体にメタデータを格納することができる。例えば、メタデータに関して格納されたスキーマは、ドキュメントに関連付け、ドキュメント内に格納することが可能なＸＭＬスキーマ定義（ＸＳＤ）に変換することができる。その後、当該スキーマは、上述のプロパティ・パネルおよびデータ・バインディング・プロセスをサポートするデータ・ストアにロードすることができる。
【００２５】
本発明の諸実施形態は、スキーマの作成に加えて、例えばオフライン性能を追加する追加の機能性を含むこともできる。第１に、スキーマは、ドキュメントがサーバに接続されていない場合にも当該スキーマを参照することができるように（即ち、オフラインの間にもプロパティを表示し、入力することができるように）、ドキュメント内に格納することができる。第２に、スキーマと一緒に格納することができるスキーマのハッシュを作成することが可能となる。次いで、当該ハッシュと、サーバ上に格納されている現スキーマのハッシュとを比較することもできる。このようにすれば、ドキュメントがダウンロードされるたびに（単純にスキーマを毎回更新するのではなく）スキーマを更新すべきか否かを判定することができるようになる。
【００２６】
ここで、複数の図面を通じて同様の参照番号が同様の要素を指す添付図面を参照しながら、本発明の諸態様および例示的な動作環境について説明する。図１および以下の論述は、本発明の諸実施形態を実装することができる適切なコンピューティング環境の簡潔な概要を提供するものである。本発明の諸実施形態は、パーソナル・コンピュータのオペレーティング・システム上で走るアプリケーション・プログラムとともに実行されるプログラム・モジュールの一般的な文脈で説明され得るが、他のプログラム・モジュールと組み合わせて実装することも可能である。
【００２７】
本発明の一実施形態は、カスタマイズされたユーザ・インターフェースを提供するシステムを備えることができる。このシステムは、データベースを維持するメモリ・ストレージ、および当該メモリ・ストレージと結合された処理ユニットを備えることができる。処理ユニットは、データ・ファイルを生成するように構成されたアプリケーション・プログラムの開始要求を受け取るように動作することが可能である。さらに、処理ユニットは、上記要求に反応して、開始されたアプリケーション・プログラムにより、当該アプリケーション・プログラムによって生成されたデータ・ファイルに関連付けられるべきメタデータを受け取るように構成されたプロパティ・パネルであって、当該アプリケーション・プログラムによってメタデータを受け取る唯一の場所（the only place）を提供するように構成されたプロパティ・パネルを表示するように動作することが可能である。また、処理ユニットは、プロパティ・パネルでメタデータを受け取るように動作することが可能である。
【００２８】
本発明の一実施形態によれば、上述のメモリ、処理ユニット、および他の構成要素は、図１の例示的なコンピューティング・デバイス１００などの、コンピューティング・デバイスに実装することができる。上記のメモリ、処理ユニット、または他の構成要素は、ハードウェア、ソフトウェア、および／またはファームウェアの任意の適当な組合せを使用して実装することができる。例えば、上記のメモリ、処理ユニット、または他の構成要素は、コンピューティング・デバイス１００とともに実装することも、コンピューティング・デバイス１００を他のコンピューティング・デバイス１１８と組み合わせて実装することもできる。上述のシステム、デバイス、およびプロセッサは例示的なものであり、他のシステム、デバイス、およびプロセッサとしては、本発明の諸実施形態による上述のメモリ、処理ユニット、または他の構成要素を挙げることができる。
【００２９】
一般に、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データ構造、および特定のタスクを実行し、または特定の抽象データ型を実装する他のタイプの構造を備えることができる。さらに、本発明の諸実施形態は、ハンドヘルド・デバイス、マイクロ・プロセッサ・システム、マイクロ・プロセッサ・ベースまたはプログラマブル家電製品（consumer electronics）、ミニ・コンピュータ、メインフレーム・コンピュータなどを含めた他のコンピュータ・システム構成を用いて実施することもできる。本発明の諸実施形態は、通信ネットワークを介してリンクされたリモート処理デバイスによって各タスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラム・モジュールをローカルとリモートの両方のメモリ記憶装置に配置することができる。
【００３０】
本発明の諸実施形態は、例えばコンピュータ・プロセス（メソッド）として実装することも、コンピューティング・システムとして実装することもでき、また、コンピュータ・プログラム製品やコンピュータ読取り可能な媒体などの製品（article of manufacture）として実装することもできる。コンピュータ・プログラム製品は、コンピュータ・システムによって読取り可能であり、コンピュータ・プロセスを実行する命令から成るコンピュータ・プログラムを符号化する、コンピュータ記憶媒体であってもよい。また、コンピュータ・プログラム製品は、コンピューティング・システムによって読取り可能であり、コンピュータ・プロセスを実行する命令から成るコンピュータ・プログラムを符号化する、搬送波上の伝搬信号であってもよい。
【００３１】
図１を参照すると、本発明の一実施形態による１つの例示的なシステムは、コンピューティング・デバイス１００などの、コンピューティング・デバイスを含むことができる。基本構成では、コンピューティング・デバイス１００は、少なくとも１つの処理ユニット１０２、およびシステム・メモリ１０４を含むことができる。システム・メモリ１０４は、コンピューティング・デバイスの構成およびタイプに応じて揮発性（ＲＡＭなど）であることも不揮発性（ＲＯＭ、フラッシュ・メモリなど）であることもあり、また、それらの何らかの組合せであることもある。システム・メモリ１０４は、オペレーティング・システム１０５、１つまたは複数のアプリケーション１０６、およびプログラム・データ１０７を含むことができる。一実施形態では、アプリケーション１０６は、ワード・プロセッシング・アプリケーション１２０を含むことができる。ただし、本発明の諸実施形態は、任意のアプリケーション・プログラムとともに実施することができ、ワード・プロセッシングに限定されるものではない。この基本構成は、図１の破線１０８内の構成要素で示されている。
【００３２】
コンピューティング・デバイス１００は、追加的な特徴または機能性を有することができる。例えば、コンピューティング・デバイス１００は、例えば磁気ディスク、光ディスク、テープなど、追加的なデータ記憶装置（リムーバブルおよび／または非リムーバブル）を含むこともできる。かかる追加的なストレージは、図１のリムーバブル・ストレージ１０９および非リムーバブル・ストレージ１１０で示されている。コンピュータ記憶媒体としては、コンピュータ読取り可能な命令、データ命令、プログラム・モジュールなどの情報を記憶するための任意の方法または技術で実装される、揮発性および不揮発性のリムーバブル・メディアおよび非リムーバブル・メディアを挙げることができる。システム・メモリ１０４、リムーバブル・ストレージ１０９、および非リムーバブル・ストレージ１１０はいずれも、コンピュータ記憶媒体の一例である。コンピュータ記憶媒体としては、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル・バーサタイル・ディスク（ＤＶＤ）または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは、コンピューティング・デバイス１００からアクセスされることが可能な情報を格納する上で使用できる他の任意の媒体を挙げることができる。そのような任意のコンピュータ記憶媒体をデバイス１００の一部とすることができる。また、コンピューティング・デバイス１００は、キー・ボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなど、１つ（または複数）の入力デバイス１１２を有することもできる。また、コンピューティング・デバイス１００は、ディスプレイ、スピーカ、プリンタなど、１つ（または）複数の出力デバイス１１４を含むこともできる。上述の各デバイスは例示的なものであり、他のデバイスを使用することができる。
【００３３】
また、コンピューティング・デバイス１００は、デバイス１００が分散コンピューティング環境で、例えばイントラネットやインターネットなどのネットワークを介して他のコンピューティング・デバイス１１８と通信できるようにすることが可能な通信接続１１６を含むことができる。通信接続１１６は、通信媒体の一例である。通信媒体は、典型的にはコンピュータ読取り可能な命令、データ構造、プログラム・モジュール、または搬送波や他の移送メカニズム（transport mechanism）などの変調データ信号内の他のデータによって実施することができ、任意の情報配信媒体を含むものである。「変調データ信号」という用語は、それ自体の特徴のうち、情報を信号の形で符号化するように設定または変更される１つまたは複数の特徴を有する信号を意味することもある。例えば、通信媒体としては、それだけに限らないが、有線ネットワークや直接配線接続などの有線媒体、および音響、ＲＦ、赤外線、他の無線媒体などの無線媒体を挙げることができる。本明細書で使用される「コンピュータ読取り可能な媒体」という用語は、記憶媒体と通信媒体の両方を含み得る。
【００３４】
コンピューティング・デバイス１００のシステム・メモリ１０４には、ＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮ（ワシントン州レドモンド）のＷＩＮＤＯＷＳ（登録商標）オペレーティング・システムなど、ネットワーク接続されたパーソナル・コンピュータの動作を制御するのに適したオペレーティング・システム１０５を含めた複数のプログラム・モジュールおよびデータ・ファイルを格納することができる。また、システム・メモリ１０４は、ワード・プロセッシング・アプリケーションプログラム１２０（例えば、ＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮのＷＯＲＤ）や後述する他のアプリケーション・プログラムなど、１つまたは複数のプログラム・モジュールを格納することができる。アプリケーション・プログラム１２０は、処理ユニット１０２上で実行されている間に、例えば後述する方法の各段階のうちの１つまたは複数を含むプロセスを実行することができる。上述のプロセスは例示的なものであり、処理ユニット１０２は、他のプロセスを実行することもできる。本発明の諸実施形態はワード・プロセッシングの文脈で説明されているが、他の実施形態は、任意のタイプのアプリケーション・プログラムを含むことができ、ワード・プロセッシングに限定されるものではない。本発明の諸実施形態に従って使用され得る他のアプリケーション１０６としては、電子メールおよび連絡用アプリケーション、ワード・プロセッシング・アプリケーション、スプレッドシート・アプリケーション、データベース・アプリケーション、スライド・プレゼンテーション用アプリケーション、描画用またはコンピュータ支援型アプリケーション・プログラムなどを挙げることができる。
【００３５】
図２は、図１のシステム１００を使用したユーザ・インターフェースを提供する、本発明による例示的な方法２００に関係する一般的な複数の段階（stage）を記載した流れ図である。以下では、例示的な方法２００の各段階を実装する例示的な手法について詳述する。例示的な方法２００は、開始ブロック２０５から始まり、データ・ファイルを生成するように構成されたアプリケーション・プログラムの開始要求をコンピューティング・デバイス１００が受け取る段階２１０に進むことができる。例えば、ユーザは、入力デバイス１１２を介してコンピューティング・デバイス１００と対話することにより、アプリケーション・プログラム１２０を開始することができる。アプリケーション・プログラム１２０の開始は、アプリケーション・プログラム１２０がデータ・ファイルの視覚表現を表示することを引き起こすことができる。例えば、データ・ファイルとしては、ＷＯＲＤの「．ｄｏｃ」ファイルを挙げることができ、この視覚表現は、ユーザがコンテンツを追加したいと望む可能性のあるドキュメントを含むことができる。
【００３６】
データ・ファイルを生成するように構成されたアプリケーション・プログラムの開始要求をコンピューティング・デバイス１００が受け取る段階２１０に続いて、例示的な方法２００は、プロパティ・パネルをカスタムとすべきかそれとも自動生成すべきかをコンピューティング・デバイス１００が決定することが可能な判断ブロック２２０、に進むことができる。例えば図３には、アプリケーション・プログラム１２０が開始された時点で出力デバイス１１４のうちの１つに表示することが可能な、例示的なプロパティ・パネルが示されている。図３に示されるように、プロパティ・パネルは、例えばドキュメント・キャンバスと、アプリケーションのツールバー領域との間に配置することが可能な水平タスクペイン（task pane）を備えることができる。プロパティ・パネルは、例えばユーザの思い通りにサイズ変更、移動、隠蔽／表示、を行うことが可能なモードレス・タスクペインを備えることができる。プロパティ・パネルは、それ自体がドキュメント・プロパティに使用されるという点を除いて、電子メールのエンベロープに外観が似ているかもしれない。各プロパティは、例えば所定のフォーマットと整合する順序で配置することも、アルファベット順に配置することもできる。メタデータ入力に適したコントロールをプロパティ・タイプ毎に表示することもできる。このようなコントロールは、アプリケーション設定と整合する標準的なフォント／サイズで図３に示されている。
【００３７】
コンピューティング・デバイス１００が、判断ブロック２２０でプロパティ・パネルを自動生成すべきと決定した場合には、例示的な方法２００は段階２３０に進み、そこでは、コンピューティング・デバイス１００が自動生成されたプロパティ・パネルを表示することが可能となる。例えば、アプリケーション・プログラム１２０は、プロパティ・パネルを表示する際にフォームを使用することができる。それらのフォームは、例えば（カスタム・フォームが提供されない場合は）アプリケーション・プログラム１２０によって自動生成することも、（例えばユーザが）カスタム作成してドキュメントと関連付けることもできる。カスタム作成の場合には、アプリケーション・プログラム１２０は、格納済みのフォームがあればそれを取り出し、そのフォームを同じスペースに表示させることができる。この場合、アプリケーション・プログラム１２０がデフォルトで使用する可能性のある自動生成フォームは、使用されないことになる。
【００３８】
また、プロパティ・パネルは、追加の機能性をサポートすることができる。例えば、プロパティ・パネルは、事前定義されることもカスタム定義されることもある複数のプロパティ・グループ間の切り換えを、ユーザが行い得るようにすることが可能である。さらに、プロパティ・パネルは、データ妥当性検査（data validation）をサポートすることもできる。例えば、プロパティ・パネルは、必要に応じて、入力されたプロパティが無効であるのか（コントロール周辺にある赤色のボックス）それとも欠落しているのか（赤色のアスタリスク）を指示することができる。
【００３９】
一方、コンピューティング・デバイス１００が、判断ブロック２２０でプロパティ・パネルをカスタムとすべきことを決定した場合には、例示的な方法２００は、段階２４０に進むことができ、そこでは、コンピューティング・デバイス１００がカスタム・プロパティ・パネルを表示することが可能となる。例えば、図４には、新しいカスタマイズ・フォームを作成し、そのフォームをドキュメントと関連付けるプロセスが示されている。図４に示されるように、このフォームのカスタマイズは、例えばＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮ（ワシントン州レドモンド）から提供されるＩＮＦＯＰＡＴＨに存在する可能性がある。フォームのセットアップの段階になると、そのドキュメントに関連して、アプリケーション・プログラム１２０は、例えば、そのドキュメントが許容する、そのドキュメントに対する設定を適用し、そのカスタム・フォームをどこから取得すべきかを知ることできる。別法として、このプロセスは、ユーザがカスタマイズを行うことによって手動で実行することもでき、また、当該フォームを使用する各クライアントに同様のソリューションを展開することができる。図５には、ドキュメントを開いた時点でフォームを自動生成すべきかそれとも指定のカスタム・フォームを使用すべきかを決定するプロセスが示されている。
【００４０】
例示的な方法２００は、コンピューティング・デバイス１００が自動生成されたプロパティ・パネルを表示する段階２３０から、またはコンピューティング・デバイス１００がカスタム・プロパティ・パネルを表示する段階２４０から、コンピューティング・デバイス１００がプロパティ・パネル内のメタデータを受け取ることが可能となる段階２５０に進むことができる。例えば、ユーザは、入力デバイス１１２のうちの１つを使用して、出力デバイス１１４のうちの１つに表示されるプロパティ・パネルにメタデータを入力することができる。段階２５０でコンピューティング・デバイス１００によってメタデータが受け取られた後は、段階２６０で例示的な方法２００を終了させることができる。
【００４１】
図６は、図１のシステム１００を使用してメタデータをドキュメント・コンテンツに組み込むための、本発明による例示的な方法６００に関係する一般的な複数の段階を記載した流れ図である。以下では、例示的な方法６００の各段階を実装する例示的な手法について詳述する。例示的な方法６００は、開始ブロック６０５から開始し、コンピューティング・デバイス１００が、ドキュメントを生成するように構成されたアプリケーション・プログラムを開始することが可能となる段階６１０に進むことができる。例えば、ユーザは、入力デバイス１１２を介してコンピューティング・デバイス１００と対話することにより、アプリケーション・プログラム１２０を開始することができる。アプリケーション・プログラム１２０の開始は、アプリケーション・プログラム１２０がデータ・ファイルの視覚表現を表示すること引き起こすことができる。例えば、データ・ファイルとしては、ＷＯＲＤの「．ｄｏｃ」ファイルを挙げることができ、この視覚表現とは、ユーザがコンテンツを追加したいと望む可能性のあるドキュメントを含むことができる。
【００４２】
コンピューティング・デバイス１００がアプリケーション・プログラムを開始する段階６１０から、例示的な方法６００は、段階６２０に進むことができ、ここでは、コンピューティング・デバイス１００がプロパティ・パネルを表示することが可能となる。プロパティ・パネルは、アプリケーション・プログラム１２０によって生成されたドキュメントと関連付けるべきメタデータを受け取るように構成することができる。例えば、例示的なプロパティ・パネルが図３に示されているが、このプロパティ・パネルを、アプリケーション・プログラム１２０が開始された時点で出力デバイス１１４のうちの１つに表示することができる。図３に示されるように、このプロパティ・パネルは、例えばドキュメント・キャンバスと、アプリケーションのツールバー領域との間に配置することが可能な水平タスクペインを備えることができる。プロパティ・パネルは、例えばユーザの思い通りにサイズ変更、移動、隠蔽／表示、を行うことが可能なモードレス・タスクペインを備えることができる。
【００４３】
段階６２０でプロパティ・パネルがコンピューティング・デバイス１００によって表示されると、コンピューティング・デバイス１００がプロパティ・パネル内のメタデータを受け取ることが可能となる段階６３０に進むことができる。例えば、ユーザは、入力デバイス１１２のうちの１つを使用して、出力デバイス１１４のうちの１つに表示されるプロパティ・パネルにメタデータを入力することができる。
【００４４】
コンピューティング・デバイス１００が、段階６３０でプロパティ・パネル内のメタデータを受け取った後は、コンピューティング・デバイス１００がプロパティ・パネルからドキュメント・コンテンツにメタデータをコピーすることが可能となる段階６４０に進むことができる。例えば、本発明の諸実施形態によれば、ユーザは、プロパティ・パネル内に示すことが可能なデータ部分を参照する、ドキュメント全体に渡る、参照を付けることができる。このようにすれば、ユーザがプロパティ・パネル内のデータを変更する場合に、ドキュメント内の他の場所に所在するそのデータを変更することが可能となり、逆もまた同様に可能となる。本発明の諸実施形態によれば、データは、データ（プロパティ）それ自体から「ドラッグ」および「ドロップ」することができる。これにより、ユーザが、ドキュメントに含む可能性があるメタデータを考慮してドキュメントのセットアップを行う際のオーバーヘッドを削減することができ、また、任意のオブジェクトをそれらのドキュメントに挿入するのと同じくらい容易に、ユーザがそのドキュメント全体に参照を付けることを可能にすることができる。
【００４５】
図７は、本発明の一実施形態による例示的なドラッグ／ドロップ操作を示すスクリーンショットである。例えば、このような操作は、プロパティ・パネル内で指定されることができるプロパティをドキュメント表面にドラッグ／ドロップして、それらのプロパティの参照とドキュメント内の場所とを関連付けること、を含むことができる。これを達成するために、「プロパティ値」または「プロパティ名」＋「値」をドキュメント・コンテンツ内に配置することが可能である旨を指し示す、プロパティ・パネル内にユーザ・インターフェース・アフォーダンス（affordance）を提供することができる。これは、コントロールまたは値をグラブ（grab；つかみ取る）できる場合に利用可能な「ハンド」カーソルによって達成することができる。ハンドは、グラブされているオブジェクトの境界線を指し示すことが可能なボックス・オーバーレイと同時に出現することができる。ユーザが意味の無い状況（situation）にコントロールをドロップしようと試みた場合は、例えば、ユーザがコントロールを放した時点で（ドロップ試行時に）その操作が機能しないことを指し示すことが可能な「ｘ」アイコンを表示させることができる。
【００４６】
本発明の諸実施形態によれば、上述のドラッグ／ドロップ操作は、「値」または「タイトル＋値」をグラブする能力を可能にすることができる。「値」の操作の一例として、ユーザは、図７に示されるように「Ｂｒａｎｄｏｎ  Ｔａｙｌｏｒ」をグラブした後、それをドキュメント内にドロップすることができる。「Ｂｒａｎｄｏｎ  Ｔａｙｌｏｒ」は、これに関連付けられたコントロールを用いて追加することができる。このコントロールは、常時表示させることも非表示にすることもでき、また、ユーザがアイテム上をホバリングするまで隠しておくこともできる。「タイトル」＋「値」の操作の一例として、ユーザは、図７に示されるように「Ｐｒｏｇｒａｍ  Ｍａｎａｇｅｒ（プログラム管理者）」をグラブした後、それをドキュメント内にドロップすることができる。その結果、ドキュメントは、「Ｐｒｏｇｒａｍ  Ｍａｎａｇｅｒ：Ｂｒａｎｄｏｎ  Ｔａｙｌｏｒ」という情報を取得することができ、この場合、データ・バウンド・フィールドは依然として「Ｂｒａｎｄｏｎ  Ｔａｙｌｏｒ」付近にあるが、分かりやすくするためにタイトルを入れることもできる。この操作は、例えばユーザが、ドキュメント内にプロパティ・パネルのテーブル表現を作成したいと望んだ場合に、実行することができる。段階６４０で、コンピューティング・デバイス１００がプロパティ・パネルからドキュメント・コンテンツにメタデータをコピーし後は、段階６５０で、例示的な方法６００を終了させることができる。
【００４７】
図８は、図１のシステム１００を使用してドキュメント・スキーマを作成するための、本発明による例示的な方法２００に関係する一般的な複数の段階を記載した流れ図である。以下では、例示的な方法８００の各段階を実装する例示的な手法について詳述する。例示的な方法８００は、開始ブロック８０５から開始し、段階８１０に進むことができここでは、サーバがドキュメント内のスキーマ、および当該スキーマの第１のハッシュを格納することが可能となる。本発明の諸実施形態は、クライアントとなるコンピューティング・デバイス１００、およびサーバとなる他のコンピューティング・デバイスのうちの１つを含むことができる。例えば、図１に示されるように、サーバは、他のコンピューティング・デバイス１１８のうちの１つを備えることができ、コンピューティング・デバイス１００と同様の構造を有することができる。したがって、サーバは、それ自体の対応するシステム・メモリにパーサー・アプリケーション（「パーサー」）を格納し、当該パーサーをそれ自体の対応する処理ユニット上で実行することができる。
【００４８】
パーサーは、サーバ上で実行されると、サーバ上に格納されている、サポートされた「ファイル・タイプ」（例えば、「．ｄｏｃ」、「．ｘｍｌ」など）の各ドキュメントを評価することができ、次いである種の情報について、それらのドキュメントの構文解析を行うことができる。この場合、パーサーが検索する可能性のある情報には、ドキュメント・プロパティを含むことができる。所与のドキュメントについて、このパーサーは、（ｉ）プロパティ・パネルに対応するスキーマが更新された時点、（ｉｉ）該当するドキュメント内のスキーマのどこを参照すべきか、および（ｉｉｉ）より新しいバージョンのスキーマをどのようにドキュメントに格納すべきか、を決定することができる。特に、パーサーは、ドキュメント・タイプのプロパティ・セットを表現するＸＳＤを作成することができる。これは、パーサーが、各プロパティに関するＸＳＤおよびＸＭＬをドキュメント内に配置し、最終的にはそれらをサーバ上のデータ・ストアに配置することが可能となる。
【００４９】
上述のように、スキーマは、プロパティ・パネル内の各データ要素に含めることができるコンテンツの構造およびタイプを定義することができる。スキーマは、ドキュメントがサーバに接続されていない場合にも当該スキーマを参照することができるように（即ち、オフラインの間にもプロパティを表示し、入力することができるように）、ドキュメント内に格納することができる。第２に、スキーマと一緒に格納することができるスキーマのハッシュを作成することができる。次いで、当該ハッシュと、サーバ上に格納されている現スキーマのハッシュとを比較することもできる。このようにすれば、ドキュメントがダウンロードされるたびに（単純にスキーマを毎回更新するのではなく）スキーマを更新すべきか否かを見つけ出すことができるようになる。
【００５０】
コンピューティング・デバイス１００がスキーマおよび当該スキーマの第１のハッシュをドキュメント内に格納する段階８１０から、例示的な方法８００は、段階８２０に進むことができ、ここで、第１の場所に格納されているスキーマが変更されているかどうかをコンピューティング・デバイス１００が決定することができる。例えば、定義済みのプロパティがサーバ上で更新された場合（それらが追加された場合、削除された場合、新しいタイプにされた場合、新しい制限が追加された場合など）には、それらのプロパティに関するスキーマも必ず更新される。パーサーは、格納されているスキーマが更新を要するかそれともサーバのスキーマに対して最新のものであるのかを特定することができる。
【００５１】
コンピューティング・デバイス１００が、判断ブロック８２０で、第１の場所に格納されているスキーマが変更されていないと決定した場合には、例示的な方法８００は、段階８３０に進むことができ、そこでは、コンピューティング・デバイス１００はドキュメントにどのような変更も加えることがない。一方、コンピューティング・デバイス１００が、判断ブロック８２０で第１の場所に格納されているスキーマが変更されていると決定した場合には、例示的な方法８００は、段階８４０に進むことができ、そこでは、コンピューティング・デバイス１００は、ドキュメント内に格納されている当該スキーマを第１の場所に格納されている更新済みスキーマに置き換えることが可能となる。例えば、上述のように、パーサーは、ドキュメント内に格納されているスキーマが、サーバ・スキーマに対して最新のものであるのかどうかを特定することができる。パーサーは、スキーマ上の属性として格納されているハッシュと、実行時にパーサーによって生成され、最新のスキーマを反映したハッシュとを比較することによって上記の特定を行うことができる。ハッシュ同士が一致した場合には、スキーマを維持することができる。ハッシュ同士が異なる場合には、新しいスキーマをドキュメント内に配置することができる。
【００５２】
従来のシステムでは、サーバ・ベースのファイル・プロパティは、修正のために、サーバ・アクセスを使用してきた。サーバがオフラインである場合、またはユーザがサーバに接続せずにドキュメントを閲覧している場合、ユーザはプロパティを編集することができなかった。本発明の諸実施形態によれば、プロパティ・パネルは、プロパティのクライアント・サイド表現を備えることができ、また、スキーマを使用して、表示すべきプロパティを知ることができるようになる。スキーマをドキュメント内に格納することは、例えば、適用された正しい制約事項例えば、必須、無効、など）で正しいプロパティをユーザに示すために、プロパティ・パネルが正しいプロパティ・スキーマを参照することを可能にすることができる。
【００５３】
コンピューティング・デバイス１００がドキュメント内に格納されているスキーマの置き換えを行う段階８３０から、例示的な方法８００は、段階８５０に進むことができ、ここでは、コンピューティング・デバイス１００は、ドキュメント内に格納されている第１のハッシュを、第１の場所に格納されているスキーマの第２のハッシュに置き換えることが可能となる。例えば、ドキュメントがサーバにアップロードされると、パーサーは、当該ドキュメント内に更新済みスキーマのハッシュを格納することができる。段階８５０で、コンピューティング・デバイス１００が第１のハッシュ同士の置き換えると、または段階８３０でどのような変更も加えられなかった場合には、例示的な方法８００は、段階８６０で終了することができる。
【００５４】
さらに、本発明の諸実施形態は、離散的な電子要素、論理ゲートを含むパッケージ電子チップまたは集積電子チップ、マイクロ・プロセッサを利用する回路、または電子要素またはマイクロ・プロセッサを含む単一のチップを備える電気回路の形で実施することができる。また、本発明の諸実施形態は、限定されないが、ＡＮＤ、ＯＲ、ＮＯＴなどの論理演算を実行することが可能な機械技術、工学技術、流体技術、量子技術を含めた他の技術を使用して実施することもできる。さらに、本発明の諸実施形態は、汎用コンピュータの内部で実施することも、他の任意の回路またはシステム内で実施することもできる。
【００５５】
本発明は、システム、方法、および／またはコンピュータ・プログラム製品として実施することができる。したがって、本発明は、ハードウェアおよび／またはソフトウェア（ファームウェア、常駐ソフトウェア、マイクロ・コードなどを含む）の形で実施することができる。さらに、本発明の諸実施形態は、命令実行システムによってまたは当該システムとともに使用される媒体内で実施されるコンピュータ使用可能なプログラム・コードまたはコンピュータ読取り可能なプログラム・コードを有するコンピュータ使用可能な記憶媒体またはコンピュータ読取り可能な記憶媒体上の、コンピュータ・プログラム製品の形をとることもできる。コンピュータ使用可能なまたはコンピュータ読取り可能な媒体は、命令実行システム、命令実行装置、または命令実行デバイスによって使用するまたはそれら関連して使用されるプログラムを収容し、格納し、通信し、伝搬し、または移送することが可能な任意の媒体であってよい。
【００５６】
例えば、コンピュータ使用可能なまたはコンピュータ読取り可能な媒体としては、限定されないが、電子的、磁気的、光学的、電磁気的、赤外線、または半導体のシステム、装置、デバイス、または伝搬媒体であってよい。コンピュータ読取り可能な媒体のより具体的な例（非網羅的なリスト）としては、１つまたは複数の配線を有する電子接続、携帯可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去およびプログラム可能な読取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、および携帯可能なコンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）が挙げられる。プログラムは、例えば紙または他の媒体を光学走査することによって電子的にキャプチャした後、必要に応じて適切な様式にコンパイルし、解釈し、あるいは他の方法で処理し、その後コンピュータ・メモリに格納することもできるので、コンピュータ使用可能なまたはコンピュータ読取り可能な媒体は、プログラムが印刷される紙または別の適切な媒体であってもよいことに留意されたい。
【００５７】
以上、本発明の諸実施形態による方法、システム、およびコンピュータ・プログラム製品のブロック図および／または動作図を参照しながら、本発明の諸実施形態を説明した。ブロック内に示される各機能／動作は、各動作図に示される順序以外の順序で発生してもよいことを理解されたい。例えば、連続的に図示される２つのブロックが実際にはほぼ同時に実行されることもあり、また、各ブロックが関与する機能／動作に応じて逆順に実行されることもある。
【００５８】
本発明のいくつかの機能および実施形態について説明したが、本発明には他の実施形態も存在する可能性がある。さらに、本発明の諸実施形態をメモリおよび他の記憶媒体に格納されたデータとの関連で説明してきたが、本発明の諸態様は、ハードディスク、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭなどの２次記憶装置、インターネットからの搬送波、あるいは他の形態のＲＡＭまたはＲＯＭなど、他のタイプのコンピュータ読取り可能な媒体上に格納することも、それらの媒体から読み出すこともできる。また、本明細書に開示される方法の各ステップは、本発明の諸原理から逸脱しない限り、各ステップの順序を入れ替え、かつ／またはステップの挿入または削除を行うことによって、任意の形で修正することができる。
【００５９】
したがって、本明細書の記載および実施例は例示的なものにすぎず、本発明の真の範囲および趣旨は、添付の特許請求の範囲に記載の各請求項およびそれらの均等物の範囲によって示される。
【図面の簡単な説明】
【００６０】
【図１】本発明の一実施形態による例示的なコンピューティング・デバイスのブロック図である。
【図２】本発明の一実施形態によるユーザ・インターフェースを提供する例示的な方法の流れ図である。
【図３】本発明の一実施形態による例示的なプロパティ・パネルを示す図である。
【図４】本発明の一実施形態によるカスタマイズ・フォームの作成プロセスを示す図である。
【図５】本発明の一実施形態に従って、フォームを自動生成するのかそれともカスタム・フォームを使用するのかを決定する手法を説明するプロセスを示す図である。
【図６】本発明の一実施形態に従ってメタデータをドキュメント内に組み込む例示的な方法を示す流れ図である。
【図７】本発明の一実施形態による例示的なドラッグ／ドロップ操作を示すスクリーンショットである。
【図８】本発明の一実施形態によるドキュメント・スキーマを作成する例示的な方法を示す流れ図である。
【図９】ドキュメントがダウンロードされ、その後アップロードされたときの、本発明の一実施形態によるスキーマ更新プロセスを示す図である。
【図１】
2008547112.tif 000005
【図２】
2008547112.tif 000006
【図３】
2008547112.tif 000007
【図４】
2008547112.tif 000008
【図５】
2008547112.tif 000009
【図６】
2008547112.tif 000010
【図７】
2008547112.tif 000011
【図８】
2008547112.tif 000012
【図９】
2008547112.tif 000013