(57)【要約】  １つの実施形態において、モデル内の目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する。モデルは、当該モデル内の目標オブジェクトを含むオブジェクト間の関係を定義する制約を含む基本的なスキーマに基づいている。コンピュータシステムは、基本的なスキーマ内の制約のうちの少なくとも１つが目標オブジェクトの指示された編集に関連付けられていることを判定し、当該編集が有効であることを判定する。有効な編集は、目標オブジェクトの指示された編集に関連付けられている制約に従う。他の実施形態において、コンピュータシステムは、編集を指示するユーザジェスチャを受信し、基本的なスキーマ内の制約が指示された編集に関連付けられていることを判定し、有効なモデル編集の表示をコンピュータユーザに提供する。
2011503680.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムにおいてモデル内の少なくとも１つの目標オブジェクトにおいて実行される編集の有効性を検証する方法であって、
前記モデル内の少なくとも１つの目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する動作であって、前記モデルが前記目標オブジェクトを含む前記モデル内のオブジェクト間の関係を定義する１または複数の制約を含む基本的なスキーマに基づいている動作と、
前記基本的なスキーマ内の前記制約のうちの少なくとも１つが前記目標オブジェクトの前記指示された編集に関連付けられていることを判定する動作と、
前記判定に基づいて、前記編集が有効であることを判定する動作であって、前記有効な編集が前記目標オブジェクトの前記指示された編集に関連付けられた前記少なくとも１つの制約に従っている動作と、
を含むことを特徴とする方法。
【請求項２】
視覚モデリングアプリケーション内に前記モデルを表示する動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記編集は有効であるという判定に応答して前記指示された編集を実行する動作をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
コンピュータシステムにおいてモデルオブジェクトに対応する示されたユーザジェスチャに基づいて１または複数の有効なモデル編集を提示する方法であって、
モデル内の少なくとも１つの目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する動作であって、前記モデルがオブジェクト間の関係を定義する１または複数の制約を含む基本的なスキーマに基づいている動作と、
前記基本的なスキーマ内の前記制約のうちの少なくとも１つが前記目標オブジェクトの前記指示された編集に関連付けられていることを判定する動作と、
少なくとも１つの有効なモデル編集の表示をユーザに提供する動作と、
を含むことを特徴とする方法。
【請求項５】
前記判定に基づいて、前記ユーザジェスチャに対応する前記モデル編集が無効であることを前記目標オブジェクトにおいて実行される前記指示された編集に関連付けられている前記制約に基づいて判定する動作をさらに含み、
前記少なくとも１つの有効なモデル編集の表示をユーザに提供する動作は、前記無効であることの判定に基づいていることを特徴とする請求項４に記載の方法。  
【請求項６】
前記判定に基づいて、前記ユーザジェスチャに対応する前記モデル編集が有効であることを前記目標オブジェクトにおいて実行される前記指示された編集に関連付けられている前記制約に基づいて判定する動作をさらに含み、
前記少なくとも１つの有効なモデル編集の表示をユーザに提供する動作は、前記有効であることの判定に基づいていることを特徴とする請求項４に記載の方法。
【請求項７】
前記有効なモデル編集は前記無効なモデル編集と機能的に実質同一であることを特徴とする請求項４に記載の方法。
【請求項８】
前記無効であることの判定に基づいて、前記モデル編集の実行を防止する動作をさらに含むことを特徴とする請求項４に記載の方法。
【請求項９】
前記無効判定に応答してかつ前記ユーザジェスチャに基づいて、前記目標オブジェクトに関連付けられている前記制約に従った１または複数の有効な編集を生成する動作をさらに含むことを特徴とする請求項４に記載の方法。
【請求項１０】
モデルオブジェクトはコネクタを用いて他のモデルオブジェクトと接続されており、前記コネクタは各々のオブジェクト内のエンドポイントに接続していることを特徴とする請求項４に記載の方法。
【請求項１１】
前記エンドポイントの各々は前記基本的なスキーマの少なくとも１つの制約に対応していることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記有効な編集は、前記目標オブジェクトのエンドポイントと他のオブジェクトのエンドポイントとの間にコネクタを設けることを含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記基本的なスキーマの少なくとも１つの制約に対応するエンドポイントがユーザディスプレイにおいて強調表示されることを特徴とする請求項１１に記載の方法。
【請求項１４】
前記示されたユーザジェスチャに応答しかつ前記基本的なスキーマの前記制約に従って、複数の有効なモデル編集が提供されることを特徴とする請求項４に記載の方法。
【請求項１５】
前記ユーザが選択する選択肢のリストを表示することを含み、前記リスト内の選択肢の各々は前記複数の有効なモデル編集のうちの少なくとも１つを含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記無効であることの判定に応答しかつ前記指示された編集に応答して、前記基本的なスキーマの前記制約に対応する新しいモデルオブジェクトを生成する動作をさらに含むことを特徴とする請求項４に記載の方法。
【請求項１７】
生成される新しいモデルオブジェクトのタイプを選択することを前記ユーザに可能とすることをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
コンピュータシステムの１または複数のプロセッサによって実行される際に、前記コンピュータシステムに、モデルオブジェクトに対応する示されたユーザジェスチャに基づいて１または複数の有効なモデル編集を提示する方法を実行させるコンピュータ実行可能命令を有する１または複数のコンピュータ可読媒体を含むコンピュータプログラムプロダクトであって、前記方法が、
モデル内のオブジェクトの選択を指示するユーザジェスチャを受信する動作であって、前記モデルが、前記モデル内のオブジェクト間の関係を定義する１または複数の制約を含む基本的なスキーマに基づいている動作と、
前記選択されたオブジェクトに対応する前記基本的なドメインモデル内の制約を評価する動作と、
前記選択されたオブジェクト及び前記制約の評価に基づいて、前記選択されたオブジェクトに対応する１または複数の有効なモデル編集を判定する動作と、
前記１または複数の有効なモデル編集を前記ユーザに表示する動作と、
を含むことを特徴とする方法。
【請求項１９】
前記表示された有効なモデル編集がテキスト形式で記述されることを特徴とする請求項１８に記載の方法。
【請求項２０】
前記表示された有効なモデル編集が前記モデルにおける前記編集の効果を示す重畳された画像を含むことを特徴とする請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リレーショナルモデルのインテリジェントな編集に関する。
【背景技術】
【０００２】
コンピュータは、職場のデバイス、家庭のデバイス及び携帯デバイスに高度に統合されている。コンピュータは、大量の情報を迅速及び効率的に処理可能である。コンピュータシステム上で動作するようにデザインされたソフトウェアアプリケーションは、ビジネス用途、学校の授業及びエンターテイメント等を含む広範な様々な機能をユーザが実行することを可能とする。ソフトウェアアプリケーションは、しばしば、文書を作成するためのワードプロセッサアプリケーション、または電子メールを送信し、受信しかつ整理する電子メールプログラム等の特定のタスクを実行するようにデザインされる。
【０００３】
いくつかの場合において、ソフトウェアアプリケーションを、モデルを生成及び操作するべく使用することができる。例えば、企業体及びその他の団体は、処理及びシステムを記述するためにモデルを使用することができる。モデルは、様々な形式で異なったタイプの情報を示すことができる。いくつかの場合において、モデルは、フロー図の形式でデータを示すことができる。その他の場合、モデルは処理フロー、フローチャート、プロセス図及び／または制御チャートの形式でデータを示すことができる。その他の場合、モデルは、システム内のリソース間の組織的関係を表示するべく使用される。これらのモデルは、しばしば、組織チャートと称される。より広い意味において、モデルを、異なったオブジェクト間の任意のタイプの関係情報を示すために使用することができる。
【０００４】
一般的に、モデルは、そのモデルにおいて使用されている用語体系（ｔｅｒｍｉｎｏｌｏｇｙ）を記述する付随するスキーマを有する。このスキーマは、凡例のような役割を果たし、ユーザまたはソフトウェアアプリケーションが当該スキーマを参考にして、モデルにおいて使用されている用語または記号の意図された意味を判定することを可能にする。いくつかのスキーマは、ユーザが定義可能なタグ（拡張マークアップ言語（ＸＭＬ）タグ）、及びモデル内の様々な要素と対応しているメタデータを含むことができる。このメタデータは、オブジェクトのルックアンドフィール（ｌｏｏｋ  ａｎｄ  ｆｅｅｌ）、オブジェクトのレイアウト及びオブジェクトの内容等のオブジェクトのプロパティを示すために使用することができる。従って、コンピュータで実行されるソフトウェアアプリケーションを、モデルを生成及び操作するために使用することができる。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書に記載された実施形態は、モデル内の目標オブジェクトにおいて実行される編集の有効性検証及び１または複数の有効な編集の提示に関する。１つの実施形態において、コンピュータシステムは、モデル内の少なくとも１つの目標オブジェクトにおいて行われる編集の有効性検証の方法を実行する。コンピュータシステムは、モデル内の目標オブジェクトにおいて実行される編集を指示するユーザのジェスチャを受信する。モデルは、当該モデルにおける目標オブジェクトを含むオブジェクト間の関係を定義する制約を含む基本的なスキーマに基づいている。コンピュータシステムは、基本的なスキーマ内の制約のうちの少なくとも１つが、当該目標オブジェクトの指示された編集に関連付けられていることを判定する。この判定に基づいて、コンピュータシステムは、編集が有効であることを判定する。有効な編集は、目標オブジェクトの指示された編集に関連付けられている制約に従う。
【０００６】
他の実施形態において、コンピュータシステムは、モデルオブジェクトに対応する示されたユーザジェスチャに基づいて有効なモデル編集を提示する。コンピュータシステムは、モデル内の目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する。当該モデルは、オブジェクト間の関係を定義する１または複数の制約を含む基本的なスキーマに基づいている。コンピュータシステムは、当該基本的なスキーマにおける少なくとも１つの制約が、目的オブジェクトの指示された編集に関連付けられていることを判定する。最後に、コンピュータシステムは、有効なモデル編集の表示をコンピュータユーザに提供する。
【０００７】
この発明の概要は、発明を実施するための形態において以下にさらに説明されるいくつかの概念を単純な形式で紹介するために提供される。この発明の概要は、本出願の特許請求の範囲に記載された発明の重要な特徴または本質的な特徴を特定することを目的としておらず、本願特許請求の範囲に記載された発明の範囲の判定に使用されることも目的としていない。
【０００８】
本発明の実施形態の上述並びに他の利点及び特徴をさらに明確にするために、本発明の実施形態のさらに具体的な説明が、添付の図面を参照することによって説明される。これらの図面は本発明の一般的な実施形態のみを示し、本発明を限定するものでは無いと理解される。本発明は、添付の図面を使用して、追加の特性及び詳細な内容とともに記載されかつ説明される。
【図面の簡単な説明】
【０００９】
【図１】実行される編集の有効性検証、及び示されたユーザジェスチャに基づいた有効なモデル編集の提示を含む本発明の実施形態が動作することができるコンピュータアーキテクチャを示す図である。
【図２】モデル内の少なくとも１つの目標オブジェクトにおいて実行される編集の有効性を検証する例示の方法のフローチャートを示した図である。
【図３】モデルオブジェクトに対応する示されたユーザジェスチャに基づいて有効なモデル編集を提示する例示の方法のフローチャートを示した図である。
【図４Ａ】モデル内のエンドポイント間の接続がユーザジェスチャに基づいて編集される本発明の実施形態を示した図である。
【図４Ｂ】モデル内のエンドポイント間の接続がユーザジェスチャに基づいて編集される本発明の実施形態を示した図である。
【図４Ｃ】モデル内のエンドポイント間の接続がユーザジェスチャに基づいて編集される本発明の実施形態を示した図である。
【図４Ｄ】モデル内のエンドポイント間の接続がユーザジェスチャに基づいて編集される本発明の実施形態を示した図である。
【発明を実施するための形態】
【００１０】
本明細書で説明される実施形態は、モデル内の目標オブジェクトにおいて実行される編集の有効性検証及び１または複数の有効な編集の提示に関する。１つの実施形態において、コンピュータシステムは、モデル内の少なくとも１つの目標オブジェクトにおいて行われる編集の有効性検証の方法を実行する。コンピュータシステムは、モデル内の目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する。モデルは、モデル内の目標オブジェクトを含むオブジェクト間の関係を定義する制約を含む基本的なスキーマに基づいている。コンピュータシステムは、基本的なスキーマ内の制約のうちの少なくとも１つが目標オブジェクトの指示された編集に関連付けられていることを判定する。当該判定に基づいて、コンピュータシステムは、当該編集が有効であることを判定する。当該有効な編集は、目標オブジェクトの指示された編集に関連付けられている制約に従う。
【００１１】
他の実施形態において、コンピュータシステムは、モデルオブジェクトに対応する示されたユーザジェスチャに基づいて有効なモデル編集を提示する。コンピュータシステムは、モデル内の目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する。当該モデルは、オブジェクト間の関係を定義する１または複数の制約を含む基本的なスキーマに基づいている。コンピュータシステムは、当該基本的なスキーマ内の制約のうちの少なくとも１つが、目標オブジェクトの指示された編集に関連付けられていることを判定する。最後に、コンピュータシステムは、有効なモデル編集の表示をコンピュータユーザに提供する。
【００１２】
本発明の実施形態は、以下でさらに説明されるように、コンピュータハードウェアを包含する特定用途のコンピュータもしくは汎用コンピュータを含むかまたは使用することができる。本発明の範囲内の実施形態は、コンピュータ実行可能命令及び／またはデータ構造を伝送または保存する物理コンピュータ可読媒体及びその他のコンピュータ可読媒体も含む。このようなコンピュータ可読媒体は、汎用コンピュータシステムまたは特定用途コンピュータシステムによってアクセス可能な任意の市販の媒体とすることができる。コンピュータ実行可能命令を保存するコンピュータ可読媒体は、物理記憶媒体である。コンピュータ実行可能命令を伝送するコンピュータ可読媒体は、伝送媒体である。従って、例示の目的であって限定するものではないが、本発明の実施形態は、少なくとも２つの明確に異なる種類のコンピュータ可読媒体、すなわち物理記憶媒体及び伝送媒体を含むことができる。
【００１３】
物理記憶媒体は、コンピュータ実行可能命令の形式で所望のプログラムコード手段を保存するために使用され、かつ汎用コンピュータまたは特定用途のコンピュータによってアクセス可能な、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくはその他の光学ディスク記憶媒体、磁気ディスク記憶デバイスもしくは他の磁気記憶デバイス、または他の任意の媒体を含むことができる。
【００１４】
「ネットワーク」は、コンピュータシステム及び／もしくはコンピュータモジュール並びに／または他の電子デバイス間での電子データの移送を可能とする１または複数のデータリンクとして定義される。情報がネットワークまたは他の通信接続（有線接続、無線接続または有線接続もしくは無線接続の組み合わせ）を介してコンピュータに伝送または提供される場合、当該コンピュータは、当該接続を伝送媒体として適切にみなす。伝送媒体は、コンピュータ実行可能命令の形式で所望のプログラムコード手段を伝送または移送するために使用され、かつ汎用コンピュータまたは特定用途のコンピュータによってアクセス可能なネットワーク及び／またはデータリンクを含むことができる。上述したものの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００１５】
しかし、様々なコンピュータシステムコンポーネントへの到達において、コンピュータ実行可能命令またはデータ構造の形式のプログラムコード手段を、伝送媒体から物理記憶媒体に自動的に移動することができる。例えば、ネットワークまたはデータリンクを介して受信されるコンピュータ実行可能命令またはデータ構造を、ネットワークインタフェースカード内にバッファすることができ、その後、最終的にコンピュータシステムにおいてコンピュータシステムＲＡＭ及び／またはより不揮発性の物理記憶媒体に移動することができる。従って、物理記憶媒体は、伝送媒体も使用する（または主に伝送媒体を使用する）コンピュータシステム内に含まれ得ると理解されるべきである。
【００１６】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、特定用途コンピュータまたは特定用途処理デバイスに特定の機能または機能のグループを実行させる命令及びデータを含む。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語等の中間フォーマット命令、またはソースコードとすることができる。本発明は構造的特徴及び／または方法論的動作に関して説明されたが、添付の特許請求の範囲において画定される本発明は、上述の説明された特徴または動作に必ずしも限定されるものではないことが理解されるべきである。むしろ、説明された機能及び動作は、特許請求の範囲に記載の発明を実施する例示の形態として開示されている。
【００１７】
図１は、本発明の原理が使用され得るコンピュータアーキテクチャ１００を示している。コンピュータアーキテクチャ１００は、コンピュータシステム１０１を含む。いくつかの実施形態において、コンピュータシステム１０１は、システムメモリ１５５及びプロセッサ１５６を含み得る。上述のように、メモリ１５５は、ＲＡＭ、ＲＯＭ、ソリッドステートメモリ、磁気メモリ他のメモリを含む。同様に、プロセッサ１５６は、任意のタイプのプロセッサ、マイクロコントローラ、ステートマシン、または他の情報処理手段及び／もしくはコンピュータシステム機能制御手段とすることができる。
【００１８】
コンピュータ１０１は、ジェスチャ受信モジュール１１０も含むことができる。いくつかの実施形態において、ジェスチャ受信モジュール１１０は、ユーザ１０５からユーザジェスチャ１０６を受信するように構成することができる。ユーザ１０５は、コンピュータシステムと対話可能な任意のタイプのコンピュータユーザとすることができる。ユーザジェスチャ１０６は、コンピュータシステムによって解釈可能な任意のタイプの入力とすることができる。例えば、ユーザジェスチャは、マウスクリック、キーボード入力、ドラッグアンドドロップ、クリックアンドドラッグ、マウスオーバー（ｍｏｕｓｅｏｖｅｒ）、タッチスクリーンを介したタッチ入力、またはカメラもしくはビデオレコーダによって取り込まれる任意のタイプのユーザの動作もしくは物体の動作を含むことができる。ジェスチャ受信モジュール１１０は、意図された命令としてユーザジェスチャ１０６を受信して解釈するように構成することができる。例えば、ユーザがドラッグアンドドロップジェスチャを入力した場合、ジェスチャ受信モジュール１１０は、アイテムを選択して当該アイテムが「ドロップ」されたロケーション（ｌｏｃａｔｉｏｎ）に当該アイテムを移動する命令、としてそのジェスチャを解釈することができる。もちろん、他の多くのジェスチャ／命令の組み合わせが可能である。追加的にまたは代替的に、ユーザ１０６は、どのくらいのジェスチャがジェスチャ受信モジュール１１０によって解釈されるべきかを定義できる。
【００１９】
解釈されたジェスチャの結果は、指示された編集１１１である。例えば、ユーザがジェスチャ１０６を入力した場合、ジェスチャ受信モジュール１１０は、ジェスチャを特定の命令として解釈することができる。この命令は、オブジェクトにおいて実行される編集を指定することができる（例えば、指示された編集１１１）。例えば、いくつかの場合において、コンピュータシステム１０１は、編集モデルとして構成される。本明細書で用いられるモデルという用語は、情報をユーザに表示することが可能な任意のタイプのフレームワークまたは構造を含み得る。このようなフレームワークは、情報を組織化するために使用され得る。例えば、モデルは、システム内のリソース間の組織化された関係を示すために使用することができる。これらは、しばしば、組織チャートまたはｏｒｇチャートと称される。ｏｒｇチャートは、しばしば、階層的な上から下への構造で情報を示す。モデルは、処理フローを示すためにも使用することができる。このようなモデルは、しばしば、フロー図、処理フロー、フローチャート、処理図または制御チャートと称される。これらのモデルは、処理がたどって完了することができる様々な経路を示す。様々なタイプの情報とリンクしている何らかのタイプの関係情報を用いて、様々な形式で表示されることが可能な他のモデルも使用することができる。
【００２０】
いくつかの場合において、モデルは、スキーマを使用して、当該モデルによって示された異なった情報間の関係を定義する。例えば、ｏｒｇチャートは、「社長」フィールドで開始し、「パートタイム」フィールドで終了することができ、その間にあるフィールドの各々は、他のフィールドとリンクされている。例えば、「社長」フィールドを、「副社長」フィールドにリンクすることができ、「副社長」フィールドを、「レベル１管理者」フィールドにリンクすることができ、「レベル１管理者」フィールドを、「パートタイム」フィールドにリンクすることができる。当該リンクの各々は関係として定義することができ、関係の各々は、当該モデルのスキーマ内の制約として保存することができる。当該スキーマは、フィールドの各々内に含まれ得る情報のタイプを定義することができる。例えば、「社長」タグがスキーマ内で使用されて、企業の社長に関連付けられた情報が指定され得る。「社長」タグは、「パートタイム」が許可される情報とは異なった情報を許可され得る。名前、住所、略歴、経歴、役員名簿等の情報を社長が取得可能であるのに対し、パートタイム従業員はより少ない情報が取得可能であり得る。
【００２１】
スキーマ及び制約を使用して、情報及び情報フィールド間の関係を定義するこの例は、モデル、スキーマ及び制約の多くの可能な用途の単なる一例である。他の変形例も可能である。この例は、モデル、スキーマ及び制約の間の相互関係を示すために提供される。
【００２２】
上述したように、ジェスチャ受信モジュール１１０は、ユーザジェスチャ１０６を受信し、当該ジェスチャをモデルの編集に使用される命令として解釈し、指示された編集１１１を出力する。指示された編集１１１は、アイテムを編集可能な任意のタイプの命令を含み得る。例えば、指示された編集１１１は、モデルを含むオブジェクトの変更を目的とした切り取り、コピー、貼り付け、色付け、リシェイプ（ｒｅ−ｓｈａｐｉｎｇ）、線描画、移動、再リンク、再接続、削除、追加、または他の任意の命令を含むことができる。いくつかの実施形態において、モデル１４０は、基本的なスキーマ１３５及び付随する制約１３７に基づいている。このような場合、基本的なスキーマ及び／または制約１３７は制限を含み、当該制限の中でモデル１４０における編集が実行される。従って、編集バリデータ１２０は、スキーマ１３５及び制約１３７の制限に照らして指示された編集１１１をチェックすることによって、指示された編集１１１を評価するように構成される。
【００２３】
例えば、いくつかの場合、ユーザ１０５は、スキーマ１３５及び制約１３７に基づいてモデル１４０を編集することを望むだろう。他の場合、ユーザ１０５は、選択されたスキーマ及び付随する制約に基づいてモデルを生成することを望むだろう。いくつかの場合、ユーザ１０５は、基本的なスキーマのグループ１３６から基本的なスキーマ１３５及び付随する制約１３７を選択することができ、スキーマの各々が付随する制約を有する。他の場合、ユーザは、モデルのグループ１４１から編集のためのモデルを選択することができる。このような場合、選択されたモデルは、基本的なスキーマのグループ１３６からの付随するスキーマ及び制約を有する。従って、ユーザ１０５がモデルを選択するかまたは単にスキーマのみを選択したとしても、制約関連付けモジュール１２５は、モデル及び／またはスキーマを受信し、付随する制約のいずれかが、指示された編集１１１に関連付けられているかを判定することができる。
【００２４】
制約関連付けモジュール１２５は、指示された編集に制約が関連付けられているかを様々な態様で判定するように構成することができる。例えば、ユーザ１０５は、オブジェクトを線で接続する目的で、一方のオブジェクトを他方のオブジェクト上にドラッグし、当該オブジェクトが何らかの関係を有することを指定する。制約関連付けモジュール１２５は、当該２つのオブジェクトを認識して当該制約にアクセスし、当該制約が当該２つのオブジェクトが接続され何らかの関係を有しているとして示されることを許容するかを判定する。制約の関連付け及び編集有効性判定は、以下でさらに詳細に説明される。
【００２５】
編集バリデータ１２０は、編集実行モジュール１３０と通信するように構成され得る。いくつかの実施形態において、編集バリデータによって当該編集が有効であると一度宣言されると、編集実行モジュール１３０が指示された編集を実行する。無効であると宣言された編集は留保され得、当該編集を無効であると特定するマーク付けされた形式でユーザに示され得ることに注目すべきである。さらに他の場合、どの編集が制約１３７に基づいて許容されるかに関するヒントが提供されることが望ましい。従って、編集バリデータ１２０が、指示された編集が有効であることを判定したとしても（例えば有効判定１２２）、バリデータ１２０は、他の許容される編集を示す１または複数のヒントを含み得る。従って、編集バリデータ１２０は、ヒントを伴った有効判定（１２１）、有効判定（１２２）、ヒントを伴った無効判定（１２３）及び無効判定（１２４）を出力することができる。よって、ヒントが提供された場合、ユーザ１０５は、当該指示された編集に加えてまたは代えて当該提供された編集を実行するように編集実行モジュール１３０に指示することができる。従って、編集実行モジュール１３０は、１または複数の指示された編集及び／または提供された編集に基づいてモデルを編集及び／または生成し、編集されたモデル１４５をもたらす。いくつかの場合において、編集バリデータ１２０、制約関連付けモジュール１２５及び編集実行モジュール１３０の組み合わせは、エディタ１１５と称される。
【００２６】
図２は、モデル内の少なくとも１つの目標オブジェクトにおいて実行される編集の有効性検証のための方法２００のフローチャートを示している。図４Ａから図４Ｄは、ユーザのジェスチャに基づいたモデル編集の例を示している。方法２００は、環境１００のコンポーネント及びデータ並びに図４Ａ−４Ｄのモデル編集例をしばしば参照しつつ説明される。
【００２７】
方法２００は、モデル内の少なくとも１つの目標オブジェクトにおいて実行される編集を指示するユーザのジェスチャを受信する動作を含み、当該モデルは、当該モデル内の目標オブジェクトを含むオブジェクト間の関係を定義する１または複数の制約を含む基本的なスキーマに基づいている（動作２１０）。例えば、ジェスチャ受信モジュール１１０は、指示された編集１１１がモデル１４０内の少なくとも１つの目標オブジェクトにおいて実行されるべきことを指示するユーザジェスチャを受信し得、モデル１４０は、モデル１４０内の目標オブジェクトを含むオブジェクト間の関係を定義する基本的なスキーマ１３５及び付随する制約１３７に基づいている。上述したように、ジェスチャ受信モジュール１１０は、ユーザ１０５からの任意のタイプのユーザジェスチャを受信することができる。いくつかの場合、モジュール１１０は、ジェスチャを解釈して当該ジェスチャによって指示される編集を特定するように構成される。
【００２８】
例えば、目標オブジェクトのダブルクリックまたは他のオブジェクト上への目標オブジェクトのドラッグアンドドロップ等のジェスチャは、異なった編集を指示することができる。いくつかの実施形態において、目標オブジェクトのダブルクリックは、当該目標オブジェクトを自動的に複製して、新しい全く同じオブジェクトを生成することができる。その一方で、他のオブジェクト上への目標オブジェクトのドラッグアンドドロップは、当該目標オブジェクトを当該他のオブジェクトと線または他のコネクタで接続することを指示することができる。上述の内容から分かるように、これら及び他のジェスチャの各々は、ジェスチャ受信モジュール１１０のデフォルト設定に基づいてかまたはモジュール１１０のユーザによってカスタマイズされた設定に基づいて異なって解釈され得る。
【００２９】
方法２００は、基本的スキーマ内の制約のうちの少なくとも１つが、目標オブジェクトの指示された編集に関連付けられていることを判定する動作（動作２２０）も含む。例えば、制約関連付けモジュール１２５は、基本的スキーマ１３５に付随する制約１３７のうちの少なくとも１つが目標オブジェクトの指示された編集１１１に関連付けられていることを判定することができる。いくつかの実施形態において、図４Ａのモデルオブジェクト４３１Ａは目標オブジェクトであり得る。例えば、図４Ａはジェスチャ４０１Ａを示し、ここでユーザ（例えばユーザ１０５）は、この場合において目標オブジェクトである選択オブジェクト４３０Ａとオブジェクト４３１Ａとの間に線４０５Ａを描画している。
【００３０】
モデルオブジェクトの各々は、オブジェクトにおいてコネクタを配置することができる位置を示すエンドポイントを有する。コネクタ４２５Ａ−Ｄは、オブジェクトを他のオブジェクトと接続する。いくつかの場合、接続は、モデルの基本的なスキーマ及び付随する制約によって定義されているようにオブジェクト間の関係を示す。従って、図４Ａ−４Ｄに示されているように、非マッチングエンドポイント４１５Ａ−Ｄは、選択オブジェクトを接続することができないオブジェクトの部分を示し、マッチングエンドポイント４１０Ａ−Ｄは、目標オブジェクトに接続され得るオブジェクトの部分を示し、接続はモデルの制約に基づいて許容される。
【００３１】
従って、図４Ａに示されたように、ユーザは、オブジェクト４３０Ａと４３１Ａとの間に線４０５Ａを描画するジェスチャを入力することができる。当該ジェスチャは、ジェスチャ受信モジュール１１０によって受信され、２つのオブジェクトがコネクタ（例えばコネクタ４２５Ａ）で接続されるべきことをジェスチャが指示していることが判定される。制約関連付けモジュール１２５は、コネクタで２つのオブジェクトを接続する指示された編集が、制約１３７によってマッチングエンドポイント４１０Ａにおいて許容されることを判定することができる。従って、結果４２０Ａは、オブジェクト４３０Ａ及び４３１Ａを、コネクタ４２５Ａによってマッチングエンドポイント４１０Ａで接続されているとして示している。
【００３２】
最後に、方法２００は、基本的なスキーマ内の制約のうちの少なくとも１つが目標オブジェクトの指示された編集に関連付けられていることの判定に基づいて、当該編集が有効であることを判定する動作を含み、当該有効な編集は、当該目標オブジェクトの指示された編集に関連付けられた少なくとも１つの制約に従う（２３０）。例えば、制約関連付けモジュール１２５による基本的なスキーマ１３５の制約１３７のうちの少なくとも１つがオブジェクト４３１Ａに対する指示された編集１１１に関連付けられているかの判定に基づいて、編集バリデータ１２０は、編集１１１がオブジェクト４３１Ａに対する指示された編集１１１に関連付けられた制約１３７のうちの少なくとも１つに従っている故に、指示された編集１１１が有効であることを判定する。従って、上述の例において、制約１３７がマッチングエンドポイント４１０Ａ間に関係が存在することを示す故に、かつユーザジェスチャがモデルに対して有効であると判定された（有効判定１２２）故に、マッチングエンドポイント４１０Ａ間にコネクタを描画する指示された編集は、編集実行モジュール１３０によって実行され得る（選択的動作２４０）。基本的なスキーマの少なくとも１つの制約に対応するエンドポイントは、ユーザのディスプレイにおいて強調され得る。いくつかの実施形態において、モデル１４０は、視覚モデリングアプリケーションにおいて表示され、編集されかつ／または生成され得る。
【００３３】
図３は、モデルオブジェクトに対応する指示されたユーザジェスチャに基づいて１または複数の有効なモデル編集を提示するための方法３００のフローチャートを示している。方法３００は、環境１００のコンポーネント及びデータ並びに図４Ａから図４Ｄのモデル編集例をしばしば参照しつつ説明される。
【００３４】
方法３００は、モデル内の少なくとも１つの目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する動作を含み、当該モデルはオブジェクト間の関係を定義する１または複数の制約を含む基本的なスキーマに基づいている（動作３１０）。例えば、ジェスチャ受信モジュール１１０は、ユーザジェスチャ１０６を受信して、指示された編集１１１がモデル１４０内の少なくとも１つの目標オブジェクト（例えばオブジェクト４３１Ｂ）において実行されるべきことを示すことができ、モデル１４０は、当該モデル内のオブジェクト間の関係を定義する制約１３７を含む基本的なスキーマ１３５に基づいている。
【００３５】
方法３００は、基本的なスキーマ内の制約のうちの少なくとも１つが、目標オブジェクトの指示された編集に関連付けられていることを判定する動作（動作３２０）も含む。例えば、制約関連付けモジュール１２５は、基本的なスキーマ１３５内の制約１３７のうちの少なくとも１つが目標オブジェクト（例えばオブジェクト４３１Ｂ）に対する指示された編集１１１に関連付けられていることを判定することができる。従って、選択オブジェクト及び／または目標オブジェクトに対応する基本的なドメインモデル（ｄｏｍａｉｎ  ｍｏｄｅｌ）内の制約が評価される。編集バリデータ１２０は、制約の評価に基づいて、指示された編集１１１の有効性に関する判定、特に、指示された編集１１１にモデルの制約が適用されるかの判定を行う。
【００３６】
方法３００は、基本的なスキーマ内の制約のうちの少なくとも１つが目標オブジェクトの指示された編集に関連付けられている判定に基づいて、ユーザジェスチャに対応するモデル編集が無効であることを、当該目標オブジェクトにおいて実行される指示された編集に関連付けられた制約に基づいて判定する動作（選択的動作３３０）を選択的に含む。例えば、基本的なスキーマ１３５内の制約１３７のうちの少なくとも１つが目標オブジェクト（例えばオブジェクト４３１Ｂ）に対する指示された編集１１１に関連付けられていることの判定に基づいて、編集バリデータ１２０は、当該目標オブジェクトにおいて実行される指示された編集１１１に関連付けられた制約１３７に基づいて、ユーザジェスチャ１０６に対応する指示された編集が無効であることを判定する。
【００３７】
指示された編集１１１は、様々な理由で無効と宣言され得る（無効判定１２４）。例えば、図４Ｂに示されているように、選択オブジェクト（例えばオブジェクト４３０Ｂ）は、目標オブジェクト（例えばオブジェクト４３１Ｂ）とのマッチングエンドポイントを持たない。さらに、制約１３７は、選択オブジェクト４３０Ｂ及び４３１Ｂが、それらの間の関係を有することを許容しないまたは許容されないことを示すことができる。例えば、モデルは複数のステップを有する処理フローチャートを含み得、ステップの各々は、連続して完了されなければならない。ユーザは、第１の処理ボックスの選択及び当該第１のボックスがコネクタによって第３の処理に接続されるべきことの指示を示すジェスチャを入力する（例えばユーザは、第３のボックス上に第１のボックスをドラッグする）。この場合、制約関連付けモジュールは、この編集に関連付けられた制約があることを判定し、編集バリデータは当該制約に基づいて無効判定を返信するだろう。これは、モデルの制約及び基本的スキーマによって判定された無効な編集の一例であり、多くの他の様々でさらに複雑な例も可能である。
【００３８】
最後に、方法３００は、有効性判定に基づいて、ユーザに対して少なくとも１つの有効なモデル編集の表示をする動作（動作３４０）を含む。例えば、有効性判定１２４に基づいて、編集バリデータ１２０は、コンピュータユーザ１０５に対して少なくとも１つの有効なモデル編集（例えば、ヒント１２１及び１２３）の表示をすることができる。図４Ｂに示されているように、ユーザはジェスチャ４０１Ｂを入力し得、ユーザ描画線４０５Ｂは選択オブジェクト４３０Ｂと目標オブジェクト４３１Ｂとの間にある。この場合、この２つのオブジェクトの間の潜在的な関係が決められていない故に、エンドポイントは存在しない。ジェスチャ４０１Ｂに基づいて指示された編集１１１が受信された後、編集バリデータは、制約１２５に基づいて、２つのオブジェクトが接続され得ることの表示、及び、さらにこれらのオブジェクトのどの部分が接続されるべきなのかの表示を提供することができる。従って、結果４２０Ｂにおいて、マッチングエンドポイント４１０Ｂ及び４１１Ｂはコネクタ４２５Ｂによって接続され、エンドポイント４１１Ｂがオブジェクト４１０Ｂ及び４１１Ｂに関する制約に基づいて生成される。
【００３９】
いくつかの場合において、編集バリデータ１２０は、編集が有効であると判定されたとしても、指示された編集１１１に基づいてヒントすなわち有効なモデル編集の表示を提供することができる。従って、編集バリデータ１２０は、編集実行モジュール１３０に４つの異なった判定、すなわち有効判定及びヒント１２１、有効判定１２２、無効判定及びヒント１２３並びに無効判定１２４を送信することができる。いくつかの場合において、編集バリデータ１２０は、指示された編集１１１に応答しかつ基本的なスキーマの制約に従って複数の有効なモデル編集を提供することができる。
【００４０】
図４Ｃに示されているように、モデルは複数のエンドポイントを有する複数のオブジェクトを有することができる。いくつかの実施形態において、ジェスチャ４０１Ｃの下で、ユーザは、選択モデルオブジェクト４３０Ｃをモデルオブジェクトのグループ４３５Ｃの線で囲まれた領域内にドラッグし、選択モデルオブジェクト４３０Ｃを当該領域内のどこかにドロップすることができる（ドラッグアンドドロップジェスチャ４０６Ｃ）。編集バリデータは、各々のモデルの各々のオブジェクトに対する制約に基づいて、可能なエンドポイントマッチングに関する判定を行うことができる（２以上のモデルが存在する場合）。従って、結果４２０Ｃにおいて、マッチングエンドポイント４１０Ｃは、コネクタ４２５Ｃを介して接続され、非マッチングエンドポイント４１５Ｃは接続されない。いくつかの場合において、対応する制約に従って２以上のエンドポイントがマッチングし、ユーザはオプションボックスで、１のボックスに接続するか、選択したボックスに接続するか、またはマッチングする全てのボックスに接続するかの決定するように指示され得る。さらに、いくつかの実施形態において、選択オブジェクト４３０Ｃとのマッチングエンドポイントを有さないオブジェクトは、放棄されるかまたは表示から除去されるので、ユーザが選択オブジェクト４３０Ｃに関連付けられたオブジェクトに集中することが可能となる。
【００４１】
図４Ｄにおいて、他のシナリオがジェスチャ４０１Ｄの下で示され、このシナリオにおいて、ユーザは選択オブジェクト４３０Ｄを選択し、これを視覚モデル編集プログラム内の空きスペース内にドラッグアンドドロップする。いくつかの実施形態において、ユーザ１０５は、１または複数の他のオブジェクト（例えばモデル）内の他のエンドポイントにマッチングされるべきエンドポイント（例えばエンドポイント４１２Ｄ）を選択している。マッチングエンドポイント４５０Ｄを有するオブジェクトテンプレートのセットがユーザに示され得、ユーザがエンドポイント４１２に対応するエンドポイントを有するオブジェクトテンプレート間で、オブジェクトの各々の基本的なスキーマの制約に従って選択することを可能とされる。従って、この例において、ユーザはオブジェクトテンプレート４５１Ｄ、４５２Ｄ及び４５３Ｄから選択を行ってもよく、当該オブジェクトテンプレートの各々は、少なくとも１つのマッチングエンドポイントを有する。結果４２０Ｄに示されているように、ユーザ１０５はオブジェクトテンプレート４５３Ｄを選択し得、オブジェクトテンプレート４５３Ｄのマッチングエンドポイント（例えば、マッチングエンドポイント４１０Ｄ）は、コネクタ４２５Ｄによって接続される。オブジェクトの非マッチングエンドポイント４１５Ｄは接続されない。上述のシナリオと同様に、ユーザは、マッチングエンドポイントを有する複数のオブジェクトを任意に選択することができる。さらに、ユーザは、選択オブジェクトにおいて実行される他の編集を指示するジェスチャを行い得る。これらのジェスチャは、基本的なスキーマ（単数または複数）の制約に基づいて有効だと判定された場合に、同様に処理され、実行される。
【００４２】
いくつかの場合において、編集バリデータ１２０は、無効なモデル編集と機能的に実質同一な有効なモデル編集を含むヒントを提供する。従って、ユーザがオブジェクトを変更しようとするかまたは２つのオブジェクト間の関係を形成しようとしかつジェスチャが無効な編集をもたらす場合、編集バリデータ１２０は当該ジェスチャによって指示されたのと同様の他の編集を決定することができる。
【００４３】
いくつかの実施形態において、指示された編集１１１は無効であるという判定において、編集実行モジュール１３０はモデル編集が実行されるのを防止することができる。追加的にまたは代替的に、編集実行モジュール１３０は、基本的なスキーマの制約に対応する新しいモデルオブジェクトを生成することができる。ユーザは、生成される新しいモデルオブジェクトのタイプを選択することができる。いくつかの実施形態において、ヒントとして提供されて表示されるモデル編集は、テキスト形式で記述することができる。他の場合、表示される有効なモデル編集は、モデルにおける編集の提示された効果を示す重畳された画像を含むことができる。従って、ユーザは、当該重畳された画像から当該編集を実行するか否かを判定可能だろう。
【００４４】
従って、ユーザは、１または複数のモデルにおいて実行されるべき編集を示すジェスチャを行うことができる。編集の有効性は、それらが適用される前に判定され、ユーザが、モデル（１または複数）の基本的なスキーマ（１または複数）の制約に基づいた有効な態様においてモデル（１または複数）を編集することが保証される。さらに、ユーザが無効な編集を指示した場合、ヒントが提供されるので、ユーザはモデルにおいて実行される有効な編集を指示可能である。
【００４５】
本発明は、本発明の趣旨または本質的な特徴から逸脱することなく、他の特定の態様で実施され得る。説明された実施形態は、全てにおいて単なる例示であって限定的なものではないと考えられるべきである。従って、本発明の範囲は、上述の説明よりもむしろ添付の特許請求の範囲によって示される。特許請求の範囲に記載の発明と均等な意味及び範囲内ある全ての変更は、それらの範囲内に包含される。
【図１】
2011503680.tif 000003
【図２】
2011503680.tif 000004
【図３】
2011503680.tif 000005
【図４Ａ】
2011503680.tif 000006
【図４Ｂ】
2011503680.tif 000007
【図４Ｃ】
2011503680.tif 000008
【図４Ｄ】
2011503680.tif 000009
【国際調査報告】
2011503680.tif 000010
2011503680.tif 000011