注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

インターフェースリンクタイプ制約

インターフェースリンクタイプ制約は、インターフェースを実装するすべてのオブジェクトタイプに共通する、オブジェクト間の関係を定義します。ユーザーはリンクの説明と、コード内で参照するためのリンクタイプのAPI名を指定できます。オブジェクトがインターフェースリンクタイプ制約を持つインターフェースを実装する場合、そのオブジェクトタイプの具象リンクタイプを使用して、インターフェースリンクタイプ制約を満たします。

インターフェースリンクタイプの作成。

上の例に示すように、施設とその施設がサービスを提供する航空会社との関係をモデル化するために、Facility インターフェースでは、Facility インターフェースを実装する任意のオブジェクトと Airline オブジェクトタイプの間に、任意の一対多のリンクタイプ制約を宣言しています。つまり、実装するオブジェクトタイプ(たとえば Airport)に Airlines オブジェクトタイプへの具象リンクタイプがあれば、インターフェースリンクタイプのAPI名を通じてそのリンクにアクセスできます。

リンクタイプ制約

リンクタイプ制約は、インターフェースリンクタイプのパラメーターを定義します。リンクタイプが必須の場合、実装するすべてのオブジェクトタイプに、これらの制約を満たすリンクが必要です。これらのパラメーターには、次のものが含まれます。

  • リンク対象の種類: インターフェースまたはオブジェクトタイプ。
  • ターゲット: 特定のインターフェースまたはオブジェクトタイプ。
  • カーディナリティ: 一対一または一対多。
  • オブジェクトタイプの実装の一部としてリンクが必須かどうか。

リンク対象:インターフェース

2つの抽象オブジェクトタイプの間の関係をモデル化する場合は、リンク対象の種類として interface を使用します。

たとえば、インターフェースをリンク対象にして、Facility とそこで発生する Alert の関係をモデル化できます。施設にもアラートにもいくつかの種類があるため、リンクの両端に単一のオブジェクトタイプしか使用できない場合、両者のつながりをモデル化することはできません。代わりに、Facility インターフェース、Alert インターフェース、および Alert インターフェースにリンクするように設定した Facility 上のインターフェースリンクを定義することで、この関係をモデル化できます。その後、Facility インターフェースを実装する Airport オブジェクトタイプと、Alert インターフェースを実装する Flight Alert オブジェクトを定義できます。さらに、Airport から Flight Alert への具象リンクタイプを定義して、Facility インターフェースのリンクタイプ制約を満たすことができます。

リンク対象:オブジェクトタイプ

インターフェースとリンク対象の関係が具体的であり、リンクタイプ制約によってその具体性を強制する必要がある場合は、リンク対象の種類として object type を使用します。

たとえば、Airlines オブジェクトタイプにリンクする Facility インターフェースを定義できます。このインターフェースリンクは、施設の種類にかかわらず、その施設がサービスを提供する特定の航空会社へのリンクを持つことが期待される、という関係をモデル化します。

カーディナリティ

インターフェースリンクタイプには、さらに ONE または MANY のカーディナリティを指定できます。ONE は一対一のモデル化に、MANY は一対多のモデル化に対応します。ONE のカーディナリティは、インターフェースを実装する各オブジェクトが、対象のタイプの1個のオブジェクトにリンクする必要があることを示します。MANY のカーディナリティは、インターフェースを実装する各オブジェクトが、対象のタイプの任意の数のオブジェクトにリンクできることを示します。

オントロジーのモデル化の要件に基づいて、ONE と MANY のどちらを使用するかを決めます。場合によっては、リンクのカーディナリティを単一のオブジェクトに制限するほうが適切なこともあります。たとえば、各免許証は特定の1人の個人にのみ属するため、Driver's License と Person の関係を、カーディナリティが SINGLE のリンクとしてモデル化するとよいでしょう。Company とその Shareholders のように、関係により柔軟性がある場合は、カーディナリティが MANY のリンクを使用して、各会社が1人以上の具体的な株主を持てることを表すとよいでしょう。