説明

リレーショナルモデルのインテリジェントな編集

1つの実施形態において、モデル内の目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する。モデルは、当該モデル内の目標オブジェクトを含むオブジェクト間の関係を定義する制約を含む基本的なスキーマに基づいている。コンピュータシステムは、基本的なスキーマ内の制約のうちの少なくとも1つが目標オブジェクトの指示された編集に関連付けられていることを判定し、当該編集が有効であることを判定する。有効な編集は、目標オブジェクトの指示された編集に関連付けられている制約に従う。他の実施形態において、コンピュータシステムは、編集を指示するユーザジェスチャを受信し、基本的なスキーマ内の制約が指示された編集に関連付けられていることを判定し、有効なモデル編集の表示をコンピュータユーザに提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、リレーショナルモデルのインテリジェントな編集に関する。
【背景技術】
【0002】
コンピュータは、職場のデバイス、家庭のデバイス及び携帯デバイスに高度に統合されている。コンピュータは、大量の情報を迅速及び効率的に処理可能である。コンピュータシステム上で動作するようにデザインされたソフトウェアアプリケーションは、ビジネス用途、学校の授業及びエンターテイメント等を含む広範な様々な機能をユーザが実行することを可能とする。ソフトウェアアプリケーションは、しばしば、文書を作成するためのワードプロセッサアプリケーション、または電子メールを送信し、受信しかつ整理する電子メールプログラム等の特定のタスクを実行するようにデザインされる。
【0003】
いくつかの場合において、ソフトウェアアプリケーションを、モデルを生成及び操作するべく使用することができる。例えば、企業体及びその他の団体は、処理及びシステムを記述するためにモデルを使用することができる。モデルは、様々な形式で異なったタイプの情報を示すことができる。いくつかの場合において、モデルは、フロー図の形式でデータを示すことができる。その他の場合、モデルは処理フロー、フローチャート、プロセス図及び/または制御チャートの形式でデータを示すことができる。その他の場合、モデルは、システム内のリソース間の組織的関係を表示するべく使用される。これらのモデルは、しばしば、組織チャートと称される。より広い意味において、モデルを、異なったオブジェクト間の任意のタイプの関係情報を示すために使用することができる。
【0004】
一般的に、モデルは、そのモデルにおいて使用されている用語体系(terminology)を記述する付随するスキーマを有する。このスキーマは、凡例のような役割を果たし、ユーザまたはソフトウェアアプリケーションが当該スキーマを参考にして、モデルにおいて使用されている用語または記号の意図された意味を判定することを可能にする。いくつかのスキーマは、ユーザが定義可能なタグ(拡張マークアップ言語(XML)タグ)、及びモデル内の様々な要素と対応しているメタデータを含むことができる。このメタデータは、オブジェクトのルックアンドフィール(look and feel)、オブジェクトのレイアウト及びオブジェクトの内容等のオブジェクトのプロパティを示すために使用することができる。従って、コンピュータで実行されるソフトウェアアプリケーションを、モデルを生成及び操作するために使用することができる。
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書に記載された実施形態は、モデル内の目標オブジェクトにおいて実行される編集の有効性検証及び1または複数の有効な編集の提示に関する。1つの実施形態において、コンピュータシステムは、モデル内の少なくとも1つの目標オブジェクトにおいて行われる編集の有効性検証の方法を実行する。コンピュータシステムは、モデル内の目標オブジェクトにおいて実行される編集を指示するユーザのジェスチャを受信する。モデルは、当該モデルにおける目標オブジェクトを含むオブジェクト間の関係を定義する制約を含む基本的なスキーマに基づいている。コンピュータシステムは、基本的なスキーマ内の制約のうちの少なくとも1つが、当該目標オブジェクトの指示された編集に関連付けられていることを判定する。この判定に基づいて、コンピュータシステムは、編集が有効であることを判定する。有効な編集は、目標オブジェクトの指示された編集に関連付けられている制約に従う。
【0006】
他の実施形態において、コンピュータシステムは、モデルオブジェクトに対応する示されたユーザジェスチャに基づいて有効なモデル編集を提示する。コンピュータシステムは、モデル内の目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する。当該モデルは、オブジェクト間の関係を定義する1または複数の制約を含む基本的なスキーマに基づいている。コンピュータシステムは、当該基本的なスキーマにおける少なくとも1つの制約が、目的オブジェクトの指示された編集に関連付けられていることを判定する。最後に、コンピュータシステムは、有効なモデル編集の表示をコンピュータユーザに提供する。
【0007】
この発明の概要は、発明を実施するための形態において以下にさらに説明されるいくつかの概念を単純な形式で紹介するために提供される。この発明の概要は、本出願の特許請求の範囲に記載された発明の重要な特徴または本質的な特徴を特定することを目的としておらず、本願特許請求の範囲に記載された発明の範囲の判定に使用されることも目的としていない。
【0008】
本発明の実施形態の上述並びに他の利点及び特徴をさらに明確にするために、本発明の実施形態のさらに具体的な説明が、添付の図面を参照することによって説明される。これらの図面は本発明の一般的な実施形態のみを示し、本発明を限定するものでは無いと理解される。本発明は、添付の図面を使用して、追加の特性及び詳細な内容とともに記載されかつ説明される。
【図面の簡単な説明】
【0009】
【図1】実行される編集の有効性検証、及び示されたユーザジェスチャに基づいた有効なモデル編集の提示を含む本発明の実施形態が動作することができるコンピュータアーキテクチャを示す図である。
【図2】モデル内の少なくとも1つの目標オブジェクトにおいて実行される編集の有効性を検証する例示の方法のフローチャートを示した図である。
【図3】モデルオブジェクトに対応する示されたユーザジェスチャに基づいて有効なモデル編集を提示する例示の方法のフローチャートを示した図である。
【図4A】モデル内のエンドポイント間の接続がユーザジェスチャに基づいて編集される本発明の実施形態を示した図である。
【図4B】モデル内のエンドポイント間の接続がユーザジェスチャに基づいて編集される本発明の実施形態を示した図である。
【図4C】モデル内のエンドポイント間の接続がユーザジェスチャに基づいて編集される本発明の実施形態を示した図である。
【図4D】モデル内のエンドポイント間の接続がユーザジェスチャに基づいて編集される本発明の実施形態を示した図である。
【発明を実施するための形態】
【0010】
本明細書で説明される実施形態は、モデル内の目標オブジェクトにおいて実行される編集の有効性検証及び1または複数の有効な編集の提示に関する。1つの実施形態において、コンピュータシステムは、モデル内の少なくとも1つの目標オブジェクトにおいて行われる編集の有効性検証の方法を実行する。コンピュータシステムは、モデル内の目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する。モデルは、モデル内の目標オブジェクトを含むオブジェクト間の関係を定義する制約を含む基本的なスキーマに基づいている。コンピュータシステムは、基本的なスキーマ内の制約のうちの少なくとも1つが目標オブジェクトの指示された編集に関連付けられていることを判定する。当該判定に基づいて、コンピュータシステムは、当該編集が有効であることを判定する。当該有効な編集は、目標オブジェクトの指示された編集に関連付けられている制約に従う。
【0011】
他の実施形態において、コンピュータシステムは、モデルオブジェクトに対応する示されたユーザジェスチャに基づいて有効なモデル編集を提示する。コンピュータシステムは、モデル内の目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する。当該モデルは、オブジェクト間の関係を定義する1または複数の制約を含む基本的なスキーマに基づいている。コンピュータシステムは、当該基本的なスキーマ内の制約のうちの少なくとも1つが、目標オブジェクトの指示された編集に関連付けられていることを判定する。最後に、コンピュータシステムは、有効なモデル編集の表示をコンピュータユーザに提供する。
【0012】
本発明の実施形態は、以下でさらに説明されるように、コンピュータハードウェアを包含する特定用途のコンピュータもしくは汎用コンピュータを含むかまたは使用することができる。本発明の範囲内の実施形態は、コンピュータ実行可能命令及び/またはデータ構造を伝送または保存する物理コンピュータ可読媒体及びその他のコンピュータ可読媒体も含む。このようなコンピュータ可読媒体は、汎用コンピュータシステムまたは特定用途コンピュータシステムによってアクセス可能な任意の市販の媒体とすることができる。コンピュータ実行可能命令を保存するコンピュータ可読媒体は、物理記憶媒体である。コンピュータ実行可能命令を伝送するコンピュータ可読媒体は、伝送媒体である。従って、例示の目的であって限定するものではないが、本発明の実施形態は、少なくとも2つの明確に異なる種類のコンピュータ可読媒体、すなわち物理記憶媒体及び伝送媒体を含むことができる。
【0013】
物理記憶媒体は、コンピュータ実行可能命令の形式で所望のプログラムコード手段を保存するために使用され、かつ汎用コンピュータまたは特定用途のコンピュータによってアクセス可能な、RAM、ROM、EEPROM、CD−ROMもしくはその他の光学ディスク記憶媒体、磁気ディスク記憶デバイスもしくは他の磁気記憶デバイス、または他の任意の媒体を含むことができる。
【0014】
「ネットワーク」は、コンピュータシステム及び/もしくはコンピュータモジュール並びに/または他の電子デバイス間での電子データの移送を可能とする1または複数のデータリンクとして定義される。情報がネットワークまたは他の通信接続(有線接続、無線接続または有線接続もしくは無線接続の組み合わせ)を介してコンピュータに伝送または提供される場合、当該コンピュータは、当該接続を伝送媒体として適切にみなす。伝送媒体は、コンピュータ実行可能命令の形式で所望のプログラムコード手段を伝送または移送するために使用され、かつ汎用コンピュータまたは特定用途のコンピュータによってアクセス可能なネットワーク及び/またはデータリンクを含むことができる。上述したものの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0015】
しかし、様々なコンピュータシステムコンポーネントへの到達において、コンピュータ実行可能命令またはデータ構造の形式のプログラムコード手段を、伝送媒体から物理記憶媒体に自動的に移動することができる。例えば、ネットワークまたはデータリンクを介して受信されるコンピュータ実行可能命令またはデータ構造を、ネットワークインタフェースカード内にバッファすることができ、その後、最終的にコンピュータシステムにおいてコンピュータシステムRAM及び/またはより不揮発性の物理記憶媒体に移動することができる。従って、物理記憶媒体は、伝送媒体も使用する(または主に伝送媒体を使用する)コンピュータシステム内に含まれ得ると理解されるべきである。
【0016】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、特定用途コンピュータまたは特定用途処理デバイスに特定の機能または機能のグループを実行させる命令及びデータを含む。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語等の中間フォーマット命令、またはソースコードとすることができる。本発明は構造的特徴及び/または方法論的動作に関して説明されたが、添付の特許請求の範囲において画定される本発明は、上述の説明された特徴または動作に必ずしも限定されるものではないことが理解されるべきである。むしろ、説明された機能及び動作は、特許請求の範囲に記載の発明を実施する例示の形態として開示されている。
【0017】
図1は、本発明の原理が使用され得るコンピュータアーキテクチャ100を示している。コンピュータアーキテクチャ100は、コンピュータシステム101を含む。いくつかの実施形態において、コンピュータシステム101は、システムメモリ155及びプロセッサ156を含み得る。上述のように、メモリ155は、RAM、ROM、ソリッドステートメモリ、磁気メモリ他のメモリを含む。同様に、プロセッサ156は、任意のタイプのプロセッサ、マイクロコントローラ、ステートマシン、または他の情報処理手段及び/もしくはコンピュータシステム機能制御手段とすることができる。
【0018】
コンピュータ101は、ジェスチャ受信モジュール110も含むことができる。いくつかの実施形態において、ジェスチャ受信モジュール110は、ユーザ105からユーザジェスチャ106を受信するように構成することができる。ユーザ105は、コンピュータシステムと対話可能な任意のタイプのコンピュータユーザとすることができる。ユーザジェスチャ106は、コンピュータシステムによって解釈可能な任意のタイプの入力とすることができる。例えば、ユーザジェスチャは、マウスクリック、キーボード入力、ドラッグアンドドロップ、クリックアンドドラッグ、マウスオーバー(mouseover)、タッチスクリーンを介したタッチ入力、またはカメラもしくはビデオレコーダによって取り込まれる任意のタイプのユーザの動作もしくは物体の動作を含むことができる。ジェスチャ受信モジュール110は、意図された命令としてユーザジェスチャ106を受信して解釈するように構成することができる。例えば、ユーザがドラッグアンドドロップジェスチャを入力した場合、ジェスチャ受信モジュール110は、アイテムを選択して当該アイテムが「ドロップ」されたロケーション(location)に当該アイテムを移動する命令、としてそのジェスチャを解釈することができる。もちろん、他の多くのジェスチャ/命令の組み合わせが可能である。追加的にまたは代替的に、ユーザ106は、どのくらいのジェスチャがジェスチャ受信モジュール110によって解釈されるべきかを定義できる。
【0019】
解釈されたジェスチャの結果は、指示された編集111である。例えば、ユーザがジェスチャ106を入力した場合、ジェスチャ受信モジュール110は、ジェスチャを特定の命令として解釈することができる。この命令は、オブジェクトにおいて実行される編集を指定することができる(例えば、指示された編集111)。例えば、いくつかの場合において、コンピュータシステム101は、編集モデルとして構成される。本明細書で用いられるモデルという用語は、情報をユーザに表示することが可能な任意のタイプのフレームワークまたは構造を含み得る。このようなフレームワークは、情報を組織化するために使用され得る。例えば、モデルは、システム内のリソース間の組織化された関係を示すために使用することができる。これらは、しばしば、組織チャートまたはorgチャートと称される。orgチャートは、しばしば、階層的な上から下への構造で情報を示す。モデルは、処理フローを示すためにも使用することができる。このようなモデルは、しばしば、フロー図、処理フロー、フローチャート、処理図または制御チャートと称される。これらのモデルは、処理がたどって完了することができる様々な経路を示す。様々なタイプの情報とリンクしている何らかのタイプの関係情報を用いて、様々な形式で表示されることが可能な他のモデルも使用することができる。
【0020】
いくつかの場合において、モデルは、スキーマを使用して、当該モデルによって示された異なった情報間の関係を定義する。例えば、orgチャートは、「社長」フィールドで開始し、「パートタイム」フィールドで終了することができ、その間にあるフィールドの各々は、他のフィールドとリンクされている。例えば、「社長」フィールドを、「副社長」フィールドにリンクすることができ、「副社長」フィールドを、「レベル1管理者」フィールドにリンクすることができ、「レベル1管理者」フィールドを、「パートタイム」フィールドにリンクすることができる。当該リンクの各々は関係として定義することができ、関係の各々は、当該モデルのスキーマ内の制約として保存することができる。当該スキーマは、フィールドの各々内に含まれ得る情報のタイプを定義することができる。例えば、「社長」タグがスキーマ内で使用されて、企業の社長に関連付けられた情報が指定され得る。「社長」タグは、「パートタイム」が許可される情報とは異なった情報を許可され得る。名前、住所、略歴、経歴、役員名簿等の情報を社長が取得可能であるのに対し、パートタイム従業員はより少ない情報が取得可能であり得る。
【0021】
スキーマ及び制約を使用して、情報及び情報フィールド間の関係を定義するこの例は、モデル、スキーマ及び制約の多くの可能な用途の単なる一例である。他の変形例も可能である。この例は、モデル、スキーマ及び制約の間の相互関係を示すために提供される。
【0022】
上述したように、ジェスチャ受信モジュール110は、ユーザジェスチャ106を受信し、当該ジェスチャをモデルの編集に使用される命令として解釈し、指示された編集111を出力する。指示された編集111は、アイテムを編集可能な任意のタイプの命令を含み得る。例えば、指示された編集111は、モデルを含むオブジェクトの変更を目的とした切り取り、コピー、貼り付け、色付け、リシェイプ(re−shaping)、線描画、移動、再リンク、再接続、削除、追加、または他の任意の命令を含むことができる。いくつかの実施形態において、モデル140は、基本的なスキーマ135及び付随する制約137に基づいている。このような場合、基本的なスキーマ及び/または制約137は制限を含み、当該制限の中でモデル140における編集が実行される。従って、編集バリデータ120は、スキーマ135及び制約137の制限に照らして指示された編集111をチェックすることによって、指示された編集111を評価するように構成される。
【0023】
例えば、いくつかの場合、ユーザ105は、スキーマ135及び制約137に基づいてモデル140を編集することを望むだろう。他の場合、ユーザ105は、選択されたスキーマ及び付随する制約に基づいてモデルを生成することを望むだろう。いくつかの場合、ユーザ105は、基本的なスキーマのグループ136から基本的なスキーマ135及び付随する制約137を選択することができ、スキーマの各々が付随する制約を有する。他の場合、ユーザは、モデルのグループ141から編集のためのモデルを選択することができる。このような場合、選択されたモデルは、基本的なスキーマのグループ136からの付随するスキーマ及び制約を有する。従って、ユーザ105がモデルを選択するかまたは単にスキーマのみを選択したとしても、制約関連付けモジュール125は、モデル及び/またはスキーマを受信し、付随する制約のいずれかが、指示された編集111に関連付けられているかを判定することができる。
【0024】
制約関連付けモジュール125は、指示された編集に制約が関連付けられているかを様々な態様で判定するように構成することができる。例えば、ユーザ105は、オブジェクトを線で接続する目的で、一方のオブジェクトを他方のオブジェクト上にドラッグし、当該オブジェクトが何らかの関係を有することを指定する。制約関連付けモジュール125は、当該2つのオブジェクトを認識して当該制約にアクセスし、当該制約が当該2つのオブジェクトが接続され何らかの関係を有しているとして示されることを許容するかを判定する。制約の関連付け及び編集有効性判定は、以下でさらに詳細に説明される。
【0025】
編集バリデータ120は、編集実行モジュール130と通信するように構成され得る。いくつかの実施形態において、編集バリデータによって当該編集が有効であると一度宣言されると、編集実行モジュール130が指示された編集を実行する。無効であると宣言された編集は留保され得、当該編集を無効であると特定するマーク付けされた形式でユーザに示され得ることに注目すべきである。さらに他の場合、どの編集が制約137に基づいて許容されるかに関するヒントが提供されることが望ましい。従って、編集バリデータ120が、指示された編集が有効であることを判定したとしても(例えば有効判定122)、バリデータ120は、他の許容される編集を示す1または複数のヒントを含み得る。従って、編集バリデータ120は、ヒントを伴った有効判定(121)、有効判定(122)、ヒントを伴った無効判定(123)及び無効判定(124)を出力することができる。よって、ヒントが提供された場合、ユーザ105は、当該指示された編集に加えてまたは代えて当該提供された編集を実行するように編集実行モジュール130に指示することができる。従って、編集実行モジュール130は、1または複数の指示された編集及び/または提供された編集に基づいてモデルを編集及び/または生成し、編集されたモデル145をもたらす。いくつかの場合において、編集バリデータ120、制約関連付けモジュール125及び編集実行モジュール130の組み合わせは、エディタ115と称される。
【0026】
図2は、モデル内の少なくとも1つの目標オブジェクトにおいて実行される編集の有効性検証のための方法200のフローチャートを示している。図4Aから図4Dは、ユーザのジェスチャに基づいたモデル編集の例を示している。方法200は、環境100のコンポーネント及びデータ並びに図4A−4Dのモデル編集例をしばしば参照しつつ説明される。
【0027】
方法200は、モデル内の少なくとも1つの目標オブジェクトにおいて実行される編集を指示するユーザのジェスチャを受信する動作を含み、当該モデルは、当該モデル内の目標オブジェクトを含むオブジェクト間の関係を定義する1または複数の制約を含む基本的なスキーマに基づいている(動作210)。例えば、ジェスチャ受信モジュール110は、指示された編集111がモデル140内の少なくとも1つの目標オブジェクトにおいて実行されるべきことを指示するユーザジェスチャを受信し得、モデル140は、モデル140内の目標オブジェクトを含むオブジェクト間の関係を定義する基本的なスキーマ135及び付随する制約137に基づいている。上述したように、ジェスチャ受信モジュール110は、ユーザ105からの任意のタイプのユーザジェスチャを受信することができる。いくつかの場合、モジュール110は、ジェスチャを解釈して当該ジェスチャによって指示される編集を特定するように構成される。
【0028】
例えば、目標オブジェクトのダブルクリックまたは他のオブジェクト上への目標オブジェクトのドラッグアンドドロップ等のジェスチャは、異なった編集を指示することができる。いくつかの実施形態において、目標オブジェクトのダブルクリックは、当該目標オブジェクトを自動的に複製して、新しい全く同じオブジェクトを生成することができる。その一方で、他のオブジェクト上への目標オブジェクトのドラッグアンドドロップは、当該目標オブジェクトを当該他のオブジェクトと線または他のコネクタで接続することを指示することができる。上述の内容から分かるように、これら及び他のジェスチャの各々は、ジェスチャ受信モジュール110のデフォルト設定に基づいてかまたはモジュール110のユーザによってカスタマイズされた設定に基づいて異なって解釈され得る。
【0029】
方法200は、基本的スキーマ内の制約のうちの少なくとも1つが、目標オブジェクトの指示された編集に関連付けられていることを判定する動作(動作220)も含む。例えば、制約関連付けモジュール125は、基本的スキーマ135に付随する制約137のうちの少なくとも1つが目標オブジェクトの指示された編集111に関連付けられていることを判定することができる。いくつかの実施形態において、図4Aのモデルオブジェクト431Aは目標オブジェクトであり得る。例えば、図4Aはジェスチャ401Aを示し、ここでユーザ(例えばユーザ105)は、この場合において目標オブジェクトである選択オブジェクト430Aとオブジェクト431Aとの間に線405Aを描画している。
【0030】
モデルオブジェクトの各々は、オブジェクトにおいてコネクタを配置することができる位置を示すエンドポイントを有する。コネクタ425A−Dは、オブジェクトを他のオブジェクトと接続する。いくつかの場合、接続は、モデルの基本的なスキーマ及び付随する制約によって定義されているようにオブジェクト間の関係を示す。従って、図4A−4Dに示されているように、非マッチングエンドポイント415A−Dは、選択オブジェクトを接続することができないオブジェクトの部分を示し、マッチングエンドポイント410A−Dは、目標オブジェクトに接続され得るオブジェクトの部分を示し、接続はモデルの制約に基づいて許容される。
【0031】
従って、図4Aに示されたように、ユーザは、オブジェクト430Aと431Aとの間に線405Aを描画するジェスチャを入力することができる。当該ジェスチャは、ジェスチャ受信モジュール110によって受信され、2つのオブジェクトがコネクタ(例えばコネクタ425A)で接続されるべきことをジェスチャが指示していることが判定される。制約関連付けモジュール125は、コネクタで2つのオブジェクトを接続する指示された編集が、制約137によってマッチングエンドポイント410Aにおいて許容されることを判定することができる。従って、結果420Aは、オブジェクト430A及び431Aを、コネクタ425Aによってマッチングエンドポイント410Aで接続されているとして示している。
【0032】
最後に、方法200は、基本的なスキーマ内の制約のうちの少なくとも1つが目標オブジェクトの指示された編集に関連付けられていることの判定に基づいて、当該編集が有効であることを判定する動作を含み、当該有効な編集は、当該目標オブジェクトの指示された編集に関連付けられた少なくとも1つの制約に従う(230)。例えば、制約関連付けモジュール125による基本的なスキーマ135の制約137のうちの少なくとも1つがオブジェクト431Aに対する指示された編集111に関連付けられているかの判定に基づいて、編集バリデータ120は、編集111がオブジェクト431Aに対する指示された編集111に関連付けられた制約137のうちの少なくとも1つに従っている故に、指示された編集111が有効であることを判定する。従って、上述の例において、制約137がマッチングエンドポイント410A間に関係が存在することを示す故に、かつユーザジェスチャがモデルに対して有効であると判定された(有効判定122)故に、マッチングエンドポイント410A間にコネクタを描画する指示された編集は、編集実行モジュール130によって実行され得る(選択的動作240)。基本的なスキーマの少なくとも1つの制約に対応するエンドポイントは、ユーザのディスプレイにおいて強調され得る。いくつかの実施形態において、モデル140は、視覚モデリングアプリケーションにおいて表示され、編集されかつ/または生成され得る。
【0033】
図3は、モデルオブジェクトに対応する指示されたユーザジェスチャに基づいて1または複数の有効なモデル編集を提示するための方法300のフローチャートを示している。方法300は、環境100のコンポーネント及びデータ並びに図4Aから図4Dのモデル編集例をしばしば参照しつつ説明される。
【0034】
方法300は、モデル内の少なくとも1つの目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する動作を含み、当該モデルはオブジェクト間の関係を定義する1または複数の制約を含む基本的なスキーマに基づいている(動作310)。例えば、ジェスチャ受信モジュール110は、ユーザジェスチャ106を受信して、指示された編集111がモデル140内の少なくとも1つの目標オブジェクト(例えばオブジェクト431B)において実行されるべきことを示すことができ、モデル140は、当該モデル内のオブジェクト間の関係を定義する制約137を含む基本的なスキーマ135に基づいている。
【0035】
方法300は、基本的なスキーマ内の制約のうちの少なくとも1つが、目標オブジェクトの指示された編集に関連付けられていることを判定する動作(動作320)も含む。例えば、制約関連付けモジュール125は、基本的なスキーマ135内の制約137のうちの少なくとも1つが目標オブジェクト(例えばオブジェクト431B)に対する指示された編集111に関連付けられていることを判定することができる。従って、選択オブジェクト及び/または目標オブジェクトに対応する基本的なドメインモデル(domain model)内の制約が評価される。編集バリデータ120は、制約の評価に基づいて、指示された編集111の有効性に関する判定、特に、指示された編集111にモデルの制約が適用されるかの判定を行う。
【0036】
方法300は、基本的なスキーマ内の制約のうちの少なくとも1つが目標オブジェクトの指示された編集に関連付けられている判定に基づいて、ユーザジェスチャに対応するモデル編集が無効であることを、当該目標オブジェクトにおいて実行される指示された編集に関連付けられた制約に基づいて判定する動作(選択的動作330)を選択的に含む。例えば、基本的なスキーマ135内の制約137のうちの少なくとも1つが目標オブジェクト(例えばオブジェクト431B)に対する指示された編集111に関連付けられていることの判定に基づいて、編集バリデータ120は、当該目標オブジェクトにおいて実行される指示された編集111に関連付けられた制約137に基づいて、ユーザジェスチャ106に対応する指示された編集が無効であることを判定する。
【0037】
指示された編集111は、様々な理由で無効と宣言され得る(無効判定124)。例えば、図4Bに示されているように、選択オブジェクト(例えばオブジェクト430B)は、目標オブジェクト(例えばオブジェクト431B)とのマッチングエンドポイントを持たない。さらに、制約137は、選択オブジェクト430B及び431Bが、それらの間の関係を有することを許容しないまたは許容されないことを示すことができる。例えば、モデルは複数のステップを有する処理フローチャートを含み得、ステップの各々は、連続して完了されなければならない。ユーザは、第1の処理ボックスの選択及び当該第1のボックスがコネクタによって第3の処理に接続されるべきことの指示を示すジェスチャを入力する(例えばユーザは、第3のボックス上に第1のボックスをドラッグする)。この場合、制約関連付けモジュールは、この編集に関連付けられた制約があることを判定し、編集バリデータは当該制約に基づいて無効判定を返信するだろう。これは、モデルの制約及び基本的スキーマによって判定された無効な編集の一例であり、多くの他の様々でさらに複雑な例も可能である。
【0038】
最後に、方法300は、有効性判定に基づいて、ユーザに対して少なくとも1つの有効なモデル編集の表示をする動作(動作340)を含む。例えば、有効性判定124に基づいて、編集バリデータ120は、コンピュータユーザ105に対して少なくとも1つの有効なモデル編集(例えば、ヒント121及び123)の表示をすることができる。図4Bに示されているように、ユーザはジェスチャ401Bを入力し得、ユーザ描画線405Bは選択オブジェクト430Bと目標オブジェクト431Bとの間にある。この場合、この2つのオブジェクトの間の潜在的な関係が決められていない故に、エンドポイントは存在しない。ジェスチャ401Bに基づいて指示された編集111が受信された後、編集バリデータは、制約125に基づいて、2つのオブジェクトが接続され得ることの表示、及び、さらにこれらのオブジェクトのどの部分が接続されるべきなのかの表示を提供することができる。従って、結果420Bにおいて、マッチングエンドポイント410B及び411Bはコネクタ425Bによって接続され、エンドポイント411Bがオブジェクト410B及び411Bに関する制約に基づいて生成される。
【0039】
いくつかの場合において、編集バリデータ120は、編集が有効であると判定されたとしても、指示された編集111に基づいてヒントすなわち有効なモデル編集の表示を提供することができる。従って、編集バリデータ120は、編集実行モジュール130に4つの異なった判定、すなわち有効判定及びヒント121、有効判定122、無効判定及びヒント123並びに無効判定124を送信することができる。いくつかの場合において、編集バリデータ120は、指示された編集111に応答しかつ基本的なスキーマの制約に従って複数の有効なモデル編集を提供することができる。
【0040】
図4Cに示されているように、モデルは複数のエンドポイントを有する複数のオブジェクトを有することができる。いくつかの実施形態において、ジェスチャ401Cの下で、ユーザは、選択モデルオブジェクト430Cをモデルオブジェクトのグループ435Cの線で囲まれた領域内にドラッグし、選択モデルオブジェクト430Cを当該領域内のどこかにドロップすることができる(ドラッグアンドドロップジェスチャ406C)。編集バリデータは、各々のモデルの各々のオブジェクトに対する制約に基づいて、可能なエンドポイントマッチングに関する判定を行うことができる(2以上のモデルが存在する場合)。従って、結果420Cにおいて、マッチングエンドポイント410Cは、コネクタ425Cを介して接続され、非マッチングエンドポイント415Cは接続されない。いくつかの場合において、対応する制約に従って2以上のエンドポイントがマッチングし、ユーザはオプションボックスで、1のボックスに接続するか、選択したボックスに接続するか、またはマッチングする全てのボックスに接続するかの決定するように指示され得る。さらに、いくつかの実施形態において、選択オブジェクト430Cとのマッチングエンドポイントを有さないオブジェクトは、放棄されるかまたは表示から除去されるので、ユーザが選択オブジェクト430Cに関連付けられたオブジェクトに集中することが可能となる。
【0041】
図4Dにおいて、他のシナリオがジェスチャ401Dの下で示され、このシナリオにおいて、ユーザは選択オブジェクト430Dを選択し、これを視覚モデル編集プログラム内の空きスペース内にドラッグアンドドロップする。いくつかの実施形態において、ユーザ105は、1または複数の他のオブジェクト(例えばモデル)内の他のエンドポイントにマッチングされるべきエンドポイント(例えばエンドポイント412D)を選択している。マッチングエンドポイント450Dを有するオブジェクトテンプレートのセットがユーザに示され得、ユーザがエンドポイント412に対応するエンドポイントを有するオブジェクトテンプレート間で、オブジェクトの各々の基本的なスキーマの制約に従って選択することを可能とされる。従って、この例において、ユーザはオブジェクトテンプレート451D、452D及び453Dから選択を行ってもよく、当該オブジェクトテンプレートの各々は、少なくとも1つのマッチングエンドポイントを有する。結果420Dに示されているように、ユーザ105はオブジェクトテンプレート453Dを選択し得、オブジェクトテンプレート453Dのマッチングエンドポイント(例えば、マッチングエンドポイント410D)は、コネクタ425Dによって接続される。オブジェクトの非マッチングエンドポイント415Dは接続されない。上述のシナリオと同様に、ユーザは、マッチングエンドポイントを有する複数のオブジェクトを任意に選択することができる。さらに、ユーザは、選択オブジェクトにおいて実行される他の編集を指示するジェスチャを行い得る。これらのジェスチャは、基本的なスキーマ(単数または複数)の制約に基づいて有効だと判定された場合に、同様に処理され、実行される。
【0042】
いくつかの場合において、編集バリデータ120は、無効なモデル編集と機能的に実質同一な有効なモデル編集を含むヒントを提供する。従って、ユーザがオブジェクトを変更しようとするかまたは2つのオブジェクト間の関係を形成しようとしかつジェスチャが無効な編集をもたらす場合、編集バリデータ120は当該ジェスチャによって指示されたのと同様の他の編集を決定することができる。
【0043】
いくつかの実施形態において、指示された編集111は無効であるという判定において、編集実行モジュール130はモデル編集が実行されるのを防止することができる。追加的にまたは代替的に、編集実行モジュール130は、基本的なスキーマの制約に対応する新しいモデルオブジェクトを生成することができる。ユーザは、生成される新しいモデルオブジェクトのタイプを選択することができる。いくつかの実施形態において、ヒントとして提供されて表示されるモデル編集は、テキスト形式で記述することができる。他の場合、表示される有効なモデル編集は、モデルにおける編集の提示された効果を示す重畳された画像を含むことができる。従って、ユーザは、当該重畳された画像から当該編集を実行するか否かを判定可能だろう。
【0044】
従って、ユーザは、1または複数のモデルにおいて実行されるべき編集を示すジェスチャを行うことができる。編集の有効性は、それらが適用される前に判定され、ユーザが、モデル(1または複数)の基本的なスキーマ(1または複数)の制約に基づいた有効な態様においてモデル(1または複数)を編集することが保証される。さらに、ユーザが無効な編集を指示した場合、ヒントが提供されるので、ユーザはモデルにおいて実行される有効な編集を指示可能である。
【0045】
本発明は、本発明の趣旨または本質的な特徴から逸脱することなく、他の特定の態様で実施され得る。説明された実施形態は、全てにおいて単なる例示であって限定的なものではないと考えられるべきである。従って、本発明の範囲は、上述の説明よりもむしろ添付の特許請求の範囲によって示される。特許請求の範囲に記載の発明と均等な意味及び範囲内ある全ての変更は、それらの範囲内に包含される。

