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

オントロジーとのインタラクション

ベータ版

Code Workspaces におけるオントロジー SDK のサポートはベータ版であり、ユーザーのエンロールメントでは利用できない場合があります。この機能を有効にしたい場合は、Palantir サポートにお問い合わせください。

制限付きビューを利用したオントロジーエンティティクエリ関数 は Code Workspaces ではまだサポートされていません。

Code Workspaces は、JupyterLab® および RStudio® 内でオブジェクト、リンク、およびアクションタイプを使用して オントロジー とインタラクションすることをサポートします。

新しいオントロジー SDK の作成

Code Workspaces で新しいオントロジー SDK を作成するには、まず オントロジー サイドパネルに移動します。各 Code Workspace には 1 つの SDK を持つことができ、各 SDK の複数のバージョンを作成できます。オントロジー サイドパネルから 新しい SDK を作成 を選択して、SDK 設定フォームを開きます。

オントロジーサイドパネルのランディング画面

新しいオントロジー SDK にはパッケージ名と関連するオントロジーが必要です。パッケージ名は、SDK がコード内でどのようにアクセスされるかを決定するために使用されます。たとえば、example というパッケージ名の SDK バージョンは、ライブラリ名 example_sdk でインポートできます。SDK パッケージ名には文字、数字、およびハイフンのみを含めることができ、ハイフンで終わることはできません。一度公開された SDK パッケージ名は変更できません。

SDK の設定が完了したら、選択を保存 を選択して続行します。

オントロジーサイドパネルの SDK 設定フォーム

データエンティティの選択

オントロジー サイドパネルには 2 つのタブがあります: データエンティティSDK の生成

  • データエンティティ タブは、オントロジーからオブジェクトおよびアクションタイプをインポートするために使用します。
  • SDK の生成 タブは、SDK バージョンの検査とインストールに使用します。

データエンティティを選択するには、データエンティティ タブに移動します。追加 を選択し、リソースセレクターダイアログを開いて、データエンティティの閲覧と選択を行います。データエンティティを選択した後、サイドパネルの下部にある 保存 ボタンを使用して選択内容を保存できます。保存 を選択すると、選択されたデータエンティティにアクセスする新しい SDK バージョンが生成されます。

「データエンティティ」タブのオントロジーサイドパネル

オブジェクトタイプに影響を与えるアクションタイプや、パラメーターとしてオブジェクトタイプを持つアクションタイプを選択すると、それらのオブジェクトタイプも自動的に選択に追加されます。選択されたオブジェクトタイプに、Code Workspace のプロジェクトスコープにまだインポートされていない基となるデータソースがある場合、これらのデータソースの自動インポートを確認するように促されます。

基となるデータソースのインポート確認ダイアログ

選択されたオントロジーの変更

異なるオントロジーからオントロジーエンティティをインポートするには、データエンティティ タブにあるオントロジーセレクターを使用します。異なるオントロジーを選択した後、保存 を選択して変更を適用し、新しいバージョンを生成します。選択されたオントロジーを変更すると、SDK のデータスコープがリセットされ、選択されたオブジェクト、アクション、リンクタイプがクリアされます。

データエンティティタブのオントロジーセレクター

新しいオントロジー SDK バージョンの公開

設定が完了したら、オントロジー サイドパネルの下部にある 新しいバージョンを生成 ボタンを使用して新しいオントロジー SDK バージョンを公開できます。公開されたバージョンや保留中のバージョンは、SDK の生成 タブで確認できます。

オントロジーサイドパネルの「SDK の生成」タブ

新しいバージョンを生成 を選択すると、新しく作成されたバージョンが SDK の生成タブ に表示されます。SDK バージョンは、「公開済み」と表示されるまで使用できません。

公開が失敗する一般的な理由には以下が含まれます:

  • 依存するオブジェクトタイプをインポートせずにアクションタイプを使用する。
  • プロジェクトスコープに存在しない基となるデータソースを持つオブジェクトタイプを使用する。

オントロジーサイドパネルの「SDK の生成」タブで新しく作成された SDK バージョンの公開中

コードでオントロジー SDK バージョンを使用する

公開に成功したバージョンは、エディター内でインポートして使用できます。まず、オントロジー サイドパネルの SDK の生成 タブで使用したいバージョンのカードをクリックします。これにより、エディターの言語に合わせたコードスニペットがいくつか表示されます。スニペットをクリックすると、クリップボードにコピーされ、エディターに貼り付けることができます。

表示されるスニペットは、エディターの言語によって異なります。すべてのサポートされている言語には、SDK のバージョンをインストールするための「パッケージをインストール」スニペットと、SDK をインポートしてオントロジーと対話するための Foundry クライアントを初期化するための「クライアントを初期化」スニペットがあります。

オントロジーサイドパネルの「SDK の生成」タブで公開された SDK バージョンの下に展開されたスニペット

オントロジー SDK の使用

