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

リンクタイプを作成する

以下で説明するガイド付きヘルパーを使って、新しいリンクタイプを作成および設定することを推奨します。ただし、オブジェクトの作成プロセスが完了する前にヘルパーを終了した場合は、新しいリンクタイプのリンクタイプ、キー、およびAPI名を指定して、プロセスを手動で完了できます。

リンクタイプ作成ヘルパーにアクセスする

Ontology Manager に移動します。リンクタイプ作成ヘルパーにアクセスするには、次のいずれかの方法を選択します。

  • 右上の新規を選択し、次にリンクタイプを選択します。

    新規ドロップダウンメニューからリンクタイプの選択肢を選択します。

  • 左サイドバーのリソースでリンクタイプを選択します。次に、リンクタイプページの右上にある新規リンクタイプを選択します。

  • リンクするオブジェクトタイプに移動し、そのオブジェクトタイプの概要ページにあるリンクタイプグラフ内で新しいリンクタイプを作成を選択します。

    新しいリンクタイプを作成する

新しいリンクタイプを設定する

新しいリンクタイプの作成ヘルパーでは、次の手順に沿って設定を進めます。

リレーションシップの種類を選択する

  1. 新しいリンクタイプを作成するダイアログの最初のステップで、リンクのリレーションシップの種類を選択します。

  2. 2個のオブジェクト間のリンクを定義するためのリレーションシップの種類を選択します。

    • オブジェクトタイプ外部キー:「一対一」および「多対一」のカーディナリティのリンクタイプをサポートします。この選択肢では、対象のオブジェクトの外部キーと、それに対応する主キーを表すプロパティを選択できます。外部キーを使用したリンクリソースの定義については、以下の詳細を参照してください。
    • 結合テーブルデータセット:「多対多」のカーディナリティのリンクタイプに使用します。この選択肢では、結合テーブルデータセットをリンクの元データソースとして使用できます。データセットを使用したリンクリソースの定義については、以下の詳細を参照してください。
    • 元オブジェクトタイプ: オブジェクトベースのリンクタイプは、多対一のカーディナリティのリンクタイプを拡張し、リンクタイプのストレージとしてオブジェクトタイプを標準でサポートします。オブジェクトを元にしたリンクリソースの定義については、以下の詳細を参照してください。追加情報については、オブジェクトベースのリンクセクションを参照してください。

以下の例では、カーディナリティによって相互に関連付けられた2個のオブジェクトタイプ、Aircraft オブジェクトタイプと Flight オブジェクトタイプがあるとします。カーディナリティの種類には、次のものがあります。

  • *一対一のカーディナリティ:*1個の Aircraft が1個の Flight にリンクされるべきであることを示します。一対一のカーディナリティは意図したリレーションシップを示すものですが、一対一のカーディナリティは強制されません。
  • *一対多のカーディナリティ:*1個の Aircraft を多数の Flights にリンクできることを示します。
  • *多対一のカーディナリティ:*多数の Aircraft を1個の Flight にリンクできることを示します。
  • *多対多のカーディナリティ:*1個の Aircraft を多数の Flights にリンクでき、1個の Flight を多数の Aircraft にリンクできることを示します。
  1. 次へを選択して、次のステップに進みます。

    作成ダイアログでリンクタイプのリレーションシップの種類を選択する

リンクリソースを定義する

外部キーのリレーションシップの種類

外部キーは、あるオブジェクトタイプにある、別のオブジェクトタイプの主キーの値を格納するプロパティで、2個のオブジェクトタイプ間の実世界のリレーションシップを表します。この概念は、あるテーブルの列が別のテーブルの主キー列を参照するリレーショナルデータベースの外部キーに相当します。一対一または多対一のカーディナリティのリンクタイプでは、リンクの外部キープロパティと主キープロパティを定義します。一方のオブジェクトタイプの外部キープロパティは、もう一方のオブジェクトタイプの主キープロパティを参照する必要があります。

