> ## 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.

# Automatisch generierte Regeln verstehen

> Lesen Sie automatisch generierten Code für Eigenschaften von NLP-Suchelementen — mit Vollpfadreferenzen, Namensvereinfachung und einer Erklärung Regel für Regel in Advanced Designer.

Wenn Sie ein Element erstellen und seine Eigenschaften im Bereich **Properties** konfigurieren, erzeugt das Programm automatisch Code für diese Eigenschaften. Dieser Abschnitt hilft Ihnen, den automatisch generierten Code zu verstehen, damit Sie ihn bei Bedarf anpassen können.

<div id="search-element-structure">
  ## Struktur des Suchelements
</div>

<Frame>
  <img src="https://mintcdn.com/abbyy/Bmjdl5TjCaidPxKi/images/vantage/advanced-designer/ad_extractionrulesnlp_exampleelements.png?fit=max&auto=format&n=Bmjdl5TjCaidPxKi&q=85&s=85fa49cf52523e1ae1ca9dcd95c0de24" alt="Beispiel für die Struktur des Suchelements mit der Gruppe Parties, die die untergeordneten Elemente Organisation und Adresse enthält" style={{ width:"69%" }} width="542" height="464" data-path="images/vantage/advanced-designer/ad_extractionrulesnlp_exampleelements.png" />
</Frame>

Der automatisch generierte Code für das Suchelement `Parties.Address` sieht folgendermaßen aus:

<div id="auto-generated-rule">
  ## Automatisch generierte Regel
</div>

```
~Root.Parties.Address,
t1 : Root.Parties.Organization,
t2 : Root.kw_PreNextParty
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Root.Parties.Address ]+
=>
Root.Parties.Address( t );
```

Wie Sie sehen, verweist der automatisch generierte Code stets auf jedes Such­element über den vollständigen Pfad, um Namenskonflikte zu vermeiden. In diesem Fall können wir [die Elementnamen kürzen](/de/vantage/documentation/advanced-designer/activities/nlp-extraction-rules/code-syntax/basic-concepts#referencing-search-elements), indem wir „Root“ bei jedem entfernen.

<div id="rule-with-shorter-element-names">
  ## Regel mit kürzeren Elementnamen
</div>

```
~Parties.Address,
t1 : Parties.Organization,
t2 : kw_PreNextParty
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Parties.Address ]+
=>
Parties.Address( t );
```

Wir können nun die Bedeutung jeder Aussage aufschlüsseln:

<div id="rule-explained">
  ## Regel erklärt
</div>

```
// Prüfen, dass das Suchelement Address noch nicht gefunden wurde, da nur die erste Instanz benötigt wird
~Parties.Address,
// Das Suchelement Organization und das nächste Schlüsselwort-Suchelement für Party abrufen. Diese wurden vor Address gefunden
t1 : Parties.Organization,
t2 : kw_PreNextParty
// Die Token-Sequenz finden, die eine Named Entity vom Typ NERAddress enthält
// (das Schlüsselwort „same" gibt an, dass nur eine NERAddress abgeglichen werden soll, falls mehrere vorhanden sind)
// Die Adresse sollte sich nach dem Organisationsnamen und vor dem Schlüsselwort für die nächste Partei befinden
// Das Pluszeichen bedeutet, dass die Token-Sequenz aus mehreren Wörtern bestehen kann
// Die Bedingung ~@Parties.Address am Ende stellt sicher,
// dass die Adresse nicht erneut mit denselben Tokens abgeglichen wird
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Parties.Address ]+
=>
Parties.Address( t );
```