オントロジー SDK が正常に公開された後、SDK のインストールとインポートの指示に従います。次のコマンドを実行できます:

# mambaパッケージマネージャを使用して{sdk_package_name}をインストールします
# -y: コマンド実行中の質問に自動的に「yes」を答えて進行します
# -q: インストール過程の詳細な出力を抑制します(静かなモード)
!mamba install -y -q {sdk_package_name}

次に、以下のコードスニペットを使用して、FoundryClient を初期化します。これにより、オントロジー SDK の使用を開始できます。

Copied!
1 2 3 4 5 from {sdk_package_name} import FoundryClient client = FoundryClient() # FoundryClient クラスを {sdk_package_name} からインポート # FoundryClient のインスタンスを作成

基本的な使用例

インポートされたオブジェクトやリンクタイプは、Data entities タブで選択することで、その特定のリソースの使用例を表示できます。以下の例は、Code WorkspacesでのOSDKのエンドツーエンドの使用を示す、より長く、一般的な例です。

Python OSDK 使用例

以下の例は、Pythonを使用してOSDKと対話する方法を示しています。この例では、ユーザーのSDKの最後に正常に公開されたバージョンに「Aircraft」というオブジェクトタイプと「ActionMode」というアクションタイプが含まれていることを前提としています。この例の {sdk_package_name} は、ユーザーのSDKのパッケージ名に置き換える必要があります。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 AircraftObject = client.ontology.objects.Aircraft # オブジェクトを取得し、プロパティを表示 my_aircraft = AircraftObject.get(1) my_aircraft.date_of_manufacture # オブジェクトの繰り返し処理 for aircraft in AircraftObject.take(2): print(aircraft.current_location) # 集約 AircraftObject.aggregate({"min_id": Aircraft.id.min(), "max_id": Aircraft.id.max(), "aircraft_count": Aircraft.count()}).compute() # フィルター my_a330s = AircraftObject.where((Aircraft.type == "A330") | (Aircraft.id == 160)).take(1) # アクション: 検証と適用 import datetime from {sdk_package_name}.types import ActionMode action_validation = client.ontology.actions.change_manufacture_date({"mode": ActionMode.VALIDATION_ONLY}, aircraft=1, date_of_manufacture="2020-05-01") if action_validation.result == "VALID": client.ontology.actions.change_manufacture_date(aircraft=1, date_of_manufacture="2023-05-26")

以下、コメントの翻訳です:

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 AircraftObject = client.ontology.objects.Aircraft # オブジェクトを取得し、プロパティを表示します my_aircraft = AircraftObject.get(1) my_aircraft.date_of_manufacture # オブジェクトを順番に処理します for aircraft in AircraftObject.take(2): print(aircraft.current_location) # 集約操作を行います AircraftObject.aggregate({"min_id": Aircraft.id.min(), "max_id": Aircraft.id.max(), "aircraft_count": Aircraft.count()}).compute() # 特定の条件でフィルタリングします my_a330s = AircraftObject.where((Aircraft.type == "A330") | (Aircraft.id == 160)).take(1) # アクション: 検証と適用 import datetime from {sdk_package_name}.types import ActionMode # 製造日を変更するアクションを検証モードで実行します action_validation = client.ontology.actions.change_manufacture_date({"mode": ActionMode.VALIDATION_ONLY}, aircraft=1, date_of_manufacture="2020-05-01") # 検証結果が有効なら、製造日を変更します if action_validation.result == "VALID": client.ontology.actions.change_manufacture_date(aircraft=1, date_of_manufacture="2023-05-26")

R OSDK使用例

Code Workspacesは、reticulate ↗パッケージを通じて、RでのOSDKをサポートしています。これにより、RからPythonを呼び出すことが可能になります。

この例では、RにPython OSDKバージョンをインポートし、オブジェクトタイプと対話する方法を示しています。この例では、ユーザーのSDKに"Aircraft"という名前のオブジェクトタイプが含まれていることを前提としています。{sdk_package_name}はユーザーのSDKのパッケージ名で置き換える必要があります。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 library(reticulate) # reticulateパッケージを読み込む osdk <- import("{sdk_package_name}") # SDKパッケージをインポートする client <- osdk$FoundryClient() # FoundryClientを初期化する aircraft_object = client$ontology$objects$Aircraft # Aircraftオブジェクトを取得する # 1つのオブジェクトを取得する aircraft_object$take(1L) # IDによりオブジェクトを取得する aircraft_object$get("1")

RとPythonはデフォルトの数値タイプが異なるため、Python APIが整数を期待している場合、R内でLサフィックスを使用する必要があります。reticulateの公式ドキュメンテーションで詳しく学びましょう。↗


Jupyter®、JupyterLab®、およびJupyter®のロゴはNumFOCUSの商標または登録商標です。

RStudio®とShiny®はPosit™の商標です。

参照されているすべての第三者の商標(ロゴとアイコンを含む)は、それぞれの所有者の財産のままです。所属関係や推奨を示すものではありません。