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

評価関数とオントロジーの編集

評価スイートを実行すると、各テストケースのロジック関数が実行されます。オントロジーの編集(オブジェクトの作成、編集、削除など)を伴う関数では、各テストケースがオントロジーのシミュレーション内で実行されます。これにより、テストおよび評価中に実際のオントロジーが変更されないことが保証されます。

オントロジーの編集用のカスタム評価関数

オントロジーの編集を行う AIP Logic 関数では、ユーザーは TypeScript でカスタム評価関数を設定するか、中間パラメーターを使用する必要があります。カスタム評価関数は、ブール値型または数値型を返す必要があります。また、ブール値型または数値型で構成される struct を返すことで、1個の評価関数から複数のメトリクスを返すこともできます。

Evaluations アプリケーションで評価関数を追加すると、Code Repositories で関数を作成するか、既存の公開済み関数を選択するよう求めるダイアログが表示されます。以下のガイドを使って、さまざまな種類のオントロジーの編集を探索し、その評価に TypeScript 関数を効果的に使用する方法を学びます。

作成されたオブジェクト

オブジェクトの作成を伴うオントロジーの編集では、作成されたオブジェクトはシミュレーションされたオントロジー内にのみ存在します。そのため、これらの作成されたオブジェクトを、直接渡すためのテストケースのパラメーターとして設定することはできません。代わりに、オブジェクトを識別できるプロパティを使って検索し、そのプロパティを確認します。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 @Function() public async checkTicketWasCreated( expectedRequester: string, expectedDate: LocalDate, expectedClassification: string, ): Promise<boolean> { const matches = Objects.search().supportTicket() .filter(ticket => ticket.ticketRequester.exactMatch(expectedRequester)) .filter(ticket => ticket.ticketCreationDate.exactMatch(expectedDate)) .all(); if (matches.length !== 1) { return false; } return matches[0].classification === expectedClassification; }

編集されたオブジェクト

オブジェクト編集の出力タイプでは、編集されたオブジェクトは実際のオントロジー内にすでに存在します。シミュレーションされたオントロジー内では、以下に示すように、そのオブジェクトを関数に直接渡してプロパティを確認できます。

Copied!
1 2 3 4 5 6 7 @Function() public checkTicketClassification( ticket: SupportTicket, expectedClassification: string, ): boolean { return ticket.classification === expectedClassification; }

削除されたオブジェクト

オブジェクトの削除を伴うオントロジーの編集では、シミュレーションされたオントロジー内でオブジェクトが削除されることが期待されるため、そのオブジェクトを評価関数に渡すことはできません。オブジェクトが実際に削除されたことを確認するには、オブジェクトを識別できるプロパティを渡して検索し、結果がないことを確認します。

Copied!
1 2 3 4 5 6 7 @Function() public async checkTicketWasDeleted(ticketId: string): Promise<boolean> { const count = await Objects.search().supportTicket() .filter(ticket => ticket.ticketId.exactMatch(ticketId)) .count(); return count === 0; }