(57)【特許請求の範囲】
【請求項１】
コンピュータアーキテクチャにおいて、視覚ランドマークを使用して図表を整理する方
法であって、
前記方法は、
図表を表す複数の視覚要素を提示するステップと、
前記図表内に前記複数の視覚要素とともに視覚ランドマークを提示するステップであって、前記視覚ランドマークは、前記視覚ランドマークのタイプに関連づけられる視覚要素に対する配列および調整を定義する構成可能プロパティを含み、前記構成可能プロパティは、前記関連づけられる視覚要素が、前記視覚ランドマークに相対してどのように位置づけられるべきかを定義し、および前記関連づけられる視覚要素が、相互に相対してどのように位置づけられるべきかを定義する、ステップと、
前記複数の視覚要素の１つを選択するインプットを受信するステップと、
前記選択された視覚要素が前記視覚ランドマークに関連づけられるべきであることを示す追加インプットを受信するステップであって、前記追加インプットは、前記選択された視覚要素を前記視覚ランドマークと交差させるように移動させるためのインプットを含む、ステップと、
前記追加インプットの受信に応答して、前記構成可能プロパティに従って、前記選択された視覚要素を前記視覚ランドマークおよび前記視覚ランドマークに関連づけられた他の視覚要素に相対して自動的に位置づけて、前記選択された視覚要素を前記図表内で整理するステップであって、前記位置づけにより、前記選択された視覚要素の一部分が前記視覚ランドマークの限られた部分と部分的に重なり合う、ステップと、
前記複数の視覚要素の更新配列を提示するステップと
を含むことを特徴とする方法。
【請求項２】
図表を表す複数の視覚要素を提示する前記ステップは、複数の幾何学図形を提示するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記視覚ランドマークは、スナップバー、スナップアーク、スナップベジエ、グラビティウェル、スナップスタック、スティッキーボックス、およびスティッキー投げ縄の中から選択されることを特徴とする請求項１に記載の方法。
【請求項４】
前記構成可能プロパティは、前記視覚ランドマークに相対した視覚要素の整列の仕方、相互に相対した前記視覚ランドマーク上での要素の間隔設定の仕方、および前記視覚ランドマークの回転の１つまたは複数を定義するプロパティを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記図表内に前記複数の視覚要素とともに視覚ランドマークを提示する前記ステップは、他の１つまたは複数の視覚ランドマークから構築されたカスタム視覚ランドマークを提示するステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記複数の視覚要素の１つを選択するインプットを受信する前記ステップは、前記複数の視覚要素の１つを選択するユーザインプットを受信するステップを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記選択された視覚要素が選択済みであることを示す視覚フィードバックを提供するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記構成可能プロパティに従って、前記選択された視覚要素を前記視覚ランドマークおよび前記視覚ランドマークに関連づけられた他の視覚要素に相対して自動的に位置づける前記ステップは、前記選択された視覚要素を前記視覚ランドマークに相対して整列させるステップを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記構成可能プロパティに従って、前記選択された視覚要素を前記視覚ランドマークおよび前記視覚ランドマークに関連づけられた他の視覚要素に相対して自動的に位置づける前記ステップは、前記選択された視覚要素を前記視覚ランドマークに関連づけられた他の視覚要素に相対して間隔設定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記構成可能プロパティに従って、前記選択された視覚要素を前記視覚ランドマークおよび前記視覚ランドマークに関連づけられた他の視覚要素に相対して自動的に位置づける前記ステップは、前記選択された視覚要素を、前記視覚ランドマーク上のある場所から別の場所に移動するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記複数の視覚要素の更新配列を提示するステップは、前記視覚ランドマークと交差する前記複数の視覚要素を提示するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記複数の視覚要素の更新配列を提示するステップは、前記視覚ランドマークの境界の内側に前記複数の視覚要素を提示するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１３】
コンピュータシステムであって、
前記コンピュータシステムは、
１つまたは複数のプロセッサと、
システムメモリと、
視覚ランドマークを使用して図表を整理するコンピュータ実行可能命令を格納した１つまたは複数の物理記憶媒体と
を備え、
前記プロセッサの１つで実行されると、前記コンピュータ実行可能命令は、
図表を表す複数の視覚要素を提示するステップと、
前記複数の視覚要素とともに視覚ランドマークを前記図表内に提示するステップであって、前記視覚ランドマークは、前記視覚ランドマークのタイプに関連づけられる視覚要素に対する配列および調整を定義する構成可能プロパティを含み、前記構成可能プロパティは、前記関連づけられる視覚要素が、前記視覚ランドマークに相対してどのように位置づけられるべきかを定義し、および前記関連づけられる視覚要素が、相互に相対してどのように位置づけられるべきかを定義する、ステップと、
前記複数の視覚要素の１つを選択するインプットを受信するステップと、
前記選択された視覚要素が前記視覚ランドマークに関連づけられるべきであることを示す追加インプットを受信するステップであって、前記追加インプットは、前記選択された視覚要素を前記視覚ランドマークと交差させるように移動させるためのインプットを含む、ステップと、
前記追加インプットの受信に応答して、前記構成可能プロパティに従って、前記選択された視覚要素を前記視覚ランドマークおよび前記視覚ランドマークに関連づけられた他の視覚要素に相対して自動的に位置づけて、前記選択された視覚要素を前記図表内で整理するステップであって、前記位置づけにより、前記選択された視覚要素の一部分が前記視覚ランドマークの限られた部分と部分的に重なり合う、ステップと、
前記複数の視覚要素の更新配列を提示するステップと
をコンピュータシステムに実施させることを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータアーキテクチャにおいて、視覚ランドマークを使用して図表を整理する方法およびシステム、並びに当該視覚ランドマークをカスタマイズする方法およびシステムに関する。
【背景技術】
【０００２】
コンピュータシステムおよび関連技術は、社会の多くの側面に影響を与える。実際、情報を処理するためのコンピュータシステムの能力は、我々の生き方および働き方を変えてきた。コンピュータシステムは今では一般に、コンピュータシステムの出現前には手作業で行われていた多くの業務（例えば、文書処理、日程計画、会計など）を実施する。近年、コンピュータシステムは、相互に、また他の電子デバイスに結合されて、有線および無線コンピュータネットワーク両方を形成し、こうしたネットワーク上で、コンピュータシステムおよび他の電子デバイスは、電子データを転送することができる。したがって、多くのビジネス関連プロセスの実施は、異なるいくつかのコンピュータシステムおよび／または異なるいくつかのコンピューティングコンポーネントに分散される。
【０００３】
例えば、作図アプリケーションは、フローチャート、組織図、ワークフロー図などを生成するのに使用することができる。ほとんどの作図アプリケーションは、少なくともツールバーおよびキャンバスエリアを含む。ユーザは、ツールバーから図形（例えば、円、長方形、正方形、菱形など）を引き出して、キャンバスに追加することができる。図形は、相互に接続して、図形の間の関係を示すことができる。ユーザは、キャンバス内で既存の図形および接続を並べ替え、削除することもできる。
【０００４】
少なくとも一部の作図アプリケーションは、キャンバス上での図形の整理および間隔設定に対する完全な制御をユーザに認める自由形式キャンバスを使用する。ユーザは、適当と判断した場合は、制約なしで図形および接続を自由に並べ（替え）る。したがって、自由形式キャンバスは、図表をその正確な仕様に合わせて作成するための大幅な柔軟性をユーザに与える。
【０００５】
ただし、自由形式キャンバスを使う図表の作成は、時間と労力もかかる。図表の意味は、図表内の図形が整理され、適切に間隔設定されたとき、より適切に伝えられる（例えば、視覚的に認識される）。したがって、図表が変わる（例えば、図表に新たな図形が導入され、または既存の図形が図表から削除され、もしくは図表の中で移動される）度に、図形および接続の整理および間隔設定が、図表の新たな意味を適切に伝えるように調整される必要がある。
【０００６】
残念ながら、自由形式キャンバスを使うと、ユーザは、例えば、図形の接続解除および再接続、ピクセル整列など、こうした全ての調整を、独自で個別に行うよう要求される。多くの図表、並びに特に比較的大きいおよび／またはより複雑な図表の場合、こうした調整は非常に多く、実行するのにかなりの時間がかかり得る。さらに、図表を一度変更すると、多数の図形が整理されなくなり、かつ／または不適切に間隔設定されるという波及効果がもたらされ得る。
【０００７】
したがって、一部の作図アプリケーションは、例えば、図表への変更に応答して図形および接続をユーザが適切に調整するのを支援するための、自動レイアウトアルゴリズムなどの自動化機構を含む。自動レイアウトアルゴリズムは、図表内での図形の配置および接続を基本的に規定する様々なレイアウト（例えば、整理および間隔設定）制約をもち得る。自動レイアウトアルゴリズムは、異なる様々な機能の１つまたは複数も含み得る。
【０００８】
例えば、（新規または移動された）図形が図表内の指定場所に挿入されると、自動レイアウトアルゴリズムは、レイアウト制約に適合するように、指定場所から、（キャンバス上の）より適切な（例えば、すぐ近くの）場所に図形を自動的に移動することができる。同様に、図表内のある場所から図形が削除される（消去され、または移動される）と、自動レイアウトアルゴリズムは、レイアウト制約に適合するように、（キャンバス上の）削除図形に予め接続された図形を自動的に調整することができる。図表内部で図形が移動されると、こうした機能は両方とも実行され得る。自動レイアウトアルゴリズムは、図形の追加、消去、または移動に応答して、レイアウト制約に適合するように（例えば、波及効果を補償するように）、図表内部の任意および他の図形および接続を調整するための機能も含み得る。
【０００９】
したがって、自動レイアウトアルゴリズムは、図表の新たな意味をより分かりやすく伝えるように、図表内で図形および接続を自動的に並べるのに使用することができる。一部の自動レイアウトアルゴリズムは、レイアウト制約の調節さえも可能にし、その結果ユーザは、図表のレイアウトをある程度制御することができる。ただし、自動レイアウトアルゴリズムは通常、規範的であり、（調節されたレイアウト制約に基づくものでさえも）図表に対する非適合変更を認めない。さらに、ユーザは通常、図形を挿入し、移動し、または消去する前には、図形および／または周囲の接続図形の場所を自動レイアウトアルゴリズムがどのように調整するかを知る術をもたない。
【００１０】
しばしば、図形は、図表の既存図形に相対して任意の数の場所に配置され、レイアウト制約に適合し得る。ただし、ユーザは、変更を行う前には、適合場所が既存図形に相対することを知る術をもたない場合がある。したがって、ユーザは、自動レイアウトアルゴリズムに依拠して、適合場所を選択しなければならないが、この場所は、図表に対するユーザの意図に基づき、最も適切な適合場所ではない場合がある。
【００１１】
他には自由形式図表を限定的に整理するための、それ以外のいくつかのツールが存在する。こうしたそれ以外のツールは、整列、センタリング、および分布などを可能にし得る。ただし、こうしたそれ以外のツールには、いくつかの欠陥がある。例えば、こうしたツールは通常、キャンバス上に提示されない。さらに、こうしたツールは、例えば、新規図形の追加などの更新には自動的に適用し直されない。したがって、こうしたツールは、その機能を呼び出すために、（ある程度の頻度で、また一部の環境では基本的には定期的に）適用し直されなければならない。さらに、こうしたそれ以外のツールは通常、カスタマイズ可能でない。カスタマイズ可能でないことにより、特殊化レイアウトを構築し、維持することが難しくなる。
【発明の概要】
【００１２】
本発明は、視覚ランドマーク（visual landmark）を使用して図表を整理する（organize）方法、システム、およびコンピュータプログラム製品を対象とする。いくつかの実施形態では、図表を整理するのに視覚ランドマークが使用される。コンピュータシステムは、図表を表す１つまたは複数の視覚要素（visual element）を提示する。コンピュータシステムは、１つまたは複数の視覚要素とともに視覚ランドマークを図表中に提示する。視覚ランドマークは、関連する視覚要素に適用されて、関連する視覚要素を視覚ランドマークに相対して位置づけるべき１つまたは複数のプロパティで構成される。
【００１３】
コンピュータシステムは、１つまたは複数の視覚要素の１つを、図表中に配置するために選択するインプットを受け取る。コンピュータシステムは、選択された視覚要素が、視覚ランドマークに関連づけられるべきであることを示す追加インプットを受け取る。コンピュータシステムは、視覚ランドマークの対応する１つまたは複数のプロパティに従って、選択された視覚要素を視覚ランドマークに相対して自動的に位置づけて、選択された視覚要素を図表中で整理する。選択された視覚要素は、追加インプットの受取りに応答して位置づけられる。
【００１４】
他の実施形態では、視覚ランドマークは、図表を整理する際に使用するためにカスタマイズされる。コンピュータシステムは、図表中で視覚要素を整理するのに使用され得る、格納された視覚ランドマークにアクセスし、視覚的に提示する。コンピュータシステムは、ユーザ入力インプットに従って、視覚ランドマークの視覚的表現（visual presentation）を変更する。
【００１５】
コンピュータシステムは、ユーザ入力インプットに従って、視覚ランドマークの１つまたは複数のプロパティを構成する。構成された１つまたは複数のプロパティは、関連する視覚要素を視覚ランドマークに相対してどのようにして自動的に位置づけて、関連する視覚要素を図表中で整理するかを示す。コンピュータシステムは、構成された１つまたは複数のプロパティとともに、変更された視覚的表現を、新たな視覚ランドマークとして格納する。新たな視覚ランドマークは、ユーザ入力インプットに従った図表の整理に使用するためのものである。
【００１６】
本概要は、「発明を実施するための形態」において後述される概念を、簡略化した形で紹介するためのものである。また、本概要は、特許請求対象の主要な特徴または本質的な特徴を識別することは意図しておらず、本特許請求対象の範囲を決定する一助として使われることも意図していない。
【００１７】
本発明の追加特徴および利点が、以下の説明において述べられるが、その一部は、以下の説明から明らかになり、または本発明の実施によって理解できよう。本発明の特徴および利点は、添付の請求項において具体的に指摘される機器および組合せによって実現され達成され得る。本発明のこうしたおよび他の特徴は、以下の説明および請求項からより完全に明らかになり、または以下に述べる本発明の実施によって理解できよう。
【図面の簡単な説明】
【００１８】
本発明の上述したおよび他の利点および特徴が達成され得る方法を説明するために、上で簡潔に述べた本発明のより具体的な説明を、添付の図面に示される本発明の具体的な実施形態を参照して行う。こうした図面は本発明の典型的な実施形態を示すに過ぎず、したがって、本発明の範囲を限定するものと見なされるべきではないことを理解した上で、本発明を、添付の図面を用いてさらに具体的かつ詳細に説明する。
【図１】視覚ランドマークを使用して図表を整理するのを容易にするコンピュータアーキテクチャ例を示す図である。
【図２】視覚ランドマークを使用して図表を整理する方法例を示すフローチャートである。
【図３Ａ】視覚ランドマークを使用して図表を整理する例を示す図である。
【図３Ｂ】視覚ランドマークを使用して図表を整理する例を示す図である。
【図３Ｃ】視覚ランドマークを使用して図表を整理する例を示す図である。
【図３Ｄ】視覚ランドマークを使用して図表を整理する例を示す図である。
【図４Ａ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図４Ｂ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図４Ｃ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図４Ｄ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図４Ｅ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図５Ａ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図５Ｂ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図５Ｃ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図６Ａ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図６Ｂ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図７Ａ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図７Ｂ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図７Ｃ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図８Ａ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図８Ｂ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図８Ｃ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図９Ａ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図９Ｂ】視覚ランドマークを使用して図表を整理する別の例を示す図である。
【図１０Ａ】図表中で要素を整理するのに使用され得るスナップバーの例を示す図である。
【図１０Ｂ】図表中で要素を整理するのに使用され得るスナップバーの例を示す図である。
【図１０Ｃ】図表中で要素を整理するのに使用され得るスナップバーの例を示す図である。
【図１０Ｄ】図表中で要素を整理するのに使用され得るスナップバーの例を示す図である。
【図１１Ａ】図表中で要素を整理するのに使用され得るスナップベジエの例を示す図である。
【図１１Ｂ】図表中で要素を整理するのに使用され得るスナップベジエの例を示す図である。
【図１２Ａ】図表中で要素を整理するのに使用され得るスナップアークの例を示す図である。
【図１２Ｂ】図表中で要素を整理するのに使用され得るスナップアークの例を示す図である。
【図１２Ｃ】図表中で要素を整理するのに使用され得るスナップアークの例を示す図である。
【図１３Ａ】図表中で要素を整理するのに使用され得るグラビティウェル（gravity well）の例を示す図である。
【図１３Ｂ】図表中で要素を整理するのに使用され得るグラビティウェルの例を示す図である。
【図１３Ｃ】図表中で要素を整理するのに使用され得るグラビティウェルの例を示す図である。
【図１４Ａ】図表中で要素を整理するのに使用され得るスナップスタックの例を示す図である。
【図１４Ｂ】図表中で要素を整理するのに使用され得るスナップスタックの例を示す図である。
【図１５】図表中で要素を整理するのに使用され得るスティッキーボックスの例を示す図である。
【図１６】図表中で要素を整理するのに使用され得るスティッキー投げ縄の例を示す図である。
【図１７】視覚ランドマークをカスタマイズする方法例を示すフローチャートである。
【図１８】カスタマイズされた視覚ランドマークの例を示す図である。
【発明を実施するための形態】
【００１９】
本発明は、視覚ランドマークを使用して図表を整理する方法、システム、およびコンピュータプログラム製品を対象とする。いくつかの実施形態では、図表を整理するのに視覚ランドマークが使用される。コンピュータシステムは、図表を表す１つまたは複数の視覚要素を提示する。コンピュータシステムは、１つまたは複数の視覚要素とともに視覚ランドマークを図表中に提示する。視覚ランドマークは、関連する視覚要素に適用されて、関連する視覚要素を視覚ランドマークに相対して位置づけるべき１つまたは複数のプロパティで構成される。
【００２０】
コンピュータシステムは、１つまたは複数の視覚要素の１つを、図表中に配置するために選択するインプットを受け取る。コンピュータシステムは、選択された視覚要素が、視覚ランドマークに関連づけられるべきであることを示す追加インプットを受け取る。コンピュータシステムは、視覚ランドマークの対応する１つまたは複数のプロパティに従って、選択された視覚要素を視覚ランドマークに相対して自動的に位置づけて、選択された視覚要素を図表中で整理する。選択された視覚要素は、追加インプットの受取りに応答して位置づけられる。
【００２１】
他の実施形態では、視覚ランドマークは、図表を整理する際に使用するためにカスタマイズされる。コンピュータシステムは、図表中で視覚要素を整理するのに使用され得る、格納された視覚ランドマークにアクセスし、視覚的に提示する。コンピュータシステムは、ユーザ入力インプットに従って、視覚ランドマークの視覚的表現を変更する。
【００２２】
コンピュータシステムは、ユーザ入力インプットに従って、視覚ランドマークの１つまたは複数のプロパティを構成する。構成された１つまたは複数のプロパティは、関連する視覚要素を視覚ランドマークに相対してどのようにして自動的に位置づけて、関連する視覚要素を図表中で整理するかを示す。コンピュータシステムは、構成された１つまたは複数のプロパティとともに、変更された視覚的表現を、新たな視覚ランドマークとして格納する。新たな視覚ランドマークは、ユーザ入力インプットに従った図表の整理に使用するためのものである。
【００２３】
本発明の実施形態は、後述するように、コンピュータハードウェアを含む特殊目的または汎用コンピュータを備え、または使用し得る。本発明の範囲内の実施形態は、コンピュータ実行可能命令および／またはデータ構造を伝搬し、または格納する物理的および他のコンピュータ可読媒体も含む。このようなコンピュータ可読媒体は、汎用または専用コンピュータシステムによってアクセスすることができる利用可能な任意の媒体でよい。コンピュータ実行可能命令を格納するコンピュータ可読媒体は、物理記憶媒体である。コンピュータ実行可能命令を伝搬するコンピュータ可読媒体は、伝送媒体である。したがって、限定ではなく例として、本発明の実施形態は、物理記憶媒体および伝送媒体という、明確に異なる少なくとも２種類のコンピュータ可読媒体を備え得る。
【００２４】
物理記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望のプログラムコード手段をコンピュータ実行可能命令またはデータ構造の形で格納するのに使うことができ、汎用または専用コンピュータによってアクセスすることができる他の任意の媒体も含む。
【００２５】
「ネットワーク」は、コンピュータシステムおよび／またはモジュールおよび／または他の電子デバイスの間の電子データの移送を可能にする１つまたは複数のデータリンクとして定義される。ネットワークまたは別の通信接続（配線、無線、または配線もしくは無線の組合せ）を介して情報がコンピュータに転送され、または提供されるとき、コンピュータは、この接続を正しく伝送媒体と見なす。伝送媒体は、所望のプログラムコード手段をコンピュータ実行可能命令またはデータ構造の形で伝搬するのに使うことができ、汎用または専用コンピュータによってアクセスすることができるネットワークおよび／またはデータリンクを含み得る。上記の組合せも、コンピュータ可読媒体の範囲に含まれるべきである。
【００２６】
さらに、様々なコンピュータシステムコンポーネントに到達すると、コンピュータ実行可能命令またはデータ構造の形のプログラムコード手段は、伝送媒体から物理記憶媒体（またはその反対）に自動的に転送され得ることを理解されたい。例えば、ネットワークまたはデータリンクを介して受け取られたコンピュータ実行可能命令またはデータ構造は、ネットワークインターフェイスモジュール（例えば、「ＮＩＣ」）内部のＲＡＭにバッファリングされ、最終的にはコンピュータシステムのＲＡＭおよび／または比較的揮発性でない物理記憶媒体に転送されうる。したがって、物理記憶媒体は、伝送媒体を（またはそれを主に）使用するコンピュータシステムコンポーネントに含まれ得ることを理解されたい。
【００２７】
コンピュータ実行可能命令は、例えば、ある特定のファンクションまたはファンクション群を汎用コンピュータ、専用コンピュータ、または特殊目的処理デバイスに実施させる命令およびデータを含む。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間形式命令、またはソースコードでもよい。構造的特徴および／または方法論的行為に特有の言葉で本主題を説明したが、各請求項において定義される本主題は、上記の特徴または行為には必ずしも限定されないことを理解されたい。むしろ、こうした特徴および行為は、権利請求される本発明を実装する形の例として開示されるものである。
【００２８】
本発明は、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ、ページャ、ルータ、スイッチなどを含む、多くのタイプのコンピュータシステム構成をもつネットワークコンピューティング環境において実施され得ることが当業者には理解されよう。本発明は、ネットワークを介して（配線データリンク、無線データリンク、または配線および無線データリンクの組合せによって）リンクされるローカルおよびリモートコンピュータシステムが両方ともタスクを実施する分散型システム環境においても実施され得る。分散型システム環境では、プログラムモジュールは、ローカルおよびリモートメモリ記憶デバイス内の両方に置くことができる。
【００２９】
図１は、自動レイアウトに適合した図表の柔軟な作成を容易にするコンピュータアーキテクチャ例１００を示す。図１において、コンピュータアーキテクチャ１００は、ユーザインターフェイス１０１、図表エディタ１０２、および描画モジュール１０７を含む。図示したコンポーネントはそれぞれ、例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、さらにはインターネットなどのネットワークを介して相互に接続することができる（またはネットワークの一部でよい）。したがって、図示したコンポーネントおよび他の任意の接続コンポーネントはそれぞれ、メッセージ関連データを作成し、ネットワークを介してメッセージ関連データ（例えば、インターネットプロトコル（ＩＰ）データグラム、および例えばＴＣＰ、ＨＴＴＰ、およびＳＭＴＰなどの、ＩＰデータグラムを使用する他の上位層プロトコル）を交換することができる。
【００３０】
入力装置１１４は、例えば、キーボードおよび／またはマウスなど、様々な入力装置を含み得る。ユーザ１１３は、入力装置１１４を使用してコンピュータアーキテクチャ１００にデータを入力することができる。表示デバイス１０８は、コンピュータアーキテクチャ１００からのデータ出力をディスプレイ１０９に視覚的に提示することができる。ユーザ１１３は、ディスプレイ１０９に表示されるデータを視覚的に認識することができる。
【００３１】
概して、ユーザインターフェイス１０１は、ユーザ１１３と、コンピュータアーキテクチャ１００の他のコンポーネントとの間の媒介ソフトウェア層として機能するように構成される。ユーザインターフェイス１０１は、例えば、入力装置１１４からインプットを受け取り表示デバイス１０８にアウトプットを送るためのドライバなど、適切なソフトウェアで構成され得る。したがって、ユーザインターフェイス１０１は、例えば、図表エディタ１０２など、他のコンポーネントにユーザインプットを転送することができる。ユーザインターフェイス１０１は、例えば、描画モジュール１０７など、他のコンポーネントから、表示デバイス１０８に描画可能な画像データを転送することもできる。
【００３２】
図表エディタ１０２は、図表データを、描画可能な図表向けに編集するように構成される。図表データは、図表中の視覚要素に対する図形タイプ、図形の場所、および図形の間の接続を示し得る。ユーザインプットに応答して、図表エディタ１０２は、図表の視覚要素に対する図形の場所、図形タイプ、および接続を表す図表データを追加し、消去し、変更することができる。いくつかの実施形態では、ユーザアクションにより、図表エディタ１０２は、図表データに対する一連の編集を実施する。例えば、図表中の視覚要素の配置に応答して、図表エディタ１０２は、ａ）視覚要素に対する図形の場所およびタイプを含むように図表データを編集し、ｂ）図形と他の適切な図形との間の接続を含むように図表データを編集することができる。
【００３３】
図表エディタ１０２は、視覚ランドマークリポジトリ１３５にある視覚ランドマークにアクセスし、視覚ランドマークを表すデータを図表データに含めることもできる。したがって、図表中の図形と同様に、図表エディタ１０２は、視覚ランドマークの場所、タイプ、および接続を表す図表データを、図表中の視覚ランドマーク用に追加し、消去し、変更することもできる。視覚ランドマーク操作は、ユーザインプットに応答してもよい。
【００３４】
描画モジュール１０７は、表示デバイス１０８で図表を描画する図表データから、相互接続された視覚要素（図形および／または視覚ランドマーク）を生成するように構成される。図表は、フローチャート、ワークフロー図、組織図、プロセス図、概略図などを含む異なる様々なタイプの図表のいずれでもよい。図表は、例えば、円、菱形、正方形、長方形、三角形などの幾何学図形を含む異なる様々な視覚要素のいずれも含み得る。視覚要素の間の接続は、線として表すことができる。
【００３５】
図示するように、描画モジュール１０７は、視覚支援モジュール１１７を含む。視覚支援モジュール１１７は、ユーザに視覚フィードバックを与えて、ユーザの図表作成および編集を支援するように構成される。例えば、図表中の視覚要素をユーザが選択すると、視覚支援モジュール１１７は、その視覚要素の選択を示す視覚フィードバックを与え得る。視覚フィードバックは、選択を示すように、要素の視覚特性および接続を変更する（例えば、視覚要素の輪郭をグレー表示する）ことを含み得る。視覚フィードバックは、追加視覚情報で図表を補って、ユーザが図表内に要素および接続をレイアウトするのを支援することも含み得る。
【００３６】
図３Ａ〜３Ｄは、視覚ランドマークを使用した図表３００の整理を示す。
【００３７】
図２は、視覚ランドマークを使用して図表を整理する方法２００のフローチャートを示す。コンピュータアーキテクチャ１００内に示されるコンポーネントおよびデータを参照し、かつ図表３００を参照して方法２００が記載される。
【００３８】
方法２００は、図表を表す１つまたは複数の視覚要素の配列を提示する行為（行為２０１）を含む。方法２００は、１つまたは複数の視覚要素とともに視覚ランドマークを図表内に提示する行為（行為２０２）を含み、視覚ランドマークは、関連する視覚要素に適用されて、関連する視覚要素を視覚ランドマークに相対して位置づけるべき１つまたは複数のプロパティで構成される。例えば、ユーザインターフェイス１０１は、表示デバイス１０８で視覚要素１４１を提示することができる。視覚要素１４１は、要素および１つまたは複数の視覚ランドマークを含み得る。例えば、図３Ａを参照すると、要素３０１およびスナップバー３０２が、ディスプレイ１０９上に提示され得る。スナップバー３０２は、要素３０１をスナップバー３０２に相対して位置づけるように要素３０１に適用されるべき１つまたは複数のプロパティで構成され得る。例えば、スナップバー３０２は、スナップバー３０２上に要素３０１を垂直整列するためのプロパティを含み得る。
【００３９】
方法２００は、視覚要素を、図表中に配置するために選択するインプットを受け取る行為（行為２０３）を含む。例えば、ユーザインターフェイス１０１は、ユーザ要素選択インプット１３３（例えば、要素３０１上でのマウスクリック）を受け取ることができる。ユーザインターフェイス１０１は、ユーザ要素選択インプット１３３が、新規または既存の視覚要素の選択であると判断し得る。したがって、ユーザインターフェイス１０１は、選択インプット１６１を描画モジュール１０７に転送すればよい。
【００４０】
新しい（例えば、ツールバーにある）要素を、図表に含めるために選択することができる。既存（例えば、既に図表中にある）要素を、図表内で移動するために選択することができる。例えば、図３Ａを参照すると、要素３０１（新しい要素または図表３００中の他の場所にある要素）を、図表３００に含め、またはその中で移動するために選択することができる。既存要素が移動のために選択されると、既存要素の現在の表現は、その現在の場所に残ってよい。現在の表現とともに、既存要素の選択中一時表現が作成され得る。要素の選択中一時表現は、図表内を移動されて、図表中の異なる場所への要素の可能な移動を表す。最終的に、既存要素が実際に移動された場合、その要素の現在の表現は、新しい位置に移動される。
【００４１】
方法２００は、選択された視覚要素が選択されていることを示す視覚フィードバックを提供する行為（行為２０４）を含む。例えば、視覚支援モジュール１１７は、要素選択視覚フィードバック１４２を、表示デバイス１０８に表示するために提供することができる。要素選択視覚フィードバックは、選択された視覚要素の視覚特性を、選択されたことを示すように変更した結果として生じる。例えば、図３Ｂでは、ユーザ１１３は、カーソル３９１で要素３０１を選択済みである。図示するように、要素３０１は、要素３０１が選択されていることを示すように、（実線とは対照的に）破線で表される。ただし、例えば、色、明るさ、サイズ、図形などの変更など、他の視覚特性変更も可能である。破線（または他の視覚特性）を視覚認識することにより、ユーザ１１３は、要素３０１が選択されていることをより容易に判断することができる。要素３０１が既存要素の場合、要素３０１の現在の表現は、図表３００中の他の場所（図示せず）に残り得る。
【００４２】
方法２００は、選択された視覚要素が視覚ランドマークに関連づけられるべきであることを示す追加インプットを受け取る行為（行為２０５）を含む。例えば、図１、図３Ｃ両方を参照すると、ユーザインターフェイス１０１は、要素３０１が移動し、その結果（例えば、ディスプレイ１０９上で）スナップバー３０２と少なくとも部分的に同じ場所に置かれていることを示す移動インプット１３２を検出することができる。ユーザインターフェイス１０１は、移動インプット１３２が描画モジュール１０７に関連すると判断することができ、移動データ１６２を描画モジュール１０７に転送すればよい。描画モジュール１０７は、移動データ１６２から、要素３０１がスナップバー３０２と少なくとも部分的に同じ場所に置かれていると判断することができる。
【００４３】
方法２００は、選択された視覚要素を図表中で整理するように、追加インプットの受取りに応答して、視覚ランドマークの対応する１つまたは複数のプロパティに従って、選択された視覚要素を視覚ランドマークに相対して位置づけることによって、１つまたは複数の視覚要素の配列を自動更新する行為（行為２０６）を含む。例えば、移動データ１６２（例えば、要素３０１をスナップバー３０２と同じ場所に置く）に応答して、図表エディタ１０２は、スナップバー３０２の１つまたは複数のプロパティに従って、要素３０１をスナップバー３０２に相対して位置づけることによって、（例えば、図表３００を表す）図表データ１１２を更新し得る。スナップバー３０２に相対した要素３０１の位置づけは、図表３００内で要素３０１を整理するために実施することができる。
【００４４】
方法２００は、選択された視覚要素の整理を図表中に反映するように、１つまたは複数の視覚要素の更新配列を提示する行為（行為２０７）を含む。例えば、図１、図３Ｄを参照すると、描画モジュール１０７は、更新視覚要素１４４（例えば、図３Ｄ中で整理される要素３０１およびスナップバー３０２）を表示デバイス１０９に送ることができる。表示デバイス１０９は、更新視覚要素１４４を提示することができる。例えば、図３Ｄに示すように、要素３０１は、スナップバー３０２上に垂直に整列される。
【００４５】
したがって、図３Ａ〜３Ｄは、スナップバーを使って図表内で要素を柔軟に整理する例を示す。ただし、他の様々な実施形態も考えられる。予め描写された図表および続いて描写された図表のどれも、表示デバイス（例えば、表示デバイス１０８）のディスプレイ（例えば、ディスプレイ１０９）に表示し、ディスプレイを介して相互作用することができる。
【００４６】
本発明の実施形態は、視覚ランドマークに相対して位置づけるために要素をタグづけすることを容易にする。例えば、図４Ａ〜４Ｅは、複数の要素をタグづけして、スナップバーのプロパティを図表４００中の複数の要素に適用する例を示す。
【００４７】
図４Ａに示すように、図表４００は、要素４０１、４０２、４０３を含む。要素４０１、４０２、４０３は、図表４００内の任意の位置にある。図４Ｂに示すように、カーソル４９１が、要素４０１にタグづけインジケータ４１１を適用するのに使われる。図４Ｃに示すように、カーソル４９１は、要素４０２にタグづけインジケータ４１２を適用するのに使われる。要素４０１は、タグづけインジケータ４１１でタグづけされたままである。図４Ｄに示すように、カーソル４９１は、要素４０３にタグづけインジケータ４１３を適用するのに使われる。要素４０１、４０２は、それぞれタグづけインジケータ４１１、４１２でタグづけされたままである。要素のタグづけは、選択インプット１６１中で表すことができる。タグづけに応答した、要素の破線への変更は、要素選択視覚フィードバック１４２中で表すことができる。
【００４８】
要素４０３のタグづけに続いて、ユーザ１１３は、例えば、メニューまたはボタンバー（ユーザインターフェイス１０１によって提示される）からの項目の選択など、追加インプットを提出して、要素４０１、４０２、４０３がスナップバー（または他の何らかの視覚ランドマーク）に関連づけられるべきであることを示すことができる。この追加インプットが、ユーザインターフェイス１０１で受け取られ、描画モジュール１０７および／または図表エディタ１０２に転送され得る。描画モジュール１０７および図表エディタ１０２は、連携して、図表４００の配列を自動更新することができる。例えば、要素４０１、４０２、４０３の変更された位置を表した描画モジュール１０７および図表エディタ１０２は、スナップバー４０４を含むように図表データ１１２を変更することができる。要素４０１、４０２、４０３は、スナップバー４０４のプロパティ（例えば、要素の間の均等間隔設定および垂直整列）に従って、スナップバー４０４に相対して位置づけることができる。
【００４９】
描画モジュール１０７は、図表４００の更新配列（更新視覚要素１４４で表される）を表示デバイス１０９に提示することができる。図４Ｅに示すように、要素４０１、４０２、４０３は、スナップバー４０４上で均等間隔設定され、スナップバー４０４上で垂直に整列される。
【００５０】
本発明の実施形態は、１つまたは複数の要素を既に含む視覚ランドマークへの要素の追加を容易にする。図５Ａ〜５Ｃは、図表５００中のスナップバーに要素を追加する例を示す。
【００５１】
図５Ａに示すように、選択要素５０１（新しい要素、または図表５００中の他の場所にある既存要素のどちらか）が、カーソル５９１で選択され、スナップバー５０３と部分的に同じ場所に置かれるように移動される。例えば、ユーザインプットにより、ユーザ１１３は、選択要素５０１をスナップバー５０３の上にドラッグすることができる。既存要素５０２は、スナップバー５０３のプロパティに従って、既にスナップバー５０３の上に位置づけられている。
【００５２】
追加ユーザインプットにより、ユーザ１１３は、選択要素５０１がスナップバー５０３上に位置づけられるべきであることを示すことができる。例えば、ユーザ１１３は、選択要素５０１をスナップバー５０３の上にドロップすることができる。選択要素５０１がスナップバー５０３の上にドロップされたという検出に応答して、図表５００は、自動的に更新し、ディスプレイ１０９上に提示することができる。例えば、図５Ｂに示すように、スナップバー５０３は、選択要素５０１に合わせるように、サイズ変更スナップバー５０３Ｒへサイズ変更される。図５Ｃに示すように、選択要素５０１および既存要素５０２は、サイズ変更スナップバー５０３Ｒのプロパティに従って、サイズ変更スナップバー５０３Ｒ上で調整され整列される。
【００５３】
本発明の実施形態は、視覚ランドマーク上での既存要素の展開を容易にする。図６Ａ、６Ｂは、図表６００中のスナップバー上で要素を展開する例を示す。
【００５４】
図６Ａに示すように、要素６０１、６０２は、スナップバー６０３のプロパティに従って、スナップバー６０３に相対して位置づけられる。要素６０２は、カーソル６９１で（例えば、ユーザインプットにより）選択される。追加ユーザインプットにより、ユーザ１１３は、要素６０２がスナップバー６０３上で展開されるべきであることを示すことができる。例えば、ユーザ１１３は、メニューまたはボタンバー（ユーザインターフェイス１０１によって提示される）から展開項目を選択することができる。
【００５５】
展開項目を選択する追加ユーザインプットに応答して、図表６００は、自動的に更新し、ディスプレイ１０９上に提示することができる。例えば、図６Ｂに示すように、スナップバー６０３は、展開要素６０２Ｅに合わせるように、サイズ変更スナップバー６０３Ｒへサイズ変更される。展開要素６０２Ｅは、３つのサブ要素、すなわち要素６１２、６２２、６３２も現わす。要素６０１、展開要素６０２Ｅ、および要素６１２、６２２、６３２は、サイズ変更スナップバー６０３Ｒのプロパティに従って、サイズ変更スナップバー６０３Ｒ上で調整され整列される。
【００５６】
本発明の実施形態は、視覚ランドマーク上の要素の、視覚ランドマーク上の異なる位置への移動を容易にする。図７Ａ〜７Ｃは、図表７００中のスナップバー上の要素を移動する例を示す。
【００５７】
図７Ａに示すように、要素７０１、７０２は、スナップバー７０３のプロパティに従って、スナップバー７０３上に位置づけられる。続いて受け取られたユーザインプットが、要素７０２が要素７０１の右側から左側に移動されるべきであることを示す。例えば、要素７０２は、カーソル７９１で選択し、要素７０１の右側から左側にドラッグすることができる。図７Ｂに示すように、要素７０２（選択中）は、要素７０１の左に位置づけられる。
【００５８】
追加ユーザインプットにより、ユーザ１１３は、要素７０２がスナップバー７０３上の要素７０１の左に位置づけられるべきであることを示すことができる。例えば、ユーザ１１３は、要素７０２（選択中）を、図７Ｂにおいて示された位置にドロップすることができる。要素７０２（選択中）がスナップバー７０３の上にドロップされたという検出に応答して、図表７００は、自動的に更新し、ディスプレイ１０９上に提示することができる。例えば、図７Ｃに示すように、要素７０１、７０２は、スナップバー７０３のプロパティに従って、スナップバー７０３上で調整され整列される。要素７０２は、要素７０１の左に位置づけられる。
【００５９】
本発明の実施形態は、視覚ランドマークを移動して、視覚ランドマーク上に位置づけられた要素をすべて移動することを容易にする。図８Ａ〜８Ｃは、スナップバーを移動して、図表８００中のスナップバー上の要素をすべて移動する例を示す。
【００６０】
図８Ａに示すように、要素８０１および要素８０２は、スナップバー８０３のプロパティに従って、スナップバー８０３に相対して位置づけられる。続いて受け取られたユーザインプットが、スナップバー８０３が選択されるべきであることを示す。例えば、スナップバー８０３は、カーソル８９１で選択すればよい。選択されると、スナップバー８０３は、図表８００内で移動することができる。例えば、図８Ｂに示すように、スナップバー８０３は、（選択されているスナップバー８０３の）新しい位置に向かって下および右に移動することができる。要素８０１、８０２は、スナップバー８０３とともに移動する。追加ユーザインプットが、スナップバー８０３が図表８００内の新たな位置に留まるべきであることを示すことができる。ドラッグアンドドロップ操作は、スナップバー８０３を要素８０１、８０２とともに、新たな位置に移動するのに用いられることができる。
【００６１】
本発明の実施形態は、視覚ランドマークの可視性のトグルを容易にする。図９Ａ、９Ｂは、図表９００中でスナップバーをトグルする例を示す。
【００６２】
図９Ａに示すように、要素９０１はスナップバー９１１に相対して位置づけられ、要素９０２、９０３、９０４はスナップバー９１２に相対して位置づけられ、要素９０５、９０６、９０７はスナップバー９１３に相対して位置づけられる。スナップバー９１４は、受け取られる視覚要素に対して利用可能であると示される。スナップスタック９２１は、図表９００内に要素を並べるためのグリッド構造を提供する。例えば、スナップスタック９２１は、隣接スナップバーの間の定義済み間隔設定を維持する（本質的に、いくつかの行を維持する）ためのプロパティをもち得る。各スナップバー（行）は、必要に応じて、要素に合わせるように水平方向にサイズ変更することができる。要素は、図表９００に追加されると、新たなスナップバーまたは既存のスナップバー上の場所を占め得る。
【００６３】
図９Ｂに示すように、スナップスタック９２１（スナップバー９１４が空なので、スナップバー９１４を含む）は、トグルによりオフ表示にされる。ただし、図９Ａの視覚ランドマークのプロパティに従う要素の配列は残る。したがって、要素は、視覚ランドマークを使用して整理され、視覚ランドマークは続いて、整理された要素配列がそのまま残るように隠されることができる。
【００６４】
したがって、概して視覚ランドマークは、図表内で要素を整理するのを支援するために図表に追加され得る。異なる様々なタイプの視覚ランドマークを使用することができる。各タイプの視覚ランドマークは、視覚ランドマークのタイプに関連づけられた要素に対する配列および調整を定義する構成可能プロパティを含み得る。構成可能プロパティは、関連づけられた要素が、視覚ランドマークに相対してどのように位置づけられるべきかを定義することができる。構成可能プロパティは、関連づけられた要素が、相互に相対してどのように位置づけられるべきかも定義することができる。続いて、図表内の要素は、視覚ランドマークに関連づけ、視覚ランドマークの構成可能プロパティに従って整理され、かつ／または調整されることができる。
【００６５】
例えば、図１０Ａ〜１０Ｄは、図表中の要素を整理するのに使用することができるスナップバーのいくつかの例を示す。図１０Ａは、水平スナップバー１００３に相対して位置づけられた要素１００１、１００２を示す。水平スナップバー１００３のプロパティの１つは、要素が水平スナップバー１００３上で水平方向に均等間隔設定されるべきであることを示すことができる。図１０Ｂは、水平スナップバー１０１４に相対して位置づけられた要素１０１１、１０１２、１０１３を示す。水平スナップバー１０１４のプロパティの１つは、水平スナップバー１０１４上での要素１０１２と要素１０１３との間の間隔増大を示すことができる。図１０Ｃは、垂直スナップバー１０２４に相対して位置づけられた要素１０２１、１０２２、１０２３を示す。垂直スナップバー１０２４のプロパティの１つは、要素が垂直スナップバー１０２４上で垂直に均等間隔設定されるべきであることを示すことができる。図１０Ｄは、対角線スナップバー１０３３上の要素１０３１、１０３２を示す。
【００６６】
図１１Ａ、１１Ｂは、図表中で要素を整理するのに使用することができるスナップベジエの例を示す。スナップベジエは、スナップバーの変形体である。図１１Ａは、スナップベジエ１１０５上の要素１１０１、１１０２、１１０３、１１０４を示す。スナップベジエ１１０５のプロパティの１つは、比較的著しくない曲率をもつものでよい。図１１Ｂは、スナップベジエ１１１５上の要素１１１１、１１１２、１１１３、１１１４を示す。スナップベジエ１１１５のプロパティの１つは、より著しい曲率をもつものでよい。
【００６７】
図１２Ａ〜１２Ｃは、図表中で要素を整理するのに使用することができるスナップアークの例を示す。スナップアークは、スナップバーと似ているが、楕円形状である。図１２Ａは、スナップアーク１２０６上の要素１２０１、１２０２、１２０３、１２０４、１２０５を示す。スナップアーク１２０６のプロパティは、比較的小さい半径および比較的大きい角を含み得る（すなわち、完全な円に比較的近い）。図１２Ｂは、スナップアーク１２１４上の要素１２１１、１２１２、１２１３を示す。スナップアーク１２１４のプロパティは、比較的小さい半径および比較的小さい角を含み得る（すなわち、完全な円とは比較的かけ離れている）。図１２Ｃは、スナップアーク１２２４上の要素１２２１、１２２２、１２２３を示す。スナップアーク１２２４のプロパティは、比較的大きい半径および比較的小さい角を含み得る。
【００６８】
さらに、スナップバー、スナップベジエ、およびスナップアークは、他の様々な構成可能プロパティを共通にもち得る。例えば、スナップバー、スナップベジエ、およびスナップアークは、分布が均等であるかそれとも自由形式であるか、下整列、上整列、左整列、および右整列の１つまたは複数（適用可能なとき）、回転角度（例えば、４５度、９０度など）、並びに間隔（例えば、ピクセルで表す）を定義する構成可能プロパティを含み得る。
【００６９】
グラビティウェル（gravity well）は楕円形であり、所望通りサイズ決定することができる。グラビティウェルの「影響フィールド」内の追加図形は、動力ベースのアルゴリズムによって定義される通り、グラビティウェルに向かって引きつけられ得る。図１３Ａ〜１３Ｃは、図表中で要素を整理するのに使用することができるグラビティウェルの例を示す。図１３Ａは、グラビティウェル１３０４の影響フィールド内にある要素１３０１、１３０２、１３０３を示す。グラビティウェル１３０４は、円形である。図１３Ｂは、グラビティウェル１３１４の影響フィールド内にある要素１３１１、１３１２、１３１３を示す。グラビティウェル１３１４は楕円であり、垂直方向に配向される。図１３Ｃは、グラビティウェル１３２３の影響フィールド内にある要素１３２１、１３２２を示す。グラビティウェル１３２３は楕円であり、斜め方向に配向される。グラビティウェルは、範囲（例えば、直径で表す）および分布（例えば、平衡、上、下、左、右など）を定義する構成可能プロパティを含み得る。
【００７０】
スナップスタックは、スタッキンググリッド構造に従って要素を並べるのに使われ得る。図形は、パスに追加されると、新たな行または既存行内部のセルを占め得る。新たな行およびセルは、スナップスタックに要素が追加されたときに生成され得る。図１４Ａ、１４Ｂは、図表中で要素を整理するのに使用することができるスナップスタックの例を示す。図１４Ａは、スナップバー１４１１、１４１２、１４１３、１４１４を含むスナップスタック１４２１を示す。図１４Ｂは、スナップバー１４１１、１４１２、１４１３上に位置づけられた、相互接続された要素１４０１〜１４０７を示す。スナップスタックは、セル分布（例えば、自由形式または均等）スタック左、スタック中央、スタック右、回転（例えば、４５度、９０度など）、並びに行間設定を定義する構成可能プロパティを含み得る。
【００７１】
スティッキーボックス（sticky box）は、長方形であり、要素の集合体を整理し、移動し、管理するのに使用することができる視覚グループとして作用する。図１５は、図表中で要素を整理するのに使用することができるスティッキーボックスの例を示す。図１５は、スティッキーボックス１５０５内の要素１５０１〜１５０４を示す。スティッキー投げ縄（sticky lasso）は、任意の形状であり、要素の集合体を整理し、移動し、管理するのに使用することができる視覚グループとして作用する。図１６は、図表中で要素を整理するのに使用することができるスティッキー投げ縄の例を示す。図１６は、スティッキー投げ縄１６１１内部の要素１６０１〜１６０５を示す。要素１６０６、１６０７、１６０８は、スティッキー投げ縄１６１１の外側にある。スティッキー投げ縄は、比較的標準的な幾何学図形に該当しない対象グループ化領域の使用を容易にする。スティッキーボックスおよびスティッキー投げ縄は、展開／縮小およびサイズ変更／パス変更を定義する構成可能プロパティを含み得る。
【００７２】
概して、本発明の実施形態により、ユーザは、所望の挙動を視覚ランドマークに示させるように視覚ランドマークをカスタマイズすることができる。本発明の実施形態は、新たな視覚ランドマークを作成するような、個々の視覚ランドマークのカスタマイズも含む。例えば、既存のスナップアークの半径は、新たなスナップアークを作成するように修正する（大きくし、または小さくする）ことができ、既存のスティッキー投げ縄は、新たな境界をもつ領域を作成するように修正することができ、スナップベジエは、曲率を変更し、新たな曲線を追加し、または既存の曲線を削除して新たなスナップベジエを作成するなどのように修正することができる。
【００７３】
いくつかの実施形態では、既存の複数の視覚ランドマークが合成されて、カスタマイズされた視覚ランドマークを作り出す。図１８は、カスタマイズされた視覚ランドマーク１８００の例を示す。図１７は、視覚ランドマークをカスタマイズする方法例１７００のフローチャートを示す。方法１７００を、図１のコンピュータアーキテクチャ１００のコンポーネントおよびカスタマイズされた視覚ランドマーク１８００を参照して記載する。
【００７４】
方法１７００は、図表中で視覚要素を整理するのに使用され得る格納された視覚ランドマークにアクセスし、視覚的に提示する行為（行為１７０１）を含む。例えば、ここで図１を参照すると、ユーザ１１３は、視覚ランドマーク選択インプット１３４を入力することができる。ユーザインターフェイス１０１は、視覚ランドマーク選択インプット１３４が、視覚ランドマークを選択するユーザインプットであると判断することができる。それに応答して、ユーザインターフェイス１０１は、視覚ランドマーク選択インプット１３４を図表エディタ１０２に転送することができる。図表エディタ１０２は、視覚ランドマーク選択インプット１３４を処理し、視覚ランドマークリポジトリ１３５にある視覚ランドマークにアクセスすることができる。図表エディタ１０２は、図表データ１１２中に視覚ランドマークを含め、図表データ１１２を、表示デバイス１０８で表示するために描画モジュール１０７に送ることができる。描画モジュール１０７は、選択された視覚ランドマークをディスプレイ１０９上に視覚的に描画することができる。複数の既存の視覚ランドマークが合成されるべきとき。行為１７０１は、複数の視覚ランドマークの各視覚ランドマークにアクセスし、視覚的に提示するために、必要に応じて繰り返してよい。例えば、図１８を参照すると、スナップバー１８２１、１８２２、１８２３、１８２４、１８２５にアクセスするために、行為１７０１を繰り返せばよい。
【００７５】
方法１７００は、ユーザ入力インプットに従って視覚ランドマークの視覚的表現を変更する行為（行為１７０２）を含む。例えば、ユーザ１１３は、行為１７０１で視覚的に提示された任意の視覚ランドマークを変更するためのユーザインプットを入力することができる。視覚ランドマークが選択されると、視覚ランドマークフィードバックは、（例えば、図表内の要素に適用可能な任意の表示を用いて）ユーザ１１３に対して選択を視覚的に示すことができる。例えば、スナップバー１８２１が選択されると、描画モジュールは、（例えば、スナップバー１８２１を破線で提示する）視覚ランドマークフィードバック１４３を表示デバイス１０８に送ることができる。
【００７６】
方法１７００は、ユーザ入力インプットに従って視覚ランドマークの１つまたは複数のプロパティを構成する行為（行為１７０３）を含み、構成された１つまたは複数のプロパティは、関連する視覚要素を視覚ランドマークに相対してどのようにして自動的に位置づけて、関連する視覚要素を図表中で整理するかを示す。例えば、図１８において、様々なスナップバーのエンドポイントは、スナップバーを合成するように接続することができる。エンドポイント１８２１Ｂ、１８２２Ａ、１８２３Ａは、相互に接続することができ、エンドポイント１８２３Ｂ、１８２４Ａ、１８２５Ａは、カスタマイズされた視覚ランドマーク１８００を形成するように接続することができる。
【００７７】
方法１７００は、構成された１つまたは複数のプロパティとともに、変更された視覚的表現を新たな視覚ランドマークとして格納する行為（行為１７０４）を含み、新たな視覚ランドマークは、ユーザ入力インプットに従った図表の整理に使用される。例えば、ユーザ１１３は、カスタマイズされた視覚ランドマーク１８００を視覚ランドマークリポジトリ１３５に格納させるユーザインプットを入力することができる。
【００７８】
視覚ランドマークは、自由形式で整理された視覚要素をもつ図表に適用して、図表内部で要素を整理するのを支援することができる。視覚ランドマークは、自動配列機構に従って（例えば、自動レイアウトアルゴリズムに従って）整理された視覚要素をもつ図表に適用して、図表内部で要素を整理するのを支援することもできる。視覚ランドマークは、視覚要素の自動配列に制約を適用することによって、自動配列機構と併用することができる。
【００７９】
したがって、本発明の実施形態は、（一部の実施形態ではカスタマイズされた）視覚ランドマークを使用して図表内部で要素を整理することを容易にする。図表の要素は、図表内にある程度のレイアウト構造を与えるように、視覚ランドマークの構成可能に定義されたプロパティに従って整理することができる。したがって、本発明の実施形態は、何らかの構造を与えるが、自由形式編集の柔軟性を保持するユーザ経験を提供する。
【００８０】
本発明は、本発明の精神または本質的な特性から逸脱することなく、他の特定の形で実施することもできる。説明した実施形態は、あらゆる点において例示に過ぎず、制限ではないと理解されたい。本発明の範囲は、したがって、上記の説明ではなく、特許請求の範囲によって示される。特許請求の範囲の等価物の意義および範囲内であるすべての変更は、特許請求の範囲の範囲に含まれる。
【図１】
0005757035.tif 000002
【図２】
0005757035.tif 000003
【図３Ａ】
0005757035.tif 000004
【図３Ｂ】
0005757035.tif 000005
【図３Ｃ】
0005757035.tif 000006
【図３Ｄ】
0005757035.tif 000007
【図４Ａ】
0005757035.tif 000008
【図４Ｂ】
0005757035.tif 000009
【図４Ｃ】
0005757035.tif 000010
【図４Ｄ】
0005757035.tif 000011
【図４Ｅ】
0005757035.tif 000012
【図５Ａ】
0005757035.tif 000013
【図５Ｂ】
0005757035.tif 000014
【図５Ｃ】
0005757035.tif 000015
【図６Ａ】
0005757035.tif 000016
【図６Ｂ】
0005757035.tif 000017
【図７Ａ】
0005757035.tif 000018
【図７Ｂ】
0005757035.tif 000019
【図７Ｃ】
0005757035.tif 000020
【図８Ａ】
0005757035.tif 000021
【図８Ｂ】
0005757035.tif 000022
【図８Ｃ】
0005757035.tif 000023
【図９Ａ】
0005757035.tif 000024
【図９Ｂ】
0005757035.tif 000025
【図１０Ａ】
0005757035.tif 000026
【図１０Ｂ】
0005757035.tif 000027
【図１０Ｃ】
0005757035.tif 000028
【図１０Ｄ】
0005757035.tif 000029
【図１１Ａ】
0005757035.tif 000030
【図１１Ｂ】
0005757035.tif 000031
【図１２Ａ】
0005757035.tif 000032
【図１２Ｂ】
0005757035.tif 000033
【図１２Ｃ】
0005757035.tif 000034
【図１３Ａ】
0005757035.tif 000035
【図１３Ｂ】
0005757035.tif 000036
【図１３Ｃ】
0005757035.tif 000037
【図１４Ａ】
0005757035.tif 000038
【図１４Ｂ】
0005757035.tif 000039
【図１５】
0005757035.tif 000040
【図１６】
0005757035.tif 000041
【図１７】
0005757035.tif 000042
【図１８】
0005757035.tif 000043