オントロジーの構築Object and link typesプロパティ必須プロパティ

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

必須プロパティ

必須プロパティは、値を持つ必要があるオブジェクトタイプのプロパティです。このオブジェクトタイプのプロパティを使用すると、このプロパティの値が null のオブジェクト、または配列プロパティの場合は空の配列を持つオブジェクトが存在しないことを検証できます。この検証は、元データソースのデータと、アクションによる編集に適用されます。

必須プロパティの概要

必須プロパティを使用する際は、次の点に注意してください。

  • 検証は、データがオブジェクトにインデックス化される際に行われます: null 値のチェックは、元データソースが Object Storage にインデックス化される際に行われます。そのため、必須プロパティの元の列に null 値が含まれていても、オントロジー自体の変更には成功します。
  • 配列プロパティは空にできません: 配列プロパティを必須に設定すると、1つ以上の項目が存在することが保証されます。
  • アクションによる変更は適用時に検証されます: アクションによってプロパティに null または空の値を書き込もうとすると、アクションの実行に失敗します。
  • Object Storage v2 でのみ利用可能です: 必須プロパティは、Object Storage v2 を使用するオブジェクトタイプでのみサポートされます。

必須プロパティを作成する

  1. Ontology Manager に移動します。
  2. オブジェクトタイプを選択し、次に必須に設定するプロパティを選択します。
  3. プロパティを作成を選択し、プロパティ名、データ型、説明などの必要な詳細を入力します。
  4. 設定セクションで、必須トグルをオンにします。
  5. オントロジーへの変更を保存し、再インデックス化が完了するまで待ちます。

プロパティの元の列に現在 null 値が設定されている場合、再インデックス化に失敗します。これを解決するには、その列に null 値が含まれないように元データソースを更新するか、プロパティの必須設定を解除する必要があります。

設定ペインで必須プロパティのトグルをオンにした状態。

空の配列を許可する必須プロパティ

必須プロパティで空の配列を許可するように設定できます。この場合、プロパティは引き続き null 値を拒否しますが、空の配列は受け入れます。これは、null にすることはできないものの、空の配列を許可するように設定できる強制アクセス制御プロパティに便利です。強制アクセス制御プロパティについて詳しくはこちら。

アクションでは、パラメーターにマッピングされているプロパティで、そのパラメーターが設定されていない場合、空の配列が書き込まれます。つまり、空の配列を許可する必須プロパティがあり、アクションでパラメーターを空欄のままにすると、アクションは成功し、プロパティに空の配列を書き込みます。この動作を望まず、ユーザーがアクションによってこのプロパティに常に値を設定するように強制したい場合は、必須プロパティで空の配列を許可しないでください。

必須プロパティの詳細設定

複数の元データソースを持つオブジェクトタイプの必須プロパティ

複数のデータソースを元にしているオブジェクトタイプの必須プロパティに、null 値が表示される場合があります。これは、オブジェクトのレコードが一部のデータソースには存在するものの、必須プロパティの値を供給するデータソースには存在しない場合に発生します。

次の例は、この動作を示しています。2つの元データソースを持つ Movie オブジェクトタイプがあり、Genre プロパティが必須であるとします。

データソース1

映画IDタイトル興行収入リージョン
101冒険の始まり200m["USA", "Canada", "UK"]
102都会の恋75m[]
103銀河の戦い500m["USA", "UK", "Australia"]

データソース2

映画ID予算ジャンル(必須)監督
10150mアドベンチャーマイケル・ジョン・スミス
10220mロマンスジェーン・ドウ
103150mSF

Genre の値を指定せずに新しい Movie を両方の元データソースに追加すると、オントロジーへのインデックス化に失敗します。

一方、新しい Movie オブジェクトの行がデータソース1にしか存在しないとします。

データソース1

映画IDタイトル興行収入リージョン
101冒険の始まり200m["USA", "Canada", "UK"]
102都会の恋75m[]
103銀河の戦い500m["USA", "UK", "Australia"]
104ハッピーエンド150m["UK", "FRANCE"]

データソース2

映画ID予算ジャンル(必須)監督
10150mアドベンチャーマイケル・ジョン・スミス
10220mロマンスジェーン・ドウ
103150mSF

上記の例では、生成されるオブジェクトの必須プロパティに値がないにもかかわらず、オントロジーへのインデックス化に成功します。

プロパティ値
映画ID104
タイトルハッピーエンド
興行収入150m
リージョン["UK", "FRANCE"]
予算
ジャンル(必須)
監督

アクションによる編集で作成されたオブジェクトにも同じことが当てはまります。Datasource 1 の列に関連付けられたプロパティのみを含む場合、Movie オブジェクトの作成や変更に成功します。ただし、アクションによって Budget などの Datasource 2 を元にするプロパティがオブジェクトに追加されると、アクションは無効になり、実行に失敗します。これは、オブジェクトが Datasource 2 にも存在するようになるため、Genre を設定する必要があるからです。