たとえば、Tail Number プロパティは Aircraft オブジェクトタイプの主キーであり、各航空機を一意に識別します。Flight オブジェクトタイプの Flight Tail Number プロパティは外部キーであり、そのフライトに割り当てられた航空機を表します。Aircraft の Tail Number が Flight の Flight Tail Number と一致すると、Aircraft オブジェクトタイプと Flight オブジェクトタイプの間にリンクが作成されます。

  1. リンクリソースステップで、リンクのオブジェクトタイプを選択します。

  2. 右側のドロップダウンメニューから、主キー側のオブジェクトタイプを選択します(この例では Aircraft)。

  3. 左側のドロップダウンメニューから、外部キー側のオブジェクトタイプを選択します(この例では Flight)。次の条件が満たされると、作成ダイアログで外部キーが検出され、自動的に選択されます。

    • 外部キーが、リンクされたオブジェクトタイプの主キーと一致している。
    • 両方のオブジェクトのプロパティタイプが一致している。
  4. リンクを構成するプロパティを選択します。

    • 外部キー側のオブジェクトタイプでは、ソースオブジェクトタイプの外部キーとして使用するプロパティを選択します(Flight オブジェクトタイプの場合は Flight Tail Number)。
    • 各オブジェクトタイプの主キーは1個のみなので、オブジェクトタイプの主キーは自動的に選択されます(Aircraft オブジェクトタイプの場合は Tail Number)。
  5. 次へを選択して続行します。

    外部キーのリレーションシップの種類を使用してリンクリソースを選択する。

結合テーブルデータセットのリレーションシップの種類

多対多のカーディナリティでは、最初のオブジェクトタイプ(この例では Aircraft)と2番目のオブジェクトタイプ(この例では Flight)の主キー間のリンクのすべての組み合わせを含むデータソースを選択します。

ユーザーがリンクタイプを編集したり、リンクタイプに書き戻したりできるようにするには、元データソースを必要とする多対多のカーディナリティが必要です。

  1. リンクリソースステップで、リンクのオブジェクトタイプを選択します。
  2. 左側のドロップダウンメニューから、最初のオブジェクトタイプ(Flight)を選択します。
  3. 右側のドロップダウンメニューから、2番目のオブジェクトタイプ(Aircraft)を選択します。
  4. 結合テーブルデータセットを選択します。選択した両方のオブジェクトタイプの主キーに一致する列を含むデータセットを選択します。1列をマッピングできる主キーは1個のみです。
    • 新しいリンクタイプの結合テーブルを自動生成できるようになりました。結合テーブルを生成オプションを選択すると、選択した2個のオブジェクトタイプの主キーに基づいて、適切なスキーマを持つデータセットが作成されます。これにより、ユーザーの編集を元にしたデータがある場合や、本番データを後から用意したい場合に、すばやくはじめることができます。
  5. リンクタイプの元データソース内で、リンクされた各オブジェクトタイプの主キーにマッピングする列を選択します。
  6. 次へを選択して続行します。

    リンクタイプのリレーションシップの種類を選択する

元オブジェクトのリレーションシップの種類

オブジェクトベースのリンクを作成する前に、前提条件となるオブジェクトとリンクが作成されていることを確認してください。

  1. 目的のリンクタイプを表すために、前提条件で作成したオブジェクトタイプを選択します。左右のオブジェクトは、相互にリンクされる2個のエンティティを表します。中央のオブジェクトは仲介役を果たし、2個のエンティティ間の接続に関する追加のメタデータを提供するとともに、リンクの元となります。
  2. 左右のオブジェクトと中央の仲介オブジェクトの間に複数のリンクがある場合は、ドロップダウンメニューを使用して、左右のオブジェクトと仲介オブジェクトの間の目的のリンクを選択します。

    オブジェクトベースのリンクを使用してリンクリソースを選択する。

リンクタイプ名を定義する

  1. リンクタイプ名のステップで、新しいリンクタイプの表示名とAPI名を入力します。
  2. リンクタイプの各側の表示名を入力します。リンクタイプには必ず2つの側があり、関連付ける2つのオブジェクトタイプにそれぞれ対応しています。各側は、そのオブジェクトタイプへのリンクを表します。この例では、Aircraft オブジェクトタイプの表示名は、Flight から Aircraft へのリンクを表します。1個の Flight には1個の割り当て済み航空機があるため、表示名として「割り当て済み航空機」を選択できます。同じリンクタイプの両側を一緒に設定するため、リンクタイプはどちらの方向にもたどることができ、逆方向用に別のリンクタイプを定義する必要はありません。詳細は方向性を参照してください。
  3. API名は表示名に基づいて自動生成されますが、必要に応じて変更できます。
    • API名の項目は、コードでリンクタイプをプログラムから参照するときに使用されます。リンクタイプの片側のAPI名を使用すると、そのタイプのオブジェクトを返すことができます。たとえば、リンクタイプの Aircraft 側のAPI名が assignedAircraft の場合、Flight.assignedAircraft.get() を呼び出すと、それらの Flight オブジェクトにリンクされた Aircraft オブジェクトが返されます。
    • リンクタイプのAPI名は、以下の条件を必ず満たす必要があります。
      • 小文字で始まり、英数字のみで構成されていること。
      • 同じオブジェクトタイプに関連付けられたすべてのリンクタイプで一意であること。
      • 長さが1文字以上100文字以下であること。
      • NFKC 正規化されていること。
      • 予約キーワードではないこと。
    • API名(TSv1)について詳しくはこちら。
  4. 次へを選択して進みます。

    リンクタイプに名前を付ける

