CADシステムにおける自動経路決定のための方法であって、CADシステムが、交差するカーブの組を受け付けるステップと、CADシステムが、前記交差するカーブの組からのソースカーブおよびデスティネーションカーブの選択を受け付けるステップと、CADシステムが、選択意図規則を受け付けるステップと、CADシステムが、前記選択意図規則に従って、前記交差するカーブの組から、前記ソースカーブを含むカーブの第1のチェーンを計算するステップと、CADシステムが、選択された経路を保存するステップであって、該選択された経路は、前記選択意図規則から最小数のずれを有する、前記デスティネーションカーブと前記ソースカーブとの間のカーブのチェーンである、ステップと、を含む、ことを特徴とする方法。前記選択意図規則に従って、前記交差するカーブの組から、前記デスティネーションカーブを含むカーブの第2のチェーンをさらに計算する、請求項1記載の方法。前記カーブの第1のチェーンと前記カーブの第2のチェーンとが同じであるか否かを判別する、請求項2記載の方法。前記カーブの第1のチェーンと前記カーブの第2のチェーンとが同じでない場合、その後、前記選択意図規則からの1以上のずれを有するソースカーブを含む、少なくとも1つの付加的なカーブのチェーンを計算する、請求項2記載の方法。前記カーブの第1のチェーンと前記カーブの第2のチェーンとが同じでない場合、その後、前記ソースカーブと、前記カーブの第1のチェーンと前記カーブの第2のチェーンの両方に共通する少なくとも1つの付加的なカーブとを含む、カーブの少なくとも1つの付加的なチェーンを計算する、請求項2記載の方法。複数の選択された経路が保存され、該複数の選択された経路のうちの最短の経路を同定する、請求項1記載の方法。前記選択され、保存された経路は、前記選択意図規則から同じ最小数のずれを有する複数の経路のうちの、前記ソースカーブと前記デスティネーションカーブとの間の最短の経路である、請求項1記載の方法。プロセッサとアクセス可能メモリとを備えたCADシステムであって、該CADシステムは有利には以下のステップ、すなわち、交差するカーブの組を受け付けるステップと、前記交差するカーブの組からのソースカーブおよびデスティネーションカーブの選択を受け付けるステップと、選択意図規則を受け付けるステップと、前記選択意図規則に従って、前記交差するカーブの組から、前記ソースカーブを含むカーブの第1のチェーンを計算するステップと、選択された経路を保存するステップであって、該選択された経路は、前記選択意図規則から最小数のずれを有する、前記デスティネーションカーブと前記ソースカーブとの間のカーブのチェーンである、ステップと、を実行するように構成されている、ことを特徴とするCADシステム。前記選択意図規則に従って、前記交差するカーブの組から、前記デスティネーションカーブを含むカーブの第2のチェーンを計算するステップを実行するようにさらに構成されている、請求項8記載のCADシステム。前記カーブの第1のチェーンと前記カーブの第2のチェーンとが同じであるか否かを判別するステップを実行するようにさらに構成されている、請求項9記載のCADシステム。前記カーブの第1のチェーンと前記カーブの第2のチェーンとが同じでない場合、その後、前記選択意図規則からの1以上のずれを有するソースカーブを含む、カーブの少なくとも1つの付加的なチェーンを計算するステップを実行するようにさらに構成されている、請求項9記載のCADシステム。前記カーブの第1のチェーンと前記カーブの第2のチェーンとが同じでない場合、その後、前記ソースカーブと、前記カーブの第1のチェーンと前記カーブの第2のチェーンの両方に共通する少なくとも1つの付加的なカーブとを含む、カーブの少なくとも1つの付加的なチェーンを計算するステップを実行するようにさらに構成されている、請求項9記載のCADシステム。複数の選択された経路が保存され、該複数の選択された経路のうちの最短の経路を同定するように構成されている、請求項8記載のCADシステム。前記選択され、保存された経路は、前記選択意図規則から同じ最小数のずれを有する複数の経路のうちの、前記ソースカーブと前記デスティネーションカーブとの間の最短の経路である、請求項8記載のCADシステム。コンピュータ実行可能命令がコード化されたコンピュータ読み取り可能記録媒体であって、該命令は、実行時に、CADデータ処理システムに以下のステップ、すなわち、交差するカーブの組を受け付けるステップと、前記交差するカーブの組からのソースカーブおよびデスティネーションカーブの選択を受け付けるステップと、選択意図規則を受け付けるステップと、前記選択意図規則に従って、前記交差するカーブの組から、前記ソースカーブを含むカーブの第1のチェーンを計算するステップと、選択された経路を保存するステップであって、該選択された経路は、前記選択意図規則から最小数のずれを有する、前記デスティネーションカーブと前記ソースカーブとの間のカーブのチェーンである、ステップと、を行わせる、ことを特徴とするコンピュータ読み取り可能記録媒体。前記選択意図規則に従って、前記交差するカーブの組から、前記デスティネーションカーブを含むカーブの第2のチェーンを計算するステップを、実行時に、CADデータ処理システムに行わせるコンピュータ実行可能命令がさらにコード化された、請求項15記載のコンピュータ読み取り可能記録媒体。前記カーブの第1のチェーンと前記カーブの第2のチェーンとが同じであるか否かを判別するステップを、実行時に、CADデータ処理システムに行わせるコンピュータ実行可能命令がさらにコード化された、請求項16記載のコンピュータ読み取り可能記録媒体。前記カーブの第1のチェーンと前記カーブの第2のチェーンとが同じでない場合、その後、前記選択意図規則からの1以上のずれを有するソースカーブを含む、カーブの少なくとも1つの付加的なチェーンを計算するステップを、実行時に、CADデータ処理システムに行わせるコンピュータ実行可能命令がさらにコード化された、請求項16記載のコンピュータ読み取り可能記録媒体。前記カーブの第1のチェーンと前記カーブの第2のチェーンとが同じでない場合、その後、前記ソースカーブと、前記カーブの第1のチェーンと前記カーブの第2のチェーンの両方に共通する少なくとも1つの付加的なカーブと、を含む少なくとも1つの付加的なカーブのチェーンを計算するステップを、実行時に、CADデータ処理システムに行わせるコンピュータ実行可能命令がさらにコード化された、請求項16記載のコンピュータ読み取り可能記録媒体。複数の選択された経路が保存され、該複数の選択された経路のうちの最短の経路を同定する、請求項15記載のコンピュータ読み取り可能記録媒体。前記選択され、保存された経路は、前記選択意図規則から同じ最小数のずれを有する複数の経路のうちの、前記ソースカーブと前記デスティネーションカーブとの間の最短の経路である、請求項15記載のコンピュータ読み取り可能記録媒体。種々の開示の実施形態には、CADシステムおよび対応する方法およびコンピュータプログラム製品が含まれる。方法は、交差するカーブの組を受け付けるステップと、交差するカーブの組からのソースカーブおよびデスティネーションカーブの選択を受け付けるステップとを含む。該方法は選択意図規則を受け付けるステップと、選択意図規則に従って、交差するカーブの組から、ソースカーブを含むカーブの第1のチェーンを計算するステップとを含む。該方法は、選択された経路を保存するステップを含み、該選択された経路は、選択意図規則から最小数のずれを有する、デスティネーションカーブとソースカーブとの間のカーブのチェーンである。付加的な中間カーブが特定されてもよく、これにより現在の経路が再ルーティングされる。上記は、当業者が以下の詳細な説明をより良く理解できるように本発明の特徴および技術的な利点をかなり大雑把に述べたものである。特許請求の範囲の対象を成す本発明の付加的な特徴及び利点を以下において説明する。当業者であれば、本発明の変更又は本発明と同一の目的を達成するための構造を設計するための基礎として、開示された着想及び特定の実施の形態を容易に使用することができるであろう。また、当業者であれば、そのような等価物はその最も広い形態においても、本発明の精神及び範囲から逸脱するものではないことが分かるであろう。以下の詳細な説明の前に、本明細書にわたり使用される幾つかの用語又は語句の定義を明確にすることは有利であると思われる。含む及び有するという語、またそれらから派生した語は限定的でない包含を意味する。又はという語は包含的な語であり、すなわち及び/又はを意味する。関連した及びそれと関連したならびにそれらから派生した語は含む、中に含まれる、相互に接続されている、有する、中に有する、~に、又は~と接続する、~に、又は~と結合する、~と通信可能である、~と協働する、交互配置する、近接して並置する、~に近接している、~に、又は~と結び付けられている、持つ、~の性質を有する等を意味する。またコントローラという語は、ハードウェア、ファームウェア、ソフトウェア、又はそれらのうちの少なくとも2つの組合せによって実施されていようと、少なくとも1つの動作を制御する任意のデバイス、システム又はその一部を意味する。任意の特定のコントローラに関連した機能は中央に集中していてもよいし、局所的であれ遠隔的であれ分散していても良いことを言及しておく。本願明細書全体にわたり幾つかの語及び語句の定義が示されるが、当業者であれば、そのような定義は、殆どではないにしろ、多くの場合、このように定義された語及び語句の以前の用法及び将来の用法にも当てはまることを理解するであろう。幾つかの語は多様な実施の形態を含んでいるが、添付の特許請求の範囲における記載はこれらの語を特定の実施の形態に明示的に限定している。本明細書及び本発明の利点をより完璧に理解するために、以下では、添付の図面を参照しながら本発明を説明する。図面において、同一の参照番号は同一の対象を表している。本願書類において本発明の主旨を記載するために用いられる図1~9後述および種々の実施形態は例示に過ぎず、本発明の範囲を何ら限定するものと理解されるべきではない。本発明の基本構成が任意に適切に構成された装置において実施可能であることは当業者には理解されるであろう。本願の多くの革新的な教示について、例示的な非限定の実施形態に関連して記載される。従来のCADシステムにおいて、カーブまたはエッジのコレクション、または、カーブおよびエッジの混ざったものが種々の処理への入力として用いられる。複数の用語を避けるため、本明細書においては、CADの分野で知られているカーブおよびエッジのいずれもカーブを意味するものとする。本明細書中で用いられるとき、以下に示されるように、チェーンは連結したカーブのコレクションであり、経路はソースカーブからデスティネーションカーブとの間それ自身を含むの、一連の連結したカーブのコレクションである。ユーザはしばしば、交差したカーブの非常に複雑なネットワークから、カーブのサブセットおよびカーブの一部をコレクションしようとする。従来のシステムでは、一つずつまたは小グループでカーブの一部を非効率的に選択しなければならない。選択意図SelectionIntentとは、開示の実施形態において用いられる既存の機能および技術を意味する。選択意図はカーブをコレクションするための種々の方法を提供する。選択意図規則は、起点となるカーブが明示的に選択されたときに、カーブを自動的にコレクションされる基準である。このような規則の例は、連結カーブ、正接カーブおよびシングルカーブである。連結カーブの規則が選択されると、1つのカーブの明示的な選択により、たとえば、その端点に特有に接続されているカーブがすべて自動的に選択され、これらのカーブに特有に連結しているカーブが自動的に選択される。この連鎖選択処理のため、カーブのコレクションはチェーンと呼ばれる。カーブのコレクションは連結したカーブのチェーンとして存在し、記憶される。後にカーブが基本カーブに加えられる場合、これらのカーブは選択意図規則を満たすものであり、これらは自動的にコレクションに加えられる。カーブまたはラインが正接カーブの選択意図規則を用いて選択された場合、正接接続されているカーブが自動的に選択される。カーブまたはラインがシングルカーブの選択意図規則を用いて選択された場合、ユーザにより明示的に選択された1つのカーブのみがコレクションに入る。他のカーブは自動的に入らない。本明細書中に開示される実施形態は、たとえば、連結カーブ、正接カーブおよびシングルカーブの選択意図規則を用いて実現される。いくつかのオプションが使用可能であり、これらはカーブのコレクションの際に付加的なコントロールを提供する。選択意図規則は、特定のカーブが選択されたときにコレクションに自動的に加えられるカーブの種類を決定する。交差で停止オプションは連結カーブ、正接カーブおよびシングルカーブの規則にのみ関連する。このオプションは、ユーザが自動的またはマニュアルでカーブの交差により制約されるべきカーブの選択を望む際に特定される。特定された場合、交差で停止オプションによって、カーブ全体よりむしろ、交差の間のカーブの部分の選択が可能となる。交差で停止オプションとともに正接カーブの選択意図規則を用いてラインが選択された場合、結果得られるコレクションは交差するカーブにより制約される。コレクションは完全な正接チェーンを含まず、チェーンの交差の間にあるチェーンの部分のみを含む。カーブの密なネットワークに関し、これはしばしば所望の選択意図規則およびオプションの組み合わせを用いて所望のカーブのコレクションを定めるためには面倒なものとなる。所望のコレクションを決定するには通常、画面上で多数回選択する必要があるが、これは頻繁な画面の拡大縮小操作を伴い、これにより誤った選択をすることが非常に多くなってしまう。これらは全て、ユーザの生産性に直接影響する。たとえば、交差するカーブの密なネットワークについて、シングルカーブ規則および交差で停止オプションを用いてコレクションを定めるには、画面上で12回選択しなければならない。開示の実施形態によれば、システムまたはユーザが画面上で非常に少ない選択により所望のコレクションを定めることができるシステムおよび方法が提供される。開示の実施形態によれば、ユーザおよびシステムがより望ましいコレクションへ現在のコレクションを容易に修正可能なシステムおよび方法が提供される。開示の実施形態は、複雑なカーブのネットワークからカーブのコレクションを定める際の生産性を大きく改善する。図1は、一つの実施形態を実施することができる、例えばCADシステムとしてのデータ処理システムのブロック図を示す。図示されているデータ処理システムはプロセッサ102を含んでおり、このプロセッサ102は2次キャッシュ/ブリッジ104に接続されている。2次キャッシュ/ブリッジ104はさらにローカルシステムバス106に接続されている。ローカルバスシステム106は、例えば、PCIperipheralcomponentinterconnectアーキテクチャバスである。図示されている実施例におけるローカルバスシステムには、メインメモリ108及びグラフィックアダプタ110も接続されている。グラフィックアダプタ110をディスプレイ111に接続することもできる。他の周辺装置、例えばローカルエリアネットワークLAN/ワイドエリアネットワーク/ワイヤレス例えばWiFiアダプタ112もローカルバスシステム106に接続することができる。拡張バスインタフェース114は、ローカルバスシステム106を入力/出力I/Oバス116に接続させる。I/Oバス116にはキーボード/マウスアダプタ118、ディスクコントローラ120及びI/Oアダプタ122が接続されている。ディスクコントローラ120を記録装置126に接続することができ、この記録装置126は機械使用可能又は機械読み出し可能なあらゆる適切な記憶媒体で良く、不揮発性のハードコーディングタイプの媒体、例えば読み出し専用メモリROM又は電気的に消去及びプログラミング可能な読み出し専用メモリEEPROM、磁気タイプの記録装置及びユーザ記録可能なタイプの媒体、例えばフロッピーディスク、ハードディスクドライブ及びコンパクトディスク読み出し専用メモリCD-ROM又はディジタル多目的ディスクDVD及び他の公知の光学的、電気的又は磁気的な記録装置がこれに含まれるが、記憶媒体はこれらの例に限定されるものではない。図示されている例におけるI/Oバス116にはオーディオアダプタ124も接続されており、このオーディオアダプタ124には音声を再生するためにスピーカ図示せずを接続することができる。キーボード/マウスアダプタ118は、例えばマウス、トラックボール、トラックポインタ等のポインティングデバイス図示せずのためのコネクションを提供する。当業者には、図1に図示されているハードウェアを特定の実施の形態のために変更できることは明らかである。例えば、他の周辺装置、例えば光学ディスクドライブ等も付加的に使用することができるか、又は、図示されているハードウェアの代わりに使用することができる。図示されている実施例は説明を目的としたものに過ぎず、本発明に関する構造的な制約を暗示することを意図したものではない。本発明の実施の形態によるデータ処理システムは、グラフィカルユーザインタフェースを使用するオペレーティングシステムを含んでいる。オペレーティングシステムは複数のディスプレイウィンドウをグラフィカルユーザインタフェースにおいて同時に表示することができ、各ディスプレイウィンドウは種々のアプリケーションへのインタフェース又は同一のアプリケーションの種々のインスタンスへのインタフェースを提供する。ユーザはポインティングデバイスを介してグラフィカルユーザインタフェースにおけるカーソルを操作することができる。カーソルの位置を変更することができる、及び/又は、カーソルの位置として所望のレスポンスを起動させるために行なわれたイベント、例えばマウスボタンのクリックが考えられる。商用の種々のオペレーティングシステムの内の一つ、例えばMicrosoftWindows登録商標のバージョンレドモンドワシントン州に位置するMicrosoft社の製品を、適切に変更されている場合には使用することができる。オペレーティングシステムは、本明細書において説明する本発明に従い修正又は作成されている。LAN/WAN/ワイヤレスアダプタ112をデータ処理システム100の一部ではないネットワーク130に接続することができ、このネットワーク130として、当業者には周知であるような、公共又は私用のあらゆるデータ処理システムネットワーク、又は、ネットワークの組み合わせが考えられ、例えばインターネットが含まれる。データ処理システム100はネットワーク130を介してサーバシステム140と通信することができ、このサーバシステム140もまたデータ処理システム100の一部ではないが、例えば、別個のデータ処理システム100として実施することができる。開示の実施形態により、複雑なカーブのネットワークから、カーブのコレクションを定める際の生産性が大きく向上される。上述のように、多くのCADシステムおよび機能はカーブのコレクションを入力として必要とする。図2は本明細書に記載の技術を用いた選択によるカーブのコレクションの例を示す。強調されたカーブのコレクション経路205の選択には、本明細書に開示の技術によれば、画面上で2回の選択しか必要とされない。画面上での2回の必要な選択は、210と215で示されている。従来の技術によれば、所望の選択意図規則およびオプションの組み合わせによりカーブの同じコレクションを同定するためには、ユーザはマニュアルで12回選択する必要がある。必要な選択回数を減らすこの例では、12回から2回にことにより、CAD設計処理の効率が大きく向上される。開示の実施形態には、カーブのコレクションを定めるための新たな対話モデルと、最小量のユーザ入力で所望のコレクションを探索するためのシステムおよび方法が含まれる。開示の実施形態における基本的な対話は、システムが、コレクションが含むべき一連の入力カーブのユーザ選択を受け付けることである。システムは、その後、これらの入力カーブを接続するカーブを決定し、これらをコレクションに加える。本明細書で用いられるとき、カーブのコレクションは経路と呼ばれる。経路を探索するための詳細な基準および主要な基準は本明細書中に記載されている。種々の実施形態において、カーソルが候補となる入力カーブの上にあるときに、対話モデルによってさらにリアルタイムの視覚的な経路のフィードバックが提供される。このフィードバックにより、ユーザは、カーソルの下のカーブが選択された場合に生じる正確な経路を見ることができる。システムがカーブの一部の上にカーソルを動かすユーザ入力を受け付けたとき、たとえば、システムは、本明細書中に記載のような処理を自動的に実行し、リアルタイムで全体の経路を選択し、表示する。たとえば、図2中、カーブ210が入力として選択されたとすると、カーソルはカーブ215の上に置かれる。本明細書中に記載の処理は、予め定められた基準に従って、これらの2つのカーブの間の経路を探索する。これはリアルタイムで行われ、経路は特徴的な色で表示される、カーブ215が選択されると、経路205が形成される。種々の実施形態では、経路の計算のための少なくとも2つの基準が考慮される。第1の基準は、最良の経路は、それが特定の選択意図SI規則からずれる回数を最小化しなければならない、というものである。例として、目標のdestination道に至るために元のsource道に沿って旅する人の例を考えることができる。理想のルートは常にSIに完全に従うものであろう。他の全てのルートについて理想ルートからのずれが考慮される。種々の実施形態では、第1の基準は、この基準が最短の経路長非常に多くの経路探索アルゴリズムに非常に共通するに基づいていないという点において、一般的なアプローチと異なっている。これは、システムがルーティング規則に違反する回数を最小化することに基づいている。以下の例はこの基準を示す。ユーザは正接カーブ規則を特定しかつ2つのカーブを選択することにより、経路を形成したい。システムが計算した経路は、大きい数の規則のずれを有するいかなるより短い経路よりも、むしろ、正接カーブ規則からの最小数のずれを有する経路である。第2の基準は、同数のずれを持つ複数の経路が見いだされた場合に、最短の長さを有する経路が選択される、というものである。たとえば、ユーザが2つのカーブおよび連結カーブ規則を選択した場合、同数のずれを有する複数の経路が存在しうる。このような場合、システムはこれらの経路のうちの最短の経路を選択する。なお、本明細書に記載されるとき、ユーザ入力またはユーザ選択へのいかなる記載も、適切な入力装置を介したこのような入力または選択を受け付けるシステムを含むことが理解される。対話を通じて、さらに、全ての明示的に選択された入力カーブの削除、明示的に選択された入力カーブの別のカーブとの置換、および、2つの従前に選択された入力カーブの間で選択される新たな入力カーブを通る経路の再ルーティングが可能である。影響された経路はそれに応じて修正される。開示の処理は現在のアプローチに対する大きな利点を有する。たとえば、種々の実施形態では、最良の経路への非常に速い収束速度が可能となる。収束基準のロバストな設計により、さらなるコンピューティングによって常により大きい数のずれを有する経路が確実に得られる。さらに、理想から同数のずれを有する複数の経路が存在する場合、これらのすべてが同じ深度の反復において見いだされる。本明細書の処理のパフォーマンスはモデル全体の複雑さに依存しない。パフォーマンスはソースカーブとデスティネーションカーブの近くにおける局所的な複雑さに依存する。また、開示の処理により、さらに、すでにコレクションの一部であるいかなるカーブも経路検索処理に寄与しないことが保証される。このアルゴリズムは、ソースカーブとデスティネーションカーブとから同時にスタートする双方向検索アルゴリズムである。高速の収束の鍵となるものは反復深度の考えである。全ての反復深度において、起こりうる最少数のずれが既知である。図3は、開示の実施形態における高レベルの処理のフローチャートを示す。なお、種々のステップが同時に行われてもよい。特に限定するものではないが、後述の、ソースカーブおよびデスティネーションカーブからの経路計算が好適には同時に行われる。システムは、経路を探索すべき一組のカーブを受け付けるステップ305。本明細書において用いられるとき、受け付けるには、記録媒体からのロード、ユーザにより入力された、ネットワークなどを介した別のシステムからの受信、当業者に知られたその他のものが含まれる。カーブの組は、任意の2Dまたは3Dモデルの一部あるいはCADシステムにおける他の構造であってよい。システムは、カーブの組のうちからソースカーブおよびデスティネーションカーブの選択を受け付けるステップ310。システムはオプションで、選択意図規則の選択を受け付け、他のオプションを受け付けることができるステップ315。システムは選択された選択意図規則に従って、ソースカーブから始まるまたは少なくともこれを含む第1のチェーンカーブのコレクションを計算するステップ320。このチェーンはソースカーブからデスティネーションカーブへの経路の一部または全体を形成する。システムは、任意の選択された選択意図規則に従って、デスティネーションカーブから始まるまたは少なくともこれを含む第2のチェーンカーブのコレクションを計算するステップ325。このチェーンはデスティネーションカーブからソースカーブへの経路の一部または全体を形成する。システムは第1のチェーンと第2のチェーンとを比較して、これらのチェーンが同じであるか否かを判別するステップ330。2つが同じである場合、システムはこのチェーンをソースカーブとデスティネーションカーブとの間の選択された経路として記録しステップ335、それを保存し、これはずれゼロを有する。2つが同じでない場合ステップ330において、システムは第1のチェーンおよび第2のチェーンに交差する、複数の共通するカーブを同定するステップ340。これらの共通カーブは経路がずれうる唯一の道である。交差は、これらのカーブが、完全な経路を形成するために、第1のチェーンと第2のチェーンとの両方に共通しうることを示す。システムは第1および第2の基準ならびに任意の選択された選択意図規則に従って、少なくとも1つの共通するカーブを含む、ソースカーブにおいて始まる第3のチェーンを計算するステップ345。システムは、第1および第2の基準ならびに任意の選択された選択意図規則に従って、少なくとも1つの共通するカーブを含む、デスティネーションカーブにおいて始まる第4のチェーンを計算するステップ350。システムは第3および第4のチェーンを比較し、これらが同じであるか否かを判別するかステップ355、または、次の反復における他の経路と比較する。これらのいずれかが一致する場合、システムは、このチェーンを選択された経路またはチェーンとして記録しステップ335、これはずれ1を有する。経路が一致しない場合ステップ355において、選択された経路が同定され、記録されるステップ335においてまで、処理は、別の共通するカーブを用いるステップ345へと戻る。同数の最小ずれを有する複数の選択された経路が見いだされた場合ステップ360、システムは本明細書に記載の技術を用いてこれらの経路のうち最短の経路を探索し、保存するステップ365。複数の選択された経路がない場合、または、選択された経路のうちの最短の経路が見いだされ、保存された後、処理は終了するステップ370。上記処理によって、チェーンが探索され、与えられた入力カーブについての関連データをコンパクトフォーマットで保存する。第1のチェーンおよび第2のチェーンが同じでない場合、ソースカーブとデスティネーションカーブとの間の経路を探索するために、選択意図規則から1以上のずれを有する、少なくとも1つの付加的なチェーンが計算される。場合により、保存された選択経路は、選択意図規則から同一の最小数のずれを有する複数の経路のうちの、ソースカーブとデスティネーションカーブとの間の最短の経路である。ダイクストラ法は、最短経路の探索のための技術として当業者によく知られている。本明細書中に記載の他の技術は既知のアプローチとは大きく異なっており、大きな利点がある。1つの開示されるアプローチは、単一のアクティブノードは存在しないが、代わりに、レベルと呼ばれる、同時処理される複数のアクティブノードが存在する2つのチェーン間の最小数のチェーンを見いだすための処理を含む。1つのチェーンから他のチェーンに移るコストは常に同じであるため、この場合同時処理が可能である。このアプローチの処理では、スタートチェーンをC1とする。このアプローチでは、システムは、このチェーンの、受け付けたカーブの組の中の他のカーブとの全ての交差を処理する。これらの交差は、その後、次のレベルのチェーンを生成するために用いられる。このアプローチでは、2番目のチェーンが特定のレベルに達した時に処理は停止する。このレベルは2つの入力チェーンを接続するために必要な最小数のチェーンを示す。図4は、開示の実施形態に関連する1つの開示の処理に関するフローチャートを示す。種々のステップは同時にまたは異なる順序で行われてよい。システムは2つの入力チェーンを受け付けるステップ405。これらはたとえば図3の処理に記載された第3の経路および第4の経路に対応する。システムは2つの入力チェーンが同じであるか否か判別するステップ410。同じ場合、これはシステムが所望のチェーンを見いだしたことを示し、処理は停止するステップ430。システムは、これらのチェーンのうちの最初のものについて全ての交差を探索するステップ415。第1の処理レベルにおいて、システムはチェーン1の全ての交差から新たな連続untrimmedチェーンを生成するステップ420。このステップの一部として、システムはさらにすべての新たに生成されたチェーンについて交差を探索してもよい。本明細書中で用いられるとき、連続untrimmedチェーンとは、交差にて停止しないカーブのチェーンである。第1の処理レベルにおいて、システムは新たに生成されたチェーンが所望のチェーン2のものと同じであるか否か判別するステップ425。同じである場合、これはシステムが所望のチェーンを見いだしたことを示し、処理は停止するステップ430。同じでない場合、システムは第2の処理レベルを行い、第1の処理レベルにおいて探索された全てのチェーンの交差から新たなチェーンを生成するステップ435。このステップの一部として、システムは新たに生成されたチェーンについての交差を探索してもよい。第2の処理レベルにおいて、システムは新たに生成されたチェーンが所望のチェーン2のものと同じであるか否かチェックするステップ440。同じである場合、これはシステムが所望のチェーンを見いだしたことを示し、処理は停止するステップ430。同じでない場合、システムはさらなる処理レベルについてステップ435の処理を繰り返すステップ435に戻る。処理が終了する点において図示せず次のレベルについて新たなチェーンを生成するために、システムが所望のチェーン2に至るそしてステップ430で終了するまで、または、特定のレベルにおける任意のチェーンのさらなる交差が存在しなくなるまで、処理は繰り返される。図5は、開示の実施形態に関連する図4の処理を示す出力ツリー図を示す。図中には、ノードまたはリーブとして示されているチェーン505、および、各チェーンの間の交差510が示されている。処理の3つのレベル、すなわち、第1レベル0、第2レベル1および次のレベル2がここに示されている。図6は開示の実施形態に関連する現在好ましい処理のための処理のフローチャートを示す。この処理では、処理の各レベルはソースカーブからの前半作業とデスティネーションカーブからの後半作業に分けられる。種々のステップは同時にまたは異なる順序で行われてよい。システムは2つの入力チェーンを受け付けるステップ605。これらはたとえば図3の処理に記載された第3のチェーンおよび第4のチェーンに対応する。好ましい実施形態では、これらの入力チェーンはそれぞれソースカーブおよびデスティネーションカーブを元とするチェーンである。システムは2つの入力チェーンが同じであるか否か判別するステップ610。同じ場合、これはシステムが所望のチェーンを見いだしたことを意味し、処理は停止するステップ630。これはずれがゼロの場合である。システムはこれらのチェーンのうちの最初の2つチェーン1およびチェーン2と呼ぶについて全ての交差を探索するステップ615。これらはたとえばソースカーブを含むチェーンと、デスティネーションカーブを含むチェーンである。第1の処理レベルの前半に関し、システムはチェーン1の全ての交差から新たな連続untrimmedチェーンを生成するステップ620。このステップの一部として、システムはさらに全ての新たに生成されたチェーンについて交差を探索する。第1の処理レベルの前半に関し、システムは新たに生成されたチェーンが所望のチェーン2のものと同じであるか否かチェックするステップ625。同じ場合、これはシステムが所望のチェーンを見いだしたことを意味し、処理は停止するステップ630。第1の処理レベルの後半に関し、システムはチェーン2の全ての交差から新たな連続untrimmedチェーン交差における停止がないチェーンchainswithstopatintersectionoffを生成するステップ635。この処理の一部として、システムは全ての新たに生成されたチェーンについて交差をさらに探索する。第1の処理レベルの後半に関し、システムは、新たに生成されたチェーンがレベル1の処理の前半において生成されたチェーンのいずれかと一致するか否かチェックするステップ640。一致する場合、これはシステムが所望のチェーンを見いだしたことを意味し、処理は停止するステップ630。第1の処理レベルの前半に関し、システムはレベル1の前半の処理において探索された全てのチェーンのすべての交差から新たなチェーンを生成するステップ645。このステップの一部として、システムはさらに全ての新たに生成されたチェーンについて交差を探索してもよい。第2の処理レベルの前半に関し、システムは新たに生成されたチェーンのいずれかがレベル1の後半において生成されたチェーンのいずれかと一致するか否かチェックするステップ650。一致する場合、これはシステムが所望のチェーンを見いだしたことを示し、処理は停止するステップ630。第2の処理レベルの後半に関し、システムはレベル1の後半の処理において探索された全てのチェーンの全ての交差から新たなチェーンを生成するステップ655。このステップの一部として、システムはさらに全ての新たに生成されたチェーンについて交差を探索してもよい。第2の処理レベルの後半に関し、システムは新たに生成されたチェーンがレベル2の前半において生成されたチェーンのいずれかと一致するか否かチェックするステップ660。一致する場合、これはシステムが所望のチェーンを見いだしたことを示し、処理は停止するステップ630。処理が終了する時点において図示せず次のレベルについて新たなチェーンを生成するために、ステップ650へ繰り返して一致が見いだされるまで、または、特定のレベルにおいて前後半いずれかにおいてチェーンのいずれについても使用可能なさらなる交差がなくなるまで、システムは処理を繰り返す。図7は開示の実施形態による図6の処理を示す出力ツリー図を示し、これは前半740と後半750に分かれ、それぞれが独自のツリーを形成している。ここには、ノードまたはリーフとして示されたチェーン705と、各チェーンの間の交差710が示されている、処理の3つのレベルすなわち第1レベル0、第2レベル1および次のレベル2がここに示されている。上記のように、いくつかの実施形態の処理の結果は、ツリー状構造であり、これより、すべての候補解がツリーを進むことにより展開される。ツリー構造から最短の経路を探索するための処理への入力は、処理の終わりにおいて一致するノードである。各ノードはチェーンおよび1つ前のノードとともにモデルのその他の要素とのその交差に関する情報、ならびに、現在のチェーンが形成された1つ前のノードからの交差情報を含む。終端ノードから、終端ノードが形成された交差情報とともに1つ前のノードが検索され、保存される。この交差情報は終端ノードの制約の1つである。1つ前のノードから、1つ前のチェーンおよびその交差情報の検索処理が、再度、ツリーの最初のチェーンに達するまで、繰り返される。ツリーリストにおける任意の点において、特定のノードにおいて、複数の1つ前のノードが、その交差情報と共に存在しうる。複数の1つ前のノードは、現在のチェーンが形成されうる複数のチェーンが存在することを暗示する。この状態は最小経路長に基づいて解決される必要がある。図8は、開示の実施形態にかかる例示的な、非限定的なツリー構造の例を示し、これはノードまたはリーフとしてのチェーン805、および、各チェーンの間の交差810を示す。レベルN1820から戻る際、レベルN1におけるノードCN11はレベルN830の、2つの先行ノードCN1およびCN2を有する。これはレベルN1におけるチェーンがレベルNにおける2つのチェーンから形成されることを暗示する。これは複数の経路がレベルN1まで存在し、解決を必要とすることを意味する。解決のため、レベルNにおけるノードから再び共通のチェーンに戻る。上述の例において、共通ノードはレベルN-1840の強調されたノードノード840である。N-1のノードは最小チェーンの解の一部であり、ただ1つの交差を有するこれがその1つ前のレベルからのただ1つのチェーンの交差から形成されたことを意味するため、最小経路長はレベルN-1840から計算される必要がある。経路長の計算に関し、チェーンの長さは以下のように計算される。レベルNのノードCN1について、チェーンの長さは、ノードCNとノードCN1の交差と、CN11とノードCN1の交差との間の部分trimmedチェーンの長さである。したがって、チェーン長さ{CN1}={1つ前のノードおよび次のノードすなわちノードCNおよびCN11にそれぞれ交差するCN1チェーンの長さ}である。最小経路長={チェーン長さ[CN]チェーン長さ[CN1]チェーン長さ[CN11]}と{チェーン長さ[CN]チェーン長さ[CN2]チェーン長さ[CN11]}とのうちの最小値複数性リゾルバにより、リンクリスト構造を形成するように修正されたツリー構造が得られる。図9は開示の実施形態におけるリンクリストツリー構造の非限定的な例を示す。リンクリストにおける各ノードは、リスト内の次のノードを差し、同様に交差情報とともに1つ前のノードの情報を有する。チェーンレシピが以下のようにリンクリストから展開される。レベルN1920におけるノードCN2から上に進み、CN1の交差情報が利用可能であり、レベルN930のノードCN1におけるチェーンの制約の1つとして保存される。この交差情報は、ノードCN1についての他の制約として用いられる。この交差情報はチェーンCN1の1つ前のチェーンについての制約の1つとしても用いられる。このようにして、全てのノードがレベルN11940のノードへの入力チェーンまで上に進む。当業者であれば、単純且つ明確にするために、本発明を用いた使用に適した全てのデータ処理システムの完全な構造及び動作は本明細書において図示又は説明していないことが分かる。その代わりに、本発明に固有のデータ処理システム又は本発明の理解のために必要なデータ処理システムのみを図示及び説明している。データ処理システム100のその他の部分の構造及び動作は、当業者には公知である現行の種々の任意の実施の形態に従うもので良い。本明細書には完全に機能的なシステムの文脈での記述が含まれているが、当業者であれば、本発明のメカニズムの少なくとも一部は種々の任意の形態の機械使用可能、コンピュータ使用可能又はコンピュータ読み出し可読な媒体に記録された命令の形態で配布できること、また本発明はその配布物を実際に実行するために使用される特定のタイプの命令又は信号が記録されている媒体又は記憶媒体に関係なく同様に適用されることを理解するであろうということを言及することは重要である。それらの命令は、実行されれば、データ処理システムに本明細書において説明した方法を実施させることができる。機械使用可能/機械読み出し可能又はコンピュータ使用可能/コンピュータ読み出し可能な媒体の例には、不揮発のハードコーディングタイプの媒体、例えば読み出し専用メモリROM又は電気的に消去及びプログラミング可能な読み出し専用メモリEEPROM及びユーザ記録可能なタイプの媒体、例えばフロッピーディスク、ハードディスクドライブ及びコンパクトディスク読み出し専用メモリCD-ROM又はディジタル多目的ディスクDVDが含まれる。本発明の実施例を詳細に説明してきたが、当業者であれば、本明細書に記載した実施例の種々の変更、置換、バリエーション及び改良はその最も広い形態においても本発明の精神及び範囲から逸脱することなく可能であることが分かるであろう。本明細書における説明は、いずれかの特定の要素、ステップ又は機能も特許請求の範囲に含まれていなければならない不可欠の要素であることを意図したものではないと解するべきである。すなわち、本発明が対象とする範囲は明示された特許請求の範囲の記載によってのみ定義される。さらには、いずれの請求項も、~のための手段meansforという語の後に分詞が続かないかぎり、35USC§112の第6パラグラフに訴えることを意図するものではない。