【特許請求の範囲】
【請求項1】
コンピュータシステムにおいてモデル内の少なくとも1つの目標オブジェクトにおいて実行される編集の有効性を検証する方法であって、
前記モデル内の少なくとも1つの目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する動作であって、前記モデルが前記目標オブジェクトを含む前記モデル内のオブジェクト間の関係を定義する1または複数の制約を含む基本的なスキーマに基づいている動作と、
前記基本的なスキーマ内の前記制約のうちの少なくとも1つが前記目標オブジェクトの前記指示された編集に関連付けられていることを判定する動作と、
前記判定に基づいて、前記編集が有効であることを判定する動作であって、前記有効な編集が前記目標オブジェクトの前記指示された編集に関連付けられた前記少なくとも1つの制約に従っている動作と、
を含むことを特徴とする方法。
【請求項2】
視覚モデリングアプリケーション内に前記モデルを表示する動作をさらに含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記編集は有効であるという判定に応答して前記指示された編集を実行する動作をさらに含むことを特徴とする請求項1に記載の方法。
【請求項4】
コンピュータシステムにおいてモデルオブジェクトに対応する示されたユーザジェスチャに基づいて1または複数の有効なモデル編集を提示する方法であって、
モデル内の少なくとも1つの目標オブジェクトにおいて実行される編集を指示するユーザジェスチャを受信する動作であって、前記モデルがオブジェクト間の関係を定義する1または複数の制約を含む基本的なスキーマに基づいている動作と、
前記基本的なスキーマ内の前記制約のうちの少なくとも1つが前記目標オブジェクトの前記指示された編集に関連付けられていることを判定する動作と、
少なくとも1つの有効なモデル編集の表示をユーザに提供する動作と、
を含むことを特徴とする方法。
【請求項5】
前記判定に基づいて、前記ユーザジェスチャに対応する前記モデル編集が無効であることを前記目標オブジェクトにおいて実行される前記指示された編集に関連付けられている前記制約に基づいて判定する動作をさらに含み、
前記少なくとも1つの有効なモデル編集の表示をユーザに提供する動作は、前記無効であることの判定に基づいていることを特徴とする請求項4に記載の方法。
【請求項6】
前記判定に基づいて、前記ユーザジェスチャに対応する前記モデル編集が有効であることを前記目標オブジェクトにおいて実行される前記指示された編集に関連付けられている前記制約に基づいて判定する動作をさらに含み、
前記少なくとも1つの有効なモデル編集の表示をユーザに提供する動作は、前記有効であることの判定に基づいていることを特徴とする請求項4に記載の方法。
【請求項7】
前記有効なモデル編集は前記無効なモデル編集と機能的に実質同一であることを特徴とする請求項4に記載の方法。
【請求項8】
前記無効であることの判定に基づいて、前記モデル編集の実行を防止する動作をさらに含むことを特徴とする請求項4に記載の方法。
【請求項9】
前記無効判定に応答してかつ前記ユーザジェスチャに基づいて、前記目標オブジェクトに関連付けられている前記制約に従った1または複数の有効な編集を生成する動作をさらに含むことを特徴とする請求項4に記載の方法。
【請求項10】
モデルオブジェクトはコネクタを用いて他のモデルオブジェクトと接続されており、前記コネクタは各々のオブジェクト内のエンドポイントに接続していることを特徴とする請求項4に記載の方法。
【請求項11】
前記エンドポイントの各々は前記基本的なスキーマの少なくとも1つの制約に対応していることを特徴とする請求項10に記載の方法。
【請求項12】
前記有効な編集は、前記目標オブジェクトのエンドポイントと他のオブジェクトのエンドポイントとの間にコネクタを設けることを含むことを特徴とする請求項11に記載の方法。
【請求項13】
前記基本的なスキーマの少なくとも1つの制約に対応するエンドポイントがユーザディスプレイにおいて強調表示されることを特徴とする請求項11に記載の方法。
【請求項14】
前記示されたユーザジェスチャに応答しかつ前記基本的なスキーマの前記制約に従って、複数の有効なモデル編集が提供されることを特徴とする請求項4に記載の方法。
【請求項15】
前記ユーザが選択する選択肢のリストを表示することを含み、前記リスト内の選択肢の各々は前記複数の有効なモデル編集のうちの少なくとも1つを含むことを特徴とする請求項14に記載の方法。
【請求項16】
前記無効であることの判定に応答しかつ前記指示された編集に応答して、前記基本的なスキーマの前記制約に対応する新しいモデルオブジェクトを生成する動作をさらに含むことを特徴とする請求項4に記載の方法。
【請求項17】
生成される新しいモデルオブジェクトのタイプを選択することを前記ユーザに可能とすることをさらに含むことを特徴とする請求項16に記載の方法。
【請求項18】
コンピュータシステムの1または複数のプロセッサによって実行される際に、前記コンピュータシステムに、モデルオブジェクトに対応する示されたユーザジェスチャに基づいて1または複数の有効なモデル編集を提示する方法を実行させるコンピュータ実行可能命令を有する1または複数のコンピュータ可読媒体を含むコンピュータプログラムプロダクトであって、前記方法が、
モデル内のオブジェクトの選択を指示するユーザジェスチャを受信する動作であって、前記モデルが、前記モデル内のオブジェクト間の関係を定義する1または複数の制約を含む基本的なスキーマに基づいている動作と、
前記選択されたオブジェクトに対応する前記基本的なドメインモデル内の制約を評価する動作と、
前記選択されたオブジェクト及び前記制約の評価に基づいて、前記選択されたオブジェクトに対応する1または複数の有効なモデル編集を判定する動作と、
前記1または複数の有効なモデル編集を前記ユーザに表示する動作と、
を含むことを特徴とする方法。
【請求項19】
前記表示された有効なモデル編集がテキスト形式で記述されることを特徴とする請求項18に記載の方法。
【請求項20】
前記表示された有効なモデル編集が前記モデルにおける前記編集の効果を示す重畳された画像を含むことを特徴とする請求項18に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図4C】
image rotate

【図4D】
image rotate


【公表番号】特表2011−503680(P2011−503680A)
【公表日】平成23年1月27日(2011.1.27)
【国際特許分類】
【出願番号】特願2010−527204(P2010−527204)
【出願日】平成20年9月26日(2008.9.26)
【国際出願番号】PCT/US2008/077956
【国際公開番号】WO2009/045918
【国際公開日】平成21年4月9日(2009.4.9)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】