コンピューティング環境において、データを編成する方法であって、前記データは空間的な意義を有し、ユーザーインターフェースで、空間的に構造化されたデータの表現をユーザーに対して表示するステップと、一つまたは複数のハードウェアユーザーインターフェース装置を通じて、コンピューター実装のユーザーインターフェースでのユーザー入力を受信するステップであって、前記ユーザー入力はドメイン非依存であるが、空間的な意味合いを有する、ステップと、前記ユーザーインターフェースまたは以前のユーザー対話で表示された、既存の構造化されたデータの少なくとも一つに基づいて、前記ユーザー入力のドメインを決定するステップと、前記決定されたドメインに基づいて、前記ユーザー入力をドメイン固有の応答に解釈するが、前記ドメイン固有の応答は、複数のドメインにわたり空間的な意味合いで一致するステップとを備えることを特徴とする方法。一つまたは複数の制約されたヒントを提供するヒントモジュールの支援で生成されたユーザー入力を受信するステップをさらに備えることを特徴とする請求項1記載の方法。前記ヒントは、前記ドメインに基づいて制約されることを特徴とする請求項2記載の方法。前記ヒントは、コンテキストに基づいて制約されることを特徴とする請求項2記載の方法。ユーザー入力を受信するステップは、一つまたは複数の制約されたヒントを提供するニーモニックスモジュールの支援で生成されたユーザー入力を受信するステップを備えることを特徴とする請求項1記載の方法。前記ユーザー入力をドメイン固有の応答に解釈するステップの結果として、前記空間的に構造化されたデータに対して、新しいデータタイプのオブジェクトを自動的に追加するステップをさらに備えることを特徴とする請求項1記載の方法。マウスボタンまたはスクロール機能性の少なくとも一つを使用して、前記追加された新しいデータタイプのタイプを変更するステップをさらに備えることを特徴とする請求項6記載の方法。一つまたは複数の制約されたヒントを提供するニーモニックスモジュールの支援で生成されたユーザー入力を使用して、前記追加された新しいデータタイプのタイプを変更するステップをさらに備えることを特徴とする請求項6記載の方法。一つまたは複数の制約されたヒントを提供するヒントモジュールの支援で生成されたユーザー入力を使用して、前記追加された新しいデータタイプのタイプを変更するステップをさらに備えることを特徴とする請求項6記載の方法。一つまたは複数の制約されたヒントを提供するヒントモジュールの支援で生成されたユーザー入力を使用して、構造化されたデータオブジェクト間のリンクを作成するステップをさらに備えることを特徴とする請求項1記載の方法。前記空間的に構造化されたデータは、視覚的に観察可能な空間レイアウトを有するデータを備えることを特徴とする請求項1記載の方法。空間的に構造化されたデータの前記表現におけるデータオブジェクト間のリンクをナビゲートするための追加的なユーザー入力を受信するステップをさらに備えることを特徴とする請求項1記載の方法。前記ドメインに基づいて、可能性があるナビゲーション目的地の制約リストをユーザーに提供するステップをさらに備えることを特徴とする請求項12記載の方法。一つまたは複数のプロセッサによって実行される場合に、一つまたは複数のプロセッサにデータをナビゲートするために以下の動作を実行させるように構成されるコンピューター実行可能命令を備えるコンピューター可読媒体であって、前記データは空間的な意義を有し、ユーザーインターフェースで、空間的に構造化されたデータの表現をユーザーに対して表示するステップと、一つまたは複数のハードウェアユーザーインターフェース装置を通じて、コンピューター実装のユーザーインターフェースでのユーザー入力を受信し、前記ユーザー入力はドメイン非依存であるが、空間的な意味合いを有する、受信するステップと、前記ユーザーインターフェースまたは以前のユーザー対話で表示された、既存の構造化されたデータの少なくとも一つに基づいて、前記ユーザー入力のドメインを決定するステップと、前記決定されたドメインに基づいて、ユーザー入力をドメイン固有の応答に解釈するが、前記ドメイン固有の応答は、複数のドメインにわたり空間的な意味合いで一致するステップとを、一つまたは複数のプロセッサに実行させるように構成されるコンピューター実行可能命令を備えることを特徴とするコンピューター可読媒体。ユーザー入力を受信するステップは、一つまたは複数の制約されたヒントを提供するヒントモジュールの支援で生成されたユーザー入力を受信するステップを備えることを特徴とする請求項14記載のコンピューター可読媒体。いくつかの実施形態は、詳細なレイアウトを扱うために、ユーザーの作業を中断することなく、ユーザーが図を作成する流れに留まることを可能にするために、ドメインおよび/またはコンテキストに基づいて、スマートキーボードショートカット、半自動レイアウトならびに自動制約ガイダンスヒントの組み合わせを使用することができる。一つの実施形態のシステムは、ユーザーにピクセル毎のレイアウトを管理する負担をかけることなく、現在のノードの上、下、内のような意味的に重要な位置に、新しいノードを配置する一貫性のある方法を、ユーザーに提供するコマンドの組み合わせを実現することができる。これは、名前や署名を入力している間、要素タイプを設定するために、インテリセンス等の、指示コンテキストおよび/またはドメイン固有の制約ガイダンスと組み合わされ、詳細なレイアウトを扱うために、ユーザーが自身の作業を中断する必要なく、図を作成する流れの中に留めさせるシステムに、結果的になる。追加的または代替的に、実施形態は、リンクを介して図を簡単にナビゲートする機能を含むことができる。いくつかの実施形態は、様々なジェスチャを通じてアクセス可能である、標準方向コマンドが、図または他の空間的に構造化されたデータ内において、現在の要素の、上、下、左、右、または内部の要素を作成するために使用されることができる機能を実装する。方向コマンドは、コマンドと関連付けられた方向に普遍的な意味があるので、ドメインに関係なく、同じまま留まり、例えば、デフォルトで作成された要素タイプを決定するために、ドメインナレッジと組み合わされることができる。いくつかの実施形態は、図および/または他の空間的に構造化されたデータに適用することができる。上述の通り、実施形態は、例えば、システムアーキテクチャの青写真を、UML図を使用して作成するために使用されることができる。実施形態は、フローチャート図が使用されてもよい。特に、実施形態は、図においてノードとコネクタを配置するために使用されることができる。実施形態は、物理的オブジェクト空間レイアウトのために、使用されることができる。例えば、実施形態は、物理的オブジェクトを、他の既存の物理的オブジェクトに関して図示するために使用されることができる。実施形態は、データベースまたは他のテーブルのために使用されることができる。例えば、実施形態は、データベースオブジェクトの依存関係または相互関係を定義するために使用されることができる。上述の通り、実施形態は、様々なジェスチャを使用しても良く、当該ジェスチャはドメインに関係なく同じである。例えば、いくつかのジェスチャは、キーボードジェスチャを使用して実装されることができる。キーボードジェスチャ例は、インフォーカスエンティティの下に、新しいノードまたはオブジェクトを作成するためにEnter、インフォーカスエンティティの左に新しいオブジェクトを作成するためにCtrl-L、インフォーカスエンティティの右に新しいオブジェクトを作成するためにCtrl-R、インフォーカスエンティティの上に新しいオブジェクトを作成するためにCtrl-U、インフォーカスエンティティの内側に新しいオブジェクトを作成するためにCtrl-Nを含むことができる。特に、キーボードジェスチャまたは、下記のように他のジェスチャは方向に類似する感覚はあるものの、異なるドメインで異なる結果を生成する。例えば、自動車の場合の電気回路レイアウトを設計する際に、CtrlUはその自動車のフロントヘッドライト用の直交レイアウトに回路を追加することができるが、UMLクラス図の場合には、CtrlUはベースクラスを追加することができる。双方の場合においても、図の要素は適切に配置される。一つの共通性は、実施形態が、方向の意味合いを取り、それを特定のドメインに適用し、ユーザーにピクセル毎の変化を作らなければならない負担を軽減することである。代替的な実施形態において、マウスジェスチャを使用することができ、当該ジェスチャはドメインに関係なく同じである。マウスジェスチャの例は、インフォーカスエンティティの下に新しいノードまたはオブジェクトを作成するために下向きのマウスフリック、インフォーカスエンティティの左に新しいオブジェクトを作成するために左のマウスフリック、インフォーカスエンティティの右に新しいオブジェクトを作成するために右のマウスフリック、インフォーカスエンティティの上に新しいオブジェクトを作成するために上向きのマウスフリック、インフォーカスエンティティの内側にオブジェクトを作成するためにエンティティについてほぼ円の動きを含むことができる。代替的な実施形態において、タッチパッドまたはタッチスクリーンのジェスチャを使用することができ、当該ジェスチャはドメインに関係なく同じである。タッチパッドまたはタッチスクリーンのジェスチャの例は、インフォーカスエンティティの下に新しいノードまたはオブジェクトを作成するために下向きのタッチパッドまたはタッチスクリーンフリック、インフォーカスエンティティの左に新しいオブジェクトを作成するために左のタッチパッドまたはタッチスクリーンフリック、インフォーカスエンティティの右に新しいオブジェクトを作成するために右のタッチパッドまたはタッチスクリーンフリック、インフォーカスエンティティの上に新しいオブジェクトを作成するために上向きのタッチパッドまたはタッチスクリーンフリック、インフォーカスエンティティの内側にオブジェクトを作成するためにエンティティについてほぼ円の動きを含むことができる。代替的な実施形態において、人体追跡ジェスチャを使用することができ、当該ジェスチャはドメインに関係なく同じである。例えば、様々なツールは、コンピューティングシステムによって追跡することができるハンドヘルドコントローラの使用のように、腕の動きを追跡するために存在する。ジェスチャは、例えば、赤外線移動追跡装置等の、加速度計および/またはコントローラ追跡装置によって感知されるように、コントローラの動きに基づいてもよい。あるいはまた、他のコンピューティングシステムは、人間の手足および四肢を認識し、その動きを追跡するために、カメラを使用することができる。当該手足または四肢の動きのジェスチャの例は、インフォーカスエンティティの下に新しいノードまたはオブジェクトを作成するために下向きの手足または四肢の動きをフリック、インフォーカスエンティティの左に新しいオブジェクトを作成するために左の手足または四肢の動きをフリック、インフォーカスエンティティの右に新しいオブジェクトを作成するために右の手足または四肢の動きをフリック、インフォーカスエンティティの上に新しいオブジェクトを作成するために上向きの手足または四肢の動きをフリック、インフォーカスエンティティの内側にオブジェクトを作成するためにエンティティについてほぼ円の手足または四肢の動きを含むことができる。ジェスチャは、コンピューティング装置において、加速度計によって感知されるように、コンピューティング装置の動きに基づくことができる。例えば、多くのタブレットコンピューティング装置は、二つまたはそれ以上の軸について動きの速度および方向を測定するために、加速度計を含む。タブレットを後部のレベル位置へ傾けることによって上向きとなったタブレットのトップの突然の傾きは、インフォーカスエンティティの下に新しいノードまたはオブジェクトを作成するために使用することができる。レベリングによって起きた突然の左への傾きは、インフォーカスエンティティの左に新しいオブジェクトを作成するために使用することができる。レベリングによって起きた突然の右への傾きは、インフォーカスエンティティの右に新しいオブジェクトを作成するために使用することができる。レベリングによって起きたタブレットのトップの突然の下向きの傾きは、インフォーカスエンティティの上にオブジェクトを作成するために使用することができる。タブレットの振動または多少の円の動きは、インフォーカスエンティティ内部にオブジェクトを作成するために使用することができる。さらに他の実施形態は、オブジェクト作成のための、音声コマンドを使用することができる。例えば、一つの非限定的な例において、当該音声コマンドの例は、インフォーカスエンティティの下に新しいノードまたはオブジェクトを作成するためにダウンDown、インフォーカスエンティティの左に新しいオブジェクトを作成するために左Left、インフォーカスエンティティの右に新しいオブジェクトを作成するために右Right、インフォーカスエンティティの上に新しいオブジェクトを作成するためにアップUp、インフォーカスエンティティの内部にオブジェクトを作成するために追加Addを含むことができる。前述のように、コマンドは、多数の方法で呼び出すことができる。コマンドは、位置および方向に関して集中しているが、マウス、ペン、タッチ、マルチタッチ、またはコマンドが簡単に、適切なジェスチャにマッピングされることができる他のコマンドモードを可能にするシステムであり、これらのコマンドモードは、ドメインを横断することができる自然なジェスチャを作成することに非常に適している。例えば、ユーザーは、形状から上向きのフリックを作り、その上に関係した形状を作成するために指を使用することができ、またはアクティブなノードのおおよそ上の位置にノードを描くために、まさに実際にジェスチャをすることができる。前述のように、実施形態は、ドメインから独立したコマンドまたはジェスチャを使用し、およびそれらをドメイン固有の方法に適用することができる。例えば、図1を参照すると、テーブル100には、異なる種類の図、図中で選択され得るエンティティ、ドメインから独立しているキーボードのジェスチャ、ならびに特定の図および選択を与えられた、所定のキーボードジェスチャを使用する結果の例が示されている。実施形態は、発生する可能性のある競合を解決しながら、ユーザーが作成したように、要素の配置や間隔を微調整する、半自動レイアウトのための機能を、さらに含むことができる。ユーザーは、次いで、手作業で自由にレイアウトを変更することができるが、システムによって、そのようにする必要性を大幅に減らすことができる。図2を参照すると、この機能の例が示されている。図2Aは、動物クラス202を示している。継承猫クラス204は、IS-A関係を通じて動物クラス202に関連付けられる。ユーザーは、望むなら、動物クラス202の下に犬継承クラスを作成することもできる。これを行うために、ユーザーは、動物クラス202にフォーカスをもたらすように、動物クラス202を選択することができる。図2Bに示されるように、ユーザーは、次いで、選択されたオブジェクトの下に、新しいオブジェクトを配置するためのコマンドとして解釈され得るEnterキーを押下すること等によって、動物クラス202の下に、新しいクラス206を作成するジェスチャを行うことができる。このように、クラス図のドメインのために、および動物クラス202を選択したコンテキストにおいて、新しい継承クラス206を、動物クラス202の下に作成することができる。図2Bに示されるように、猫クラス204は、新しい継承クラス206のための領域を確保するために、自動的に移動されることができる。実施形態は、ある特定の形状を移動させることができない場合、またはジェスチャ自体が、簡単なバンプではなく、むしろ追加されることが必要である形状の複雑なセットである場合に、様々なスタイルで様々な方法において、形状のセットをルーティングすることが可能なエッジ接続を確実化するために、エッジのインテリジェントルーティングを実行することができる。例えば、実施形態はスプラインルーティング、直交ルーティング等を実装することができる。加えて、いくつかの実施形態は、増分レイアウトを実行するように実装することができる。具体的には、変化が段階的に発生し、そして最小限の変化のセットがグラフ化される。いくつかの実施形態においては、これを実行することができ、故に、ユーザーは、レイアウトがかなり安定していることを認識する。図2Bは、唯一のユーザー入力がオブジェクトを移動、配置、または接続すべき場所を指定する、何れの追加入力をすることのないコンテキスト独立コマンドすなわち、Enterキーの押下の使用であった場合の例を示している。ユーザーがそのように望む場合、実施形態は、その後、自動移動での移動を可能にすることができる。上述の例において示されるように、新たに作成された要素は、コンテキストに基づいて、自動的にタイプを付与されることができる。例えば、図2Aおよび2Bに示された例においては、動物クラス204が選択されたので、システムは、ジェスチャが、クラスのコンテキストにおけるクラス図のドメインにおいて、解釈されるべきであることを認識している。したがって、Enterキーの押下によって、継承クラス206が、選択された動物クラス202の下に作成される。これは、ドメインに基づいて、新たな要素がタイプクラスであることを示す。さらに、実施形態は、元の要素と新しい要素との間の関係を推測し、ならびに関係が追加の一つであることを示すために、リンクを追加することができる。様々な他の特徴は、以下でより詳細に示されるように、様々な実施形態において実装されることができる。しかしながら、そのような特徴の部分的な列挙は、ユーザーが、キーボードで入力してその名前にタイプを加えることにより、簡単に要素のタイプを変えること、名前を入力する間にタイプを選択することにおいてユーザーを支援する、インテリセンスまたはニーモニックス等の、ガイドおよび制限付きのヒント、インテリセンスのような、ガイドおよび制限付きのヒントを使用するリンク作成、ならびに、ノードを作成することと同様に、一貫したスキームを使用してキーボードでそれらリンクを介して図をナビゲートすること、を可能にすることを含む。実施形態は、コードのドメインにおける、インテリジェントなジェスチャの使用を可能にするために、コードの固有ドメイン用のカスタムデータベースバックエンドを使用する機能を含んでもよい。例えば、ジェスチャは、示されたクラスの継承、メソッド間のポリモーフィズム多様性等において使用されることができる。様々な例が示される。第一の例は、自動タイプシステムおよび増分レイアウトによってサポートされた、要素を作成するための空間コンテキストを有する、ドメイン非依存のコマンドの使用を示す。この例では、コンテキストは、ノードおよびリンクを含むユーザー作成図を含む。この特定の例では、UMLアクティビティ図が示されるが、本例においても、何れのノードおよびリンク図に一般化されることができる。実施形態は、現在の選択に関連する、意味論的に意味ある位置において要素を作成するために、キーボード、マウス、および/または他のジェスチャからアクセス可能な標準的なコマンドのセットを含むことができる。例として、意味論的に意味のある位置が含まれるかもしれないが、現在の要素の上、下、左、右または内に制限されない。実施形態は、ソース要素例えば、選択された要素またはインフォーカス要素および他の既存の要素に関連するジェスチャを使用して、コマンド起動によって作成されることとなった新しい要素を、レイアウトするための機能を含んでも良い。実施形態は、ドメインおよび固有のコンテキストによって引き起こされた要素に対して、タイプを自動的に割り当てることができる。実施形態は、ユーザーコマンドが、ドメインに関係なく同じ状態で実装されることができる。なぜならば、各ドメインにおいて必ずしも同じである必要はないが、方向は普遍的に意味があるためである。この方法では、ユーザーが、多くのドメインにわたって同様のタスクを実行する、一貫した方法を有する。上記した様に図1は、コマンドおよびジェスチャの標準セットは、異なるドメインにわたって同様のタスクを実行するために使用されることができることを示している。図3は、一つのシナリオ例の一部を例示する。図3Aにおいて、ユーザーは、通常のツールボックスを使用して、ノード302を作成することができる。本明細書に示された例において、ノードは単一ノード、ノードのセット、子ノードのセットを有するコンテナ、コンパートメント形状等のコンポジット形状、当該コンパートメント形状は、その中にメソッド毎に行を有するクラス形状であるが、上記の組み合わせ等であってもよい。ツールボックスは、ユーザーに対して提示するユーザーインターフェース要素を含むことができ、当該ユーザーインターフェース要素では、ユーザーは、ユーザーインターフェースとの対話をするために、マウスおよびキーボード等のハードウェア装置との対話をすることができる。ユーザーは、ノード302のために、図タイプおよび要素タイプを選択することができる。ユーザーは、望むなら、元のノード302の下に直接、次のノードを作成することができる。図3Aは、ユーザーが対話することができる、一つのユーザーインターフェース表示を示す。図示された例において、ユーザーは、ノードの周囲で各方向を指す4つのコントロール304-1、304-2、304-3および304-4を見る。図示された例において、ユーザーは、下向きを指すコントロール304-4の上に、マウスポインタ306を置く。ツールチップ308は、ユーザーが、コントロール上でクリックする代わりに、Enterキーを使用できることをユーザーに伝える。本例において、コントロール304-1上にマウスポインタを置くことは、Ctrl-Rを押下することによって、新しいアクションが作成され得ることを、ツールチップによってユーザーに示すことができる。コントロール304-2上にマウスポインタを置くことは、Ctrl-Rを押下することによって、新たなアクションが作成され得ることを、ツールチップによってユーザーに示すことができる。コントロール304-3上にマウスポインタを置くことは、Ctrl-Lを押下することによって、新たなアクションが作成され得ることを、ツールチップによってユーザーに示すことができる。ユーザーは、コントロール上にマウスを置く必要はないかも知れないが、ジェスチャが何の動作をするかを、既に知っている可能性がある。さらに、タッチスクリーン、マウス、モーションセンシングシステム等の、他のインターフェースを用いて、ツールチップは、インターフェース環境に依存する、異なるジェスチャを示すことができる。本実施例において、ユーザーがEnterを押下し、および新しいノード310が、図3Bに示されるように、連結関係の有無にかかわらず作成される。どのタイプの要素および関係が作成されたかは、図のタイプ、ジェスチャがどこから開始されたか、ジェスチャが開始されたノード、コマンドの方向、および/またはユーザーのお気に入りおよび/または最近のアクティビティから派生する。この例において、ドメインはアクティビティ図であり、故に新しいノード310のためのデフォルト要素はアクションである。アクションは、ほとんどの場合、コントロールフローによって接続されるが、コントロールフローは自動的に作成される。アクティビティ図において、最も一般的なフロー方向は下向きなので、コントロールフローは、新しい要素を指している。代替の実施形態において、この場合における、方向を決定する一つの方法は、フローが、既存のノードから新たしく作成されたノードに対して、常に向かうということである。これにより、デフォルトのリンク方向が、ドメイン、選択、ジェスチャ等によっても決定される実施形態を実装することができる。いくつかの実施形態においては、一旦ノードまたはリンクが置かれると、ユーザーは、方向またはリンクのタイプを変更するための、非常に簡単な方法が与えられ得る。例えば、ユーザーは、スマートタグ等を使用または変更することができる。様々な実施形態において、要素ノード310の配置に係る自動配置は、様々な要因によって決定されることができる。例えば、コマンドの方向によって、配置が決定されることができる。自動アライメントおよび間隔のための追加の考慮事項は、図のタイプおよびそのドメインおよび/またはユーザーのお気に入りに基づいた、レイアウトエンジンにおける制約に基づくことができる。ユーザーお気に入りは、ユーザー設定において予め指定されることができる。あるいはまた、ユーザーお気に入りは、過去のユーザー対話に基づいて推定されることもできる。自動レイアウトは、手作業でレイアウトを定義しなければならないことから、ユーザーを解放することができる。しかしながら、実施形態は、ユーザーが、自動レイアウトを使用して配置された要素の配置を、さらに修正または微調整することを可能にする機能を含むことができる。実施形態は、以前のシステムと区別される、様々な新規な特徴を有することができる。具体的には、実施形態は、コンテンツおよびダイアグラムタイプにわたる、コマンドおよびジェスチャの一貫したセットを実装することができる。実施形態は、システムが、多数のドメインにわたって一貫しておよび有用であることが可能なように、ドメイン、ターゲット、方向、ユーザーお気に入り等に基づいて、どの要素を作成するかおよびそのタイプを決定するための、自動システムを含むことができる。実施形態は、ドメイン固有の制約の下に動作される、自動増分レイアウトを含むことができるが、当該自動増分レイアウトにより、コマンドが、図のタイプに応じて、類似しているものの、ドメイン固有の結果を与えることができる。他の機能を示す、別の例を図示すると、実施形態は、現在のドメインによって制限されるプロンプトを使用して、要素のタイプを迅速に設定する、システムを実装することができる。例えば、ユーザーは、図を設計することができる。ユーザーは、コマンドおよびジェスチャを使用すると、場合によっては、ユーザーは要素のタイプを変更し、またはさらに指定することを望む。あるいはまた、設計プロセスの一部として、ユーザーが最初に作成したタイプを変更する必要があることを発見するかもしれない。実施形態は、現在のコンテキスト、およびこのコマンドに対する新規のエントリポイントのセットに基づいて、要素のタイプを設定するために、コマンドを実行する機能を含むことができる。いくつかの実施形態は、ニーモニックス、またはインテリセンス等の、制約ヒントモジュールを使用して、その名前をタイピングする間に、ユーザーが、要素のタイプを指定することができるシステムを実装することができる。実施形態は、さらに、マウスホイールまたはコンテキストメニューのようなジェスチャが、この機能を呼び出すために使用されることができるように、実装され得る。図4Aを参照すると、一例が示されている。図4Aに示された例は、ユーザーが、下方作成コマンドを使用するために、入力ハードウェアとの対話によって、現在のノード402の下に、新しいアクションノード404を作成したことを示す。ユーザーは、このノードを決定形状とすることを望む。図4Bに示されたように、ユーザーは、新しいアクションノードが選択されているか、および/またはインフォーカスの間、タイピングを開始する。ドロップダウン406は、一つまたは複数のドメイン制約のヒント、あるいは提案を提供するように現れる。ユーザーが、タイピングした最初の文字はdであるが、リストは、このドメインにおいてdで始まる使用可能なタイプまで、フィルタリングされる。上述の通り、提案リストは、ドメインに基づいて制約されてもよい。このように、この例において、図4Aおよび図4Bにおいて示された特定のドメインのために、唯一の適切な提案が提供される。上述の通り、ユーザーは、要素のタイプを決定するように変更することを望み、そしてTabキーを押下すると、図4Cに示されるように、これにより自動的に単語を完成させることができる。ユーザーは、次いで、図4Dに示されるように、この例では形状フーFuuの名前を追加し、そしてReturnまたはEnterを押下する。この時点で、図4Eに示されるように、形状は決定形状に変換される。タイプ選択のために、代替的なジェスチャを使用することができる。例えば、ユーザーがマウスを使用することを好む場合は、ユーザーは、その形状の上でクリックし、およびマウスのスクロールホイールを使用して、このコンテキストのために使用可能なタイプのセット内をスクロールすることによって、タイプ選択コマンドをキーストロークの代わりに呼び出すことができる。実施形態はまた、より簡単な機能を実装することができる。例えば、システムは、決定Decisionのためのd等のニーモニックスを入力する、ワードプロセッサにおけるように、オートコンプリートシステムを使用して構築されることができ、アクションActionのためのa等は、ユーザーが、dとタイピングすることによって、要素のタイプを変更し、次いで、Decisionとして自動的に解釈させ、およびこれにより、タイプを変更させることを可能にする。いくつかのこのような実施形態はまた、新しい要素がグラフ上でどのように見えるかのプレビューを表示する機能を、含むことができる。例えば、ユーザーがdをタイピングするとき、およびdの選択を永続的なものとする前に、決定要素のプレビューは、決定要素が適切な所望のタイプであるか否かを決定する際に、ユーザーの助けとなるように、適切な場所に、グラフ上に表示されてもよい。リンク作成は、しばしば、現在のツールでマウスを使用してよくサポートされる。しかしながら、現在実装された多くのシステムは、リンクが長い距離にわたって作成される必要があるとき、またはユーザーが、キーボードを使用して図を編集する流れにあるときに関連する欠点を有する。いくつかの実施形態は、ユーザーが、リンク作成ツールを起動し、そして、キーボードのみを使用して、新しいリンクを定義することができる。システムは、インテリセンス等の制約された提案システムを使用して、ユーザーがタイピングするコンテキストのための、ドメイン固有のタイプ、方向およびターゲットのリストをユーザーに提供し、ユーザーが、どのようにリンクが定義されるかをすぐに特定することを可能とする。図5Aを参照すると、一例が示されている。図5Aにおいて、ユーザーは、キーボードまたは他の入力装置から、ジェスチャを使用して、ノード502についてaddlinkコマンドを呼び出す。コントロール504は、既に展開された、ドメイン制約ドロップダウン506と共に現れる。図5Bに示されるように、ユーザーがタイピングするとこの場合、文字L、リストは、ドメイン制約提案を使用して、通常通りにフィルタリングされ、そしてTabを押下することによって、ユーザーは、図5Cにおいて示されたように、選択された要素をオートコンプリートすることができる。ユーザーは、リンクのタイプ、方向、およびどの他のノードへのリンクか/他のノードからのリンクかをタイピングすることができる。ステートメントが完了され、およびユーザーがEnterを入力すると、リンクは図5Dにおいて示されるように作成される。実施形態はさらに、サーチおよびリンクナビゲーションを使用して、図の迅速なナビゲーションを含むことができる。コードからエンジニアリング図にリバースしてコードの設計および解析のためにエンジニアリング図を使用するためのシステムは、より活用できるようになっており、より一般的になってきているので、ソフトウェアアーキテクチャ図は、多くの要素の数を伴い、より大きくなる傾向にある。既存のシステムを使用して作成された図は、図が大きくなるにつれて、ナビゲートすることが難しくなる。ナビゲーションはたいてい、リストまたはフォームをナビゲートするために、従来のキーボードスキームに基づいている。これは、小さな図において隣接するノードにナビゲートするときには適切かもしれないが、ユーザーはたいてい、現在の位置から大きくジャンプする必要があるか、または、ユーザーは、その点について言えば、それらのノードが隣同士でなくとも、もしくはお互いに近接していても、一つのノードから別のノードへのリンクを辿ることを望む。いくつかの実施形態は、上述のノードを作成するためのシステムからの原理を使用して、リンクをナビゲートするシステムを実装することによって、これらの課題を克服することができる。例えば、実施形態は、上、下、左、右に続くリンクをナビゲートするコマンドのセットを含むことができる。システムは、次いでその方向に進むノードに接続された、最初のリンクを選択する。もう一度同じコマンドを発行することによって、リンクの他端のノードが選択される。ノードが、コマンドの方向に接続された複数のリンクを有する場合、ドロップダウンが現れ、ユーザーが、それらのリンクまたは所望されるそれらのターゲットノードの、別の一つを選択することを可能にする。図6Aを参照すると、一つの例が示されている。図6Aにおいて示された例において、ユーザーは、決定形状602からアクション3604に対して、ナビゲートすることを望むことができる。例えば、ジェスチャを使用することによってなど、ユーザーは、右へのリンクをナビゲートするためにコマンドを呼び出すことができる。本例において、ユーザーは、Ctrl-->キーボードジェスチャを使用して、右へのナビゲーションを示すことができる。ユーザーが、右へのリンクをナビゲートするコマンドを呼び出す時、アクション1606に対するリンクは、選択される最初のリンクであることが起こり得る。しかし、アクション3はまた、決定形状602と同じ側から接続されているので、ドロップダウン606においても現れる。ユーザーは、次いでキーボードまたは他のジェスチャを使用して、アクション3604を選択し、およびそれを選択したことをコミットすることができる。実施形態は、キーボードまたは他のハードウェア入力装置を使用して、名前または他のコンテンツ操作の名前またはクラス形状内部の属性等によって、ノードに対して直接ナビゲートするための機能を含むことができる。実施形態は、増分サーチを使用することができ、名前を付与された要素に対して直ちに向かうための方法として、図の中で使用することができる。例えば、ユーザーは増分サーチコマンドを呼び出す。すると、サーチコントロールが現れる。ユーザーがタイピングすると、現在の文字列を包含するノードが強調表示される。ユーザーがさらにタイピングすると、ユーザーは、ユーザーが探しているノードに絞り込んで、リターンキーを押下すことができる。そしてこのノードが選択される。同様の機能は、リンクラベル、およびコンテナに同様に適用されることができる。以下の検討は、実行され得る多くの方法や方法動作を参照する。当該方法動作は、ある特定の順序で検討され、または特定の順番において発生するとしてフローチャートに示されることができるが、動作は、その動作が実行される以前に完了される、別の動作に依存するので、特定の順序は、特に言及または要求がない限り必要とされない。図7を参照すると、方法700が示されている。方法700は、コンピューティング環境において実施されることができ、および空間的な意義を有するデータを編成する動作を含むことができる。例えば、グラフや図は、空間的な意義を有するデータの一例である。お互いのノードの位置および/またはノードを接続するコネクタは、ノードによって表されるデータの意味を定義するために役立つ。空間的な意義を有する他のデータは、空間的な位置決めが階層内における位置を示す、階層データを含むことができる。このような階層データは、データベース、テーブル等に含まれることができる。ここでは列挙されないが、他のタイプのデータは、空間的な意義を有してもよく、およびここでの例は包括的であることを意図するものではない。方法700は、ユーザーインターフェースで、空間的に構造化されたデータの表現をユーザーに対して表示することを含む動作702。例えば、図2Aは、空間的に構造化されたデータを表す、クラスノード202および204を伴う、クラス図を表示するユーザーインターフェース表示を示す。図3Bは、空間的な意義がアクションの順序を示す、フローコネクタによって接続された、アクションノード302およびアクションデータ310を伴う、アクティビティ図でユーザーインターフェースを示す。方法700はさらに、一つまたは複数のハードウェアユーザーインターフェース装置を通じて、コンピューター実装のユーザーインターフェースでのユーザー入力を受信することを含む動作704。ユーザー入力はドメイン非依存であるが、空間的な意味合いを有する。例えば、図示したように、空間的な意味合いは上に、下に、左に、右に、および内側にあってもよい。これらは、空間的な意味合いを持っているが、特定のドメインおよび/またはコンテキストの間で、多少異なってもよい。図示したように、ユーザー入力は、多くの異なるタイプの入力のうち、一つまたは複数のものであってもよい。本明細書に示された例は、制限されないが、マウス、ペン、タッチ、マルチタッチ、ジェスチャ、カメラまたはハンドヘルドコントローラによって追跡されるような手足もしくは四肢ジェスチャ、コントローラもしくはコンピューティングシステムにおける、加速度計によって追跡されるようなコントローラもしくはコンピューティングシステムの動きフリックジェスチャ、またはいくつかの他のユーザー入力を含む。方法700はさらに、ユーザーインターフェースまたは以前のユーザー対話で表示された、既存の構造化されたデータに基づいて、ユーザー入力のドメインを決定することを含む動作706。例えば、図2Aにおいて、クラスノード202の存在は、ドメインがクラス図であることを示すことができる。図3Aにおいて、アクションノード302の存在は、ドメインがアクティビティ図であることを示すことができる。あるいはまた、予め入力されたユーザーのお気に入り、またはユーザーの以前の図構成アクションは、ユーザー入力のドメインを決定するために使用されることができる。方法700はさらに、決定されたドメインに基づいて、ユーザー入力をドメイン固有の応答に解釈することを含むが動作708、ドメイン固有の応答は、複数のドメインにわたり空間的な意味合いで一致する。例えば、図2Bにおいて、Enterキーを押下することにより、新しい継承クラス206が、動物クラスノード202の下に置かれる。一方で、図3Bにおいて、Enterキーを押下することにより、新しいアクションノード310が、アクションノード302の下に置かれる。したがって、どちらのドメインにおいても、空間的な意味合いは下に作成されることであり、各々ドメイン固有の応答として、下に作成されることに関する。方法700の実施形態は、一つまたは複数の制約されたヒントを提供するヒントモジュールの支援で生成されたユーザー入力を受信することを含む、ユーザー入力を受信することを実行することができる。例えば、図5A-5Dは、ジェスチャが使用され、およびヒントモジュールは制約されたヒントを提供する例を示す。ヒントは、ドメインおよび/またはコンテキストに基づいて制約されてもよい。例えば、ヒントは、何のタイプの図が作成されているか、および何のエンティティが図内においてインフォーカスであるかに基づいて、制約されてもよい。方法700の実施形態は、ユーザー入力を受信することは、一つまたは複数の制約されたヒントを提供するニーモニックスモジュールの支援で生成されたユーザー入力を受信することを、実行することができる。図4Aおよび図4Bは、ブロックのタイプを判断するために、どのようにニーモニックスモジュールが使用されることができるかを示す。方法700はさらに、ユーザー入力をドメイン固有の応答に解釈することの結果として、空間的に構造化されたデータに対して、新しいデータタイプのオブジェクトを自動的に追加することを含む。例えば、図3Aおよび図3Bにおいて、図はアクティビティ図であるため、アクションブロックが自動的に追加される。いくつかの実施形態は、マウスボタンまたはスクロール機能の少なくとも一つを使用して、追加された新しいデータタイプのタイプを変更することを含むことができる。例えば、ユーザーは、新しく追加されたデータタイプを選択することができ、および様々な利用可能なデータタイプをスクロールすることができる。例えば、ユーザーは、決定データタイプに自動的に追加された、アクションデータタイプを変更することを可能にしてもよい。いくつかの実施形態において、追加された新しいデータタイプのタイプを変更することは、一つまたは複数の制約されたヒントを提供する、ニーモニックスモジュールの支援で生成された、ユーザー入力を使用して実行されることができる。さらに、別の代替的な実施形態は、追加された新しいデータタイプのタイプを変更することは、インテリセンスのような、一つまたは複数の制約されたヒントを提供する、ヒントモジュールの支援で生成された、ユーザー入力を使用して行われることができる。方法700の実施形態はさらに、一つまたは複数の制約されたヒントを提供するヒントモジュールの支援で生成されたユーザー入力を使用して、構造化されたデータオブジェクト間のリンクを作成することを含むことができる。例えば、図5A-5Dは、特に、ヒントモジュールを使用してリンクが作成される例を示す。これらのリンクは、実際にはかなり複雑になり得る。例えば、実施形態は、一つのクラスAを選択し、そしてそれをクラスBに接続するために、キーボードジェスチャを使用することができる。これは、クラスAおよびクラスBとがどのような関連しているかを、正確に識別するために生成される必要がある、一連の中間クラスならびにリンクという結果になる。例えば、それらの二つのクラスは、中間のクラスC、DおよびEを通じて接続される必要がある可能性がある。それにもかかわらず、実施形態は、適切なヒントを提供し、および適切なリンクを作ることができる。方法700の実施形態は、空間的に構造化されたデータが、視覚的に観察可能であり、および意味ある空間レイアウトを有するデータを、含むことを実行することができる。例えば、フローチャート、アクティビティ図等が、ユーザーによって視覚的に観察可能なレイアウトを有する。方法700の実施形態は、空間的に構造化されたデータの表現におけるデータオブジェクト間のリンクをナビゲートするためのユーザー入力を受信することができる。例えば、図6において示されたように、図を通じてナビゲートするために、ユーザーのジェスチャが使用されることができる。いくつかの実施形態において、図6に示されるように、ドメインに基づいて、可能性があるナビゲーションの目的地の制約リストをユーザーに提供することができる。さらに、方法は、一つまたは複数のプロセッサ、およびコンピューターメモリ等のコンピューター可読媒体を含む、コンピューターシステムによって実行されることができる。具体的には、コンピューターメモリは、一つまたは複数のプロセッサによって実行された時に、実施形態において記載された動作等の様々な機能を行う、コンピューター実行可能命令を格納することができる。本発明の実施形態は、後述でより詳細に検討されるように、コンピューターハードウェアを含む、専用または汎用コンピューターを備えるか、または利用することができる。また、本発明の範囲内の実施形態はまた、コンピューター実行可能命令および/またはデータ構造を保有しまたは格納するための、物理的および他のコンピューター可読媒体を含む。このようなコンピューター可読媒体は、汎用または専用コンピューターシステムによってアクセスされることができる、任意の利用可能な媒体とすることができる。コンピューター実行可能命令を格納する、コンピューター可読媒体は、物理的記憶媒体である。コンピューター実行可能命令を担う、コンピューター可読媒体は伝送媒体である。これにより、例として、および限定されないが、本発明の実施形態は、明確に異なる少なくとも二種類のコンピューター可読媒体である、物理的なコンピューター可読記憶媒体および伝送コンピューター可読媒体を含むことができる。物理的なコンピューター可読ストレージ媒体は、RAM、ROM、EEPROM、CD-ROMまたは、他の光ディスク記憶装置例えば、CD、DVD等、磁気ディスクストレージ装置または、他の磁気ストレージ装置、あるいはコンピューター実行可能命令または、データ構造の形式において、所望のプログラムコード手段を格納するために使用されることができ、および汎用または専用コンピューターによってアクセスされることができる、任意の他の媒体を含む。ネットワークは、コンピューターシステムおよび/またはモジュールおよび/または他の電子装置間の、電子データの移送を可能とする、一つまたは複数のデータリンクとして定義される。情報が、ネットワーク、あるいは別の通信接続結線接続、無線のいずれかまたは、結線接続もしくは無線の組み合わせを経由して伝送あるいは提供されるとき、コンピューターは、当該接続を適切に伝送媒体としてみなす。伝送媒体は、コンピューター実行可能命令またはデータ構造の形式で、所望のプログラムコード手段を保持するために使用されることができ、および汎用または専用コンピューターによってアクセスされることができる、ネットワークならびに/あるいはデータリンクを含むことができる。上述の組み合わせも、コンピューター可読媒体の範囲に含まれる。さらに、様々なコンピューターシステムコンポーネントに到達すると、コンピューター実行可能命令またはデータ構造の形式におけるプログラムコード手段は、伝送コンピューター可読媒体から、物理コンピューター可読ストレージ媒体にまたはその逆に、自動的に伝送されることができる。例えば、ネットワークまたはデータリンクを経由して受信された、コンピューター実行可能命令またはデータ構造は、ネットワークインターフェースモジュール例えば、NIC内のRAMにバッファされることができ、次いで最終的に、コンピューターシステムRAMおよび/またはコンピューターシステムにおける低揮発性の物理的なコンピューター可読ストレージ媒体に伝送することができる。このように、物理的なコンピューター可読ストレージ媒体は、伝送媒体も利用するまたは主に利用するコンピューターシステムコンポーネントに、含まれることができる。コンピューター実行可能命令は、例えば、汎用コンピューター、専用コンピューター、または専用処理装置にある特定の機能または機能群を実行させる、命令およびデータを備える。コンピューター実行可能命令は、例えば、バイナリ、アセンブリ言語等の中間フォーマット命令、またはソースコードであることができる。本発明の技術的範囲は、構造的特徴および/または方法論的動作に特有の言葉で説明されたが、添付の特許請求の範囲において定義される技術的範囲は、必ずしも上述の特徴または動作に限定されないことを理解されたい。むしろ、上述の特徴および動作は、特許請求の範囲を実施する例示的形態として開示される。本技術分野における当業者であれば、本発明は、パーソナルコンピューター、デスクトップコンピューター、ラップトップコンピューター、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベース、またはプログラム可能な家電、ネットワークPC、ミニコンピューター、メインフレームコンピューター、携帯電話、PDA、ページャー、ルーター、スイッチ等を含む、多くの種類のコンピューターシステム構成を伴う、ネットワークコンピューティング環境において実施できることを理解することができる。本発明はまた、ネットワークを経由して結線接続されたデータリンク、無線データリンクによって、または結線接続および無線データリンクの組み合わせによってリンクされた、ローカルおよびリモートコンピューターシステムの双方がタスクを処理する、分散システム環境において実施されることができる。分散システム環境において、プログラムモジュールは、ローカルおよびリモートの両方のメモリストレージ装置に配置することができる。本発明は、その技術思想または特徴から逸脱することなく、他の特定の形態で具体化されることができる。説明された実施形態は、単に例示的であり、および限定的ではないものとして、全ての項目において考慮される。本発明の技術的範囲は、したがって、前述の説明によってよりもむしろ、添付された特許請求の範囲によって示される。特許請求の範囲と均等な意味および範囲内におけるすべての変更は、その範囲内に包含される。