オントロジーの構築オブジェクトタイプとリンクタイプリンクタイプリンクタイプの作成

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

リンクタイプを作成する

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

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

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

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

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

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

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

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

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

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

リレーションシップタイプを選択する

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

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

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

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

  • *一対一のカーディナリティ:*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. 次へを選択して続行します。

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

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

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

ユーザーがリンクタイプを編集またはライトバックできるようにするには、多対多のカーディナリティが必要です。多対多のカーディナリティには、元データソースが必要です。

  1. リンクリソースステップで、リンクのオブジェクトタイプを選択します。
  2. 左側のドロップダウンメニューから、1個目のオブジェクトタイプ(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つの Assigned Aircraft があるため、表示名として Assigned Aircraft を選択できます。同じリンクタイプの両側をまとめて設定するため、リンクタイプはどちらの方向にもたどることができ、逆方向のために別のリンクタイプを定義する必要はありません。詳細は、方向性を参照してください。
  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 が表示された場合、保存しようとしているリンクタイプの元データソースは、すでにオントロジー内の別のリンクタイプの元データソースとして使用されているため、再利用できません。