(57)【要約】【課題】本発明は複数のオブジェクトからなるアセンブリの設計を意図したコンピュータ実施方法を提供する。【解決手段】アセンブリはノード及び弧をもつ非循環有向モデリンググラフによりモデリングされる。各ノードはアセンブリのオブジェクトを表す。各弧は起点ノードによる終端ノードの利用を表す。少なくとも１つの弧が識別子により一意に識別される。アセンブリは少なくとも１つの識別子からなる第１のチェーンを含む少なくとも１つのタプルをもつ少なくとも１つの関係によりさらにモデリングされる。本方法は少なくとも１つの識別子からなる第１のチェーンと第２のチェーンの間の少なくとも１つのマッピングを決定するステップと、関係のタプルにおける第１のチェーンの少なくとも１度の出現を第２のチェーンで置換するステップを含む。本発明は壊れたタプルを自動的に修復し、設計を容易にする手段を提供する。【選択図】図１２
2011138510.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトからなるアセンブリを設計するコンピュータ実施方法であって、前記アセンブリは、ノードおよび弧をもつ非循環有向モデリンググラフによってモデリングされ、
各ノードは、前記アセンブリのオブジェクトを表し、
各弧は、起点ノードによる終端ノードの利用を表し、少なくとも１つの弧は、識別子によって一意に識別され、
前記アセンブリは、少なくとも１つの識別子からなる第１のチェーンを含む少なくとも１つのタプルをもつ少なくとも１つの関係によってさらにモデリングされ、
（ｓ１）前記第１のチェーンと、少なくとも１つの識別子からなる第２のチェーンとの間の少なくとも１つのマッピングを決定するステップと、
（ｓ２）前記関係の前記タプルにおける、前記第１のチェーンの少なくとも１度の出現を、前記第２のチェーンで置換するステップと
を含むことを特徴とする方法。
【請求項２】
前記モデリンググラフは、初期モデリンググラフを編集するステップ（ｓ０）によって与えられ、決定する前記ステップ（ｓ１）は、編集する前記ステップ（ｓ０）に従って実施されることを特徴とする請求項１に記載の方法。
【請求項３】
編集する前記ステップ（ｓ０）は、
前記初期モデリンググラフの弧を消去するステップ、
前記初期モデリンググラフに弧を追加するステップ、または
前記初期モデリンググラフの弧を経路変更するステップと
を含むことを特徴とする請求項２に記載の方法。
【請求項４】
編集する前記ステップ（ｓ０）に先立って、前記初期モデリンググラフが展開され、前記展開された初期モデリンググラフの各ノードは、弧の少なくとも１つの識別子からなるチェーンによって一意に識別されることを特徴とする請求項３に記載の方法。
【請求項５】
編集する前記ステップ（ｓ０）および決定する前記ステップ（ｓ１）は繰り返されることを特徴とする請求項２、３または４のいずれかに記載の方法。
【請求項６】
決定する前記ステップ（ｓ１）の各反復で決定される前記マッピングはマッピングリストを増分し、前記マッピングリストはさらに凝縮されることを特徴とする請求項５に記載の方法。
【請求項７】
前記マッピングは、第２のアセンブリの設計において決定されるマッピングの逆であり、前記第２のアセンブリは、請求項２から６のいずれか一項に記載の方法に従って設計され、前記第１のアセンブリの前記モデリンググラフおよび前記第２のアセンブリの前記初期モデリンググラフは同じであることを特徴とする第１のアセンブリを設計する請求項１に記載の方法。
【請求項８】
前記マッピングは、第２のアセンブリの設計において決定されるマッピングの逆とさらに合成され、前記第２のアセンブリは、請求項２から６のいずれか一項に記載の方法に従って設計され、前記第１のアセンブリおよび第２のアセンブリの前記初期モデリンググラフは同じであることを特徴とする第１のアセンブリを設計する請求項２から６のいずれか一項に記載の方法。
【請求項９】
前記第１のアセンブリの前記モデリンググラフは、請求項２から８のいずれかに記載の方法に従って設計される第２のアセンブリの前記モデリンググラフを、請求項２から８のいずれかに記載の方法に従って設計される第３のアセンブリの前記モデリンググラフとマージすることによって与えられ、前記第２のアセンブリおよび第３のアセンブリの前記初期モデリンググラフは同じであり、
マージすることにより、前記第１のアセンブリの前記モデリンググラフの各弧は、前記第２のアセンブリの前記モデリンググラフの弧または前記第３のアセンブリの前記モデリンググラフの弧となり、
決定する前記ステップ（ｓ１）は、マージすることに従って実施されることを特徴とする第１のアセンブリを設計する請求項１に記載の方法。
【請求項１０】
（ｓ１０）前記第１のアセンブリの前記モデリンググラフ、前記第２のアセンブリの前記モデリンググラフ、前記第３のアセンブリの前記モデリンググラフならびに前記第２のアセンブリおよび第３のアセンブリの前記初期モデリンググラフを展開するステップであって、前記展開されたグラフの各ノードは、弧の少なくとも１つの識別子からなるチェーンによって一意に識別される、ステップと、
（ｓ１１）前記第２のアセンブリの前記展開されたモデリンググラフ中で第１の対応ノードを、および前記第３のアセンブリの前記展開されたモデリンググラフ中で第２の対応ノードを与えるステップであって、前記対応ノードは、前記第２のアセンブリおよび第３のアセンブリの前記展開された初期グラフの同じ被対応ノードに対応する、ステップと、
（ｓ１２）前記第１の対応ノードが、前記第１のアセンブリの前記展開されたモデリンググラフ中にあるかどうか検査するステップと
をさらに含み、
前記検査するステップ（ｓ１２）が肯定的結果を生じる場合、前記決定されるマッピングは、被対応ノードのチェーンから前記第１の対応ノードへの、および第２の対応ノードのチェーンから前記第１の対応ノードのチェーンへのものであることを特徴とする請求項９に記載の方法。
【請求項１１】
（ｓ１０）前記第１のアセンブリの前記モデリンググラフおよび前記第２のアセンブリの前記モデリンググラフを展開するステップであって、前記展開されたグラフの各ノードは、弧の少なくとも１つの識別子からなるチェーンによって一意に識別される、ステップと、
（ｓ１１）展開された前記第２のアセンブリの前記モデリンググラフの中で非対応ノードを与えるステップであって、前記非対応ノードは、展開された前記第２のアセンブリの前記初期グラフのどのノードにも対応しない、ステップと、
（ｓ１２）前記非対応ノードが、前記第１のアセンブリの前記展開されたモデリンググラフ中にあるかどうか検査するステップと
をさらに含み、
前記検査するステップ（ｓ１２）が否定的結果を生じる場合、前記決定されるマッピングは、前記非対応ノードのチェーンから空のチェーンへのものであることを特徴とする請求項９に記載の方法。
【請求項１２】
前記関係は、
機械的リンク、
コンテキストリンク、
相対的位置づけ、
公表インタフェース、または
編成ツリー
であることを特徴とする請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
オブジェクトを格納するデータベースと、
請求項１から１２のいずれかに記載の方法で、複数のオブジェクトからなるアセンブリを設計するのに適したグラフィカルユーザインタフェースと
を備えることを特徴とするコンピュータ支援設計システム。
【請求項１４】
コンピュータによって実行される命令を備えるコンピュータプログラムであって、前記命令は、オブジェクトを格納するデータベースを備えるコンピュータ支援設計システムに、請求項１から１２のいずれかに記載の方法を実施させる手段を備えることを特徴とするコンピュータプログラム。
【請求項１５】
請求項１４に記載のコンピュータプログラムを記録したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクトのアセンブリの設計およびオブジェクトのアセンブリの協働設計の分野に関する。
【背景技術】
【０００２】
アセンブリの典型的な例は、完全な車、飛行機、船であり、車体構造の内側および／または外側の機械的および電気的機器を含む。このようなアセンブリの設計目標は、調査および代替を簡単にするために、エンジニアに対して、将来の製品を仮想的に見せることである。
【０００３】
オブジェクトからなる新しいアセンブリを設計する際、設計者は通常、ＰＬＭ／ＣＡＤシステム（すなわち、製品ライフサイクル管理／コンピュータ支援設計システム）を用いて作業する。このシステムは、前もって格納された（また、可能性としては、新しいアセンブリを設計している間に作成され格納される）パーツまたはパーツのアセンブリなど、参照オブジェクトのデータベースを含む。
【０００４】
アセンブリは、再利用グラフによってモデリングされる。再利用グラフ（または「リユース」グラフ）は、アセンブリの基底にある再利用スキーマを取り込むラベルづけされた非循環有向グラフである。より具体的には、再利用グラフのノードは、参照オブジェクトまたは参照オブジェクトのアセンブリに対応する。便宜上、以下では、ノードと、それが対応するオブジェクトとを区別しない。再利用グラフの弧は、ラベルづけされ、弧の起点ノードによる、弧の終端ノードの「利用」を表す。言い換えると、再利用グラフのノードは、その子ノードの利用、すなわち、インスタンスからなる。再利用グラフは、インスタンスグラフとしても知られる。
【０００５】
再利用グラフの例を、図１で表す。この例では、ノードａは、ノードｂの２度の利用およびノードｃの１度の利用からなる（すなわち、ノードａに対応する参照オブジェクトは、ノードｂに対応する参照オブジェクトの２つのインスタンス、およびノードｃに対応する参照オブジェクトの１つのインスタンスからなる）。図１は、ノードｂがノードｃの２度の利用からなることも伝えている。
【０００６】
再利用グラフがアセンブリをどのようにモデリングするかを具体的に示すために、ノードａは車に、ノードｂは車の軸に、ノードｃは車輪に対応するとみなす。車は、弧ｕ１、ｕ２に対応する２つの軸（前軸および後軸）を利用する。各軸は、弧ｕ３、ｕ４に対応する２つの車輪（左車輪および右車輪）を利用する。最終的に、車は、弧ｕ５に対応する、どの軸（予備車輪）によっても利用されない別の車輪を利用する。
【０００７】
図１の例によって示すように、再利用グラフの特性は、そのノードが数回利用され得ることである。言い換えると、また、ツリーグラフとは反対に、再利用グラフのノードは、いくつかの親ノードをもつ場合がある。したがって、再利用グラフは、情報の重複を避けながら、情報をすべて集める。
【０００８】
再利用グラフは、情報をすべて集め、格納するとともに、資源節約を可能にする。ただし、これは、設計に関してユーザフレンドリではない。この理由のため、展開されたグラフが、弧をすべて探り、再利用されるノードを複製することによって再利用グラフから計算される。展開されたグラフはしたがって、常にツリーグラフである（すなわち、ルートノードを除くすべてのノードは、ただ１つの親ノードをもつ）。このグラフにより、全オブジェクトの全出現が可視的になるので、アセンブリ全体を写実的に見ることができる。さらに、展開されたグラフは、アセンブリのグラフ的表現とみなすことができ、全オブジェクトの全出現はしたがって、空間内の正確な位置に表示される。展開されたグラフは、出現グラフとしても知られる。
【０００９】
図１の再利用グラフに対応する展開されたグラフは図２に表されており、これを次に参照する。
【００１０】
オブジェクトの重複を考慮に入れるために、索引（（・，１）、（・，２）、（・，３）、（・，４）、（・，５））を、展開されたグラフの弧（ｕ１、ｕ２、ｕ３、ｕ４、ｕ５）およびノード（ａ、ｂ、ｃ）に関連づける。このように、弧およびノードを含む、展開されたグラフの各記号は、一意である。ただし、展開されたグラフは、２つの理由により、システムに永続的に格納されるわけではない。第１に、複製されたデータは、再利用グラフより多くのメモリ空間をとる。これは、複雑なアセンブリを設計する際は特に問題である。第２に、複製されたデータの更新は、コピーすべての網羅的走査により、難しく、コストのかかるプロセスである。この理由により、再利用グラフのみがシステムに永続的に格納される。
【００１１】
したがって、再利用グラフを展開するとき、たとえば設計者がアセンブリを編集したいとき、編集時に同じ参照オブジェクトの出現を見分けるために、索引がその場で生成される。同じアセンブリを再度開閉すると、異なる索引が生成されることになる。さらに、２人の設計者が、同じアセンブリを同時に編集し、異なる索引を生成したい場合がある。
【００１２】
アセンブリは、タプル（すなわち、関係におけるオブジェクトの順序集合）をもつ関係によってさらにモデリングされる。典型的な関係は、２つのオブジェクトの間の距離である。図１を参照して上に挙げた具体的例示においてこのような関係のタプルを作成することは、たとえば、２つの車輪の間の距離を定義することである。
【００１３】
関係は、展開されたグラフを通して取り込まれる。設計者が、図１の例においてオブジェクト（ｃ，１）および（ｃ，５）をもつタプルを距離関係のために作成すると仮定する。こうしたオブジェクトは両方とも、参照オブジェクトｃの利用である。先に説明したように、索引（・，１）および（・，５）は、永続的には格納されない。したがって、「（ｃ，１）と（ｃ，５）の間の距離」を永続的に格納することは不可能である。格納する際、システムは、関係に含めるべきオブジェクトｃの出現を見つけられず、開閉シーケンス後に不正出現を見つけることもない。というのは、再利用グラフが展開される度に、オブジェクトｃが５回出現し、新しい索引が生成されるからである。さらに、２人のユーザがそれぞれの設計を発表するとき、関係は、アセンブリを再度読むときに両方のユーザの関係が利用可能であるように、再利用グラフとともに格納されなければならない。
【００１４】
こうした制約の結果、関係は、再利用グラフの記号でエンコードされなければならなくなり、そうすることによって関係は永続的に格納することができる。現況技術による解決法は、ルートノードからの弧のパスを使って、展開されたグラフのノードを命名するものである。たとえば、ノード（ｃ，１）は、弧（ｕ１，１）および（ｕ３，１）によってルートノード（ａ，１）から到達可能であり、よってそのパスは、弧記号（ｕ１，１）（ｕ３，１）の連結によって定義される。次いで、ノード（ｃ，１）の名称は、永続記号のみを残すことによってパス（ｕ１，１）（ｕ３，１）から取得され、ｕ１ｕ３となる。（ｃ，５）に対して同様に推論することにより、ｕ２ｕ３が得られる。最後に、ノード（ｃ，１）と（ｃ，５）との間の関係は、「ｕ１ｕ３とｕ２ｕ３との間の関係」として永続的に格納される。ｕ１ｕ３、ｕ２ｕ３は、すべての索引を変更した後でも、展開されたグラフ中の一意のパスを定義することに留意されたい。この性質は、開閉シーケンス後の関係の永続性を保証する。同じアセンブリにおける関係の同時作成も保証する。
【００１５】
アセンブリの開放は、２つのステップにより実施される。第１のステップは、再利用グラフから、展開されたグラフを計算するものである。第２のステップは、各関係および関係の各タプルごとに、展開されたグラフのどのノードがタプル中にあるか見つけるものである。アルゴリズムは、展開されたグラフの中を、タプルに格納されている再利用弧のパスに対応する弧のパスを求めて探索する。このステップは、「関係の更新」と呼ばれる。展開されたグラフのどのノードにも連結することができない関係のタプル（パス一致なし）は、「壊れている」と言われる。
【００１６】
タプルは、アセンブリをモデリングする再利用グラフが編集されるとき、壊れる場合がある。図３〜５は、再利用グラフの編集が、壊れたタプルにつながる状況を示す。
【００１７】
図３は、図１の再利用グラフによってモデリングされ、１つのタプルをもつＣｏｎｎｅｃｔという名称の関係によってさらにモデリングされた、アセンブリの展開されたグラフを表す。関係Ｃｏｎｎｅｃｔのタプルとは、機械的に連結されたオブジェクトの対である。図３の例では、タプルは、非永続出現記号ではＣｏｎｎｅｃｔ［（ｃ，１），（ｃ，５）］として、非永続パス記号ではＣｏｎｎｅｃｔ［（ｕ１，１）（ｕ３，１），（ｕ２，１）（ｕ３，１）］として、永続パス記号ではＣｏｎｎｅｃｔ［ｕ１ｕ３，ｕ２ｕ３］として符号化され得る。
【００１８】
このタプルは、図１の再利用グラフにおける変更後に壊れる場合がある。タプルは、再利用グラフの弧のパスを使って符号化される。このグラフが編集される（弧を追加し、消去し、または経路変更し、ノードを追加し、消去するなど）場合、一部のパスは、存在しなくなる場合があり、こうしたパスで符号化されたタプルは壊れる。したがって、設計者は、タプルの再連結をやり直す必要がある。たとえば、設計者は、図４に表すように、ａとｂの間に新しい参照プロダクトｄを追加することによって、図１の再利用グラフを編集すると仮定する。
【００１９】
図５は、図４の編集済み再利用グラフに対応する展開された編集済みグラフを表す。パスｕ１ｕ３は、図５の展開されたグラフのどのノードも識別しないので、タプルＣｏｎｎｅｃｔ［ｕ１ｕ３，ｕ２ｕ３］は壊れている。パスｕ２ｕ３（図３のコンテキストで定義される）は、ノード（ｃ，７）を予想通り識別することに留意されたい。図３の索引は、再利用グラフ編集後に開閉シーケンスをシミュレートするように変更される。
【先行技術文献】
【非特許文献】
【００２０】
【非特許文献１】Using the transformational approach to build a safe and generic data synchronizer, P. Molli, G. Oster, H. Skaf-Molli and A. Imine, INRIA Lorraine France, 2003
【発明の概要】
【発明が解決しようとする課題】
【００２１】
タプルが壊れているケースでは、設計者がタプルを手作業で再連結しなければならないので、設計は冗長である。したがって、本発明の目標は、設計を容易にするために、壊れたタプルを自動的に修復するソリューションを提供することである。
【課題を解決するための手段】
【００２２】
この目標は、複数のオブジェクトからなるアセンブリを設計するコンピュータ実施方法で達成され、アセンブリは、ノードおよび弧をもつ非循環有向モデリンググラフによってモデリングされ、
−各ノードは、アセンブリのオブジェクトを表し、
−各弧は、起点ノードによる終端ノードの利用を表し、少なくとも１つの弧は、識別子によって一意に識別され、
アセンブリは、少なくとも１つの識別子からなる第１のチェーンを含む少なくとも１つのタプルをもつ少なくとも１つの関係によってさらにモデリングされ、
本方法は、
第１のチェーンと、少なくとも１つの識別子からなる第２のチェーンとの間の少なくとも１つのマッピングを決定するステップ、
関係の前記タプルにおける、第１のチェーンの少なくとも１度の出現を、第２のチェーンで置換するステップを含む。
【００２３】
好ましい実施形態は、以下の特徴の１つまたは複数を含む。
【００２４】
−モデリンググラフは、初期モデリンググラフを編集するステップによって与えられ、決定するステップは、編集するステップに従って実施される。
【００２５】
−編集するステップは、初期モデリンググラフの弧を消去すること、初期モデリンググラフに弧を追加すること、または初期モデリンググラフの弧を経路変更することを含む。
【００２６】
−編集するステップに先立って、初期モデリンググラフが展開され、展開された初期モデリンググラフの各ノードは、弧の少なくとも１つの識別子からなるチェーンによって一意に識別される。
【００２７】
−編集するステップおよび決定するステップは繰り返される。
【００２８】
−決定するステップの各反復で決定されるマッピングはマッピングリストを増分し、マッピングリストはさらに凝縮される。
【００２９】
−本方法は、第１のアセンブリを設計するために実施することができ、マッピングは、第２のアセンブリの設計において決定されるマッピングの逆であり、第２のアセンブリも本方法に従って設計され、第１のアセンブリのモデリンググラフおよび第２のアセンブリの初期モデリンググラフは同じである。
【００３０】
−本方法は、第１のアセンブリを設計するために実施することができ、マッピングは、第２のアセンブリの設計において決定されるマッピングの逆とさらに合成され、第２のアセンブリも本方法に従って設計され、第１のアセンブリおよび第２のアセンブリの初期モデリンググラフは同じである。
【００３１】
−本方法は、第１のアセンブリを設計するために実施することができ、第１のアセンブリのモデリンググラフは、やはり本方法に従って設計される第２のアセンブリのモデリンググラフを、やはり本方法に従って設計される第３のアセンブリのモデリンググラフとマージすることによって与えられ、第２のアセンブリおよび第３のアセンブリの初期モデリンググラフは同じであり、マージすることにより、第１のアセンブリのモデリンググラフの各弧は、第２のアセンブリのモデリンググラフの弧または第３のアセンブリのモデリンググラフの弧となり、決定するステップは、マージすることに従って実施される。
【００３２】
−本方法は、第１のアセンブリのモデリンググラフ、第２のアセンブリのモデリンググラフ、第３のアセンブリのモデリンググラフならびに第２のアセンブリおよび第３のアセンブリの初期モデリンググラフを展開するステップであって、前記展開されたグラフの各ノードは、弧の少なくとも１つの識別子からなるチェーンによって一意に識別されるステップ、第２のアセンブリの展開されたモデリンググラフ中で第１の対応ノードを、および第３のアセンブリの展開されたモデリンググラフ中で第２の対応ノードを与えるステップであって、前記対応ノードは、第２のアセンブリおよび第３のアセンブリの展開された初期グラフの同じ被対応ノードに対応するステップ、第１の対応ノードが、第１のアセンブリの展開されたモデリンググラフ中にあるかどうか検査するステップをさらに含んでよく、検査が肯定的結果を生じる場合、決定されるマッピングは、被対応ノードのチェーンから第１の対応ノードへの、および第２の対応ノードのチェーンから第１の対応ノードのチェーンへのものである。
【００３３】
−本方法は、第１のアセンブリのモデリンググラフおよび第２のアセンブリのモデリンググラフを展開するステップであって、前記展開されたグラフの各ノードは、弧の少なくとも１つの識別子からなるチェーンによって一意に識別されるステップと、展開された第２のアセンブリのモデリンググラフの中で非対応ノードを与えるステップであって、前記非対応ノードは、展開された第２のアセンブリの初期グラフのどのノードにも対応しないステップと、非対応ノードが、第１のアセンブリの展開されたモデリンググラフ中にあるかどうか検査するステップとをさらに含んでよく、検査が否定的結果を生じる場合、決定されるマッピングは、非対応ノードのチェーンから空のチェーンへのものである。
【００３４】
−関係は、機械的リンク、コンテキストリンク、相対的位置づけ、公表インタフェース、または編成ツリーである。
【００３５】
この目標は、コンピュータ支援設計システムでも達成され、このシステムは、
−オブジェクトを格納するデータベースと、
−上記方法で、複数のオブジェクトからなるアセンブリを設計するのに適したグラフィカルユーザインタフェースとを備える。
【００３６】
この目標は、コンピュータによって実行される命令を備えるコンピュータプログラムでも達成され、命令は、オブジェクトを格納するデータベースを備えるコンピュータ支援設計システムに、上記方法を実施させる手段を備える。
【００３７】
この目標は、上記コンピュータプログラムを記録したコンピュータ可読記憶媒体でも達成される。
【００３８】
本発明のそれ以外の特徴および利点が、以下に列挙される添付の図面を参照して、非限定的例として与えられる以下の本発明の実施形態の説明から明らかになるであろう。
【図面の簡単な説明】
【００３９】
【図１】再利用グラフの例を表す図である。
【図２】図１の再利用グラフに対応する展開されたグラフを表す図である。
【図３】図１の再利用グラフにおける関係の例を表す図である。
【図４】編集後の図１の再利用グラフを表す図である。
【図５】図４の編集済み再利用グラフに対応する展開された編集済みグラフを表す図である。
【図６】多ルート非循環有向グラフを表す図である。
【図７】図６のグラフから取得される単ルート非循環有向グラフを表す図である。
【図８】図１のグラフの他の修正を表す図である。
【図９】図１のグラフの他の修正を表す図である。
【図１０】図１のグラフの他の修正を表す図である。
【図１１】現況技術によるプロセスのチャートを示す図である。
【図１２】本発明によるプロセスの例のチャートを示す図である。
【図１３】図１のモデリンググラフに対する編集操作の例を表す図である。
【図１４】図１のモデリンググラフに対する編集操作の例を表す図である。
【図１５】協働設計を示す図である。
【図１６】協働設計を示す図である。
【図１７】協働設計を示す図である。
【図１８】協働設計を示す図である。
【図１９】協働設計を示す図である。
【図２０】アセンブリの編集を示す図である。
【図２１】アセンブリの編集を示す図である。
【図２２】アセンブリの編集を示す図である。
【図２３】アセンブリの編集を示す図である。
【図２４】アセンブリの編集を示す図である。
【図２５】アセンブリの編集を示す図である。
【図２６】アセンブリの編集を示す図である。
【図２７】アセンブリの編集を示す図である。
【図２８】アセンブリの編集を示す図である。
【図２９】アセンブリの編集を示す図である。
【図３０】アセンブリの編集を示す図である。
【図３１】アセンブリの編集を示す図である。
【図３２】グラフをマージする際に本発明を利用する例を表す図である。
【図３３】グラフをマージする際に本発明を利用する例を表す図である。
【図３４】グラフをマージする際に本発明を利用する例を表す図である。
【図３５】グラフをマージする際に本発明を利用する例を表す図である。
【発明を実施するための形態】
【００４０】
本発明によるコンピュータ実施方法は、複数のオブジェクトからなるアセンブリを設計することを意図している。アセンブリは、ノードおよび弧をもつ非循環有向モデリンググラフによってモデリングされる。各ノードは、アセンブリのオブジェクトを表す。各弧は、起点ノードによる終端ノードの利用を表す。少なくとも１つの弧が、識別子によって一意に識別される。アセンブリは、少なくとも１つの識別子からなる第１のチェーンを含む少なくとも１つのタプルをもつ少なくとも１つの関係によってさらにモデリングされる。この方法は、少なくとも１つの識別子からなる第１のチェーンと第２のチェーンとの間の少なくとも１つのマッピングを決定するステップ、ならびに関係のタプルにおける第１のチェーンの少なくとも１度の出現を第２のチェーンで置換するステップを含む。このように、壊れたタプルは自動的に修復され、設計が容易になる。
【００４１】
モデリンググラフは、アセンブリの構造、または、言い換えると、アセンブリのオブジェクトの間の階層を取り込む。アセンブリの各オブジェクトは、モデリンググラフのノードに関連づけられる。データベース中の参照データへのポインタを、ノードに付加することができる。この参照データは、たとえば、パーツの仕様、またはパーツのアセンブリを含み得る。
【００４２】
少なくとも１つの弧が、識別子によって一意に識別される。識別子は、たとえば記号や文字、または記号もしくは文字のチェーン（もしくは列）である。従来技術により知られているどのタイプの識別子も、弧を識別するのに適している。以下では、文字「ｕ」の後に数値索引ｘが続く記号「ｕｘ」が、弧を識別するための例として使われる。
【００４３】
より一般的には、モデリンググラフのすべての弧が一意に識別される。ただし、このことは必須ではない。
【００４４】
したがって、一部の定義によると、グラフは、「ラベルづけされる」と言われ、これは、弧および／またはノードに何らかの情報を付加できることを意味する。
【００４５】
定義により、「有向」は、すべての弧が配向されることを意味する。モデリンググラフは、起点ノードから終端ノードに配向される各弧が、起点ノードによる終端ノードの利用を表すように方向づけられる。このような配向された弧は、終端ノードの視点からは入力弧を、起点ノードの視点からは出力弧を表す。利用は、従来技術でのように定義される。アセンブリのオブジェクトが、別のオブジェクトを利用し、同じ別のオブジェクトによって同時に利用されることには機械的意味がないので、グラフは方向づけられる。
【００４６】
定義により、「非循環」は、弧の循環がないことを意味する。モデリンググラフは非循環であり、そうでなければ、オブジェクトは、それ自体によって再帰的に定義されることになり、これは物質的観点から無意味である。
【００４７】
定義により、「単ルート」は、ただ１つのノード（ルートノードと呼ばれる）が入力弧をもたないことを意味する。モデリンググラフは概して、単ルートグラフである。これはとりわけ、図１の例に該当する。実際、設計者は概して、１つのオブジェクトアセンブリに取り組む。ただし、これは、設計者が１組のオブジェクトアセンブリに取り組んでいる場合があるので、限定ではない。
【００４８】
簡潔にするために、モデリンググラフを、以下では単ルート非循環有向グラフ（ＤＡＧ）とみなす。ただし、図６、７の例は、多ルートＤＡＧへの一般化が明快であることを示す。実際、図６に表すような多ルートＤＡＧは、図７に示すように、ルートノードｒおよびこのルートノードｒをすべての先のルートノードに連結する弧を追加することによって、単ルートＤＡＧに容易に変形される。
【００４９】
モデリンググラフはしたがって、従来技術により知られているように再利用グラフでよい。ただし、本発明は、ＤＡＧによってモデリングされた他のタイプのアセンブリにも適用可能である。
【００５０】
アセンブリは、少なくとも１つの識別子からなる第１のチェーンを含む少なくとも１つのタプルをもつ少なくとも１つの関係によってさらにモデリングされる。
【００５１】
集合論において、関係とはタプルの非順序集合である。タプルとは、少なくとも１つの要素からなる順序集合である。ただし、順序づけられているタプルは、本発明の適用にとって必須ではない。したがって、タプルは、これ以降では、少なくとも１つの要素からなる集合とみなされる。タプルのアリティとは、タプルが含む要素の数である。ある関係のタプルすべてが同じアリティをもつとき、その関係のアリティについて言及される場合がある。関係のアリティはしたがって、そのタプルのアリティである。関係は、異なるアリティからなるタプルを含む場合があるので、必ずしもアリティをもつわけではない。
【００５２】
アセンブリの設計というコンテキストにおいて、アセンブリをモデリングする関係は、アセンブリの設計特性を取り込む。このような関係の例、すなわち関係Ｃｏｎｎｅｃｔは、図３を参照して上で既に提示してある。概して、関係は、以下の１つを取り込む。
【００５３】
−寸法決定および位置づけ制約など、オブジェクトの間の機械的リンク
−オブジェクトとその親オブジェクトとの間の相対的位置づけ
−相対的位置づけ仕様をもつ、またはもたないリンクつきコピーオブジェクトなど、オブジェクトの間のコンテキストリンク
−インタフェース公表
−編成ツリー
機械的リンクおよび位置づけ制約は、複数のオブジェクトからなるアセンブリの設計というコンテキストにおいて直観的であり、従来技術により知られている。上で提示した関係Ｃｏｎｎｅｃｔはとりわけ、このカテゴリに属す。これらについて、さらに論じる必要はない。
【００５４】
相対的位置づけ関係について、ここで手短に論じる。オブジェクトからなるアセンブリ、特に堅いパーツからなる機械アセンブリに適用されると、モデリンググラフの各弧は、起点ノードに対する終端ノードの相対的位置を保有する。定義により、軸システムＲ２に対する軸システムＲ１の相対的位置は、Ｒ２をＲ１にもっていく等長３Ｄ変換Ｐである。たとえば、図１を参照すると、弧ｕ４は、オブジェクトｂにおいてオブジェクトｃの相対的位置（利用）を保有する。同様に、弧ｕ１は、オブジェクトａにおいてオブジェクトｂの相対的位置（利用）を保有する。再利用グラフの展開は、各パーツの現場での位置づけ計算を含む。たとえば、図２を参照すると、パーツの位置（ｃ，２）は、ｂに対するｃの相対的位置と、ａに対するｂの相対的位置との組合せである。資源節約のためには、相対的位置をアリティ１の関係として取り込むことが好ましい。
【００５５】
コンテキストリンク関係について、ここで手短に論じる。ＳおよびＴを、それぞれソースパーツおよび対象パーツという名称の、アセンブリにおいて使用される２つのオブジェクトとする。コンテキストリンクが、オブジェクトＳの幾何構造をオブジェクトＴにコピーすることによって作成される。コピーは、ソース幾何構造とコピーされる幾何構造との間のリンクを保存し、これは、ソース幾何構造が変更された場合、コピーされる幾何構造が、新しい形状を特色づけるために更新されることを意味する。コピーされる幾何構造の位置を管理する２つのやり方、すなわち絶対的位置づけおよび相対的位置づけがある。絶対的位置づけは、オブジェクトＴを参照するコピーされる幾何構造を、オブジェクトＳにおける位置に配置するものである。オブジェクトＳおよび／またはＴをアセンブリ内で移動しても、オブジェクトＴを参照するコピーされる幾何構造の位置に影響はない。相対的位置づけは、機械アセンブリ内のオブジェクトＳおよびＴの相対的位置に従って、コピーされる幾何構造をパーツＴ内に配置するものである。オブジェクトＳおよび／またはＴをアセンブリ内で移動すると、オブジェクトＴを参照するコピーされる幾何構造の位置を変更することになる。
【００５６】
インタフェース公表関係について、ここで手短に論じる。多くのアプリケーションは、オブジェクトインタフェースの厳密な定義を必要とする。オブジェクトのインタフェースは、オブジェクトに外部世界と通信させるものである。たとえば、車輪のインタフェースは、穴および輪距を含み得る。この目的のために、オブジェクトのインタフェースの定義が、オブジェクトの外部に公開され、公表され、外部リンクは、公表されるオブジェクトのみを連結すると仮定される。公表は、モデリンググラフ中で、公表されるオブジェクトを定義する弧のユーザ定義名称およびパスによって記述される。概念上、公表は、アリティ１の関係、すなわち、タプルがただ１つのオブジェクトを含む関係のように振る舞う。
【００５７】
編成ツリー関係について、ここで手短に論じる。多くの状況において、設計者が必要とするのは、モデリンググラフを変更せずにアセンブリのパーツを再編成することである。アセンブリのパーツは、展開されたツリーのリーフノードに対応し得る。モデリンググラフに対応する展開されたツリーを取得するためのフローは、既に論じてあり、従来技術により知られている。編成ツリータプルは、展開されたツリーによって与えられるツリー構造が好都合でないときは毎回作成してよい。この問題を解決するために、「編成ツリー」と呼ばれる新しいツリー構造が作成される。この編成ツリーのノードは、タイプ、名称などによって設計者が要求するものである。唯一の条件は、編成ツリーの各リーフノードを、展開されたツリーのリーフノードに関連づけることである。編成ツリーのリーフノードは、展開されたツリーのリーフノードを、その弧のパスを通じて知る。当然ながら、必要とされる数の編成ツリーを作成することができる。その結果、編成ツリーは、モデリンググラフに対応する展開されたツリーのリーフノードの数の分だけアリティが高い関係となる。
【００５８】
当然ながら、アセンブリは、上でとりあげたカテゴリの１つに属す関係によって必ずしもモデリングされるわけではない。アセンブリは、オブジェクトからなるアセンブリの設計に有用な、他のどの関係によってもモデリングすることができる。
【００５９】
簡潔にするために、こうした概念は、主として、以下ではアリティ２の関係、すなわち、２つのオブジェクトの間の関係によって示される。ただし、任意のアリティ（たとえば、相対的位置づけおよびインタフェース公表のケースの事例ではアリティ１、または可能性としては、編成ツリーのケースの事例ではより高いアリティ）の関係、ならびに固定アリティなしの関係への一般化は明快である。
【００６０】
関係は、アセンブリの設計特性を、そのタプルにより取り込む。言い換えると、タプルは、タプルが対応する複数のオブジェクト（または１つのオブジェクト）がその関係の中にあるという情報を提供する。この感覚において、タプルは、アセンブリをさらにモデリングする。タプルは通常、一連の文字としてエンコードされる。ただし、この情報のどのエンコード法も、本発明の範囲内である。拡張により、かつ簡潔にするために、関係の中にあるオブジェクトの集合およびこの情報の符号化は両方とも、同一の「タプル」という言葉で参照される。
【００６１】
アセンブリをモデリングする関係は、少なくとも１つのタプルをもつ。有効タプルは、アセンブリのオブジェクト集合に対応する。反対に、壊れたタプルは、関係の中でアセンブリのオブジェクト集合を識別することができない。
【００６２】
タプルは、オブジェクトを表すノードを参照することによって、アセンブリのオブジェクト集合を識別する。従来技術でのように、ノードは、ノードを識別する弧のパスを利用することによって参照される。したがって、タプルは、少なくとも１つの識別子からなる第１のチェーンを含む。第１のチェーン中の識別子は、モデリンググラフの弧の識別子を含み得る。ただし、このことは、たとえばタプルが壊れているときは常に成り立つわけではない。
【００６３】
本方法は、少なくとも１つの識別子からなる第１のチェーンと第２のチェーンとの間の少なくとも１つのマッピングを決定するステップ、ならびに関係のタプルにおける第１のチェーンの少なくとも１度の出現を第２のチェーンで置換するステップを含む。タプルが壊れているケースでは、第１のチェーンを第２のチェーンで置換することにより、タプルを修復することができる。第１のチェーンと第２のチェーンとの間のマッピングにより、設計者が介入することなく、置換するステップを正しく実施する手段が提供される。したがって、修復は自動であり、設計者は、タプルを手作業で経路変更する必要がない。したがって、設計が容易になる。
【００６４】
関係は、第１のチェーンを含む複数のタプルをもち得る。代替的に、またはさらに、アセンブリは、第１のチェーンを含む少なくとも１つのタプルをもつ別の関係によってさらにモデリングすることができる。この発想は、第１のチェーンを含む複数のタプルがあり得るということである。このことはとりわけ、アセンブリのオブジェクトがいくつかの関係および／または同じ関係のいくつかのタプルの中にあるときに成り立つ。この場合、決定するステップは、一度だけ実施される。置換するステップは、第１のチェーンを含むタプルすべて、または修復のために選択されている第１のチェーンを含むタプルすべてに対して実施することができる。第１のチェーンを含むタプルが壊れているケースでは、設計者がタプルを１つずつ手作業で修復する必要がないので、設計はかなり容易になる。実際、置換はすべて、マッピングに基づいて自動的に実施されるので、修復は自動である。
【００６５】
任意のタプルに対する置換ステップの実施は、第１のチェーンから第２のチェーンへの決定されたマッピングをタプルに適用することを含み得る。タプルが第１のチェーンを実際に含むケースでは、マッピングの適用は、タプル中の第１のチェーンを第２のチェーンで置換することを含む。タプルが第１のチェーンを含まないケースでは、マッピングの適用は、置換が起こらないので、識別マッピングの適用と同じである。したがって、本方法は、タプルがマッピングの第１のチェーンを含むかどうか検査し、第１のチェーンを含むタプルにのみマッピングを適用するステップを含み得る。あるいは、本方法は、検査するステップなしで、すべてのタプルにマッピングを適用することができる。
【００６６】
モデリンググラフは、初期モデリンググラフを編集するステップによって与えられ得る。言い換えると、初期モデリンググラフは、変更することも修正することもできる。決定するステップは次いで、編集するステップに従って実施され得る。
【００６７】
上で既に説明したように、図１〜５は、グラフの編集が、壊れたタプルにどのようにつながるかを示す。図１のグラフは、アセンブリをモデリングする初期グラフである。１つのタプルをもつ関係Ｃｏｎｎｅｃｔが、アセンブリをさらにモデリングする。従来技術により知られているように、タプルは、初期モデリンググラフの弧の識別子チェーンを使って符号化される。識別子チェーンは、弧のパスに対応する。図３の例に示すように、関係Ｃｏｎｎｅｃｔは、タプルＣｏｎｎｅｃｔ［ｕ１ｕ３，ｕ２ｕ３］をもち得る。
【００６８】
初期モデリンググラフの編集（または修正）により、以下の一連の基本操作が実施された後、図４の例に表すようなモデリンググラフが与えられ得る。
【００６９】
１．ノードｄを作成する
２．弧ｕ６を作成する
３．弧ｕ６の起点をノードｄに設定する
４．弧ｕ６の終点をｂに設定する
５．弧ｕ１の終点をノードｄに変更する
グラフの編集はしたがって、
−初期グラフの弧の消去、
−初期グラフへの弧の追加、または
−初期グラフの弧の経路変更
を含み得る。
【００７０】
弧の追加は、弧の作成と同じである。弧の経路変更は、その起点ノードおよび／またはその終端ノードの再定義を意味する。
【００７１】
弧の複製など、他のグラフ編集法が、本発明の範囲内である。上記基本的弧操作により、他の編集オペレータが基づき得る最小操作セットが与えられる。実際、ノードでさえも、弧のパスによりエンコードすることができる。たとえば、ノードの作成は、図４の例で示すように、弧を追加し、他の弧を経路変更することにある。
【００７２】
編集するステップに先立って、初期モデリンググラフが展開され得る。展開された初期グラフの各ノードは、弧の少なくとも１つの識別子からなるチェーンによって一意に識別され得る。チェーンは、初期グラフの弧のパスに対応する。編集するステップに先立って初期モデリンググラフを展開することにより、編集するステップがよりユーザフレンドリになる。
【００７３】
図２は、図１の初期グラフを展開した結果の例である。図３は、図２の、展開された初期モデリンググラフ中でのタプルＣｏｎｎｅｃｔ［ｕ１ｕ３，ｕ２ｕ３］を図示する。
【００７４】
モデリンググラフはこのように、初期モデリンググラフを編集した結果である。図４のモデリンググラフのコンテキストにおいて、図５に表す展開されたモデリンググラフのどのノードもパスｕ１ｕ３が識別しないので、タプルＣｏｎｎｅｃｔ［ｕ１ｕ３，ｕ２ｕ３］は壊れている。
【００７５】
この例は、グラフの編集がどのようにタプルを壊すかを示す。このような壊れたタプルを自動的に修復する解決法は、編集するステップに従って、第１のチェーンと第２のチェーンとの間のマッピングを決定することである。たとえば、弧ｕ１の起点をノードａからノードｂに変更する操作５は、第１のチェーンｕ１と第２のチェーンｕ１ｕ６との間のマッピングｕ１→ｕ１ｕ６に関連づけられ得る。
【００７６】
このことは、置換するステップが第１のチェーン、すなわち記号ｕ１を、第２のチェーン、すなわち記号ｕ１ｕ６の列で形式的に置き換えることを意味する。展開されたグラフを計算した後であり、連結するべきノードを探索する前に、編集するステップの結果として得られたマッピングは、タプルＣｏｎｎｅｃｔ［ｕ１ｕ３，ｕ２ｕ３］に形式的に適用される。この例では、この適用により、モデリンググラフのコンテキストにおいて壊れているタプルＣｏｎｎｅｃｔ［ｕ１ｕ３，ｕ２ｕ３］が、タプルＣｏｎｎｅｃｔ［ｕ１ｕ６ｕ３，ｕ２ｕ３］によって変更される。タプルの例示を表す図８を参照すると、置換するステップの後、図４のモデリンググラフでは、このタプルは、展開されたモデリンググラフの２つのノードを弧パスｕ１ｕ６ｕ３、ｕ２ｕ３により正しく識別するので有効である。従来技術でのように、この有効タプルは、モデリンググラフが展開される度にＣｏｎｎｅｃｔ［（ｃ，９），（ｃ，７）］として非永続記号で符号化することができる。
【００７７】
タプルを壊すことのない、「構造の変更」に対する代替法は、編成ツリーを修正することにある。この方法は、モデリンググラフが変更されないので、リンクを壊すことがない。逆に、本発明は、再利用グラフ編集に関わらずタプルを自動的に修復するための方法を提供する。
【００７８】
モデリンググラフ編集後の壊れたタプルの自動修復のおかげで、ＰＬＭ／ＣＡＤシステムは、設計者に対して、必須のタプル修復またはタプル経路変更操作を求めるだけである。「明らかな」経路変更操作は、システムによって自動的に実施される。したがって、設計者は、非生産的作業に時間を費やすことで不満を感じず、時間の節約は、設計作業に特有である。さらに、手作業での経路変更操作によって引き起こされる潜在エラーがなくなるので、品質が守られる。
【００７９】
編集するステップおよび決定するステップは、繰り返すことができる。初期モデリンググラフは、数回編集され得る。その度に、マッピングはそれに従って決定され得る。
【００８０】
たとえば、設計者は、上記と同じく、ａとｂの間に新しい参照ｄを挿入し、ｄとｂの間に別の新しい参照ｅを挿入することによって編集を実施すると仮定する。その結果得られるモデリンググラフおよび展開されたモデリンググラフを、それぞれ図９、１０に示す。
【００８１】
各編集ステップに従って、各編集ステップの後に決定ステップで決定されたマッピングは、ｕ１→ｕ１ｕ６およびｕ６→ｕ６ｕ７である。
【００８２】
決定するステップの反復で決定された各マッピングにより、マッピングリストが増分され得る。このようなマッピングリストは、アセンブリをモデリングする。リストとは、順序集合である。したがって、リストのマッピングは順序づけられる。増分は、決定するステップの反復が実施される順序を尊重する。このように、マッピングリストは、編集履歴を追跡する。マッピングリストにより、多くのステップを含む高度な編集が初期モデリンググラフに対して実施されるケースであっても、壊れたタプルの自動修復が可能になる。
【００８３】
上記例において、リストは、マッピングｕ１→ｕ１ｕ６、ｕ６→ｕ６ｕ７からなる。したがって、タプルＣｏｎｎｅｃｔ［ｕ１ｕ３，ｕ２ｕ３］は、図９、１０の編集されたグラフのコンテキストでは壊れているが、チェーンｕ１をチェーンｕ１ｕ６で、次いで、チェーンｕ６をチェーンｕ６ｕ７で連続して置換することによって修復され、その結果Ｃｏｎｎｅｃｔ［ｕ１ｕ６ｕ７ｕ３，ｕ２ｕ３］となり、これは編集されたモデリンググラフのコンテキストにおいて有効タプルである。
【００８４】
置換するステップの前に、マッピングリストを凝縮することができる。実際、図９、１０の例では、２つのマッピングｕ１→ｕ１ｕ６、ｕ６→ｕ６ｕ７のリストが、ただ１つ、すなわちｕ１→ｕ１ｕ６ｕ７に凝縮され得ることに気づくであろう。壊れたタプルは次いで、以前と同じ有効タプルＣｏｎｎｅｃｔ［ｕ１ｕ６ｕ７ｕ３，ｕ２ｕ３］になるように修復されるが、このタプルは、図１０の展開されたグラフの出現ノード（ｃ，９）と（ｃ，７）を正しく連結する。こうすることにより、メモリ資源が節約される。プロセッサの性能のために、この凝縮操作は、置換するステップの前に実施すればよい。
【００８５】
より一般的には、本発明は、以下の目的でソフトウェアアーキテクチャを定義する。
【００８６】
・モデリンググラフを編集するどのオペレータも、マッピングを決定する。マッピングは、規則に従って自動的に決定され得る。このような規則は、編集アルゴリズムを担当するソフトウェアエンジニアの責任である。後で証明される数学的定理が、このような規則の定義を助け得る。マッピングは、設計者によって決定してもよい。
【００８７】
・マッピングリストは、性能目的のために適用前に凝縮され得る。
【００８８】
・凝縮されたマッピングリストは、置換のために、すべての関係定義に関わるすべてのタプルに形式的に適用され得る。あるいは、マッピングリストのマッピングの一部を、タプルの一部に適用してもよい。
【００８９】
図１１は、現況技術によるプロセスのチャートを示す。展開されたモデリンググラフが再計算された後でタプルが更新され、壊れた多くのリンク（１）が、設計者によって修復されなければならない。図１２は、本発明のプロセスの例のチャートを示す。モデリンググラフの編集中にマッピングが作成される。マッピングは、タプルを更新する前に、タプルに関わるすべてのパスに形式的に適用される。壊れたタプル（２）は、残っている場合、純粋に設計目的でのみ、ユーザによって修復され、または経路変更されることになるが、これについては後で数学的定理によって証明する。
【００９０】
図１３は、図１のモデリンググラフに対するより高度な編集操作の例を表す。目標は、中間ノードを削除することによってフラットモデリング構造を提供することである。たとえば、設計は、中間ノードｂを削除することによって、図１３の左側のグラフを、図１３の右側のグラフに編集し得る。この操作の目標は、展開されたモデリンググラフ中で、同じ数のパーツ（既に説明したリーフノードに対応する）を維持することである。図１３の例では、「ｂの削除」操作の前にパーツｃが実際に利用されている。編集されたモデリンググラフの展開されたグラフはしたがって、図１４に示すように、パーツｃの５度の出現を特色としなければならない。
【００９１】
「削除」操作により、以下のマッピングが与えられる。
【００９２】
−ｕ１ｕ３→ｕ６
−ｕ１ｕ４→ｕ７
−ｕ２ｕ３→ｕ８
−ｕ２ｕ４→ｕ９
このように、初期モデリンググラフ上で符号化されたタプルは、編集されたモデリンググラフの記号に自動的に翻訳される。修正されたモデリンググラフを展開し、タプルを更新することにより、正しいアセンブリが与えられる。以下のテーブルは、設計ステップに依存するリンクの符号化を示す（索引は、前述の図のものである）。
2011138510.tif 000003
【００９３】
上記説明では、アセンブリをモデリングする初期グラフを編集することによって、１人の設計者がオブジェクトからなるアセンブリを設計するというコンテキストにおける本発明の利用に力点を置いた。本発明は、協働設計、つまり、複数の設計者が関わる設計のコンテキストでも有用である。
【００９４】
協働設計とは、数人のユーザが初期オブジェクトのローカルコピーを入手し、このローカルコピーを修正することである。修正とは、アセンブリ構造を変更し、関係を追加し削除することである。
【００９５】
現況技術では、協働設計は、以下の理由により冗長である。２人のユーザが、アセンブリをモデリングする初期グラフのローカルコピーを入手する。２人のユーザは両方とも、別々にモデリンググラフを編集し、関係およびこのような関係におけるタプルを作成する。設計者からもう１人の設計者へのタプルの送付は、現在の技術と両立しない。既に上で言及したように、タプルは、モデリンググラフのパスまたは弧によりノードをポイントする。したがって、モデリンググラフＡのコンテキストにおいて作成され、別のモデリンググラフＢのコンテキストに送られる関係は概して、ポイントされたノードを連結し直すことができない。
【００９６】
「同時設計」または「協働設計」、すなわち、数人の設計者が同一のアセンブリに取り組み、ネットワークを介して修正を交換する問題は、文献において対処されている。とりわけ、テキスト同期装置についての最近の研究は、「変換手法」の概念につながった。この概念は、安全なデータ同期装置を設計するための非常にシンプルな汎用定義および性質を与える。参照元は、非特許文献１である。ただし、この記事は、「テキスト同期」に関し、これは、複数のオブジェクトのアセンブリに関する概念からはかけ離れた分野である。
【００９７】
２人の設計者が、協力して作業していると仮定する。形式的に、第１の設計者は第１のアセンブリに取り組み、第２の設計者は第２のアセンブリに取り組み得る。協力は、両方の設計者が同じ初期モデリンググラフから開始し得ることにある。
【００９８】
ここで、上で詳述したように、第２の設計者がモデリンググラフを編集すると仮定する。編集の後、第２の設計者は、関係および関係におけるタプルを作成し得る。この設計者は次いで、第１の設計者にタプルを送り得る。ただし、このようなタプルは、第１のアセンブリのモデリンググラフのコンテキストにおいて壊れている場合がある。
【００９９】
この問題を解決するために、編集の結果として得られたマッピングの逆を決定すればよい。第１のアセンブリのコンテキストにおいて、置換は、決定されたマッピングの逆に従って実施され得る。言い換えると、マッピングは、第２のアセンブリの設計において決定されたマッピングの逆であり、第２のアセンブリは、第２のアセンブリの初期グラフを編集するステップを含む方法により設計され、第１のアセンブリのモデリンググラフと第２のアセンブリの初期グラフは同じである。こうすることにより、同時および協働設計が向上される。実際、マッピングの逆のおかげで、第２のユーザのコンテキストにおいて作成されたタプルは、初期モデリンググラフに取り組む第１のユーザのコンテキストに送られると、自動的に修復される。
【０１００】
ただし、一般的な協力プロセスでは、両方のユーザが、初期グラフを別々に編集する。問題はしたがって、一方のユーザが他方のユーザにタプルを送ることである。詳細に進む前に、協働設計の一般的なプロセスについて、図１５を参照して簡単なシナリオにより概説する。ユーザＡは始めに、初期グラフＧ０を読み、第１のモデリンググラフＧ１に編集する。次いで、ユーザＡは、グラフＧ１をユーザＢに送り、ユーザＢは、第２のモデリンググラフＧ２に編集する。一方、ユーザＡは、グラフＧ１（の自分のコピー）をグラフＧ３に修正し、グラフＧ３上でタプルｘを作成する。最後に、ユーザＡは、タプルｘをユーザＢに送る。本発明を用いない場合、タプルｘは、グラフＧ２である新しいコンテキストのノードを正しくポイントしないので、ユーザＢは、図１５に示すように、タプルｘの手作業での経路変更を行わなければならない。
【０１０１】
本発明は、第１のアセンブリを設計する方法を提供することによって、この問題を解決する。第１のアセンブリは編集され、第１のマッピングはそれに従って決定される。マッピングは、第２のアセンブリの編集中に決定されるマッピングの逆にさらに合成される。第１および第２のアセンブリの初期グラフは、同じである。このような方法のおかげで、両方のユーザが同じ初期グラフを編集する場合でも、ユーザは、関係のタプルを系統的に手作業で経路変更する必要なく、相互に関係を送ることができる。
【０１０２】
図１５の例では、グラフＧ２においてタプルｘを首尾よく自動的に経路変更するために（タプルｘは、Ｇ３において最初に作成されることを思い起こされたい）、システムは、図１６に示すように、適切な前および後処理ステップを実施することができる。
【０１０３】
図１７は、図１５、１６の同じ簡単なシナリオを参照した上で、前および後処理ステップ内部で起こるマッピング代数を示す。目標に到達するために、設計者がモデリンググラフを編集する度に、この編集によって生成されるマッピングが、マッピングリスト、すなわち略して「ｓ−リスト」を増分する。表記ｓｉ→ｊは、グラフＧｉをグラフＧｊに変更する編集に関連づけられたｓ−リストである。逆マッピング［ｓｉ→ｊ］−１はｓｉ→ｊと記され、そうすることによってｓｉ→ｊ＊ｓｊ→ｉは識別となり、「＊」は複合演算子である。
【０１０４】
グラフＧ１は、ｓ−リストｓ０→１とともにユーザＢに送られる。前処理ステップは、グラフＧ３（タプルｘが作成される）から初期グラフＧ０までの逆ｓ−リストを計算するものである。後処理ステップは、このｓ−リストを、グラフＧ１においてユーザＢによって行われた変更を表すものと合成するものである。こうすることにより、Ｇ３からＧ２への変更をモデリングする適切なｓ−リストがもたらされ、タプルｘを、その新しいコンテキスト、すなわちグラフＧ２に経路変更することができる。
【０１０５】
図１８の例は、３人のユーザおよび広範囲の通信を伴うより複雑な例を示す。設計者Ａ、Ｂ、Ｃが、所与のアセンブリに取り組むと仮定する。３人は、別々に作業するので、初期モデリンググラフのローカルコピーを使用する。全員が、モデリンググラフを編集し、関係を作成する。重要な点は、モデリンググラフの異なるバージョンで作成される関係のタプルを交換することである。概念上、専用の構造が、すべてのｓ−リストおよびその連結を異なるモデリンググラフバージョンに取り込み得る。この構造はたとえば、有向ツリーグラフでよい。ルートノードは、モデリンググラフの初期バージョンである。他のノードは、モデリンググラフの継承バージョンである。ノードＸをノードＹに連結する有向弧は、モデリンググラフＸをモデリンググラフＹに変更する修正に関連づけられたｓ−リストでラベルづけされる。ツリーグラフの分岐は、同一ユーザによって行われた修正を取り込む。たとえば、初期モデリンググラフＧ０は、ユーザＡによってＧ１に、次いでＧ２に、最終的にはＧ３に変更される。ユーザＢは、モデリンググラフＧ１をコピーし、Ｇ４に変更する。ユーザＣは、Ｇ２をコピーし、Ｇ５に変更する。こうすることにより、図１８のツリーが生じる。
【０１０６】
任意のグラフにおいて作成される関係のタプルも、適切なマッピングシーケンスを適用することによって、他の任意のグラフと両立させることができる。このシーケンスは、２つのモデリンググラフを連結するツリー構造中の一意のパスによって取得される。たとえば、タプルによって連結されるパスにｓ１→４＊ｓ２→１＊ｓ５→２（ｘ）というｓ−リストが適用されるとすると、グラフＧ５上でユーザＣによって作成されるタプルｘは、ユーザのＢグラフＧ４と両立する。当然ながら、特にタプルによって連結されるオブジェクトが新しいコンテキストにおいて消去されている場合、設計者に対して何らかの手作業での経路変更が要求される場合もあり得る。この経路変更は、純粋な設計問題を起こすので求められる。このように、ユーザは、タプルを自由に、安全に交換することができる。
【０１０７】
全体的ツリー構造を必要とせずに、この理論を実装するやり方がある。この構造を作成し、更新し、格納するという難しい問題は省く。前述のシナリオを時間系列により再検討して、原理を示す。
【０１０８】
１．ユーザＡが、モデリンググラフの最初のバージョンＧ０を作成する。
【０１０９】
２．ユーザＡが、このモデリンググラフを新しいバージョンＧ１に編集し、この編集に関連づけられるｓ−リストｓ０→１を格納する。
【０１１０】
３．ユーザＡが、Ｇ１をｓ−リストｓ０→１とともにユーザＢに送る。
【０１１１】
４．ユーザＡが、Ｇ１を別のバージョンＧ２に編集し、ｓ−リストｓ１→２を格納する。
【０１１２】
５．一方、ユーザＢは、Ｇ１グラフを別のバージョンＧ４に編集し、ｓ−リスト１→４を格納する。
【０１１３】
６．ユーザＡが、グラフＧ２を、複合ｓ−リストｓ１→２＊ｓ０→１とともにユーザＣに送る。
【０１１４】
７．ユーザＡが、Ｇ２をＧ３に編集し、ｓ−リストｓ２→３を格納する。
【０１１５】
８．ユーザＣが、Ｇ２をＧ５に編集し、ｓ−リストｓ２→５を格納する。
【０１１６】
９．ユーザＣが、タプルｘを作成し、ユーザＡ、Ｂに送ることを計画する。
【０１１７】
１０．この目的のために、ユーザＣは、タプルｘ（のコピー）を複合ｓ−リストｓ１→０＊ｓ２→１＊ｓ５→２とともにユーザＡに送る。
【０１１８】
１１．ユーザＡが、タプルｘおよび複合ｓ−リストｓ１→０＊ｓ２→１＊ｓ５→２を受け取る。
ａ．第１のステップは、このｓ−リストを、初期モデリンググラフから得られるすべての編集のｓ−リストと合成することであり、（ｓ２→３＊ｓ１→２＊ｓ０→１）＊（ｓ１→４＊ｓ２→１＊ｓ５→２）が生じる。
ｂ．次のステップは、ｓ２→３＊ｓ１→２＊ｓ０→１＊ｓ１→０＊ｓ２→１＊ｓ５→２をｓ２→３＊ｓ１→２＊ｓ２→１＊ｓ５→２に、およびｓ２→３＊ｓ５→２に簡約することである。
ｃ．次いで、ユーザＡは、この既約ｓ−リストをタプルｘに適用し、そうすることによってユーザＡの現在のモデリンググラフＧ３と両立させ、すなわちｘ：＝ｓ２→３＊ｓ５→２（ｘ）となる。
【０１１９】
１２．ユーザＣが、タプルｘ（のコピー）を複合ｓ−リストｓ１→０＊ｓ２→１＊ｓ５→２とともにユーザＢに送る。
【０１２０】
１３．ユーザＢが、タプルｘおよびｓ−リストｓ１→０＊ｓ２→１＊ｓ５→２を受け取る。
ａ．第１のステップは、このｓ−リストを、初期グラフから得られるすべての編集のｓ−リストと合成することであり、そうすることによってｓ１→４＊ｓ０→１＊ｓ１→０＊ｓ２→１＊ｓ５→２が生じる。ｓ０→１は、Ｇ１とともにユーザＢに送られたことを思い起こされたい。
ｂ．次のステップは、ｓ１→４＊ｓ０→１＊ｓ１→０＊ｓ２→１＊ｓ５→２をｓ１→４＊ｓ２→１＊ｓ５→２に簡約することである。
ｃ．次いで、ユーザＢは、この既約ｓ−リストをタプルｘに適用し、そうすることによってタプルはユーザＢの現在のモデリンググラフＧ４と両立させ、すなわちｘ：＝ｓ１→４＊ｓ２→１＊ｓ５→２（ｘ）となる。
図１９は、３人のユーザＡ、Ｂ、Ｃおよびその対話それぞれに対するこの時間系列を示す。
【０１２１】
２人のユーザの間でタプルを交換するための汎用プロセスを、以下に示す。
１．前処理：送付者が、初期モデリンググラフから送付者のモデリンググラフまでに適用されたすべての編集の結果として得られた逆マッピングの複合ｓ−リストを作成する。
２．送付者が、タプルおよびこの複合ｓ−リストを受信者にメール送信する。
３．後処理：
ａ．受信者が、初期モデリンググラフから受信者のモデリンググラフまでに適用されたすべての変更の結果として得られた、複合マッピングを有する複合ｓ−リストを構成する。
ｂ．受信者が、出来上がった複合ｓ−リストを簡約する。
ｃ．受信者が、送信されたタプルに既約ｓ−リストを適用する。
【０１２２】
受信者の識別は、送付者の前処理に影響を与えず、送付者の識別は、受信者の後処理に影響を与えないことに留意されたい。すべての設計者に一度に送る前処理も、同じである。設計者は、他の設計者によって送られたいくつかの関係をメールボックスに保管し、こうした関係を一度にすべて管理することができ、後処理も同じである。キーポイントは、設計が共通ソースで始まることであり、これは平行性技術における標準戦略である。
【０１２３】
様々なバージョンのモデリンググラフを調和させ、またはマージすることについての論点は、本発明の範囲外であることに留意されたい。それにも関わらず、モデリンググラフの間の衝突を解決するためのツールが与えられると、本発明は、モデリンググラフに行われた変更がｓ−リスト（すなわち、マッピングリスト）を与える限り、タプルを自動的に修復するのを助ける。
【０１２４】
以下は、本発明の基礎を強固にする定理（およびその形式的証明）に向けられている。この定理は、マッピングを提供するためのアルゴリズムではなく、むしろ抽象的結果である。それにも関わらず、この証明は、所与のグラフ編集オペレータのマッピングを調査するためのガイドラインとして使用され得る。この証明は、一般にグラフ理論および基礎代数により知られている概念に向けられる。モデリンググラフは、連結された単ルートの非循環有向グラフであるとみなされる。先に言及したように、多ルートグラフへの一般化は明快である。定義により、「リーフノード」は出力弧をもたず、「ルートノード」は入力弧をもたない。モデリンググラフが与えられると、対応する展開されたグラフは、その数学的「普遍被覆ツリー」以外の何ものでもない。最初に、２つのモデリンググラフの「同値」概念を定義する。
【０１２５】
Ｄ１、Ｄ２を２つのモデリンググラフとし、Ｕ（Ｄ１）、Ｕ（Ｄ２）をそのそれぞれの展開されたツリーとする。Ｌ（Ｄ１）、Ｌ（Ｄ２）を、それぞれＵ（Ｄ１）、Ｕ（Ｄ２）のリーフノードの集合とする。定義により、Ｌ（Ｄ１）からＬ（Ｄ２）への全単射ｇが存在する場合、Ｄ１、Ｄ２は、関係ρによってリンクされる。
【０１２６】
形式的に同値だが比較的実際的ではない定義は、｜Ｌ（Ｄ１）｜＝｜Ｌ（Ｄ２）｜であることに留意されたい。言い換えると、展開されたツリーは、同じ数のリーフノードをもつ。
【０１２７】
関係ρは、すべてのモデリンググラフからなる集合において同値関係であるという性質をもつ。
【０１２８】
以下は、上記性質の証明である。どのモデリンググラフも、その展開されたグラフのリーフノードの集合が識別によりそれ自体と同形なので、関係ρによってそれ自体にリンクされる。Ｄ１ρＤ２の場合、Ｌ（Ｄ１）からＬ（Ｄ２）への、ｇからの全単射が存在する。よって、Ｌ（Ｄ１）からＬ（Ｄ２）への全単射ｇ−１のおかげで、Ｄ１ρＤ２である。最終的に、Ｄ１ρＤ２かつＤ２ρＤ３の場合、Ｌ（Ｄ１）からＬ（Ｄ２）への全単射ｇおよびＬ（Ｄ２）からＬ（Ｄ３）への全単射ｈが存在する。よって、Ｌ（Ｄ１）からＬ（Ｄ３）への全単射ｆ＝ｈｏｇは、Ｄ１ρＤ３であると述べる。証明終了。
【０１２９】
したがって、２つの再利用グラフは、関係ρによりリンクされる場合、同値であると言われる。この同値概念は、エンドユーザの認知を数学的に翻訳したものである。２つのパーツアセンブリの間には、そのモデリンググラフが同値である、すなわち同じタイプおよび数のパーツの場合、目に見える格差はない。よって、こうしたアセンブリは同値であり、関係は、モデリング構造を同値なものに変更することによって壊れるはずはないと主張することが妥当である。
【０１３０】
Ｄ１およびＤ２を２つの同値なモデリンググラフである、すなわちＤ１ρＤ２とする。Ｄ１のいくつかのリーフパーツが、Ｄ１弧のパス上で符号化されるタプルにより互いに連結されると仮定する。すると、一意であり最小のマッピング集合が存在するので、すべてのリンクが、Ｄ２のリーフパーツにおいて自動的に経路変更され得る。
【０１３１】
以下は、上記定理を証明する。この証明は、展開されたグラフ用に非形式的に導入される索引の扱い方の精密な定義を要求する。抽象集合Ａが与えられると、Ａという要素の「形式的コピー」または「コピー」の集合Ｃ（Ａ）は、Ａと正の整数の集合Ｎとのデカルト積Ｃ（Ａ）＝Ａ×Ｎである。射影マップπ（・）は、Ａ×ＮからＡに定義され、この対の第１の要素を生じる。言い換えると、（ａ，ｉ）∈Ａ×Ｎの場合、π（ａ，ｉ）＝ａである。要素ａはソースであり、（ａ，ｉ）はａの形式的コピーである。当然ながら、ソース要素（集合Ａにおいて一意である）が与えられると、必要とされる数のコピーが存在する。展開されたグラフのノードおよび弧は、それぞれ、モデリンググラフのノードおよび弧の形式的コピーである。各識別子ｘごとにただ１つの識別子（ｘ，ｉ）が存在するように、その場で新しい索引ｉを与えるために、索引ジェネレータが必要とされる。この「形式的コピー」概念は、数学的目的で導入される。グラフを描くとき、ノードまたは弧識別子を繰り返すのは、数学的に無意味である。所与の記号の２度の出現は、異なるオブジェクトを表すので、見分けられなければならないが、これは形式的コピーにより行われる。射影π（・）は、展開されたグラフの弧のパスまで、次のように容易に伸長される。（ｕ１，ｉ１）（ｕ２，ｉ２）．．．（ｕｎ，ｉｎ）が、展開された弧のパスである場合、その射影は、π［（ｕ１，ｉ１）（ｕ２，ｉ２）．．．（ｕｎ，ｉｎ）］．．．π（ｕ１，ｉ１）π（ｕ２，ｉ２）．．．π（ｕｎ，ｉｎ）、すなわちπ［（ｕ１，ｉ１）（ｕ２，ｉ２）．．．（ｕｎ，ｉｎ）］＝ｕ１ｕ２．．．ｕｎによって定義されるモデリンググラフの弧のパスである。
【０１３２】
Ｄ１およびＤ２を、２つの同値なモデリンググラフとする。Ｌ（Ｄ１）からＬ（Ｄ２）への全単射ｇが存在する。各ｘ∈Ｌ（Ｄ１）に対して、ｐ（ｘ）を、ルートノードからｘまでのＵ（Ｄ１）の弧のパスとする。このパスは、グラフＵ（Ｄ１）がツリーなので、一意である。ｇ（ｘ）∈Ｌ（Ｄ２）を、全単射ｇを介したｘの画像とする。これにより、マッピングπ（ｐ（ｘ））→π（ｐ（ｇ（ｘ）））が定義される。
【０１３３】
Ｕ（Ｄ２）がツリーなので、パスｐ（ｇ（ｘ））も一意である。すべての要素ｘ∈Ｌ（Ｄ１）に対してそうすることにより、マッピングの集合Ｓ＝｛π（ｐ（ｘ））→π（ｐ（ｇ（ｘ）））；ｘ∈Ｌ（Ｄ１）｝が生じる。
【０１３４】
この集合は有限、すなわち｜Ｓ｜≦｜Ｌ（Ｄ１）｜であるが、概して大き過ぎ、展開されたグラフの各リーフノードごとに１つのマッピングとなる。ほとんどの場合、矢印．．．→．．．の両側の識別子チェーンは、プレフィクスおよび／またはポストフィクスサブチェーンを共有する場合があり、同一である場合さえある。このようなプレフィクスまたはポストフィクスサブチェーンは削除してよく、そうすることによりマッピングはより簡単になり、数が減る。Ｓ〜を、最小マッピング集合とする。こうしたマッピングを、Ｄ１のリーフパーツにおけるタプルに組み込まれたパスに適用することにより、Ｄ２のリーフパーツにおいて定義されるタプルが生じる。明らかに、集合Ｓ〜は、入力オブジェクト、すなわちＤ１、Ｄ２、ｇから一意に導出される。証明終了。
【０１３５】
証明の原理を、以下の例で示す。より読みやすい図にするために、モデリンググラフのノードをラテン文字ａ、ｂ、ｃ、ｄ、．．．にし、モデリンググラフの弧を、番号１、２、３、．．．で識別する。図２０、２１は、それぞれ、モデリンググラフＤ１、および展開されたモデリンググラフＵ（Ｄ１）を示す。
【０１３６】
図２２、２３は、それぞれ、モデリンググラフＤ２および関連した展開されたグラフＵ（Ｄ２）を示す。Ｄ２が、Ｄ１をある程度修正したバージョンであるにも関わらず、これらは同値であることに留意されたいが、このことは、展開されたグラフ上でのみ見ることができる。ｂのサブグラフは、変更されないが、Ｄ２において一度だけ再利用される（すなわち、ただ１つの入力弧）ことにも留意されたい。
【０１３７】
全単射ｇは、
ｇ（ｃ，１）＝（ｃ，７）
ｇ（ｃ，２）＝（ｃ，８）    ｇ（ｄ，１）＝（ｄ，５）
ｇ（ｃ，３）＝（ｃ，９）    ｇ（ｄ，２）＝（ｄ，６）
ｇ（ｃ，４）＝（ｃ，１０）  ｇ（ｄ，３）＝（ｄ，７）
ｇ（ｃ，５）＝（ｃ，１１）  ｇ（ｄ，４）＝（ｄ，８）
ｇ（ｃ，６）＝（ｃ，１２）
によって、
Ｌ（Ｄ１）＝｛（ｃ，１），（ｃ，２），（ｃ，３），（ｃ，４），（ｃ，５），（ｃ，６），（ｄ，１），（ｄ，２），（ｄ，３），（ｄ，４）｝
から、
Ｌ（Ｄ２）＝｛（ｃ，７），（ｃ，８），（ｃ，９），（ｃ，１０），（ｃ，１１），（ｃ，１２），（ｄ，５），（ｄ，６），（ｄ，７），（ｄ，８）｝
に定義される。
【０１３８】
簡潔にするために、第１のマッピングのみを詳述する。よって、π（ｐ（ｘ））→π（ｐ（ｇ（ｘ）））が、ｘ＝（ｃ，１）により、
π（ｐ（ｃ，１））→π（ｐ（ｇ（ｃ，１）））
π（ｐ（ｃ，１））→π（ｐ（ｃ，７））
π（５，１）→π（（９，１）（１１，１））
５→９／１１
を生じる。
【０１３９】
上式で、「／」は、記号セパレータとして使われている。Ｕ（Ｄ２）の残りのリーフノード、すなわち（ｃ，２）、（ｃ，３）、（ｃ，４）、（ｃ，５）、（ｃ，６）、（ｄ，１）、（ｄ，２）、（ｄ，３）、（ｄ，４）に対してそうすることにより、形式的に以下のマッピング集合Ｓが生じ、
５→９／１１
８→１０／１１  ２／３→１２
１／３→１／３  ２／４→１３
１／４→１／４  ２／６→１４
１／６→１／６  ２／７→１５
１／７→１／７
この集合は、以下のＳ〜に縮小する。
【０１４０】
５→９／１１    ２／４→１３
８→１０／１１  ２／６→１４
２／３→１２    ２／７→１５
使用できない同一のチェーンは、Ｄ１の変更されないサブグラフに起因する。
【０１４１】
次の例は、プレフィクスおよびポストフィクス簡約を示すものである。初期モデリンググラフおよび展開されたグラフを、それぞれ図２４、２５に示す。編集されたモデリンググラフおよび展開されたグラフは、それぞれ図２６、２７のように示す。
【０１４２】
明白な全単射は、マッピング集合
１／２／３→１／３
１／２／４→１／４
を誘発する。
【０１４３】
両方のマッピングにおいて共有プレフィクス１を除去すると、
２／３→３
２／４→４
が生じる。
【０１４４】
第１のマッピングにおいて共有ポストフィクス３を、第２のマッピングにおいて４を除去すると、ただ１つのマッピング
２→ε
が生じ、ここでεは空のチェーンである。チェーンは、空のチェーンにマッピングされると、タプルから削除される。このことは、記号２がモデリンググラフのタプルの弧のすべてのパスから削除されることを意味する。図１〜３のグラフにおいて符号化される連結Ｃｏｎｎｅｃｔ（１／２／３，１／２／４）は、第２のモデリンググラフではＣｏｎｎｅｃｔ（１／３，１／４）になる。
【０１４５】
２つのモデリンググラフの間の同値の定義は、展開されたツリーのリーフノードの間の全単射ｇを伴う。この主要特徴の結論は、マッピングの形式的組立てである。それにも関わらず、再利用グラフが同値でないとき、すなわちｇが存在するが全単射でないときは何かを行うことができる。マッピング規則は依然として、π（ｐ（ｘ））→π（ｐ（ｇ（ｘ）））によって定義される。違いは、ｇ（ｘ）がすべてのｘ∈Ｌ（Ｄ１）に対して定義され得るわけではなく、Ｌ（Ｄ１）における別個のｘ、ｙに対してｇ（ｘ）がｇ（ｙ）に等しくてよいことである。これは、ｇ（ｘ）が定義されるすべてのｘ∈Ｌ（Ｄ１）に対してマッピングの制限集合π（ｐ（ｘ））→π（ｐ（ｇ（ｘ）））につながる。同じ簡約、すなわち共有プレフィクスおよびポストフィクスチェーンの削除が成り立つ。マッピングは、残っている場合、連結を経路変更し、または部分的に経路変更するのに使用される。未解決の連結はユーザの決定を要求するが、これは、設計意図を取り込むのに不可避である。
【０１４６】
図２８、２９の例は、このシナリオを示す。初期モデリンググラフおよび展開されたグラフを、それぞれ図２８、２９に示す。
【０１４７】
最終モデリンググラフおよび展開されたグラフは、それぞれ、図３０、３１に表すようになる。参照サブアセンブリｂは、単一のパーツｄで置き換えられる。参照パーツｃは削除される。よって、サブアセンブリｂのパーツを接合する連結は、ｄが出現すると経路変更されるべきである。
【０１４８】
関数ｇは、
ｇ（ｃ，１）＝ｇ（ｃ，２）＝（ｄ，１）
ｇ（ｃ，４）＝ｇ（ｃ，５）＝（ｄ，２）
によって定義され、これはマッピング
ｕ１ｕ３→ｕ６
ｕ１ｕ４→ｕ６
ｕ２ｕ３→ｕ７
ｕ２ｕ４→ｕ７
を誘発する。
【０１４９】
定理の証明は、編集オペレータのマッピング規則を設定するためのガイドラインとして用いることができる。アルゴリズム設計者によって使われる調査プロセスは、以下の通りである。
【０１５０】
１．編集オペレータが適用され得るモデリンググラフＤ１を作成する。
【０１５１】
２．このモデリンググラフにおいて編集オペレータを形式的に適用する。新しいモデリンググラフＤ２が生じる。
【０１５２】
３．こうした２つのモデリンググラフを展開し、全単射ｇを設定する。
【０１５３】
４．証明に従って、こうしたオブジェクトからマッピング規則を取得する。
【０１５４】
空間での位置づけは、同じ戦略により管理することができる。その親オブジェクトに対する、再利用されるパーツまたはオブジェクトの相対的位置は、長さがｌのパスによって定義されるただ１つのオブジェクトに連結されるタプルとして取り込まれる。絶対的位置（すなわち、ルートプロダクトに対する相対的位置）が、弧のルートからリーフまでのパスによって定義される相対的位置を合成することによって取得される。２つの同値なモデリンググラフが与えられると、その結果得られるマッピング規則は、相対的位置づけについての興味深い情報を提供する。モデリンググラフの弧ｕ１が与えられると、関連づけられた相対的位置は、Ｐ（ｕｉ）と記される。モデリンググラフの連続する２つの弧ｕｉｕｊが与えられると、それぞれの相対的位置の合成は、Ｐ（ｕｉ）・Ｐ（ｕｊ）と記される。このシンタクスに従って、マッピング規則は、満足されなければならない同等性を与える。マッピング規則
ｕ１ｕ２．．．ｕｎ→ｖ１ｖ２．．．ｖｍ
が与えられると、対応する位置づけ同等性は、
Ｐ（ｕ１）・Ｐ（ｕ２）・．．．・Ｐ（ｕｎ）＝Ｐ（ｖ１）・Ｐ（ｖ２）．．．Ｐ（ｖｍ）
となる。
【０１５５】
協働設計のコンテキストにおいて、別の典型的な問題は、同時修正された２つのモデリンググラフをマージすることである。モデリンググラフをどのようにしてマージするかは、本発明の範囲外である。ここでの目的は、グラフをマージした結果がどのようなものであろうとも、モデリンググラフ修正に関連づけられたマッピングをマージすることである。タプルは従来、グラフ中の弧により取り込まれ、アセンブリ（モデリンググラフによってモデリングされた）内のタプルは、一見して、「グラフマージ」プロセスによって管理されるべきであると主張することができよう。ここでのポイントは、モデリンググラフ内で管理されるタプルは、識別子列により、モデリンググラフのパスまたは弧において符号化されることであるが、これは、従来技術により知られており、グラフマージプロセスにおいて使用される「グラフの弧」形式と適合しない。したがって、従来技術では、グラフをマージする際、関係およびそのタプルは概して失われる。これは、専用の処置が必要だからである。
【０１５６】
第２のアセンブリのモデリンググラフと第３のアセンブリのモデリンググラフとのマージによって与えられる第１のアセンブリのモデリンググラフについて検討する。第２および第３のアセンブリは、同じ初期モデリンググラフを編集した後で設計される。マージすると、第１のアセンブリのモデリンググラフの各弧は、第２のアセンブリのモデリンググラフの弧または第３のアセンブリのモデリンググラフの弧になる。第１のアセンブリに対する少なくとも１つのマッピングを決定するステップは、マージに従って実施される。こうすることにより、マージした結果がどうであっても、２つのアセンブリをマージするときにタプルを自動的に適応するツールが提供される。
【０１５７】
より厳密には、初期モデリンググラフＡ、第２および第３のアセンブリをモデリングするこの初期モデリンググラフの２つの修正バージョンＢおよびＢ’、ならびに第１のアセンブリをモデリングするマージされたモデリンググラフ
【０１５８】
【数１】
2011138510.tif 000004
【０１５９】
が与えられた場合の例について検討するが、このセクションの目標は、初期グラフからマージされたグラフへのマッピング
【０１６０】
【数２】
2011138510.tif 000005
【０１６１】
、ならびに修正された各グラフからマージされたグラフへのマッピング
【０１６２】
【数３】
2011138510.tif 000006
【０１６３】
および
【０１６４】
【数４】
2011138510.tif 000007
【０１６５】
を決定するために、同時変更Ａ→ＢおよびＡ→Ｂ’に関連づけられたマッピングを合成するためのアルゴリズムを提供することである。このように、タプルは、どの状況でも更新することができる。この状況例は、図３２で示す。
【０１６６】
本方法は、第１のアセンブリのモデリンググラフ、第２のアセンブリのモデリンググラフ、第３のアセンブリのモデリンググラフならびに第２および第３のアセンブリの初期モデリンググラフを展開するステップを含み得る。前記展開されたグラフの各ノードは次いで、弧の少なくとも１つの識別子のチェーンによって一意に識別される。
【０１６７】
図３２の例を参照して、それぞれ、モデリンググラフから取得される展開されたグラフを、Φ（Ａ）、Φ（Ｂ）、Φ（Ｂ’）、と、
【０１６８】
【数５】
2011138510.tif 000008
【０１６９】
およびこうした展開されたグラフのノードの集合を、
【０１７０】
【数６】
2011138510.tif 000009
【０１７１】
と表記する。モデリンググラフＸの展開されたグラフΦ（Ｘ）の各ノードは、グラフＸ中の弧のパスによって一意に識別される。よって、Φ（Ｘ）のノードおよびそれに関連づけられた、Ｘの弧のパスを識別する際に多義性はない。モデリンググラフＸからモデリンググラフＹへの編集に関連づけられたマッピングを、ｓＸＹと表記する。これは、展開されたグラフのノードからのマッピング、すなわちｓＸＹ：ＶΦ（Ｘ）→ＶΦ（Ｙ）と解釈される。この例のオブジェクトはすべて、図３３の図表に従ってリンクされる。
【０１７２】
本方法は、第２のアセンブリの展開されたモデリンググラフ中の第１の対応ノードおよび第３のアセンブリの展開されたモデリンググラフ中の第２の対応ノードを提供するステップを含んでよく、前記対応ノードは、第２および第３のアセンブリの展開された初期グラフの同じ被対応ノードに対応する。対応ノードは、第２および第３のアセンブリを結果として生じる編集の後の被対応ノードの結果である。本方法は、第１の対応ノードが、第１のアセンブリの展開されたモデリンググラフ中にあるかどうか検査するステップをさらに含み得る。言い換えると、本方法は、被対応ノード（すなわち、第１の対応ノード）の第２のアセンブリ中の変換が、マージされたアセンブリ（すなわち、第１のアセンブリ）中で保たれるかどうか検査する。検査が肯定的結果を生じる場合、決定されるマッピングは、被対応ノードのチェーンから第１の対応ノードへ、および第２の対応ノードのチェーンから第１の対応ノードのチェーンへのものである。
【０１７３】
否定的結果のケースでは、同様の検査を、第２の対応ノードに対して実施することができる。この第２の検査が肯定的結果を生じる場合、決定されるマッピングは、被対応ノードのチェーンから第２の対応ノードへ、および第１の対応ノードのチェーンから第２の対応ノードのチェーンへのものである。検査が再度否定的な場合、決定されるマッピングは、第１の対応ノードのチェーンから空のチェーンへ、および第２の対応ノードのチェーンから空のチェーンへのものでよい。
【０１７４】
これは、本方法の第１のステップに対応するが、このステップは、初期モデリンググラフのオブジェクトに対応する、マージされたグラフのオブジェクトをポイントするタプルを修復するマッピングを提供する。
【０１７５】
第２のステップで、本方法は、第１のアセンブリのモデリンググラフおよび第２のアセンブリのモデリンググラフを展開するステップを含み得る。前記展開されたグラフの各ノードは、弧の少なくとも１つの識別子からなるチェーンによって一意に識別される。本方法は、展開された第２のアセンブリのモデリンググラフ中の非対応ノードを提供するステップをさらに含み得る。前記非対応ノードは、展開された第２のアセンブリの初期グラフのどのノードにも対応しない。言い換えると、非対応ノードとは、初期モデリンググラフの編集の後に作成されるノードである。本方法は、非対応ノードが第１のアセンブリの展開されたモデリンググラフ中にあるかどうかをさらに検査し得る。言い換えると、作成されたノードが、マージされたグラフ中で保たれるかどうかが検査される。検査が否定的結果を生じる場合、決定されるマッピングは、非対応ノードのチェーンから空のチェーンへのものである。検査が肯定的結果を生じる場合、マッピングは要求されないので、何も行われない。同じことを、展開された第３のアセンブリのモデリンググラフ中の非対応ノードに対して実施することができる。
【０１７６】
これは、アルゴリズムの第２のステップに対応するが、これは、初期モデリンググラフの編集の後で作成されるオブジェクトに対応する、マージされたグラフのオブジェクトをポイントするタプルを修復するマッピングを提供する。
【０１７７】
本方法を解説するために、マッピングｓＡＢおよびｓＡＢ’をとりあげる。マッピング
【０１７８】
【数７】
2011138510.tif 000010
【０１７９】
および
【０１８０】
【数８】
2011138510.tif 000011
【０１８１】
は未知であり、目標は、こうしたマッピングを、前述の図表が可換となるように構築することであり、定義により、
【０１８２】
【数９】
2011138510.tif 000012
【０１８３】
を意味する。図３４、３５に表すアルゴリズムは、
【０１８４】
【数１０】
2011138510.tif 000013
【０１８５】
および
【０１８６】
【数１０】
2011138510.tif 000014
【０１８７】
を、２つのステップにより構築する。表記εは空のチェーンであり、弧のパスは弧をもたない。これは、弧の消されたパスをマップするのに使用される。
【０１８８】
第１のステップを、図３４の擬似コードによって説明する。初期モデリンググラフΦ（Ａ）の各ノードａに対して、アルゴリズムは、編集されたグラフ中で対応ノードｂおよびｂ’を得て、ｂ：＝ｓＡＢ（ａ）かつｂ’：＝ｓＡＢ’（ａ）となる。第１のケースは、ｂは、マージされたグラフ中に依然として存在し、ｂ’は、マージされたグラフ中に存在しないものである。したがって、
【０１８９】
【数１１】
2011138510.tif 000015
【０１９０】
であり、可換原理により、
【０１９１】
【数１２】
2011138510.tif 000016
【０１９２】
かつ
【０１９３】
【数１３】
2011138510.tif 000017
【０１９４】
である。第２のケースは逆転であり、ｂ’はマージされたグラフ中に依然として存在し、ｂはマージされたグラフ中に存在せず、よって
【０１９５】
【数１４】
2011138510.tif 000018
【０１９６】
かつ
【０１９７】
【数１５】
2011138510.tif 000019
【０１９８】
である。第３のケースは、ｂおよびｂ’が両方とも、マージされたグラフ中に存在する。ｂおよびｂ’は、同じ初期ノードａの変換であり、一方の修正されたグラフ中の新しいオブジェクトが、他方の修正されたグラフ中の新しいオブジェクトと等しくなり得ない（なぜなら、同時修正は独立している）ので、ｂおよびｂ’はａに等しく、よって
【０１９９】
【数１６】
2011138510.tif 000020
【０２００】
かつ
【０２０１】
【数１７】
2011138510.tif 000021
【０２０２】
である。それ以外の場合、アルゴリズムが解決し得ない多義性がマージプロセスにはある。最終的に、ｂおよびｂ’が、マージされたグラフ中にない（両方とも、マージプロセスによって削除される）場合、
【０２０３】
【数１８】
2011138510.tif 000022
【０２０４】
かつ
【０２０５】
【数１９】
2011138510.tif 000023
【０２０６】
である。
【０２０７】
図３４で示すステップは、修正されたグラフΦ（Ｂ）中で作成され、したがってＶΦ（Ｂ）−ｓＡＢ（ＶΦ（Ａ））に属すノード、および修正されたグラフΦ（Ｂ’）中で作成され、したがってＶΦ（Ｂ’）−ｓＡＢ’（ＶΦ（Ａ））に属すノードを管理しない。よって、
【０２０８】
【数２０】
2011138510.tif 000024
【０２０９】
が、図３５の擬似コードで示すように、および以下の説明の通り完成される。ｂは、マージされたグラフ中にある、すなわち
【０２１０】
【数２１】
2011138510.tif 000025
【０２１１】
の場合、Φ（Ｂ）に追加されており、依然として
【０２１２】
【数２２】
2011138510.tif 000026
【０２１３】
中にあり、よって
【０２１４】
【数２３】
2011138510.tif 000027
【０２１５】
である。逆に、ｂは、マージされたグラフ中にない、すなわち
【０２１６】
【数２４】
2011138510.tif 000028
【０２１７】
の場合、Φ（Ｂ）に追加されており、マージされたグラフ
【０２１８】
【数２５】
2011138510.tif 000029
【０２１９】
から、マージプロセス（このプロセスには問題があるが、マージプロセスの詳細は本発明の範囲外である）によって削除されており、よって
【０２２０】
【数２６】
2011138510.tif 000030
【０２２１】
である。
【０２２２】
前述のアルゴリズムおよび注意点は、完全な
【０２２３】
【数２７】
2011138510.tif 000031
【０２２４】
とは対称的である。
【０２２５】
コンピュータ支援設計システムは、オブジェクトを格納するデータベースを備え得る。システムは、ＰＬＭ／ＣＡＤ（オブジェクトライフサイクル管理／コンピュータ支援設計）システムでよい。データベースは、パーツ、パーツからなるアセンブリなどの仕様を格納し得る。システムは、上述した方法で複数のオブジェクトからなるアセンブリを設計するのに適したグラフィカルユーザインタフェースも備え得る。グラフィカルユーザインタフェースは対話型であり、したがって設計者は、アセンブリをグラフィカルに設計し、上述した方法をバックプロセスとしてシステムに実施させることができる。
【０２２６】
コンピュータによって実行されるための命令を備えるコンピュータプログラムであって、命令は、オブジェクトを格納するデータベースを備えるコンピュータ支援設計システムに、上述した方法を実施させる手段を備えるプログラムが、コンピュータ上で提供され、たとえばインストールされ得る。このようなプログラムは、一般に知られているように、コンピュータ可読記憶媒体上のレコーダでよい。
【０２２７】
概して、プロセッサは、読出し専用メモリおよび／またはランダムアクセスメモリから命令およびデータを受け取る。コンピュータプログラム命令およびデータを有形に実施するのに適した記憶装置は、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリ装置などの半導体メモリ装置、内部ハードディスクおよび取外し可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭディスクを含む、あらゆる形の不揮発性メモリを含む。上述したものはいずれも、特殊設計ＡＳＩＣ（特定用途向け集積回路）によって補われても、それに組み込まれてもよい。
【０２２８】
本発明は、上で挙げた例に限定されず、当業者にとって明らかな修正を包含する。
【０２２９】
とりわけ、本発明は主として、機械アセンブリの分野を参照して記載したが、参照オブジェクトが再利用され、階層構造中でリンクされ、この構造が協働的環境で修正されるどの分野にも適用可能である。たとえば、本発明は、ビデオゲームの分野に適用可能である。
【０２３０】
さらに、階層構造は、本記載内容ではグラフ構造により取り込まれた。ただし、本発明は、オブジェクトの間の階層構造を取り込むように適合された他の構造に適用可能である。とりわけ、グラフに同値なプレフィクスエンコードは、マッピングがプレフィクスエンコードに適用され得るので、本発明の範囲内であることが明らかである。
【図１】
2011138510.tif 000032
【図２】
2011138510.tif 000033
【図３】
2011138510.tif 000034
【図４】
2011138510.tif 000035
【図５】
2011138510.tif 000036
【図６】
2011138510.tif 000037
【図７】
2011138510.tif 000038
【図８】
2011138510.tif 000039
【図９】
2011138510.tif 000040
【図１０】
2011138510.tif 000041
【図１１】
2011138510.tif 000042
【図１２】
2011138510.tif 000043
【図１３】
2011138510.tif 000044
【図１４】
2011138510.tif 000045
【図１５】
2011138510.tif 000046
【図１６】
2011138510.tif 000047
【図１７】
2011138510.tif 000048
【図１８】
2011138510.tif 000049
【図１９】
2011138510.tif 000050
【図２０】
2011138510.tif 000051
【図２１】
2011138510.tif 000052
【図２２】
2011138510.tif 000053
【図２３】
2011138510.tif 000054
【図２４】
2011138510.tif 000055
【図２５】
2011138510.tif 000056
【図２６】
2011138510.tif 000057
【図２７】
2011138510.tif 000058
【図２８】
2011138510.tif 000059
【図２９】
2011138510.tif 000060
【図３０】
2011138510.tif 000061
【図３１】
2011138510.tif 000062
【図３２】
2011138510.tif 000063
【図３３】
2011138510.tif 000064
【図３４】
2011138510.tif 000065
【図３５】
2011138510.tif 000066
【外国語明細書】
2011138510000001.pdf