(57)【特許請求の範囲】
【請求項１】
コンピュータシステム内で１つまたは複数のエンティティを編集するための方法であって、前記エンティティの型は該編集を実行する前は未知であり、前記方法は、
一般的ビューワ上に提示するために、１つまたは複数のデータ型に関連付けられた１つまたは複数のエンティティのビューを生成する動作であって、前記エンティティと前記データ型は、対応するスキーマで定義される関係を有し、前記スキーマは、リポジトリ内に前記データ型と共にデータとして記憶される、動作と、
各エンティティが関連するデータ型を有する、１つまたは複数の選択されたエンティティを変更するように構成された編集要求を受信する動作と、
前記データ型を含む、前記受信した編集要求に対応する前記選択されたエンティティの１つまたは複数のプロパティを決定するように前記リポジトリにクエリを行う動作と、
前記スキーマに記憶された関係情報に基づいて前記編集が有効であることを、前記スキーマに基づいて判断する動作と、
提示のために、該有効とされた編集情報を、前記選択されたエンティティおよび対応するデータ型をどのように処理すべきかに関する事前の知識を有しない一般的ビューワに送信する動作と
を含むことを特徴とする方法。
【請求項２】
前記リポジトリ内の利用可能な各データ型のリストを送信する動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記ビューは、データ型の一部分に基づいていることを特徴とする請求項１に記載の方法。
【請求項４】
前記選択されたエンティティを表示する動作さらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記スキーマは、前記スキーマに基づいてエンティティをどのように提示すべきかを記述するヒントを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記エンティティは、１つまたは複数の言語でローカライズ可能であることを特徴とする請求項１に記載の方法。
【請求項７】
データ型は、コンピュータのユーザによって定義可能であることを特徴とする請求項１に記載の方法。
【請求項８】
新しいユーザ定義のデータ型が検出されると、前記スキーマを自動的に更新する動作をさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記スキーマにアクセスして、１つまたは複数のデータ型の前記エンティティに対応する関係情報を取得する動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項１０】
コンピュータシステムにおいて、エンティティをどのように表示すべきかを示すヒントをスキーマ内に提供する方法であって、
一般的ビューワ上に提示するために、１つまたは複数のデータ型に関連付けられた１つまたは複数のエンティティのビューを生成する動作であって、前記エンティティと前記データ型は、対応するスキーマ内に定義される種々の関係を有し、前記スキーマは、リポジトリ内に前記データ型と共にデータとして記憶されている、動作と、
少なくとも１つのエンティティに対して取るべきアクションを示す、ユーザ入力を受信する動作と、
前記リポジトリ内に記憶される１つまたは複数のヒントにアクセスして、前記ユーザ入力に基づいて前記エンティティに対して実行すべきアクションを決定する動作であって、前記ヒントは、特定の予め定義された入力がユーザにより提供されたときに取るべきアクションを記述する、動作と、
前記ユーザ入力に対応する前記ヒントに従って前記決定されたアクションを実行する動作と、
前記決定されたアクションの実行結果を、前記スキーマにより特定されるエンティティおよびデータ型をどのように処理すべきかに関する事前の知識を有しない一般的ビューワ上に提示する動作と
を含むことを特徴とする方法。
【請求項１１】
前記ユーザ入力は、マウスジェスチャ、キーボードジェスチャ、またはマウスジェスチャとキーボードジェスチャの組み合わせを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
ヒントを使用して、表示のプロパティを選択することを特徴とする請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的モデルの編集フレームワークに関する。
【背景技術】
【０００２】
コンピュータは、労働の場、家庭、およびモバイルデバイスに非常に浸透してきている。コンピュータは、大量の情報を素早くかつ効率的に処理することが可能である。コンピュータシステム上で稼働するように設計されるソフトウェアアプリケーションは、ユーザが、ビジネスアプリケーション、学業、娯楽などを含め幅広い種類の機能を実行することを可能にする。ソフトウェアアプリケーションはしばしば、文書を作成するためのワードプロセッサアプリケーションや、電子メールを送信、受信、および整理するための電子メールプログラムなど、特定のタスクを実行するよう設計される。
【０００３】
いくつかの場合において、ソフトウェアアプリケーションを使用して、モデルの形式のデータを生成、編集、および表示することが可能である。例えば、モデルをビジネスおよび他のエンティティにより使用することで、プロセス、システム、エンティティおよび他の情報を記述することができる。一部のモデルは、フロー図、プロセスフロー、フローチャート、プロセス図、および／または管理図と呼ばれることがある。他には、リスト、表、円グラフ、またはデータを分類し表示する他の形式と呼ばれることがある。いくつかの場合において、モデルを使用して、システムの要素間の組織的関係（organizational relationship）を示すことができる。これらのモデルは、しばしば組織図と呼ばれる。より広い意味においては、モデルを使用して、異なるオブジェクト間の任意のタイプの関係情報を示すことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、多くの場合、データを生成、表示および編集するソフトウェアプログラムは、データの型に制限される。例えば、ソフトウェアプログラムはしばしば、ある特定の型のデータを生成、編集およびナビゲートすることができるが、他のものについてはできないようにハードコードされる。さらに、データの分類および表示は、データの型に基づいて、ある特定のレイアウトまたは表示形式に制限されることがある。従って、モデル、データセットまたは他の情報の生成、閲覧、編集またはナビゲートに使用される、コンピュータで稼働するソフトウェアアプリケーションは、データの型に依拠してどの機能がエンドユーザに利用可能であるかを決定することとなる。
【課題を解決するための手段】
【０００５】
本明細書に記載される実施形態は、データを編集および提示するためのフレームワークを対象とする。一実施形態において、コンピュータシステムは、編集を実行する前にはエンティティの型が潜在的に未知である、１つまたは複数のエンティティを編集するための方法を実行する。例えば、コンピュータシステムは、一般的ビューワ（generic viewer）上に提示するために、様々なデータ型のエンティティに関連付けられたエンティティのビューを生成する。エンティティとデータ型は、対応するスキーマおいて定義される関係を有する。該スキーマは、データとしてリポジトリ内にデータ型と共に記憶される。コンピュータシステムは、各エンティティが関連付けられたデータ型を有する種々の選択されたエンティティを変更するよう構成された、編集要求を受信する。該コンピュータシステムは、受け取った編集要求に対応しデータ型を含む、選択されたエンティティの種々のプロパティを決定するように、リポジトリにクエリを行う。該コンピュータシステムは、編集がスキーマ内に記憶された関係情報に基づいて有効であることを、スキーマに基づいて判断する。該コンピュータシステムはまた、有効とされた編集情報を提示のために一般的ビューワに送る。一般的ビューワは、選択されたエンティティおよび対応するデータ型をどのように処理すべきかに関する事前の知識を有しない。
【０００６】
別の実施形態において、コンピュータシステムは、様々なデータ型のエンティティ間をナビゲートするための方法を実行する。例えば、コンピュータシステムは、一般的ビューワ上に提示するために、様々なデータ型のエンティティに関連付けられたエンティティのビューを生成する。エンティティとデータ型は、対応するスキーマにおいて定義される関係を有する。スキーマは、データ型と共にリポジトリ内にデータとして記憶される。コンピュータシステムは、第２の異なるデータ型に関連付けられた第２の選択されたエンティティの選択を示す、ナビゲーション入力を受信する。コンピュータシステムは、第１の選択されたエンティティと第２の選択されたエンティティとに関連付けられたデータ型についての関係情報にアクセスする。コンピュータシステムは、第１の選択されたエンティティと第２の選択されたエンティティとを含む更新ビューであって、上記アクセスした関係情報に基づいた更新ビューを生成する。コンピュータシステムはまた、ナビゲーション入力に基づいて、生成された更新ビューを提示する。
【０００７】
別の実施形態において、コンピュータシステムは、エンティティをどのように表示すべきかを示すヒントを、スキーマ内に提供するための方法を実行する。例えば、コンピュータシステムは、一般的ビューワ上に提示するために、様々なデータ型のエンティティに関連付けられたエンティティのビューを生成する。エンティティとデータ型は、対応するスキーマにおいて定義される関係を有する。スキーマは、データ型と共にリポジトリ内にデータとして記憶される。コンピュータシステムは、少なくとも１つのエンティティに対して取られるべきアクションを示す、ユーザ入力を受信する。コンピュータシステムは、リポジトリ内に記憶されたヒントにアクセスして、エンティティに対してどのアクションを実行すべきかをユーザ入力に基づいて決定する。ヒントは、特定の予め定義された入力がユーザによって提供されるとき、どのアクションを取るべきか記述する。コンピュータシステムはまた、決定されたアクションをユーザ入力に対応するヒントに従って実行する。
【０００８】
別の実施形態において、コンピュータシステムは、種々のエンティティに基づいて２つまたはそれ以上の構成されたビューの組み合わせを表示するための方法を実行する。例えば、コンピュータシステムは、一般的ビューワ上に提示するために、種々のデータ型のエンティティに関連付けられた種々のエンティティの第１のビューを生成する。エンティティとデータ型は、対応するスキーマにおいて定義される種々の関係を有する。スキーマは、データ型と共にリポジトリ内にデータとして記憶される。コンピュータシステムは、一般的ビューワ上に提示するために、種々のデータ型のエンティティに関連付けられた種々のエンティティの第２のビューを生成する。コンピュータシステムは、第１のビューと第２のビューが統合されるべきであることを示す、ユーザ入力を受信する。コンピュータシステムは、ユーザ入力に従って、第１のビューと第２のビューを統合する。コンピュータシステムはまた、第１のビューおよび第２のビューのエンティティに関連付けられたエンティティを、各エンティティの対応するスキーマに従って更新する。
【０００９】
この「課題を解決するための手段」の記載は、以下の「発明を実施するための形態」でさらに述べる概念の選択を簡略化した形式で紹介するために提供されるものである。この「課題を解決するための手段」の記載は、特許請求される主題の重要な特徴または主要な特徴を特定するようには意図されておらず、特許請求される主題の範囲を決定する際の助けとして使用されることも意図されていない。
【００１０】
本発明の実施形態に関する上述および他の利点および特徴をさらに明らかにするために、本発明の実施形態のさらに詳しい説明を、添付の図面を参照することによって提供する。これらの図面は本発明の典型的な実施形態のみを示すものであり、従ってその範囲を制限するものとしてみなされるべきではないことを理解されたい。本発明は、添付の図面の使用を通して追加の仕様および詳細とともに記載され説明されるであろう。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態が、様々なデータ型の情報モデルの編集、ナビゲート、および操作を含む動作が可能なコンピュータアーキテクチャを示す図である。
【図２】編集を実行する前はその型が未知である１つまたは複数のエンティティを編集するための例示的な方法のフローチャートである。
【図３】様々なデータ型のエンティティ間をナビゲートするための例示的な方法のフローチャートである。
【図４】エンティティをどのように表示すべきかを示すヒントをスキーマ内に提供するための例示的な方法のフローチャートである。
【図５】１つまたは複数のエンティティに基づいて２つまたはそれ以上の構成されたビューの組み合わせを表示するための例示的な方法のフローチャートである。
【図６Ａ】情報が表示されナビゲートされる、本発明の実施形態を示す図である。
【図６Ｂ】情報が表示されナビゲートされる、本発明の実施形態を示す図である。
【発明を実施するための形態】
【００１２】
本明細書で説明される実施形態は、データを編集および提示するためのフレームワークを対象とする。一実施形態において、コンピュータシステムは、編集を実行する前はその型が未知である１つまたは複数のエンティティを編集する方法を実行する。例えば、コンピュータシステムは、一般的ビューワ上に提示するために、様々なデータ型のエンティティに関連付けられたエンティティのビューを生成する。エンティティとデータ型は、対応するスキーマにおいて定義される関係を有する。スキーマは、データ型と共にリポジトリ内にデータとして記憶される。コンピュータシステムは、各エンティティが関連するデータ型を有する、１つまたは複数の選択されたエンティティを変更するよう構成された編集要求を受け取る。コンピュータシステムは、データ型を含み、受信した編集要求に対応する、選択されたエンティティの種々のプロパティを決定するようにリポジトリにクエリを行う。コンピュータシステムは、編集がスキーマ内に記憶される関係情報に基づいて有効であることを、スキーマに基づいて判断する。コンピュータシステムはまた、有効とされた編集情報を提示のために一般的ビューワに送る。一般的ビューワは、選択されたエンティティおよび対応するデータ型をどのように処理すべきかに関する特別な知識を有しない。
【００１３】
別の実施形態において、コンピュータシステムは、様々なデータ型のエンティティ間をナビゲートするための方法を実行する。例えば、コンピュータシステムは、一般的ビューワ上に提示するために、様々なデータ型のエンティティに関連付けられたエンティティのビューを生成する。エンティティとデータ型は、対応するスキーマ内に定義される関係を有する。スキーマは、データ型と共にリポジトリ内にデータとして記憶される。コンピュータシステムは、第２の異なるデータ型に関連付けられた第２の選択されたエンティティの選択を示す、ナビゲーション入力を受け取る。コンピュータシステムは、第１の選択されたエンティティおよび第２の選択されたエンティティに関連付けられたデータ型についての関係情報にアクセスする。コンピュータシステムは、第１の選択されたエンティティおよび第２の選択されたエンティティを含む、更新ビューを生成し、該更新ビューはアクセスされた関係情報に基づいている。コンピュータシステムはまた、ナビゲーション入力に基づいて、生成された更新ビューを提示する。
【００１４】
別の実施形態において、コンピュータシステムは、エンティティをどのように表示すべきかを示すヒントを、スキーマ内に提供するための方法を実行する。例えば、コンピュータシステムは、一般的ビューワ上に提示するために、様々なデータ型のエンティティに関連付けられたエンティティのビューを生成する。エンティティとデータ型は、対応するスキーマ内に定義される関係を有する。スキーマは、データ型と共にリポジトリ内にデータとして記憶される。コンピュータシステムは、少なくとも１つのエンティティに対して取られるべきアクションを示す、ユーザ入力を受け取る。コンピュータシステムは、リポジトリ内に記憶されたヒントにアクセスして、エンティティに対してどのアクションを実行すべきかをユーザ入力に基づいて決定する。システムは、ヒントを使用して、特定の予め定義された入力がユーザにより提供されるときにどのアクションを取るべきか決定する。コンピュータシステムはまた、決定されたアクションをユーザ入力に対応するヒントに従って実行する。
【００１５】
別の実施形態において、コンピュータシステムは、種々のエンティティに基づいて２つまたはそれ以上の構成されたビューの組み合わせを表示するための方法を実行する。例えば、コンピュータシステムは、一般的ビューワ上に提示するために、種々のデータ型のエンティティに関連付けられた種々のエンティティの第１のビューを生成する。エンティティとデータ型は、対応するスキーマ内に定義される種々の関係を有する。スキーマは、データ型と共にリポジトリ内にデータとして記憶される。コンピュータシステムは、一般的ビューワ上に提示するために、種々のデータ型のエンティティに関連付けられた種々のエンティティの第２のビューを生成する。コンピュータシステムは、第１のビューと第２のビューが統合されるべきであることを示す、ユーザ入力を受け取る。コンピュータシステムは、ユーザ入力に従って、第１のビューと第２のビューとを統合する。コンピュータシステムはまた、第１のビューおよび第２のビューのエンティティに関連付けられたエンティティを、それぞれのエンティティの対応するスキーマに従って更新する。
【００１６】
本発明の実施形態は、以下でより詳細に述べるように、コンピュータハードウェアを含む特定用途または汎用のコンピュータを備えること、または利用することができる。本発明の範囲内の実施形態は、コンピュータ実行可能命令および／またはデータ構造を担持または記憶するための、物理的および他のコンピュータ読取可能媒体も含む。そのようなコンピュータ読取可能媒体は、汎用または特定用途のコンピュータシステムによりアクセス可能な任意の利用可能な媒体とすることができる。コンピュータ実行可能命令を記録するコンピュータ読取可能媒体は、物理的な記録媒体である。コンピュータ実行可能命令を担持するコンピュータ読取可能媒体は、伝送媒体である。従って、限定ではなく例として、本発明の実施形態は、少なくとも２つの明確に異なる種類のコンピュータ読取可能媒体、すなわち、物理的記録媒体および伝送媒体を含むことが可能である。
【００１７】
物理的記録媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、所望のプログラムコード手段をコンピュータ実行可能命令またはデータ構造の形式で記憶するために使用可能であって、汎用または特定用途のコンピュータによりアクセス可能な任意の他の媒体が含まれる。
【００１８】
「ネットワーク」は、コンピュータシステムおよび／またはモジュールおよび／または他の電子デバイス間の電子データの伝送を可能にする、１つまたは複数のデータリンクとして定義される。情報がネットワークまたは別の通信接続（有線、無線、または有線と無線の組み合わせのいずれか）を介してコンピュータに転送または提供されると、該コンピュータは適切に、該接続を伝送媒体とみなす。伝送媒体には、所望のプログラムコード手段をコンピュータ実行可能命令またはデータ構造の形式で担持または伝送するために使用可能であって、汎用または特定用途のコンピュータによりアクセス可能な、ネットワークおよび／またはデータリンクが含まれ得る。上記のものの組み合わせも、コンピュータ読取可能媒体の範囲内に含まれるべきである。
【００１９】
しかし、種々のコンピュータシステムコンポーネントに達すると、コンピュータ実行可能命令またはデータ構造の形式のプログラムコード手段は、伝送媒体から物理的記録媒体に自動的に転送され得ることを理解されたい。例えば、ネットワークまたはデータリンクを介して受信されたコンピュータ実行可能命令またはデータ構造は、ネットワークインターフェースカード内のＲＡＭにバッファリングされ、そして、最終的にはコンピュータシステムにおいてコンピュータシステムＲＡＭおよび／または低揮発性の物理的記録媒体へ転送され得る。従って、物理的記録媒体が、伝送媒体をも（または主に）利用するコンピュータシステムコンポーネント内に含まれ得ることを理解されたい。
【００２０】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、特定用途コンピュータ、または特定用途の処理装置に或る特定の機能または機能のグループを実行させる、命令またはデータを備える。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間フォーマット命令、またはさらにはソースコードとすることができる。本発明の主題を、構造的特徴および／または方法論的な動作に特有の言語で説明するが、添付の特許請求の範囲で定義される主題は、必ずしも上述のような説明される特徴または動作には限定されないことを理解されたい。むしろ、説明される特徴および動作は、特許請求の範囲に記載の事項の実装する例示の形式として開示される。
【００２１】
当業者には、本発明を、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースもしくはプログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ、ページャ、ルータ、スイッチャなどを含む、多数のタイプのコンピュータシステム構成を有するネットワークコンピュータ環境において実施することができることが理解されよう。本発明を、ネットワークを通じて（有線のデータリンク、無線のデータリンク、または有線のデータリンクと無線のデータリンクとの組み合わせのいずれかにより）リンクされる、ローカルおよびリモートのコンピュータシステムの両方がタスクを実行する、分散システム環境において実施することもできる。分散システム環境では、プログラムモジュールを、ローカルおよびリモートのメモリ記憶装置の両方に配置することができる。
【００２２】
図１は、本発明の原理が利用され得るコンピュータアーキテクチャ１００を図示している。コンピュータアーキテクチャ１００は、コンピュータシステム１０１を含む。一部の実施形態において、コンピュータシステム１０１は、システムメモリ１５５およびプロセッサ１５６を含むことができる。上述のように、メモリ１５５は、ＲＡＭ、ＲＯＭ、半導体、磁気または他のメモリを含め、任意のタイプのコンピュータメモリとすることができる。同様に、プロセッサ１５６は、任意のタイプのプロセッサ、マイクロコントローラ、状態マシン、あるいは情報を処理および／またはコンピュータシステムの機能性を制御する他の手段とすることができる。
【００２３】
コンピュータシステム１０１は、ビューワ１１０も含むことができる。ビューワ１１０は、電子信号を受信し、表示することが可能な任意のタイプのソフトウェアまたはハードウェア装置とすることができる。例えば、ビューワ１１０は、ビュー１１１または更新ビュー１１２を受信し、そのビューをユーザに表示するように構成されることがある。ビューワ１１０は、例えば、ユーザ１０５からのユーザ入力１０６などの、コンピュータシステム１０１の外部からの入力を受信するように構成されることがある。一部の実施形態において、ビューワ１１０は、中間の正規化形式（canonical form）で受信したデータを処理し、表示するように構成されることがある。ユーザ１０５は、開発者、エンドユーザ、または任意の他のタイプのユーザを含め、任意のタイプのコンピュータユーザとすることができる。ユーザ入力１０６は、マウス、キーボードもしくは他の周辺機器入力、タッチスクリーン、カメラもしくは他の装置により記録されるようなジェスチャ、動き（motion）、キーストロークの組み合わせ、または他の入力を含め、任意のタイプの入力とすることができる。ビューワ１１０は、ユーザ入力１０６をユーザ１０５から受信し、ユーザ入力１０６をデータフローエンジン１１５に送信することができる。
【００２４】
一部の実施形態において、データフローエンジンは、エンティティとデータとの間の依存関係（dependency）を管理する。例えば、データフローエンジン１１５は、エンティティ１２０と、リポジトリ１２５内のデータアイテム１３０との間の依存関係１１６を管理することができる。依存関係は、エンティティ、スキーマ、データ型または他のデータアイテムの間に存在し得る、任意の種類の関係（relationship）とすることができる。依存関係は、どのクエリの結果が或る特定のデータアイテムに依存するかを追跡することができるため、データアイテムが変わるときクエリを再評価することが可能である。データフローエンジン１１５は、データを中間の正規化形式からビューワ１１０によって表示可能な形式に変換するように構成されることもある。データフローエンジン１１５は、以下で説明するように、エンティティ１２０から、正規情報（canonical information）をクエリ１１７および／または編集１１８の形式で受信することができる。
【００２５】
リポジトリ１２５は、ファイル、データベース、ＵＤＤＩ（universal description, discovery and integration）レジストリ、ＬＤＡＰ（lightweight directory access protocol）ディレクトリ、または他の形式のデータベースもしくはデータベースのセットなど、情報を記憶する任意の手段とすることができ、ハードドライブ、ネットワークドライブ、フラッシュドライブ、光または他のタイプのストレージを含め任意のタイプのデータストア内に記憶することができる。一部の実施形態において、ビューワ１１０、データフローエンジン１１５、またはエンティティ１２０のいずれかを、リポジトリ１２５から情報を読み込みおよび／またはリポジトリ１２５に情報を書き込むように構成することができる。このような読み込みおよび／または書き込みは、（いかなる他のモジュールを介することなく）直接起こることもあり、図１に示される（または示されない）種々のモジュールを介して間接的に起こることもある。エンティティ１２０は、任意のタイプのエンティティを含むことができる。簡略化のため、エンティティ１２０内には、人１２０Ａ、タスク１２０Ｂ、およびイベント１２０Ｃのみを示す。しかし、本明細書においてエンティティという用語が使用されるとき、データに関連付けられる任意のアイテムを、エンティティとすることができることは理解されよう。一部の場合において、エンティティ１２０は、リポジトリ１２５に記憶されるデータアイテム１３０の正規表現である。
【００２６】
データフローエンジンは、クエリ１１７および／または編集１１８を使用して、エンティティ１２０および／またはリポジトリ１２５と通信することができる。例えば、データフローエンジン１１５は、クエリをエンティティ１２０に送信して、選択すべきエンティティを決定することができる。加えてクエリ１１７は、情報をリポジトリ１２５から読み出すべきか、またはリポジトリ１２５に書き込むべきかを示すことがある。同様に、リポジトリ１２５は、クエリ（例えば、クエリ１１７）をデータフローエンジン１１６に送信して、依存関係または他の情報を取り出すことができる。データフローエンジン１１５は、提案された編集１１８をエンティティ１２０および／またはリポジトリ１２５に送信することができる。一部の場合において、エンティティ１２０およびデータアイテム１３０はそれぞれ、別個にまたは全体として編集可能である。さらに、リポジトリ１２５は、提案された編集１１８を検証のためにデータフローエンジン１１５に送信することができる。編集の検証については、図２に関連して、以下でより詳細に説明する。
【００２７】
ビュー１１１および更新ビュー１１２は、任意のタイプのデータ提示を含むことができる。例えば、ビュー１１１には、リスト、チャート、グラフ、スプレッドシート、ウェブページ、ワープロ文書、スライド、ピクチャ、アプリケーションウィンドウ、あるいは、情報をフォーマットおよび／または提示する任意の他の方法が含まれ得る。更新ビュー１１２には、上記ビューに対して行われた変更、追加、削除、置換、または他の修正を含んでいる、上記の例の任意のものが含まれ得る。ビュー１１１が変更されていない場合、またはビューの現在閲覧されていない部分に変更を生じさせた情報を受け取った場合など一部の場合では、ビュー１１１および更新ビュー１１２は、同じである。ビューの現在閲覧されていない部分に変更を生じさせる情報を受信し、続いてビューのその部分がビュー内に移動される場合には、更新ビュー１１２は、オンザフライで更新され、従って、潜在的に任意の不必要な処理は省かれることとなる。
【００２８】
図２は、１つまたは複数のエンティティを編集するための方法２００のフローチャートを図示しており、該方法では、編集を実行する前は上記エンティティの型は未知である。方法２００は、環境１００の構成要素およびデータを頻繁に参照して説明される。
【００２９】
方法２００は、一般的ビューワ上に提示するために、１つまたは複数のデータ型に関連付けられた１つまたは複数のエンティティのビューを生成する動作（動作２１０）を含み、ここで、エンティティとデータ型は、対応するスキーマにおいて定義される関係を有し、スキーマは、データとしてリポジトリ内にデータ型と共に記憶されている。例えば、ビューワ１１０は、ビューワ１１０上に提示するための、１つまたは複数のデータ型１３０Ｂに関連付けられたエンティティ１２０（例えば、エンティティ１２０Ａ−１２０Ｃ）のビュー１１１を生成することができ、ここでエンティティ１２０とデータ型１３０Ｂは、対応するスキーマ１３０Ａ内に定義されるように関係１３０Ｄを有し、そして該スキーマ１３０Ａは、データ型１３０Ｂと共にリポジトリ１２５内にデータとして記憶されている。代替実施形態では、データフローエンジン１１５などの他のモジュールが、ビュー１１１を生成することもできる。
【００３０】
一部の場合において、ビュー１１１は、データ型の一部分に基づくものとすることができる。例えば、ビュー１１１は、フルネーム（氏名）データ型のうちのファーストネーム（名）（例えば、「ジョン・ドウ」のうちの「ジョン」）に基づくものとすることができる。データ型１３０Ｂは、データ形式、レイアウト、ファイル拡張子、ファイルタイプ、命名分類、組織的分類、および他のものを含め、任意のタイプのデータ分類子（classifier）を含むことができる。一部の場合において、データ型１３０Ｂは、コンピュータユーザにより定義可能および／または選択可能である。例えば、ユーザは、特定のデータ型の入力を可能にし、および「通りの名前（Street Name）」、「郵便番号（Zip Code）」、「都市（City）」および「州（State）」などの追加のデータ型を含み得る、データ型「勤務先住所（Business Address）」を定義することができる。上述のように、データ型は、「ピクチャ」、「ムービー」または「スプレッドシート」などのファイルタイプを示すことができる。他のデータ型は、「．ｊｐｇ」、「．ｍｐｅｇ」または「．ｘｌｓ」などのファイル拡張子を指定することができる。一部の実施形態において、ビューは、異なるデータ型の組み合わせに基づくものとすることができる。さらに、新しいユーザ定義のデータ型を検出すると、スキーマを自動的に更新することができる。
【００３１】
スキーマ１３０Ａは、エンティティ１２０とデータ型１３０Ｂとの間のある特定のルールおよび／または関係を示すことができる。例えば、スキーマ１３０は、「人」１２０などの特定のエンティティが、データ型「フルネーム」を有することを示すことができる。スキーマ１３０Ａは、各「人」エンティティが、該「人」エンティティにリンクされた「タスク」エンティティを有することを示すこともできる。従って、一部の実施形態において、ユーザ１０５が「人」エンティティ１２０Ａ内のデータを編集するとき、「タスク」１２０Ｂからのデータも編集に利用可能である。さらに、任意のデータ型が、エンティティ１２０Ａおよび１２０Ｂの両方で重複し、または両方に現れるとき、一方のエンティティ内の上記データの更新により、他方のエンティティ内の対応するデータは自動的に更新され得る。容易に理解されるように、エンティティおよび関係の多くの組み合わせが可能であり、上記の例は、スキーマ、データ型、エンティティ、関係、または例に使用される任意の他の概念の使用を限定するものとして使用されるべきではない。
【００３２】
上で示したように、スキーマ１３０は、他の型のデータの記憶と同様に、データとしてリポジトリ１２５内に記憶される。一部の場合において、スキーマ１３０は、ユーザ１０５によって編集可能である。例えば、ユーザ１０５は、データフローエンジン１１５によって使用されるユーザ入力１０６を入力して、クエリを行うこと、および／またはリポジトリ１２５内のデータアイテムを編集することができる。スキーマ１３０Ａ内またはスキーマ全体内またはスキーマのグループ内の任意の情報が、ユーザ１０５によって編集されることがある。ユーザは、スキーマに基づいてエンティティがどのように提示されるべきかを記述するヒントを、追加することができる。例えば、ユーザ１０６は、特定の他のエンティティが既に表示されているとき、または、エンティティ１２０Ｃがそれ自身により表示されているとき、「イベント」エンティティ１２０Ｃがどのように提示されるべきかを示すヒントを、スキーマ１３０Ａに追加することができる。スキーマデータを変更することによって、多数の他のプロパティまたはルールを変えることができる。一部の場合において、エンティティは、１つまたは複数の言語でローカル化が可能である。
【００３３】
方法２００は、各エンティティが関連するデータ型を有する、１つまたは複数の選択されたエンティティを変更するように構成された編集要求を受信する動作（動作２２０）を含む。例えば、ビューワ１１０は、各エンティティが関連するデータ型（例えば、データ型１３０Ｂ）を有する複数のエンティティ１２０を変更するように構成される編集要求を含む、ユーザ入力１０６を受信することができる。データフローエンジン１１５は、入力１０６をクエリ１１７または編集１１８の形式でエンティティ１２０およびリポジトリ１２５に渡す前に、ユーザ入力１０６を処理することができる。追加または代替的に、データフローエンジン１１５は、ユーザ入力１０６を処理することなく、ユーザ入力１０６を、単にエンティティ１２０および／またはリポジトリ１２５に渡すことができる。クエリ１１７は、一部の実施形態では、ユーザ入力１０６においてユーザ１０５により選択された、これらのエンティティに対するクエリを含むことがある。編集１１８は、一部の実施形態では、意図された編集、および／または依存関係１１６に基づいて編集が有効であるという指示（indication）を含む、処理済みのクエリを含むことがある。
【００３４】
方法２００は、データ型を含む受信した編集要求に対応する選択されたエンティティに関する、１つまたは複数のプロパティを決定するように、リポジトリにクエリを行う動作（動作２３０）を含む。例えば、クエリ１１７を使用して、データ型１３０Ｂを含むユーザ入力１０６内の受信した編集要求に対応する、ユーザ選択されたエンティティのプロパティを決定するように、リポジトリ１２５にクエリを行うことができる。
【００３５】
方法２００は、スキーマ内に記憶される関係情報に基づいて編集が有効であることを、スキーマに基づいて判断する動作（動作２４０）も含む。例えば、コンピュータシステム１０１は、スキーマ１３０および関係情報１３０Ｄに基づいて、編集１１８が有効であると判断することができる。ユーザ１０５は、ユーザ入力１０６において「タスク」エンティティが編集されるべきであることを示すことができる。より具体的には、入力１０６は、「日付」データ型を、「年／月／日」形式から「日／月／年」形式に変更すべきであることを示すことがある。スキーマが、どちらの形式もそのデータ型に対して許容可能であることを示すとき、該編集は有効であると宣言される。しかし、ユーザ入力１０６が、「日付」データ型を、「年／月／日」から「氏名」に変更することを示すとき、スキーマは「氏名」データ型を許容しないため、指示された編集は無効であると宣言される。スキーマ１３０Ａおよび関係情報１３０Ｄは、ある特定のエンティティ内に存在すべきまたは存在すべきではない任意のタイプの情報を指定することができ、さらにスキーマ１３０Ａに基づいてエンティティ内に存在すべきまたは存在すべきではないデータ型または任意の他の情報を指定することができる。一部の場合において、編集は、編集要求を受信する前に有効とされることがある。このような構成により、ユーザは、ある特定のコマンドを有効にする（enable）／無効にする（disable）こと、検証コマンドのメニューを構築すること、または他のシステムの機能を選択することが可能になる。
【００３６】
方法２００は、有効とされた編集情報を、提示のために、選択されたエンティティおよび対応するデータ型をどのように処理すべきかに関する事前の知識を有しない一般的ビューワに送信する動作（動作２５０）も含む。例えば、リポジトリ１２５またはエンティティ１２０のいずれかが、編集１１８内の有効な編集情報を提示のためにビューワ１１０に送信することができる。一般的ビューワ１１０は、選択されたエンティティ１２０および対応するデータ型１３０Ｂをどのように処理すべきかに関する事前の知識を有していない。
【００３７】
ビューワ１１０は従って、ある特定のエンティティまたは特定のデータ型をどのように提示するかに関する任意の事前の指示なしで、エンティティに対応するスキーマを参照して、エンティティをどのように提示するかを決定することができる。例えば、ビューワ１１０が、ユーザ定義されたデータ型「会議（Conferences）」を有する「イベント」エンティティを提示したことが全くない場合、ビューワ１１０は、スキーマ１３０Ａを見ることで、どのように情報を提示するか決定することが可能である。このようなスキーマへの参照は、動的であり、エンティティが提示される度に行うことが可能である。一部の場合において、ユーザは、選択された複数のエンティティを、個々に見ることができ、または有効な編集情報に基づいて、生成されたビューの一部として見ることができる。例えば、ユーザは、選択されたエンティティを、編集する前に見ることを選ぶことができる。他の場合において、ユーザは、編集が実行された後に、エンティティを見ることを望むこともできる。さらに他の場合には、ユーザは、編集が実行されているときに見ることもできる。
【００３８】
一部の実施形態において、コンピュータシステム１０１は、リポジトリ内の利用可能な各データ型のリストを送信するオプションの動作を実行することができる。これは、ユーザ１０５が、リポジトリ１２５内の利用可能な全てのデータ型１３０Ｂを知りたい場合に有用である。
【００３９】
図３は、様々なデータ型のエンティティ間をナビゲートするための方法３００のフローチャートを図示している。方法３００を、図１、６Ａおよび６Ｂに示される環境の構成要素およびデータを頻繁に参照して説明する。
【００４０】
方法３００は、一般的ビューワ上に提示するために、第１のデータ型に関連付けられた第１の選択されたエンティティのビューを生成する動作（動作３１０）を含み、上記エンティティとデータ型は、対応するスキーマで定義された関係を有し、該スキーマは、データとしてリポジトリ内にデータ型と共に記憶されている。例えば、ビューワ１１０は、「ファーストネーム」データ型に関連付けられた円グラフビュー６０５Ａを生成することができる。該ファーストネームのエンティティであるジョー、フランク、ビル、マイク、およびその他を、６０５Ａに示している。これらのエンティティは、リポジトリ１２５内にデータ型１３０Ｂ（例えば「ファーストネーム」）と共にデータとして記憶されているスキーマ１３０Ａにおいて定義された関係を有する。ビュー６０５Ａは、リポジトリ内のファーストネームの全てまたはサブセットを表すことができる。例えば、ビュー６０５Ａは、会議の出席者である人のファーストネームを表すことができる。
【００４１】
方法３００は、第２の異なるデータ型に関連付けられた第２の選択されたエンティティの選択を示す、ナビゲーション入力を受信する動作（動作３２０）を含む。例えば、コンピュータシステム１０１は、（ユーザ入力１０６と同じまたは異なる）ユーザ選択入力６１０Ａを、ユーザ１０５から受信することができる。ユーザ選択入力６１０Ａは、異なるデータ型の選択、または異なるデータ型を有するエンティティの選択を示すことができる。例えば、ユーザは、リポジトリ１２５内に記憶された複数の会議の全てまたはサブセットについての円グラフを見ることを選択することができる。その結果、「会議」データ型のエンティティ（本例では、会議Ａ、会議Ｂ、会議Ｃ、会議Ｄ、および会議Ｅ）を示す、ビュー６１５Ａを表示することができる。従って、ユーザは、あるビューから別のビューへナビゲートする。一部の場合において、異なるデータ型を有するエンティティは、第１の選択されたエンティティとの関係を通じて発見される。例えば、上記の例において、ビュー６０５Ａは、会議ＡからＥのいずれかに出席した人のファーストネームを表示することができる。従って、ユーザが、あるファーストネームを選択すると、会議に関連付けられたデータが、各ユーザの名前にさらにリンクされる。
【００４２】
一部の場合において、コンピュータシステム１０１は、複数のデータ型に関連付けられた複数の選択されたエンティティの選択を示す、複数のナビゲーション入力を受信するように構成されることがある。例えば、複数のユーザ選択入力６１０Ａは、データ型「ファーストネーム」、「年齢」、「会社」および「電子メールアドレス」を有するエンティティの選択を示すことができる。この例では、ビューワ１１０は、エンティティのグループの各エンティティを１つずつ、または全てのエンティティを一度に、データ型に関わらず表示するように構成される。各エンティティを、他のエンティティとの関係に基づいて表示することができる。
【００４３】
方法３００は、第１の選択されたエンティティおよび第２の選択されたエンティティに関連付けられたデータ型の関係情報にアクセスする動作（動作３３０）を含む。例えば、コンピュータシステム１０１は、第１の選択されたエンティティ「ジョー」および第２の選択されたエンティティ「会議Ａ」に関連付けられたデータ型１３０Ｂに関する関係情報１３０Ｄにアクセスすることができる。上記で説明したように、「ジョー」および「会議Ａ」などのエンティティは、ジョーが会議Ａの出席者であり得るという点において、あるタイプの関係を共有することがある。
【００４４】
方法３００は、第１の選択されたエンティティおよび第２の選択されたエンティティを含む更新ビューであって、アクセスされた関係情報に基づいて更新ビューを生成する動作（動作３４０）を含む。例えば、コンピュータシステム１０１は、第１の選択されたエンティティ（例えば、「ジョー」）および第２の選択されたエンティティ（例えば、「会議Ａ」）を含む、更新ビュー１１２（ビュー６１５Ａと同じでも同じでなくとも良い）を生成することができ、該更新ビュー１１２は、関係情報１３０Ｄに基づいている。関係情報１３０Ｄは、様々なデータ型のエンティティをリンクまたは結び付けるのに使用される、任意のタイプの情報、スキーマ１３０Ａの一部分、または他のものとすることができる。
【００４５】
方法３００は、ナビゲーション入力に基づいて、生成された更新ビューを提示する動作（動作３５０）を含む。例えば、生成された更新ビュー１１２を、ユーザ選択入力を受信した結果として生成されたビューワ１１０上に、提示することができる。ユーザは、選択されたエンティティを、個々に、または生成された更新ビューの一部として見ることができる。例えば、ユーザは、選択されたエンティティを、編集する前に見ることを選ぶことができる。他の場合、ユーザは、該エンティティを、編集を実行した後に見ることを望むことができる。さらに他の場合、ユーザは、編集が実行されているときに該編集を見ることができる。代替実施形態において、生成された更新ビューを別のアプリケーションのウィンドウ内に提示することができるように、生成された更新ビュー１１２へのリンクを提示することもある。該リンクは、ハイパーリンクとすること、あるいはビューの全てまたは一部分を別のアプリケーションのウィンドウ内に開くことを可能にする他のタイプのリンクとすることができる。
【００４６】
図４は、エンティティをどのように表示すべきかを示すヒントを、スキーマ内に提供するための方法４００のフローチャートを図示している。方法４００を、環境１００の構成要素およびデータを頻繁に参照して説明する。
【００４７】
方法４００は、一般的ビューワ上に提示するために、１つまたは複数のデータ型に関連付けられた１つまたは複数のエンティティのビューを生成する動作（動作４１０）を含み、上記エンティティとデータ型は、対応するスキーマで定義された種々の関係を有し、該スキーマは、データとしてリポジトリ内にデータ型と共に記憶されている。例えば、ビューワ１１０は、ビューワ１１０上に提示するために、１つまたは複数のデータ型１３０Ｂに関連付けられたエンティティ１２０（例えば、エンティティ１２０Ａ−１２０Ｃ）のビュー１１１を生成することができ、ここで、エンティティ１２０とデータ型１３０Ｂは、対応するスキーマ１３０Ａで定義される関係１３０Ｄを有し、該スキーマ１３０Ａは、リポジトリ１２５内にデータ型１３０Ｂと共にデータとして記憶される。代替実施形態において、データフローエンジン１１５などの他のモジュールが、ビュー１１１を生成することもできる。
【００４８】
方法４００は、少なくとも１つのエンティティに対して取られるべきアクションを示す、ユーザ入力を受信する動作（動作４２０）を含む。例えば、ビューワ１１０は、「人」エンティティ１２０Ａに対して取られるべきアクションを示す、ユーザ入力１０６を受信することができる。ユーザ入力１０６によって、任意の妥当なアクションを指定することができることに留意されたい。例えば、取られるべきアクションには、作成、読み込み、更新、削除、編集、移動、複写（duplicating）、または任意の他のアクションが含まれ得る。ユーザ入力１０６には、マウスジェスチャ、キーボードジェスチャ、またはマウスジェスチャとキーボードジェスチャの組み合わせが含まれ得る。例えば、特定のキーストローク、または特定のマウスクリックが、削除、更新、または他のジェスチャとして解釈され得る。マウスジェスチャには、ダブルクリック、クリックアンドドラック、マウスオーバおよび全ての他の形式のマウスの通信が含まれ得る。カメラおよびタッチスクリーンなどの他の装置を使用して、ジェスチャを入力してもよい。ジェスチャの解釈および／またはジェスチャのコマンドへのマッピングは、ユーザにより手動で行うことも、またはソフトウェアプログラムにより自動で行うこともできる。コマンドへのジェスチャのマップは、ユーザ１０５によってカスタマイズされてもよい。
【００４９】
方法４００は、リポジトリ内に記憶された１つまたは複数のヒントにアクセスして、ユーザ入力に基づいてエンティティに対してどのアクションを実行すべきかを決定する動作（動作４３０）を含み、上記ヒントは、ユーザが特定の予め定義された入力を提供したときに、どの動作を取るべきかを記述している。例えば、データフローエンジン１１５は、リポジトリ１２５に記憶されたヒント１３０Ｃにアクセスして、ユーザ入力１０６に基づいてエンティティ（例えば、「人」）に対してどの動作を実行すべきかを決定することができる。ヒント１３０Ｃは、ユーザが特定のジェスチャを提供するとき、どの動作を取るべきかを記述することができる。例えば、ヒント１３０Ｃは、ユーザ入力１０６がエンティティに対するダブルクリックを含むとき、該エンティティが複写されるべきであることを指示することができる。他のヒントは、エンティティがダブルクリックされるとき、エンティティが編集に利用可能になることを示すことができる。ヒント１３０Ｃは、任意のジェスチャを、エンティティに対して使用され得る機能性の任意の一部に結び付けることができる。追加または代替的に、ヒントを使用してユーザがエンティティのプロパティを選択できるようにすることができる。例えば、ヒントは、特定のジェスチャを受信すると、エンティティのレイアウト、形状、色または他のプロパティを選択および／または変更することを指定することができる。一部の場合において、ヒントを使用して、ユーザ入力１０６を受信する前にビューを構築することができる。
【００５０】
方法４００は、決定されたアクションを、ユーザ入力に対応するヒントに従って実行する動作（動作４４０）を含む。例えば、コンピュータシステム１０１は、決定された動作をユーザ入力１０６に対応するヒント１３０Ｃに従って実行することができる。上記で説明したように、ユーザ入力１０６はジェスチャを含むことができる。該ジェスチャを、選択されたエンティティに対して取るべきアクションにマッピングすることができる。リポジトリ１２５は、受信したジェスチャに基づいてどの動作を実行すべきかを決定するのに全体としてまたはスキーマ１３０Ａに加えて使用される、ヒント１３０Cを記憶することができる。
【００５１】
図５は、１つまたは複数のエンティティに基づいて２つまたはそれ以上の構成されたビューの組み合わせを表示するための方法５００のフローチャートを図示している。方法５００を、図１、６Ａおよび６Ｂに示される環境の構成要素およびデータを頻繁に参照して説明する。
【００５２】
方法５００は、一般的ビューワ上に提示するために、１つまたは複数のデータ型に関連付けられた１つまたは複数のエンティティの第１のビューを生成する動作（動作５１０）を含み、上記エンティティとデータ型は、対応するスキーマ内で定義される種々の関係を有し、該スキーマは、データ型と共にリポジトリ内にデータとして記憶されている。例えば、方法３００に関して説明したように、ビューワ１１０は、データ型「ファーストネーム」に関連付けられた円グラフビュー６０５Ｂを生成することができる。ファーストネームのエンティティであるジョー、フランク、ビル、マイク、およびその他が６０５Ｂに示されている。これらのエンティティは、データ型１３０Ｂ（例えば「ファーストネーム」）と共にリポジトリ１２５内にデータとして記憶されているスキーマ１３０Ａに定義される関係を有する。ビュー６０５Ｂは、リポジトリ内のファーストネームの全てまたはサブセットを表すことができる。例えば、ビュー６０５Ｂは、会議の出席者のファーストネームを表すことができる。
【００５３】
方法５００は、一般的ビューワ上に提示するために、１つまたは複数のデータ型に関連付けられた１つまたは複数の異なるエンティティの第２のビューを生成するオプションの動作（動作５２０）を含む。例えば、動作５１０と同様に、ビューワ１１０は、ユーザ選択入力６１０Ｂに示されるように、選択されたデータ型に関連付けられたチャートまたは他のビューを生成することができる。第２のビューを、ビューワ１１０上に表示してもしなくとも良く、あるいは、第２のビューの少なくとも特定の部分を表示してもしなくとも良い。第２のビューを表示するかどうかは、ユーザによって決定され得る。一部の場合において、ユーザが、２つまたはそれ以上のビューの「マッシュアップ（mashup）」の作成を望むことがある。マッシュアップは、多数の異なるビューの１つまたは複数の要素の組み合わせ、または統合（integration）である。例えば、ユーザは、あるビューからの要素Ａと、あるビューからの要素Ｂと、および別のビューからの要素Ｃとを組み合わせて、それらを１つのビューに組み合わせることを望むことがある。これについて、以下により詳細に説明する。
【００５４】
方法５００は、第１のビューと第２のビューを統合すべきことを示す、ユーザ入力を受信する動作（動作５３０）を含む。例えば、コンピュータシステム１０１は、第１のビューと第２のビューが統合されるべきであることを示すユーザ選択入力６１０Ｂを受信することがある。一部の場合において、統合は、あるビューにおける次のユーザのアクション（例えば、選択）が、他のビューにおける変更を引き起こすこととなることを暗黙的に示す。一例では、第１のビューが、リポジトリ１２５内に記憶されるファーストネームのチャートを示すことがある。第２のビュー（図示せず）が、利用可能な会議（例えば会議Ａ−Ｅ）のチャートを含むことがある。ユーザ１０５は、会議Ａを選択し、そして、２つのビューを組み合わせることによって統合６２０Ｂを取得することができる。統合６２０Ｂは、会議Ａに出席者のファーストネームの円グラフビューを表す。このような統合は、リポジトリ１２５内のファーストネームのビューと、リポジトリ１２５内の利用可能な会議とのマッシュアップと称することができる。多数の他の例が可能である。統合６３０Ｂから分かるように、ユーザが出席者のファーストネーム（例えば、ジョー）および会議名（「会議Ａ」）を選択した場合、チャートは、会議Ａに出席したジョーという名前のユーザのグラフを示すことができる。他の名前／会議の関係およびチャートが可能である。さらに、任意のタイプのモデルまたはチャートを、任意のデータ型と同様に使用することができることに留意されたい。上記の説明は、単に説明の目的のために意図されたものであり、多数の可能な実施形態のうちのほんの数例を表すものである。
【００５５】
方法５００は、ユーザ入力に従って第１のビューと第２のビューを統合する動作（動作５４０）を含む。例えば、コンピュータシステム１０１は、ユーザ入力６１０Ｂに従って第１のビューと第２のビューを統合することができる。２つまたはそれ以上のビューの統合は、ユーザがどのようにデータが提示されることを望んでいるか、および各ビューのどの部分を統合全体において使用すべきかに基づくものとすることができる。一部の実施形態において、２つのビューを統合する方法は、入力６１０Ｂにおいてユーザがどのジェスチャを使用したかにより決定され得る。例えば、ユーザが第１のビューをクリックして第２のビューへドラッグした場合、統合には、第１のビューの全ての重複する要素を第２のビューからの要素で上書きするが、第１のビューの全ての固有の要素は保持することが含まれる。上記の例と同様に、これらは可能な統合のタイプを限定するように使用されるべきではない。
【００５６】
方法５００は、各エンティティの対応するスキーマに従って、第１のビューおよび第２ビューのエンティティを更新する動作（動作５５０）を含む。例えば、「ジョー」および「会議Ａ」などのエンティティを、上記の例で使用されるように、各エンティティの対応するスキーマに従って更新することができる。スキーマは、上記エンティティを更新する間に保持されるべき他のエンティティとの関係を指示することができる。一部の実施形態において、スキーマにアクセスして、どのように更新を実行すべきかを指示する、エンティティに対応する関係情報を取得することができる。一部の場合において、ビューの更新は、第２のビューの選択時に自動的に起こり得る。
【００５７】
以上、様々なデータ型の情報モデルを編集、ナビゲート、および操作するための実施形態を提示した。様々なデータ型のエンティティを、該データ型を事前に知る必要なく編集することができる。様々なデータ型のエンティティを、エンティティ間の関係に基づいてナビゲートすることができる。エンティティをどのように表示すべきかを示すヒントを、スキーマ内に提供することができる。また、２つまたはそれ以上の構成されたビューの組み合わせをユーザ選択入力に基づいて表示することができる。
【００５８】
本発明を、本発明の精神または主要な特徴から逸脱することなく他の特定の形式で具現化することができる。説明される実施形態は、全ての点において限定としてではなく単に例示としてみなされるべきである。本発明の範囲は、従って、前述の説明ではなく添付の特許請求の範囲によって示される。特許請求の範囲と等価の意味および範囲にある全ての変更がその範囲に含まれるべきである。
【図１】
0005587781.tif 000002
【図２】
0005587781.tif 000003
【図３】
0005587781.tif 000004
【図４】
0005587781.tif 000005
【図５】
0005587781.tif 000006
【図６Ａ】
0005587781.tif 000007
【図６Ｂ】
0005587781.tif 000008