> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Extraction Rules activity をコンパイルしてマッチングする

> Extraction Rules activity をコンパイルして要素プロパティを検証し、その後 documents とマッチングしてオブジェクトを特定し、検出精度を確認します。

Extraction Rules activity は、画像オブジェクトの検索条件の指定に使用する要素プロパティが有効かどうかを確認するためにコンパイルされます。

<div id="compilation-checks">
  ## コンパイルチェック
</div>

次の項目がチェックされます。

1. **要素のプロパティ。** オブジェクトのParameterや検索領域を指定するために使用される要素のプロパティは、検索対象の要素より上位にある **Search Elements** ツリー内の要素のみにリンクする必要があります。満たされない場合、プログラムが無効な要素を示します。
2. **Field のプロパティ。** Field のプロパティには、除外された要素や存在しない要素へのリンクを含めないでください。
3. **FlexiLayout language における正規表現:**
   * コードに構文エラーがあってはなりません。
   * **Search Conditions** セクションで指定された追加条件は、検索対象の要素より上位にある **Search Elements** ツリー内で記述された要素のみを参照する必要があります。**Hypotheses Evaluation** セクションで指定された追加条件は、検索対象の要素および **Search Elements** ツリー内でその要素より上位にある要素のみを参照する必要があります。
   * コードで使用されるすべてのグローバル定数は定義されている必要があります。
   * コードで使用されるすべての変数は定義され、初期化されている必要があります。
   * コードは、そのセクションで利用可能なエンティティのみを呼び出す必要があります。
   * ある型の要素に別の型の要素のプロパティを付与してはなりません (例: Static Text に **Max width** プロパティを持たせることはできません) 。

Extraction Rules アクティビティは、アクティビティエディターを終了する際と、**Match** または **Test Activity** をクリックしたときに自動的にコンパイルされます。コンパイルでエラーが検出された場合、マッチングは実行できません。エラーのある検索要素にはエラー icon が表示されます。この icon にマウスカーソルを合わせると、エラーの詳細が表示されます。続行するには、上記の条件を満たすようにエラーを修正してください。

<div id="matching-process">
  ## マッチングプロセス
</div>

**マッチング** とは、Advanced Designer が要素のプロパティで指定された条件に合致する画像オブジェクトを検索する処理です。プログラムは **Search Elements** ツリーを上から順にたどり、要素で定義されたオブジェクトを一つずつ特定していきます。

<div id="matching-example">
  ### マッチングの例
</div>

シンプル要素 **a** と **b** の2つからなるグループ要素 **A** と、要素 **aa** と **bb** からなるグループ要素 **B** があるとします。さらに、シンプル要素 **c** と **d** があるとします。要素 **A**、**c**、**d** は同じネストレベルにあります。Extraction Rules アクティビティでマッチングを行う際、プログラムは次の順序で対応するオブジェクトの特定を試みます：**a**、**b**、**aa**、**bb**、**c**、**d**。

```
要素 A
    要素 a
    要素 b
    要素 B
        要素 aa
        要素 bb
要素 c
要素 d
```

必須要素に対応するオブジェクトをプログラムがすべて検出できれば、マッチングは成功します。必須オブジェクトのうち少なくとも1つでも検出に失敗した場合、マッチングは中断され、アクティビティを編集する必要があります。

<div id="matching-commands">
  ## マッチングコマンド
</div>

Extraction Rules アクティビティをマッチングするには、次のいずれかのコマンドを使用できます。

* **Match** は、アクティビティエディター の Results タブに結果を表示せずに、選択したドキュメントに対してアクティビティのマッチングを実行します。アクティビティのデバッグ時に、特定の要素のプロパティの妥当性を確認する用途に適しています。
* **Test Activity** は、アクティビティセット内の各ドキュメントに対してアクティビティのマッチングを実行します。マッチング結果は統計に表示され、Extraction Rules アクティビティの現行バージョンと過去のバージョンのマッチング品質を比較するために使用されます。

<Note>
  Extraction Rules アクティビティのコンパイルおよびマッチングのステータスは、通知ログ (右上のベルアイコンから表示) に表示されます。該当する通知をクリックすると、通知ログからマッチング結果に移動できます。
</Note>

<div id="verify-activity">
  ## アクティビティの検証
</div>

抽出ルールのアクティビティにエラーがないかを素早く確認するには、その他のアイコンをクリックし、**アクティビティの検証**をクリックします。抽出ルールのアクティビティはコンパイルされますが、照合は実行されません。