保存場所

最後のステップで、このリンクタイプの保存先プロジェクトを選択します。次に、確定を選択します。これらのステップを完了すると、新しいリンクタイプが作成されますが、まだ保存されていません。

新しいリンクタイプの保存場所のステップ。

オントロジーへの変更を保存する

Ontology Manager に戻り、右上の保存を選択して、オントロジーに変更を反映します。

オブジェクトベースのリンク

オブジェクトベースのリンクタイプは、多対一のカーディナリティを持つリンクタイプを拡張し、リンクタイプのストレージとしてオブジェクトタイプを正式にサポートします。オブジェクトベースのリンクタイプでは、リンクに追加のメタデータを含めることができ、制限付きビューもサポートされます。

オブジェクトベースのリンクでは、Aircraft オブジェクトと Flight オブジェクトに加えて、Flight Manifest というオブジェクトタイプがあると仮定します。オブジェクトベースのリンクを使用すると、Aircraft オブジェクトと Flight オブジェクトをリンクする Flight Manifest オブジェクトタイプを用意できます。外部キーやデータセットベースのリンクとは異なり、この Flight Manifest オブジェクトには Pilot や First Mate などの追加のプロパティを含めて、リンクに追加のメタデータを持たせることができます。

オブジェクトベースのリンクの概要。

オブジェクトベースのリンクタイプを作成するための前提条件

オブジェクトベースのリンクタイプを作成する前に、まず以下を行う必要があります。

  1. リンクタイプの両側のオブジェクトタイプを作成します。詳細はオブジェクトタイプを作成するを参照してください。
  2. 2つのオブジェクトタイプをリンクする元オブジェクトタイプを作成します。
  3. リンクタイプの各側と元オブジェクトタイプの間に、多対一のリンクタイプを作成します。詳細は新しいリンクタイプを設定するを参照してください。

上記の Aircraft、Flight、Flight Manifest の例では、以下のリソースを作成する必要があります。

  1. リンクタイプの両側のオブジェクトタイプを作成します。
    1. Aircraft オブジェクトタイプ
    2. Flight オブジェクトタイプ
  2. 2つのオブジェクトタイプをリンクする元オブジェクトタイプを作成します。
    1. Flight Manifest オブジェクトタイプ
  3. リンクタイプの各側と元オブジェクトタイプの間に、多対一のリンクタイプを作成します。
    1. Aircraft オブジェクトタイプと Flight Manifest オブジェクトタイプの間のリンク
    2. Flight オブジェクトタイプと Flight Manifest オブジェクトタイプの間のリンク

これらを作成すると、オブジェクトベースのリンクタイプを作成できます。

既存のリンクをオブジェクトベースのリンクタイプに変換する

既存のリンクは、オブジェクトベースのリンクタイプに変換できます。既存のリンクを変更する前に、オブジェクトベースのリンクタイプの前提条件を満たす必要があります。

既存のリンクのリンクタイプを変更するには、以下の手順を実行します。

  1. Ontology Manager でリンクを開きます。
  2. 設定セクションで結合方法を更新し、オブジェクトタイプを選択します。
  3. リンクタイプをオブジェクトベースのリンクタイプに更新ダイアログで、元オブジェクトタイプを選択します。
  4. リンクタイプをオブジェクトベースのリンクタイプに更新ダイアログで、元オブジェクトへのリンクエッジからリンクタイプを選択します。
  5. オブジェクトベースに更新を選択します。

オブジェクトベースのリンクタイプを使用する

現在、オブジェクトベースのリンクタイプは Object Explorer、Vertex、Workshop で表示できます。リンクを選択すると、リンクの元オブジェクトのプロパティが表示されます。Vertex では、リンクのタイトルには代わりにリンクの元オブジェクトのタイトルが表示されます。

トラブルシューティング

エラー: Phonograph2:DatasetAndBranchAlreadyRegistered

エラー Phonograph2:DatasetAndBranchAlreadyRegistered が発生した場合、保存しようとしているリンクタイプの元データソースは、すでにオントロジー内の別のリンクタイプの元データソースとして使用されているため、再利用できません。