(57)【特許請求の範囲】
【請求項１】
コンピューターシステムにおいて実行される、データを編成する方法であって、前記方法は、
ユーザーインターフェースで、一つまたは複数の表示されるオブジェクトを含む、図を表すデータの表現をユーザーに対して表示するステップと、
前記ユーザーインターフェースで、前記データに含まれる特定のオブジェクトが選択されたことを示すステップであって、複数の方向のユーザーインターフェースコントロールを表示するステップを含み、前記複数の方向のユーザーインターフェースコントロールは、
（ｉ）前記特定のオブジェクトに関連付けられた上方向のユーザー入力を受けることが可能であることを示す、前記特定のオブジェクトの上方の第１のユーザーインターフェースコントロールと、
（ｉｉ）前記特定のオブジェクトに関連付けられた下方向のユーザー入力を受けることが可能であることを示す、前記特定のオブジェクトの下方の第２のユーザーインターフェースコントロールと、
（ｉｉｉ）前記特定のオブジェクトに関連付けられた左方向のユーザー入力を受けることが可能であることを示す、前記特定のオブジェクトの左方の第３のユーザーインターフェースコントロールと、
（ｉｖ）前記特定のオブジェクトに関連付けられた右方向のユーザー入力を受けることが可能であることを示す、前記特定のオブジェクトの右方の第４のユーザーインターフェースコントロールと
を含む、ステップと、
前記特定のオブジェクトに関連付けられた方向のユーザー入力を一つまたは複数のハードウェア入力デバイスを介して受けるステップであって、前記方向のユーザー入力は、上方向、下方向、左方向及び右方向から選択された、ステップと、
前記方向のユーザー入力を受けることに基づいて、前記データのドメインを決定するステップと、
決定された前記ドメインに基づいて、前記方向のユーザー入力を解釈して、新しいオブジェクトを、前記特定のオブジェクトに関連させて前記データに追加するステップと
を含み、
前記ドメインが第１のドメインである場合に、前記新しいオブジェクトのオブジェクトタイプは、第１の複数のオブジェクトタイプから、前記方向のユーザー入力によって識別される特定の方向に基づいて選択され、前記第１の複数のオブジェクトタイプは前記第１のドメインに関連付けられ、少なくとも２つの異なる方向は、前記第１の複数のオブジェクトタイプにおける異なるオブジェクトタイプに関連付けられ、
前記ドメインが第２のドメインである場合に、前記新しいオブジェクトの前記オブジェクトタイプは、第２の複数のオブジェクトタイプから、前記方向のユーザー入力の前記特定の方向に基づいて選択され、前記第２の複数のオブジェクトタイプは、前記第１の複数のオブジェクトタイプとは異なり、前記第２のドメインに関連付けられ、少なくとも２つの異なる方向は、前記第２の複数のオブジェクトタイプにおける異なるオブジェクトタイプに関連付けられた、方法。
【請求項２】
請求項１記載の方法であって、一つまたは複数の制約されたヒントを提供するヒントモジュールの支援で生成されたユーザー入力を受けるステップをさらに含むことを特徴とする方法。
【請求項３】
請求項２記載の方法であって、前記ヒントは、前記特定のオブジェクトのオブジェクトタイプに基づいて制約されることを特徴とする方法。
【請求項４】
請求項２記載の方法であって、前記ヒントは、コンテキストに基づいて制約されることを特徴とする方法。
【請求項５】
請求項１記載の方法であって、一つまたは複数の制約されたヒントを提供するニーモニックスモジュールの支援で生成されたユーザー入力を受けるステップをさらに含むことを特徴とする方法。
【請求項６】
請求項１記載の方法であって、マウススクロール機構を使用して、前記新しいオブジェクト内のデータのデフォルトタイプを新しいタイプに変更するステップをさらに含み、前記マウススクロール機構の活性化は、タイプのフィルタリングされたリストを表示させ、前記方法は、前記フィルタリングされたリスト内に表示された前記タイプからの前記新しいタイプのユーザー選択を受けるステップをさらに含むことを特徴とする方法。
【請求項７】
請求項１記載の方法であって、ニーモニックスモジュールの支援で生成されたユーザー入力を使用して、前記新しいオブジェクト内のデータのデフォルトタイプを新しいタイプに変更するステップをさらに含み、前記ニーモニックスモジュールは、タイピングされたキャラクタの検出に応答してタイプのフィルタリングされたリストから前記新しいタイプを選択することを特徴とする方法。
【請求項８】
請求項１記載の方法であって、ヒントモジュールの支援で生成されたユーザー入力を使用して、前記新しいオブジェクト内のデータのデフォルトタイプを新しいタイプに変更するステップをさらに含み、前記ヒントモジュールは、タイピングされたキャラクタの検出に応答してタイプのフィルタリングされたリストを表示させ、前記方法は、タイプの前記フィルタリングされたリストからの前記新しいタイプのユーザー選択を受けるステップをさらに含むことを特徴とする方法。
【請求項９】
請求項１記載の方法であって、一つまたは複数の制約されたヒントを提供するヒントモジュールの支援で生成されたユーザー入力を使用して、前記特定のオブジェクトと前記新しいオブジェクトとの間の一つまたは複数のリンクを作成するステップをさらに含むことを特徴とする方法。
【請求項１０】
請求項１記載の方法であって、前記データは、視覚的に観察可能なレイアウトを有するデータを含むことを特徴とする方法。
【請求項１１】
請求項１記載の方法であって、データの前記表現におけるオブジェクト間のリンクをナビゲートするための追加的なユーザー入力を受けるステップをさらに含むことを特徴とする方法。
【請求項１２】
請求項１１記載の方法であって、受けた前記追加的なユーザー入力によって識別される特定の方向の複数の異なるナビゲーション目的地を検出することに応答して、前記ドメインに基づいて、可能性があるナビゲーション目的地の制約リストを表示するステップをさらに含むことを特徴とする方法。
【請求項１３】
データを編成するためのコンピューターシステムであって、前記コンピューターシステムは、少なくとも、
ユーザーインターフェースで、一つまたは複数の表示されるオブジェクトを含む、図を表すデータの表現を表示するステップと、
前記ユーザーインターフェースで、前記データに含まれる特定のオブジェクトが選択されたことを示すステップであって、複数の方向のユーザーインターフェースコントロールを表示するステップを含み、前記複数の方向のユーザーインターフェースコントロールは、
（ｉ）前記特定のオブジェクトに関連付けられた上方向のユーザー入力を受けることが可能であることを示す、前記特定のオブジェクトの上方の第１のユーザーインターフェースコントロールと、
（ｉｉ）前記特定のオブジェクトに関連付けられた下方向のユーザー入力を受けることが可能であることを示す、前記特定のオブジェクトの下方の第２のユーザーインターフェースコントロールと、
（ｉｉｉ）前記特定のオブジェクトに関連付けられた左方向のユーザー入力を受けることが可能であることを示す、前記特定のオブジェクトの左方の第３のユーザーインターフェースコントロールと、
（ｉｖ）前記特定のオブジェクトに関連付けられた右方向のユーザー入力を受けることが可能であることを示す、前記特定のオブジェクトの右方の第４のユーザーインターフェースコントロールと
を含む、ステップと、
前記特定のオブジェクトに関連付けられた方向のユーザー入力を一つまたは複数のハードウェア入力デバイスを介して受けるステップであって、前記方向のユーザー入力は、上方向、下方向、左方向及び右方向から選択された、ステップと、
前記方向のユーザー入力を受けることに基づいて、前記データのドメインを決定するステップと、
決定された前記ドメインに基づいて、前記方向のユーザー入力を解釈して、新しいオブジェクトを、前記特定のオブジェクトに関連させて前記データに追加するステップと
を実行し、
前記ドメインが第１のドメインである場合に、前記新しいオブジェクトのオブジェクトタイプは、第１の複数のオブジェクトタイプから、前記方向のユーザー入力によって識別される特定の方向に基づいて選択され、前記第１の複数のオブジェクトタイプは前記第１のドメインに関連付けられ、少なくとも２つの異なる方向は、前記第１の複数のオブジェクトタイプにおける異なるオブジェクトタイプに関連付けられ、
前記ドメインが第２のドメインである場合に、前記新しいオブジェクトの前記オブジェクトタイプは、第２の複数のオブジェクトタイプから、前記方向のユーザー入力の前記特定の方向に基づいて選択され、前記第２の複数のオブジェクトタイプは、前記第１の複数のオブジェクトタイプとは異なり、前記第２のドメインに関連付けられ、少なくとも２つの異なる方向は、前記第２の複数のオブジェクトタイプにおける異なるオブジェクトタイプに関連付けられる
ように構成されたことを特徴とするコンピューターシステム。
【請求項１４】
請求項１３記載のコンピューターシステムであって、一つまたは複数の制約されたヒントを提供するヒントモジュールの支援で生成されたユーザー入力を受けるように更に構成されたコンピューターシステム。
【請求項１５】
請求項１４記載のコンピューターシステムであって、前記ヒントは、前記特定のオブジェクトのオブジェクトタイプに基づいて制約されることを特徴とするコンピューターシステム。
【請求項１６】
請求項１４記載のコンピューターシステムであって、前記ヒントは、コンテキストに基づいて制約されることを特徴とするコンピューターシステム。
【請求項１７】
請求項１３記載のコンピューターシステムであって、一つまたは複数の制約されたヒントを提供するニーモニックスモジュールの支援で生成されたユーザー入力を受けるようにさらに構成されたコンピューターシステム。
【請求項１８】
請求項１３記載のコンピューターシステムであって、前記新しいオブジェクトは、前記特定のオブジェクトから少なくとも１つの性質を継承することを特徴とするコンピューターシステム。
【請求項１９】
請求項１３記載のコンピューターシステムであって、前記新しいオブジェクトは、前記特定のオブジェクトの親または子であることを特徴とするコンピューターシステム。
【請求項２０】
データを編成するためのコンピュータープログラムであって、コンピューターシステムに、少なくとも、
ユーザーインターフェースで、一つまたは複数の表示されるオブジェクトを含む、図を表すデータの表現をユーザーに対して表示するステップと、
前記ユーザーインターフェースで、前記データに含まれる特定のオブジェクトが選択されたことを示すステップであって、複数の方向のユーザーインターフェースコントロールを表示するステップを含み、前記複数の方向のユーザーインターフェースコントロールは、
（ｉ）前記特定のオブジェクトに関連付けられた上方向のユーザー入力を受けることが可能であることを示す、前記特定のオブジェクトの上方の第１のユーザーインターフェースコントロールと、
（ｉｉ）前記特定のオブジェクトに関連付けられた下方向のユーザー入力を受けることが可能であることを示す、前記特定のオブジェクトの下方の第２のユーザーインターフェースコントロールと、
（ｉｉｉ）前記特定のオブジェクトに関連付けられた左方向のユーザー入力を受けることが可能であることを示す、前記特定のオブジェクトの左方の第３のユーザーインターフェースコントロールと、
（ｉｖ）前記特定のオブジェクトに関連付けられた右方向のユーザー入力を受けることが可能であることを示す、前記特定のオブジェクトの右方の第４のユーザーインターフェースコントロールと
を含む、ステップと、
前記特定のオブジェクトに関連付けられた方向のユーザー入力を一つまたは複数のハードウェア入力デバイスを介して受けるステップであって、前記方向のユーザー入力は、上方向、下方向、左方向及び右方向から選択された、ステップと、
前記方向のユーザー入力を受けることに基づいて、前記データのドメインを決定するステップと、
決定された前記ドメインに基づいて、前記方向のユーザー入力を解釈して、新しいオブジェクトを、前記特定のオブジェクトに関連させて前記データに追加するステップと
を実行させ、
前記ドメインが第１のドメインである場合に、前記新しいオブジェクトのオブジェクトタイプは、第１の複数のオブジェクトタイプから、前記方向のユーザー入力によって識別される特定の方向に基づいて選択され、前記第１の複数のオブジェクトタイプは前記第１のドメインに関連付けられ、少なくとも２つの異なる方向は、前記第１の複数のオブジェクトタイプにおける異なるオブジェクトタイプに関連付けられ、
前記ドメインが第２のドメインである場合に、前記新しいオブジェクトの前記オブジェクトタイプは、第２の複数のオブジェクトタイプから、前記方向のユーザー入力の前記特定の方向に基づいて選択され、前記第２の複数のオブジェクトタイプは、前記第１の複数のオブジェクトタイプとは異なり、前記第２のドメインに関連付けられ、少なくとも２つの異なる方向は、前記第２の複数のオブジェクトタイプにおける異なるオブジェクトタイプに関連付けられた
ことを特徴とするプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピューターおよびコンピューティングシステムは、現代生活のほぼ全ての局面に影響を与えている。コンピューターは、一般的に、仕事、レクリエーション、ヘルスケア、交通、エンターテインメント、家政等に関する。
【０００２】
多くのコンピューターは、コンピューターとの直接のユーザー対話によって使用されることが意図される。そのため、コンピューターは、ユーザー対話を促進するために、入力ハードウェアおよびソフトウェアユーザーインターフェースを有する。例えば、現代の汎用コンピューターは、ユーザーがコンピューターにデータを入力することを可能にするために、キーボード、マウス、タッチパッド、カメラ等を含むことができる。加えて、様々なソフトウェアユーザーインターフェースが利用可能であり得る。
【０００３】
ソフトウェアユーザーインターフェースの例は、グラフィカルユーザーインターフェース、テキストコマンドラインベースのユーザーインターフェース、ファンクションキーまたはホットキーのユーザーインターフェース等を含む。
【０００４】
既存のまたは現在のツールを使用して、システムアーキテクチャ図を作成することは、たいてい時間がかかり、面倒である。コンテンツを作成するために、ユーザーは、マウス（例えば、ノードおよびリンクを作成する等のため）とキーボード（例えば、ノードおよびリンクに名前を付け、メンバーをノードに追加する等のため）の間で絶えず切り替え、再びマウスに戻らなければならない（例えば、図中の他のノードおよびリンクに関してノードおよびリンクの位置を微調整し、または、新しいノードおよび／もしくはリンクの追加に適応させるために、複数のノードおよびリンクを再配置するため）。開発者にとって、このことは、開発者が設計を探求することを試みる間、思考の流れの断続的な妨げとなる可能性がある。
【０００５】
この断続的なモード切り替えに対処するために、システムは、ノードおよびリンクを作成するためのキーボードショートカットを含むことができる。しかしながら、従来のシステムでは、これは非実用的である。第一に、ＵＭＬ等の複雑なドメインにおいては、関係するタイプの膨大な数は、そのタイプ全てについて意味あるキーボードショートカットを作成すること、言うまでもなく覚えること、を難しくしている。第二に、レイアウトはアーキテクチャ図において重要ではなく、それ故、完全に自動的なレイアウトは、たいてい非実用的である。従来のシステムは、ノードおよびリンクの位置調整について、非常にきめ細かい制御をユーザーに提供することによって、これを解決する。しかしながら、ほとんどの場合において、ユーザーは、意味を伝えるために、「上の(above)／下の(below)」、「と共にグループ化された(grouped with)」および「の隣に(next to)」等の、明確な関係を使用して、広義のレイアウトについて考えることを望んでいる。ユーザーにとって、詳細なレイアウトを微調整するための機能は、このためにわずかに有用であり、現在のシステムにおける断続的なモード切り替えの原因の一つである。さらに、これは、手描きのホワイトボードから、より洗練されたコンピューター実装の作図ソリューションへの移行を希望する人々のための、障壁として見られているという形跡がある。
【０００６】
本明細書で特許請求された保護対象は、何れの欠点を解決または上述したような環境においてのみ動作する実施形態に限定されない。むしろ、この背景は、本明細書に記載されるいくつかの実施形態が実施され得る一つの例示的な技術分野を示すためにのみ提供される。
【発明の概要】
【０００７】
本明細書に示された一つの実施形態は、コンピューティング環境において実施される方法を含む。方法は、空間的な意義を有するデータを編成するための動作を含む。方法は、ユーザーインターフェースに、空間的に構造化されたデータの表現を、ユーザーに対して表示することを含む。ユーザー入力は、一つまたは複数のハードウェアユーザーインターフェース装置を通じて、コンピューター実装のユーザーインターフェースで受信される。ユーザー入力は、ドメインに非依存であるが、空間的な意味合いを持っている。ユーザーインターフェースに表示された既存の構造化されたデータ、または以前のユーザーアクションに基づいて、ドメインは、ユーザー入力に対して決定される。決定されたドメインに基づいて、ユーザー入力は、ドメイン固有の応答に解釈される。ドメイン固有の応答は、複数のドメインにわたる空間的な意味合いで一致する。
【０００８】
この概要は、以下の発明の詳細な説明でさらに説明される概念の選択を簡略化された形式で紹介するために設けられている。この概要は、特許請求された保護対象の重要な特徴または主要な特徴を特定することを意図しておらず、特許請求された保護対象の範囲を決定する際に一補助として使用されることを意図している。
【０００９】
追加の特徴および利点は、以下の発明の詳細な説明に記載され、一部は発明の詳細な説明から明らかとなり、または本明細書の教示を具現化することにより理解することができる。本発明の特徴および利点は、添付の特許請求の範囲において特に指摘された手段および組み合わせによって実現し得ることができる。本発明の特徴は、以下の発明の詳細な説明および添付の特許請求の範囲からより完全に明らかとなるか、または以下に記載される本発明の実施によって理解することができる。
【図面の簡単な説明】
【００１０】
上述ならびに他の利点および特徴を得ることができる態様を説明するために、簡単に上述した本発明のより具体的な説明は、添付された図面において図示される特定の実施形態を参照することによってレンダリングされる。これらの図面は典型的な実施形態のみを示し、そのために本発明の技術的範囲を限定するとみなされるべきではないことを理解し、実施形態は添付の図面の使用を通じて、さらに具体的かつ詳細に記述および説明される。
【図１】図１は、様々なジェスチャ、コマンド、および図ドメインのテーブルを示している。
【図２Ａ】図２Ａは、クラス図を示している。
【図２Ｂ】図２Ｂは、クラス図に対して継承クラスを追加することを示している。
【図３Ａ】図３Ａは、アクティビティ図を示している。
【図３Ｂ】図３Ｂは、アクティビティ図に対してアクションを追加することを示している。
【図４Ａ】図４Ａは、アクティビティ図を示している。
【図４Ｂ】図４Ｂは、アクティビティ図における要素タイプを変更する部分を示している。
【図４Ｃ】図４Ｃは、アクティビティ図における要素タイプを変更する部分を示している。
【図４Ｄ】図４Ｄは、アクティビティ図における要素タイプを変更する部分を示している。
【図４Ｅ】図４Ｅは、アクティビティ図における要素タイプを変更する部分を示している。
【図５Ａ】図５Ａは、アクティビティ図におけるリンクを作成する部分を示している。
【図５Ｂ】図５Ｂは、アクティビティ図におけるリンクを作成する部分を示している。
【図５Ｃ】図５Ｃは、アクティビティ図におけるリンクを作成する部分を示している。
【図５Ｄ】図５Ｄは、アクティビティ図におけるリンクを作成する部分を示している。
【図６】図６は、アクティビティ図をナビゲートすることを示している。
【図７】図７は、空間的な意義を有するデータを編成する方法を示している。
【発明を実施するための形態】
【００１１】
いくつかの実施形態は、詳細なレイアウトを扱うために、ユーザーの作業を中断することなく、ユーザーが図を作成する流れに留まることを可能にするために、ドメインおよび／またはコンテキストに基づいて、スマートキーボードショートカット、半自動レイアウトならびに自動制約ガイダンスヒントの組み合わせを使用することができる。一つの実施形態のシステムは、ユーザーにピクセル毎のレイアウトを管理する負担をかけることなく、現在のノードの上、下、内のような意味的に重要な位置に、新しいノードを配置する一貫性のある方法を、ユーザーに提供するコマンドの組み合わせを実現することができる。これは、名前や署名を入力している間、要素タイプを設定するために、インテリセンス(IntelliSense)等の、指示コンテキストおよび／またはドメイン固有の制約ガイダンスと組み合わされ、詳細なレイアウトを扱うために、ユーザーが自身の作業を中断する必要なく、図を作成する流れの中に留めさせるシステムに、結果的になる。追加的または代替的に、実施形態は、リンクを介して図を簡単にナビゲートする機能を含むことができる。
【００１２】
いくつかの実施形態は、様々なジェスチャを通じてアクセス可能である、標準方向コマンドが、図または他の空間的に構造化されたデータ内において、現在の要素の、上、下、左、右、または内部の要素を作成するために使用されることができる機能を実装する。方向コマンドは、コマンドと関連付けられた方向に普遍的な意味があるので、ドメインに関係なく、同じまま留まり、例えば、デフォルトで作成された要素タイプを決定するために、ドメインナレッジと組み合わされることができる。
【００１３】
いくつかの実施形態は、図および／または他の空間的に構造化されたデータに適用することができる。上述の通り、実施形態は、例えば、システムアーキテクチャの青写真を、ＵＭＬ図を使用して作成するために使用されることができる。実施形態は、フローチャート図が使用されてもよい。特に、実施形態は、図においてノードとコネクタを配置するために使用されることができる。実施形態は、物理的オブジェクト空間レイアウトのために、使用されることができる。例えば、実施形態は、物理的オブジェクトを、他の既存の物理的オブジェクトに関して図示するために使用されることができる。実施形態は、データベースまたは他のテーブルのために使用されることができる。例えば、実施形態は、データベースオブジェクトの依存関係または相互関係を定義するために使用されることができる。
【００１４】
上述の通り、実施形態は、様々なジェスチャを使用しても良く、当該ジェスチャはドメインに関係なく同じである。例えば、いくつかのジェスチャは、キーボードジェスチャを使用して実装されることができる。キーボードジェスチャ例は、インフォーカスエンティティ(in focus entity)の下に、新しいノードまたはオブジェクトを作成するために「Ｅｎｔｅｒ」、インフォーカスエンティティの左に新しいオブジェクトを作成するために「Ｃｔｒｌ−Ｌ」、インフォーカスエンティティの右に新しいオブジェクトを作成するために「Ｃｔｒｌ−Ｒ」、インフォーカスエンティティの上に新しいオブジェクトを作成するために「Ｃｔｒｌ−Ｕ」、インフォーカスエンティティの内側に新しいオブジェクトを作成するために「Ｃｔｒｌ−Ｎ」を含むことができる。特に、キーボードジェスチャ（または、下記のように他のジェスチャ）は「方向」に類似する感覚はあるものの、異なるドメインで異なる結果を生成する。例えば、自動車の場合の電気回路レイアウトを設計する際に、Ｃｔｒｌ＋Ｕはその自動車のフロントヘッドライト用の直交レイアウトに回路を追加することができるが、ＵＭＬクラス図の場合には、Ｃｔｒｌ＋Ｕはベースクラスを追加することができる。双方の場合においても、図の要素は適切に配置される。一つの共通性は、実施形態が、方向の意味合いを取り、それを特定のドメインに適用し、ユーザーにピクセル毎の変化を作らなければならない負担を軽減することである。
【００１５】
代替的な実施形態において、マウスジェスチャを使用することができ、当該ジェスチャはドメインに関係なく同じである。マウスジェスチャの例は、インフォーカスエンティティの下に新しいノードまたはオブジェクトを作成するために下向きのマウスフリック、インフォーカスエンティティの左に新しいオブジェクトを作成するために左のマウスフリック、インフォーカスエンティティの右に新しいオブジェクトを作成するために右のマウスフリック、インフォーカスエンティティの上に新しいオブジェクトを作成するために上向きのマウスフリック、インフォーカスエンティティの内側にオブジェクトを作成するためにエンティティについてほぼ円の動きを含むことができる。
【００１６】
代替的な実施形態において、タッチパッドまたはタッチスクリーンのジェスチャを使用することができ、当該ジェスチャはドメインに関係なく同じである。タッチパッドまたはタッチスクリーンのジェスチャの例は、インフォーカスエンティティの下に新しいノードまたはオブジェクトを作成するために下向きのタッチパッドまたはタッチスクリーンフリック、インフォーカスエンティティの左に新しいオブジェクトを作成するために左のタッチパッドまたはタッチスクリーンフリック、インフォーカスエンティティの右に新しいオブジェクトを作成するために右のタッチパッドまたはタッチスクリーンフリック、インフォーカスエンティティの上に新しいオブジェクトを作成するために上向きのタッチパッドまたはタッチスクリーンフリック、インフォーカスエンティティの内側にオブジェクトを作成するためにエンティティについてほぼ円の動きを含むことができる。
【００１７】
代替的な実施形態において、人体追跡ジェスチャを使用することができ、当該ジェスチャはドメインに関係なく同じである。例えば、様々なツールは、コンピューティングシステムによって追跡することができるハンドヘルドコントローラの使用のように、腕の動きを追跡するために存在する。ジェスチャは、例えば、赤外線移動追跡装置等の、加速度計および／またはコントローラ追跡装置によって感知されるように、コントローラの動きに基づいてもよい。
【００１８】
あるいはまた、他のコンピューティングシステムは、人間の手足および四肢を認識し、その動きを追跡するために、カメラを使用することができる。当該手足または四肢の動きのジェスチャの例は、インフォーカスエンティティの下に新しいノードまたはオブジェクトを作成するために下向きの手足または四肢の動きをフリック、インフォーカスエンティティの左に新しいオブジェクトを作成するために左の手足または四肢の動きをフリック、インフォーカスエンティティの右に新しいオブジェクトを作成するために右の手足または四肢の動きをフリック、インフォーカスエンティティの上に新しいオブジェクトを作成するために上向きの手足または四肢の動きをフリック、インフォーカスエンティティの内側にオブジェクトを作成するためにエンティティについてほぼ円の手足または四肢の動きを含むことができる。
【００１９】
ジェスチャは、コンピューティング装置において、加速度計によって感知されるように、コンピューティング装置の動きに基づくことができる。例えば、多くのタブレットコンピューティング装置は、二つまたはそれ以上の軸について動きの速度および方向を測定するために、加速度計を含む。タブレットを後部のレベル位置へ傾けることによって上向きとなったタブレットのトップの突然の傾きは、インフォーカスエンティティの下に新しいノードまたはオブジェクトを作成するために使用することができる。レベリングによって起きた突然の左への傾きは、インフォーカスエンティティの左に新しいオブジェクトを作成するために使用することができる。レベリングによって起きた突然の右への傾きは、インフォーカスエンティティの右に新しいオブジェクトを作成するために使用することができる。レベリングによって起きたタブレットのトップの突然の下向きの傾きは、インフォーカスエンティティの上にオブジェクトを作成するために使用することができる。タブレットの振動または多少の円の動きは、インフォーカスエンティティ内部にオブジェクトを作成するために使用することができる。
【００２０】
さらに他の実施形態は、オブジェクト作成のための、音声コマンドを使用することができる。例えば、一つの非限定的な例において、当該音声コマンドの例は、インフォーカスエンティティの下に新しいノードまたはオブジェクトを作成するために「ダウン（Ｄｏｗｎ）」、インフォーカスエンティティの左に新しいオブジェクトを作成するために「左（Ｌｅｆｔ）」、インフォーカスエンティティの右に新しいオブジェクトを作成するために「右（Ｒｉｇｈｔ）」、インフォーカスエンティティの上に新しいオブジェクトを作成するために「アップ（Ｕｐ）」、インフォーカスエンティティの内部にオブジェクトを作成するために「追加（Ａｄｄ）」を含むことができる。
【００２１】
前述のように、コマンドは、多数の方法で呼び出すことができる。コマンドは、位置および方向に関して集中しているが、マウス、ペン、タッチ、マルチタッチ、またはコマンドが簡単に、適切なジェスチャにマッピングされることができる他のコマンドモードを可能にするシステムであり、これらのコマンドモードは、ドメインを横断することができる自然なジェスチャを作成することに非常に適している。例えば、ユーザーは、形状から上向きのフリックを作り、その上に関係した形状を作成するために指を使用することができ、またはアクティブなノードのおおよそ上の位置にノードを描くために、まさに実際にジェスチャをすることができる。
【００２２】
前述のように、実施形態は、ドメインから独立したコマンドまたはジェスチャを使用し、およびそれらをドメイン固有の方法に適用することができる。例えば、図１を参照すると、テーブル１００には、異なる種類の図、図中で選択され得るエンティティ、ドメインから独立しているキーボードのジェスチャ、ならびに特定の図および選択を与えられた、所定のキーボードジェスチャを使用する結果の例が示されている。
【００２３】
実施形態は、発生する可能性のある競合を解決しながら、ユーザーが作成したように、要素の配置や間隔を微調整する、半自動レイアウトのための機能を、さらに含むことができる。ユーザーは、次いで、手作業で自由にレイアウトを変更することができるが、システムによって、そのようにする必要性を大幅に減らすことができる。図２を参照すると、この機能の例が示されている。図２Ａは、「動物」クラス２０２を示している。継承「猫」クラス２０４は、「ＩＳ−Ａ」関係を通じて動物クラス２０２に関連付けられる。ユーザーは、望むなら、動物クラス２０２の下に「犬」継承クラスを作成することもできる。これを行うために、ユーザーは、動物クラス２０２にフォーカスをもたらすように、動物クラス２０２を選択することができる。図２Ｂに示されるように、ユーザーは、次いで、選択されたオブジェクトの下に、新しいオブジェクトを配置するためのコマンドとして解釈され得る「Ｅｎｔｅｒ」キーを押下すること等によって、動物クラス２０２の下に、新しいクラス２０６を作成するジェスチャを行うことができる。このように、クラス図のドメインのために、および動物クラス２０２を選択したコンテキストにおいて、新しい継承クラス２０６を、動物クラス２０２の下に作成することができる。図２Ｂに示されるように、猫クラス２０４は、新しい継承クラス２０６のための領域を確保するために、自動的に移動されることができる。
【００２４】
実施形態は、ある特定の形状を移動させることができない場合、またはジェスチャ自体が、簡単なバンプ(bump)ではなく、むしろ追加されることが必要である形状の複雑なセットである場合に、様々なスタイルで様々な方法において、形状のセットをルーティングすることが可能なエッジ接続を確実化するために、エッジのインテリジェントルーティングを実行することができる。例えば、実施形態はスプラインルーティング、直交ルーティング等を実装することができる。
【００２５】
加えて、いくつかの実施形態は、増分レイアウトを実行するように実装することができる。具体的には、変化が段階的に発生し、そして最小限の変化のセットがグラフ化される。いくつかの実施形態においては、これを実行することができ、故に、ユーザーは、レイアウトがかなり安定していることを認識する。
【００２６】
図２Ｂは、唯一のユーザー入力がオブジェクトを移動、配置、または接続すべき場所を指定する、何れの追加入力をすることのないコンテキスト独立コマンド（すなわち、Ｅｎｔｅｒキーの押下）の使用であった場合の例を示している。ユーザーがそのように望む場合、実施形態は、その後、自動移動での移動を可能にすることができる。
【００２７】
上述の例において示されるように、新たに作成された要素は、コンテキストに基づいて、自動的にタイプを付与されることができる。例えば、図２Ａおよび２Ｂに示された例においては、動物クラス２０４が選択されたので、システムは、ジェスチャが、クラスのコンテキストにおけるクラス図のドメインにおいて、解釈されるべきであることを認識している。したがって、Ｅｎｔｅｒキーの押下によって、継承クラス２０６が、選択された動物クラス２０２の下に作成される。これは、ドメインに基づいて、新たな要素が「タイプ」「クラス」であることを示す。さらに、実施形態は、元の要素と新しい要素との間の関係を推測し、ならびに関係が追加の一つであることを示すために、リンクを追加することができる。
【００２８】
様々な他の特徴は、以下でより詳細に示されるように、様々な実施形態において実装されることができる。しかしながら、そのような特徴の部分的な列挙は、ユーザーが、キーボードで入力してその名前にタイプを加えることにより、簡単に要素のタイプを変えること、名前を入力する間にタイプを選択することにおいてユーザーを支援する、インテリセンス(IntelliSense)またはニーモニックス(mnemonics)等の、ガイドおよび制限付きのヒント、インテリセンスのような、ガイドおよび制限付きのヒントを使用するリンク作成、ならびに、ノードを作成することと同様に、一貫したスキームを使用してキーボードでそれらリンクを介して図をナビゲートすること、を可能にすることを含む。実施形態は、コードのドメインにおける、インテリジェントなジェスチャの使用を可能にするために、コードの固有ドメイン用のカスタムデータベースバックエンドを使用する機能を含んでもよい。例えば、ジェスチャは、示されたクラスの継承、メソッド間のポリモーフィズム（多様性）等において使用されることができる。
【００２９】
様々な例が示される。第一の例は、自動タイプシステムおよび増分レイアウトによってサポートされた、要素を作成するための空間コンテキストを有する、ドメイン非依存のコマンドの使用を示す。この例では、コンテキストは、ノードおよびリンクを含むユーザー作成図を含む。この特定の例では、ＵＭＬアクティビティ図が示されるが、本例においても、何れのノードおよびリンク図に一般化されることができる。
【００３０】
実施形態は、現在の選択に関連する、意味論的に(semantically)意味ある位置において要素を作成するために、キーボード、マウス、および／または他のジェスチャからアクセス可能な標準的なコマンドのセットを含むことができる。例として、意味論的に意味のある位置が含まれるかもしれないが、現在の要素の上、下、左、右または内に制限されない。実施形態は、ソース要素（例えば、選択された要素またはインフォーカス要素）および他の既存の要素に関連するジェスチャを使用して、コマンド起動によって作成されることとなった新しい要素を、レイアウトするための機能を含んでも良い。実施形態は、ドメインおよび固有のコンテキストによって引き起こされた要素に対して、タイプを自動的に割り当てることができる。
【００３１】
実施形態は、ユーザーコマンドが、ドメインに関係なく同じ状態で実装されることができる。なぜならば、各ドメインにおいて必ずしも同じである必要はないが、方向は普遍的に意味があるためである。この方法では、ユーザーが、多くのドメインにわたって同様のタスクを実行する、一貫した方法を有する。上記した様に図１は、コマンドおよびジェスチャの標準セットは、異なるドメインにわたって同様のタスクを実行するために使用されることができることを示している。
【００３２】
図３は、一つのシナリオ例の一部を例示する。図３Ａにおいて、ユーザーは、通常のツールボックスを使用して、ノード３０２を作成することができる。本明細書に示された例において、ノードは単一ノード、ノードのセット、子ノードのセットを有するコンテナ、コンパートメント形状等のコンポジット形状、当該コンパートメント形状は、その中にメソッド毎に行(row)を有するクラス形状であるが、上記の組み合わせ等であってもよい。ツールボックスは、ユーザーに対して提示するユーザーインターフェース要素を含むことができ、当該ユーザーインターフェース要素では、ユーザーは、ユーザーインターフェースとの対話をするために、マウスおよびキーボード等のハードウェア装置との対話をすることができる。ユーザーは、ノード３０２のために、図タイプおよび要素タイプを選択することができる。ユーザーは、望むなら、元のノード３０２の下に直接、次のノードを作成することができる。図３Ａは、ユーザーが対話することができる、一つのユーザーインターフェース表示を示す。図示された例において、ユーザーは、ノードの周囲で各方向を指す４つのコントロール３０４−１、３０４−２、３０４−３および３０４−４を見る。図示された例において、ユーザーは、下向きを指すコントロール３０４−４の上に、マウスポインタ３０６を置く。ツールチップ３０８は、ユーザーが、コントロール上でクリックする代わりに、Ｅｎｔｅｒキーを使用できることをユーザーに伝える。本例において、コントロール３０４−１上にマウスポインタを置くことは、「Ｃｔｒｌ−Ｒ」を押下することによって、新しいアクションが作成され得ることを、ツールチップによってユーザーに示すことができる。コントロール３０４−２上にマウスポインタを置くことは、「Ｃｔｒｌ−Ｒ」を押下することによって、新たなアクションが作成され得ることを、ツールチップによってユーザーに示すことができる。コントロール３０４−３上にマウスポインタを置くことは、「Ｃｔｒｌ−Ｌ」を押下することによって、新たなアクションが作成され得ることを、ツールチップによってユーザーに示すことができる。ユーザーは、コントロール上にマウスを置く必要はないかも知れないが、ジェスチャが何の動作をするかを、既に知っている可能性がある。さらに、タッチスクリーン、マウス、モーションセンシングシステム等の、他のインターフェースを用いて、ツールチップは、インターフェース環境に依存する、異なるジェスチャを示すことができる。
【００３３】
本実施例において、ユーザーがＥｎｔｅｒを押下し、および新しいノード３１０が、図３Ｂに示されるように、連結関係の有無にかかわらず作成される。どのタイプの要素および関係が作成されたかは、図のタイプ、ジェスチャがどこから開始されたか、ジェスチャが開始されたノード、コマンドの方向、および／またはユーザーのお気に入りおよび／または最近のアクティビティから派生する。この例において、ドメインはアクティビティ図であり、故に新しいノード３１０のためのデフォルト要素はアクションである。アクションは、ほとんどの場合、コントロールフローによって接続されるが、コントロールフローは自動的に作成される。アクティビティ図において、最も一般的なフロー方向は下向きなので、コントロールフローは、新しい要素を指している。代替の実施形態において、この場合における、方向を決定する一つの方法は、フローが、既存のノードから新たしく作成されたノードに対して、常に向かうということである。これにより、デフォルトのリンク方向が、ドメイン、選択、ジェスチャ等によっても決定される実施形態を実装することができる。
【００３４】
いくつかの実施形態においては、一旦ノードまたはリンクが置かれると、ユーザーは、方向またはリンクのタイプを変更するための、非常に簡単な方法が与えられ得る。例えば、ユーザーは、スマートタグ等を使用または変更することができる。
【００３５】
様々な実施形態において、要素ノード３１０の配置に係る自動配置は、様々な要因によって決定されることができる。例えば、コマンドの方向によって、配置が決定されることができる。自動アライメントおよび間隔のための追加の考慮事項は、図のタイプおよびそのドメインおよび／またはユーザーのお気に入りに基づいた、レイアウトエンジンにおける制約に基づくことができる。ユーザーお気に入りは、ユーザー設定において予め指定されることができる。あるいはまた、ユーザーお気に入りは、過去のユーザー対話に基づいて推定されることもできる。自動レイアウトは、手作業でレイアウトを定義しなければならないことから、ユーザーを解放することができる。しかしながら、実施形態は、ユーザーが、自動レイアウトを使用して配置された要素の配置を、さらに修正または「微調整(tweak)」することを可能にする機能を含むことができる。
【００３６】
実施形態は、以前のシステムと区別される、様々な新規な特徴を有することができる。
具体的には、実施形態は、コンテンツおよびダイアグラムタイプにわたる、コマンドおよびジェスチャの一貫したセットを実装することができる。実施形態は、システムが、多数のドメインにわたって一貫しておよび有用であることが可能なように、ドメイン、ターゲット、方向、ユーザーお気に入り等に基づいて、どの要素を作成するかおよびそのタイプを決定するための、自動システムを含むことができる。実施形態は、ドメイン固有の制約の下に動作される、自動増分レイアウトを含むことができるが、当該自動増分レイアウトにより、コマンドが、図のタイプに応じて、類似しているものの、ドメイン固有の結果を与えることができる。
【００３７】
他の機能を示す、別の例を図示すると、実施形態は、現在のドメインによって制限されるプロンプトを使用して、要素のタイプを迅速に設定する、システムを実装することができる。例えば、ユーザーは、図を設計することができる。ユーザーは、コマンドおよびジェスチャを使用すると、場合によっては、ユーザーは要素のタイプを変更し、またはさらに指定することを望む。あるいはまた、設計プロセスの一部として、ユーザーが最初に作成したタイプを変更する必要があることを発見するかもしれない。
【００３８】
実施形態は、現在のコンテキスト、およびこのコマンドに対する新規のエントリポイントのセットに基づいて、要素のタイプを設定するために、コマンドを実行する機能を含むことができる。いくつかの実施形態は、ニーモニックス、またはインテリセンス等の、制約ヒントモジュールを使用して、その名前をタイピングする間に、ユーザーが、要素のタイプを指定することができるシステムを実装することができる。実施形態は、さらに、マウスホイールまたはコンテキストメニューのようなジェスチャが、この機能を呼び出すために使用されることができるように、実装され得る。
【００３９】
図４Ａを参照すると、一例が示されている。図４Ａに示された例は、ユーザーが、下方作成コマンドを使用するために、入力ハードウェアとの対話によって、現在のノード４０２の下に、新しいアクションノード４０４を作成したことを示す。ユーザーは、このノードを決定形状とすることを望む。図４Ｂに示されたように、ユーザーは、新しいアクションノードが選択されているか、および／またはインフォーカスの間、タイピングを開始する。ドロップダウン４０６は、一つまたは複数のドメイン制約のヒント、あるいは提案を提供するように現れる。ユーザーが、タイピングした最初の文字は「ｄ」であるが、リストは、このドメインにおいて「ｄ」で始まる使用可能なタイプまで、フィルタリングされる。上述の通り、提案リストは、ドメインに基づいて制約されてもよい。このように、この例において、図４Ａおよび図４Ｂにおいて示された特定のドメインのために、唯一の適切な提案が提供される。
【００４０】
上述の通り、ユーザーは、要素のタイプを決定するように変更することを望み、そしてＴａｂキーを押下すると、図４Ｃに示されるように、これにより自動的に単語を完成させることができる。ユーザーは、次いで、図４Ｄに示されるように、この例では形状フー（Ｆｕｕ）の名前を追加し、そしてＲｅｔｕｒｎまたはＥｎｔｅｒを押下する。この時点で、図４Ｅに示されるように、形状は決定形状に変換される。
【００４１】
タイプ選択のために、代替的なジェスチャを使用することができる。例えば、ユーザーがマウスを使用することを好む場合は、ユーザーは、その形状の上でクリックし、およびマウスのスクロールホイールを使用して、このコンテキストのために使用可能なタイプのセット内をスクロールすることによって、タイプ選択コマンドをキーストロークの代わりに呼び出すことができる。
【００４２】
実施形態はまた、より簡単な機能を実装することができる。例えば、システムは、決定（Ｄｅｃｉｓｉｏｎ）のためのｄ等のニーモニックスを入力する、ワードプロセッサにおけるように、オートコンプリートシステムを使用して構築されることができ、アクション（Ａｃｔｉｏｎ）のためのａ等は、ユーザーが、「ｄ<name>」とタイピングすることによって、要素のタイプを変更し、次いで、「Ｄｅｃｉｓｉｏｎ<name>」として自動的に解釈させ、およびこれにより、タイプを変更させることを可能にする。いくつかのこのような実施形態はまた、新しい要素がグラフ上でどのように見えるかのプレビューを表示する機能を、含むことができる。例えば、ユーザーが「ｄ」をタイピングするとき、および「ｄ」の選択を永続的なものとする前に、決定要素のプレビューは、決定要素が適切な所望のタイプであるか否かを決定する際に、ユーザーの助けとなるように、適切な場所に、グラフ上に表示されてもよい。
【００４３】
リンク作成は、しばしば、現在のツールでマウスを使用してよくサポートされる。しかしながら、現在実装された多くのシステムは、リンクが長い距離にわたって作成される必要があるとき、またはユーザーが、キーボードを使用して図を編集する流れにあるときに関連する欠点を有する。
【００４４】
いくつかの実施形態は、ユーザーが、リンク作成ツールを起動し、そして、キーボードのみを使用して、新しいリンクを定義することができる。システムは、インテリセンス等の制約された提案システムを使用して、ユーザーがタイピングするコンテキストのための、ドメイン固有のタイプ、方向およびターゲットのリストをユーザーに提供し、ユーザーが、どのようにリンクが定義されるかをすぐに特定することを可能とする。
【００４５】
図５Ａを参照すると、一例が示されている。図５Ａにおいて、ユーザーは、キーボードまたは他の入力装置から、ジェスチャを使用して、ノード５０２について「ａｄｄ  ｌｉｎｋ」コマンドを呼び出す。コントロール５０４は、既に展開された、ドメイン制約ドロップダウン５０６と共に現れる。図５Ｂに示されるように、ユーザーがタイピングすると（この場合、文字Ｌ）、リストは、ドメイン制約提案を使用して、通常通りにフィルタリングされ、そしてＴａｂを押下することによって、ユーザーは、図５Ｃにおいて示されたように、選択された要素をオートコンプリートすることができる。ユーザーは、リンクのタイプ、方向、およびどの他のノードへのリンクか／他のノードからのリンクかをタイピングすることができる。ステートメントが完了され、およびユーザーがＥｎｔｅｒを入力すると、リンクは図５Ｄにおいて示されるように作成される。
【００４６】
実施形態はさらに、サーチおよびリンクナビゲーションを使用して、図の迅速なナビゲーションを含むことができる。コードからエンジニアリング図にリバースしてコードの設計および解析のためにエンジニアリング図を使用するためのシステムは、より活用できるようになっており、より一般的になってきているので、ソフトウェアアーキテクチャ図は、多くの要素の数を伴い、より大きくなる傾向にある。既存のシステムを使用して作成された図は、図が大きくなるにつれて、ナビゲートすることが難しくなる。ナビゲーションはたいてい、リストまたはフォームをナビゲートするために、従来のキーボードスキームに基づいている。これは、小さな図において隣接するノードにナビゲートするときには適切かもしれないが、ユーザーはたいてい、現在の位置から大きくジャンプする必要があるか、または、ユーザーは、その点について言えば、それらのノードが隣同士でなくとも、もしくはお互いに近接していても、一つのノードから別のノードへのリンクを辿ることを望む。
【００４７】
いくつかの実施形態は、上述のノードを作成するためのシステムからの原理を使用して、リンクをナビゲートするシステムを実装することによって、これらの課題を克服することができる。例えば、実施形態は、上、下、左、右に続くリンクをナビゲートするコマンドのセットを含むことができる。システムは、次いでその方向に進むノードに接続された、最初のリンクを選択する。もう一度同じコマンドを発行することによって、リンクの他端のノードが選択される。
【００４８】
ノードが、コマンドの方向に接続された複数のリンクを有する場合、ドロップダウンが現れ、ユーザーが、それらのリンクまたは所望されるそれらのターゲットノードの、別の一つを選択することを可能にする。図６Ａを参照すると、一つの例が示されている。図６Ａにおいて示された例において、ユーザーは、決定形状６０２からアクション３（６０４）に対して、ナビゲートすることを望むことができる。例えば、ジェスチャを使用することによってなど、ユーザーは、右へのリンクをナビゲートするためにコマンドを呼び出すことができる。本例において、ユーザーは、「Ｃｔｒｌ−−＞」キーボードジェスチャを使用して、右へのナビゲーションを示すことができる。ユーザーが、右へのリンクをナビゲートするコマンドを呼び出す時、アクション１（６０６）に対するリンクは、選択される最初のリンクであることが起こり得る。しかし、アクション３(６０４)はまた、決定形状６０２と同じ側から接続されているので、ドロップダウン６０６においても現れる。ユーザーは、次いでキーボードまたは他のジェスチャを使用して、アクション３（６０４）を選択し、およびそれを選択したことをコミットすることができる。
【００４９】
実施形態は、キーボードまたは他のハードウェア入力装置を使用して、名前または他のコンテンツ（操作の名前またはクラス形状内部の属性等）によって、ノードに対して直接ナビゲートするための機能を含むことができる。実施形態は、増分サーチを使用することができ、名前を付与された要素に対して直ちに向かうための方法として、図の中で使用することができる。例えば、ユーザーは増分サーチコマンドを呼び出す。すると、サーチコントロールが現れる。ユーザーがタイピングすると、現在の文字列を包含するノードが強調表示される。ユーザーがさらにタイピングすると、ユーザーは、ユーザーが探しているノードに絞り込んで、リターンキーを押下すことができる。そしてこのノードが選択される。同様の機能は、リンクラベル、およびコンテナに同様に適用されることができる。
【００５０】
以下の検討は、実行され得る多くの方法や方法動作を参照する。当該方法動作は、ある特定の順序で検討され、または特定の順番において発生するとしてフローチャートに示されることができるが、動作は、その動作が実行される以前に完了される、別の動作に依存するので、特定の順序は、特に言及または要求がない限り必要とされない。
【００５１】
図７を参照すると、方法７００が示されている。方法７００は、コンピューティング環境において実施されることができ、および空間的な意義を有するデータを編成する動作を含むことができる。例えば、グラフや図は、空間的な意義を有するデータの一例である。お互いのノードの位置および／またはノードを接続するコネクタは、ノードによって表されるデータの意味を定義するために役立つ。空間的な意義を有する他のデータは、空間的な位置決めが階層内における位置を示す、階層データを含むことができる。このような階層データは、データベース、テーブル等に含まれることができる。ここでは列挙されないが、他のタイプのデータは、空間的な意義を有してもよく、およびここでの例は包括的であることを意図するものではない。
【００５２】
方法７００は、ユーザーインターフェースで、空間的に構造化されたデータの表現をユーザーに対して表示することを含む（動作７０２）。例えば、図２Ａは、空間的に構造化されたデータを表す、クラスノード２０２および２０４を伴う、クラス図を表示するユーザーインターフェース表示を示す。図３Ｂは、空間的な意義がアクションの順序を示す、フローコネクタによって接続された、アクションノード３０２およびアクションデータ３１０を伴う、アクティビティ図でユーザーインターフェースを示す。
【００５３】
方法７００はさらに、一つまたは複数のハードウェアユーザーインターフェース装置を通じて、コンピューター実装のユーザーインターフェースでのユーザー入力を受信することを含む（動作７０４）。ユーザー入力はドメイン非依存であるが、空間的な意味合いを有する。例えば、図示したように、空間的な意味合いは上に、下に、左に、右に、および内側にあってもよい。これらは、空間的な意味合いを持っているが、特定のドメインおよび／またはコンテキストの間で、多少異なってもよい。図示したように、ユーザー入力は、多くの異なるタイプの入力のうち、一つまたは複数のものであってもよい。本明細書に示された例は、制限されないが、マウス、ペン、タッチ、マルチタッチ、ジェスチャ、カメラまたはハンドヘルドコントローラによって追跡されるような手足もしくは四肢ジェスチャ、コントローラもしくはコンピューティングシステムにおける、加速度計によって追跡されるようなコントローラもしくはコンピューティングシステムの動きフリックジェスチャ、またはいくつかの他のユーザー入力を含む。
【００５４】
方法７００はさらに、ユーザーインターフェースまたは以前のユーザー対話で表示された、既存の構造化されたデータに基づいて、ユーザー入力のドメインを決定することを含む（動作７０６）。例えば、図２Ａにおいて、クラスノード２０２の存在は、ドメインがクラス図であることを示すことができる。図３Ａにおいて、アクションノード３０２の存在は、ドメインがアクティビティ図であることを示すことができる。あるいはまた、予め入力されたユーザーのお気に入り、またはユーザーの以前の図構成アクションは、ユーザー入力のドメインを決定するために使用されることができる。
【００５５】
方法７００はさらに、決定されたドメインに基づいて、ユーザー入力をドメイン固有の応答に解釈することを含むが（動作７０８）、ドメイン固有の応答は、複数のドメインにわたり空間的な意味合いで一致する。例えば、図２Ｂにおいて、Ｅｎｔｅｒキーを押下することにより、新しい継承クラス２０６が、動物クラスノード２０２の下に置かれる。一方で、図３Ｂにおいて、Ｅｎｔｅｒキーを押下することにより、新しいアクションノード３１０が、アクションノード３０２の下に置かれる。したがって、どちらのドメインにおいても、空間的な意味合いは下に作成されることであり、各々ドメイン固有の応答として、下に作成されることに関する。
【００５６】
方法７００の実施形態は、一つまたは複数の制約されたヒントを提供するヒントモジュールの支援で生成されたユーザー入力を受信することを含む、ユーザー入力を受信することを実行することができる。例えば、図５Ａ−５Ｄは、ジェスチャが使用され、およびヒントモジュールは制約されたヒントを提供する例を示す。ヒントは、ドメインおよび／またはコンテキストに基づいて制約されてもよい。例えば、ヒントは、何のタイプの図が作成されているか、および何のエンティティが図内においてインフォーカスであるかに基づいて、制約されてもよい。
【００５７】
方法７００の実施形態は、ユーザー入力を受信することは、一つまたは複数の制約されたヒントを提供するニーモニックスモジュールの支援で生成されたユーザー入力を受信することを、実行することができる。図４Ａおよび図４Ｂは、ブロックのタイプを判断するために、どのようにニーモニックスモジュールが使用されることができるかを示す。
【００５８】
方法７００はさらに、ユーザー入力をドメイン固有の応答に解釈することの結果として、空間的に構造化されたデータに対して、新しいデータタイプのオブジェクトを自動的に追加することを含む。例えば、図３Ａおよび図３Ｂにおいて、図はアクティビティ図であるため、アクションブロックが自動的に追加される。いくつかの実施形態は、マウスボタンまたはスクロール機能の少なくとも一つを使用して、追加された新しいデータタイプのタイプを変更することを含むことができる。例えば、ユーザーは、新しく追加されたデータタイプを選択することができ、および様々な利用可能なデータタイプをスクロールすることができる。例えば、ユーザーは、決定データタイプに自動的に追加された、アクションデータタイプを変更することを可能にしてもよい。いくつかの実施形態において、追加された新しいデータタイプのタイプを変更することは、一つまたは複数の制約されたヒントを提供する、ニーモニックスモジュールの支援で生成された、ユーザー入力を使用して実行されることができる。さらに、別の代替的な実施形態は、追加された新しいデータタイプのタイプを変更することは、インテリセンスのような、一つまたは複数の制約されたヒントを提供する、ヒントモジュールの支援で生成された、ユーザー入力を使用して行われることができる。
【００５９】
方法７００の実施形態はさらに、一つまたは複数の制約されたヒントを提供するヒントモジュールの支援で生成されたユーザー入力を使用して、構造化されたデータオブジェクト間のリンクを作成することを含むことができる。例えば、図５Ａ−５Ｄは、特に、ヒントモジュールを使用してリンクが作成される例を示す。これらのリンクは、実際にはかなり複雑になり得る。例えば、実施形態は、一つのクラスＡを選択し、そしてそれをクラスＢに接続するために、キーボードジェスチャを使用することができる。これは、クラスＡおよびクラスＢとがどのような関連しているかを、正確に識別するために生成される必要がある、一連の中間クラスならびにリンクという結果になる。例えば、それらの二つのクラスは、中間のクラスＣ、ＤおよびＥを通じて接続される必要がある可能性がある。それにもかかわらず、実施形態は、適切なヒントを提供し、および適切なリンクを作ることができる。
【００６０】
方法７００の実施形態は、空間的に構造化されたデータが、視覚的に観察可能であり、および意味ある空間レイアウトを有するデータを、含むことを実行することができる。例えば、フローチャート、アクティビティ図等が、ユーザーによって視覚的に観察可能なレイアウトを有する。
【００６１】
方法７００の実施形態は、空間的に構造化されたデータの表現におけるデータオブジェクト間のリンクをナビゲートするためのユーザー入力を受信することができる。例えば、図６において示されたように、図を通じてナビゲートするために、ユーザーのジェスチャが使用されることができる。いくつかの実施形態において、図６に示されるように、ドメインに基づいて、可能性があるナビゲーションの目的地の制約リストをユーザーに提供することができる。
【００６２】
さらに、方法は、一つまたは複数のプロセッサ、およびコンピューターメモリ等のコンピューター可読媒体を含む、コンピューターシステムによって実行されることができる。具体的には、コンピューターメモリは、一つまたは複数のプロセッサによって実行された時に、実施形態において記載された動作等の様々な機能を行う、コンピューター実行可能命令を格納することができる。
【００６３】
本発明の実施形態は、後述でより詳細に検討されるように、コンピューターハードウェアを含む、専用または汎用コンピューターを備えるか、または利用することができる。また、本発明の範囲内の実施形態はまた、コンピューター実行可能命令および／またはデータ構造を保有しまたは格納するための、物理的および他のコンピューター可読媒体を含む。このようなコンピューター可読媒体は、汎用または専用コンピューターシステムによってアクセスされることができる、任意の利用可能な媒体とすることができる。コンピューター実行可能命令を格納する、コンピューター可読媒体は、物理的記憶媒体である。コンピューター実行可能命令を担う、コンピューター可読媒体は伝送媒体である。これにより、例として、および限定されないが、本発明の実施形態は、明確に異なる少なくとも二種類のコンピューター可読媒体である、物理的なコンピューター可読記憶媒体および伝送コンピューター可読媒体を含むことができる。
【００６４】
物理的なコンピューター可読ストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは、他の光ディスク記憶装置（例えば、ＣＤ、ＤＶＤ等）、磁気ディスクストレージ装置または、他の磁気ストレージ装置、あるいはコンピューター実行可能命令または、データ構造の形式において、所望のプログラムコード手段を格納するために使用されることができ、および汎用または専用コンピューターによってアクセスされることができる、任意の他の媒体を含む。
【００６５】
「ネットワーク」は、コンピューターシステムおよび／またはモジュールおよび／または他の電子装置間の、電子データの移送を可能とする、一つまたは複数のデータリンクとして定義される。情報が、ネットワーク、あるいは別の通信接続（結線接続、無線のいずれかまたは、結線接続もしくは無線の組み合わせ）を経由して伝送あるいは提供されるとき、コンピューターは、当該接続を適切に伝送媒体としてみなす。伝送媒体は、コンピューター実行可能命令またはデータ構造の形式で、所望のプログラムコード手段を保持するために使用されることができ、および汎用または専用コンピューターによってアクセスされることができる、ネットワークならびに／あるいはデータリンクを含むことができる。上述の組み合わせも、コンピューター可読媒体の範囲に含まれる。
【００６６】
さらに、様々なコンピューターシステムコンポーネントに到達すると、コンピューター実行可能命令またはデータ構造の形式におけるプログラムコード手段は、伝送コンピューター可読媒体から、物理コンピューター可読ストレージ媒体に（またはその逆に）、自動的に伝送されることができる。例えば、ネットワークまたはデータリンクを経由して受信された、コンピューター実行可能命令またはデータ構造は、ネットワークインターフェースモジュール（例えば、ＮＩＣ）内のＲＡＭにバッファされることができ、次いで最終的に、コンピューターシステムＲＡＭおよび／またはコンピューターシステムにおける低揮発性の物理的なコンピューター可読ストレージ媒体に伝送することができる。このように、物理的なコンピューター可読ストレージ媒体は、伝送媒体も利用する（または主に利用する）コンピューターシステムコンポーネントに、含まれることができる。
【００６７】
コンピューター実行可能命令は、例えば、汎用コンピューター、専用コンピューター、または専用処理装置にある特定の機能または機能群を実行させる、命令およびデータを備える。
コンピューター実行可能命令は、例えば、バイナリ、アセンブリ言語等の中間フォーマット命令、またはソースコードであることができる。本発明の技術的範囲は、構造的特徴および／または方法論的動作に特有の言葉で説明されたが、添付の特許請求の範囲において定義される技術的範囲は、必ずしも上述の特徴または動作に限定されないことを理解されたい。むしろ、上述の特徴および動作は、特許請求の範囲を実施する例示的形態として開示される。
【００６８】
本技術分野における当業者であれば、本発明は、パーソナルコンピューター、デスクトップコンピューター、ラップトップコンピューター、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベース、またはプログラム可能な家電、ネットワークＰＣ、ミニコンピューター、メインフレームコンピューター、携帯電話、ＰＤＡ、ページャー、ルーター、スイッチ等を含む、多くの種類のコンピューターシステム構成を伴う、ネットワークコンピューティング環境において実施できることを理解することができる。本発明はまた、ネットワークを経由して（結線接続されたデータリンク、無線データリンクによって、または結線接続および無線データリンクの組み合わせによって）リンクされた、ローカルおよびリモートコンピューターシステムの双方がタスクを処理する、分散システム環境において実施されることができる。分散システム環境において、プログラムモジュールは、ローカルおよびリモートの両方のメモリストレージ装置に配置することができる。
【００６９】
本発明は、その技術思想または特徴から逸脱することなく、他の特定の形態で具体化されることができる。説明された実施形態は、単に例示的であり、および限定的ではないものとして、全ての項目において考慮される。本発明の技術的範囲は、したがって、前述の説明によってよりもむしろ、添付された特許請求の範囲によって示される。特許請求の範囲と均等な意味および範囲内におけるすべての変更は、その範囲内に包含される。
【図１】
0006027541.tif 000002
【図２Ａ】
0006027541.tif 000003
【図２Ｂ】
0006027541.tif 000004
【図３Ａ】
0006027541.tif 000005
【図３Ｂ】
0006027541.tif 000006
【図４Ａ】
0006027541.tif 000007
【図４Ｂ】
0006027541.tif 000008
【図４Ｃ】
0006027541.tif 000009
【図４Ｄ】
0006027541.tif 000010
【図４Ｅ】
0006027541.tif 000011
【図５Ａ】
0006027541.tif 000012
【図５Ｂ】
0006027541.tif 000013
【図５Ｃ】
0006027541.tif 000014
【図５Ｄ】
0006027541.tif 000015
【図６】
0006027541.tif 000016
【図７】
0006027541.tif 000017