オントロジーの構築Object and link types概要概要

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

リンクタイプ

リンクタイプは、2つのオブジェクトタイプ間の関係のスキーマ定義です。リンクは、同じオントロジー内の2個のオブジェクト間にある、その関係の単一のインスタンスを指します。

たとえば、Ontology Manager では、Employee オブジェクトタイプと Company オブジェクトタイプの間に、Employee と Employer の関係を定義するリンクタイプを作成できます。リンクは、架空の従業員「Melissa Chang」とその雇用主「Acme, Inc.」の関係のように、Employee → Employer リンクタイプの単一のインスタンスを指します。

同様に、Ontology Manager では、Flight オブジェクトタイプと Aircraft オブジェクトタイプの間に、Scheduled Flight と Assigned Aircraft の関係を定義するリンクタイプを作成できます。リンクは、「JFK → SFO 24-02-2021」とそれに割り当てられた航空機「Boeing 737-123」の関係のように、Scheduled Flight → Assigned Aircraft リンクタイプの単一のインスタンスを指します。

リンクは、同じタイプの2個のオブジェクト間にも存在できます。Employee オブジェクトタイプとそれ自身の間に、リンクタイプ Direct Report ↔ Manager を定義できます。

異なるオントロジーに属するオブジェクトタイプ間のリンクには対応していません。この場合は、共有オントロジーの活用を検討できます。

方向性

リンクタイプは双方向です。関連付ける2つのオブジェクトタイプそれぞれに対応する、2つの側を必ず持ちます。リンクタイプのそれぞれの側は独立してたどることができ、独自の表示名と API名(TSv1)を持ちます。たとえば、単一の Flight ↔ Aircraft リンクタイプには、Flight 側と Aircraft 側があります。コードから flight.assignedAircraft.get() を呼び出すと、リンクタイプの Aircraft 側をたどり、フライトに割り当てられた航空機を取得します。また、aircraft.flights.all() を呼び出すと、Flight 側をたどり、その航空機に割り当てられたフライトを取得します。これらの例では TSv1 の構文を使用していますが、ほかの言語でも同じ2つの側をたどります。

2つのオブジェクトタイプ間に単一のリンクタイプを作成しても、逆方向の2つ目のリンクタイプが暗黙的に作成されるわけではありません。その単一のリンクタイプが、2つの側を通じて両方向にたどることにすでに対応しているため、同じ関係を表すために Aircraft から Flight へのリンクタイプと Flight から Aircraft へのリンクタイプを個別に定義する必要はありません。

同じ2つのオブジェクトタイプ間に、複数の異なるリンクタイプを定義できます。ただし、それぞれは既存の関係の逆方向ではなく、現実世界の別の関係を表します。たとえば、割り当てられた航空機を表す Flight ↔ Aircraft リンクタイプに加えて、予定されたメンテナンス記録を表す、2つ目の独立した Flight ↔ Aircraft リンクタイプを定義できます。アプリケーションがこれらの関係を区別できるように、各リンクタイプのそれぞれの側には一意の API名が必要です。

オントロジーの基礎となる概念には、データセットの構造における類似の概念があります。オントロジーにおけるリンクタイプの定義は、2つのデータセット間の結合の定義に相当します。一方、リンクの定義は、別のデータセットにある対応する行のフィールドと結合された行に相当します。たとえば、Employee データセットと Company データセットを結合して、Employees とその Employers の関係を探索できます。結合されたデータセットでは、「Melissa Chang」とその雇用主「Acme, Inc.」を結合した1行がリンクを表します。

Foundry オントロジーは、抽象的なデータモデルではなく、オントロジーの各概念を組織の実際のデータにマッピングし、このデータ資産を現実世界のアプリケーションで活用できるようにします。Ontology Manager でリンクタイプが参照するオブジェクトタイプに元データソースを追加すると、リンクが作成され、ユーザーアプリケーションに表示されます。オブジェクトタイプが多対多のカーディナリティで関連付けられるリンクタイプの場合、データソースはリンクタイプ自体の元データになります。Employee → Employer タイプのリンクを作成するには、組織は Employee および Company オブジェクトタイプに元データソースを追加し、従業員名簿やほかの企業データをオントロジーに接続します。

新しいリンクタイプを作成する方法を学ぶことからはじめましょう。