Zum Hauptinhalt springen
Für jedes Suchelement enthält der Code in einer Extraction Rules-Aktivität eine Reihe von Regeln, die der Reihe nach ausgeführt werden. Jede Regel besteht aus zwei Teilen und endet mit einem Semikolon:
Linke Seite
=>
Rechte Seite;
Der linke Teil prüft eine Bedingung oder ermittelt Werte, die diese erfüllen. Der rechte Teil erstellt neue Suchelement-Instanzen und weist ihnen die Werte zu.

Beispiel

Die folgende einfache Regel findet ein Such-Element kw_Contract, das das Schlüsselwort „Contract“ enthält:
[ t: "Contract" ] // sucht nach dem Wort „Contract" und weist das Token einer neuen Variablen namens t zu
=>
kw_Contract( t ); // erstellt bei jeder Wiederholung des Wortes „Contract" eine neue Instanz des Suchelements kw_Contract

Struktur des linken Bereichs

Der linke Bereich besteht aus bis zu drei Komponenten:
Existenzbedingung
Token-Vorlage
Zusätzliche_Prüfung
  1. Existenzbedingung (optional): Findet ein Objekt mit den angegebenen Attributen. Wir empfehlen, dem Objekt einen Namen zuzuweisen, sofern es existiert, damit Sie es innerhalb derselben Regel erneut verwenden können. Die Bedingung kann auch das Fehlen eines Objekts angeben.

Beispiele

Wenn Sie nur eine Instanz des Suchelements SellerName finden möchten, geben Sie zu Beginn der Regel an, dass bisher keine Instanz gefunden wurde:
~SellerName // prüft, ob das Suchelement SellerName noch nicht gefunden wurde
Beachten Sie, dass Sie bei der Verwendung negativer Bedingungen keinen Variablennamen zuweisen können, da eine negative Bedingung bedeutet, dass kein Objekt vorhanden ist. Diese Bedingung prüft das Vorhandensein einer Adress-Entität:
a: NERAddress // prüft das Vorhandensein einer Adress-Named-Entity und weist diese einer neuen Variablen namens a zu
Siehe Existence condition für Details zur in diesem Abschnitt verwendeten Syntax.
  1. Tokenvorlage (erforderlich): Besteht aus einer Abfolge von Tokens. Ein Token ist ein Wort einer natürlichen Sprache oder ein Satzzeichen. Tokens enthalten in der Regel keine Leerzeichen, abgesehen von seltenen Fällen, in denen das Leerzeichen Teil einer Konstruktion ist, die als einzelnes Wort verwendet wird: such as, a lot.

Beispiel

Die folgende Token-Vorlage besteht aus einem Token, das dem Schlüsselwort „Grantor“ entspricht, einem Token mit einem Doppelpunkt und einem wiederholten Token mit der benannten Entität Person (als wiederholend angegeben, da der Name einer Person aus mehreren Wörtern bestehen kann, wobei jedes ein eigenes Token ist):
["Grantor"] [":"] [p: @NERPerson]+
Die Vorlage erkennt eine Textzeichenfolge wie „Grantor: Anne Smith“ und weist der Variablen p den Wert „Anne Smith“ zu. Siehe Token Template für Details zur in diesem Abschnitt verwendeten Syntax.
  1. Zusätzliche Prüfung (optional): Prüft zusätzliche Bedingungen für Objekte, die bereits in der Regel erwähnt wurden.

Beispiel

Angenommen, Sie suchen die Parteien eines Vertrags und haben die Felder in zwei separate Gruppeninstanzen aufgeteilt, eine für jede Partei. Nachdem Sie einen Organisationsnamen und eine Adresse gefunden haben, können Sie prüfen, ob diese Such­elemente denselben übergeordneten Eintrag haben. Ist das der Fall, bedeutet dies, dass diese Adresse zu dieser Organisation gehört.
n: Party.OrgName // das Suchelement für den Organisationsnamen wurde bereits gefunden
[ a: @Party.Address ] // findet das Token, auf dem das Suchelement für die Adresse gefunden wurde
// Prüft, ob die Suchelemente für Organisationsname und Adresse
// untergeordnete Elemente derselben Instanz des Gruppenelements Party sind
parent( n ) == parent( obj( a ) )
Siehe Additional check für Details zur hier verwendeten Syntax.

Struktur des rechten Teils

Der rechte Teil besteht aus einem oder mehreren durch Kommas getrennten Abschnitten, die neue Instanzen von Gruppen und Suchelementen erstellen und den Suchelementen Werte zuweisen:
Gruppe_A_erstellen,
Element_B_erstellen_und_Wert_zuweisen
Üblicherweise findet der linke Teil der Regel ein Token, eine Tokenfolge oder ein Objekt und weist es einer Variablen zu. Anschließend kann der rechte Teil diese Variable verwenden, um ihren Wert in eines der Suchelemente zu schreiben. Beispielsweise schreibt der folgende Code den Wert von t in das Suchelement Element1:

Beispiel

[t: "Lease"] ["Agreement"]
=>
Root.kw_AgreementType( t );
Siehe rechter Teil für Details zur in diesem Abschnitt verwendeten Syntax. Hinweis: Code erstellt nur Instanzen von Such-Elementen und Gruppen-Such-Elementen, die in der Aktivität Extraction Rules bereits vorhanden sind. Es können keine neuen Such-Elemente per Code erstellt werden. Um zusätzliche Such-Elemente in der Struktur zu erstellen, verwenden Sie die Registerkarte Search Elements im Activity Editor.

Verweisen auf Suchelemente

Um in Code auf ein Suchelement zuzugreifen, müssen Sie einen Namen verwenden, der dieses Element eindeutig identifiziert. Wenn ein Element einen eindeutigen Namen hat, können Sie einfach über diesen Namen darauf verweisen. Wenn es mehrere Elemente mit demselben Namen gibt, müssen Sie einen ausreichend langen Pfad angeben, um das Element eindeutig zu identifizieren.

Beispiel

Betrachten Sie die folgende verschachtelte Struktur von Suchelementen:
  • Property
    • Type
    • Address
  • Buyer
    • FullName
    • Address
Um im Code auf den Namen des Käufers zu verweisen, können Sie einfach „FullName“ verwenden, da das Element mit diesem Namen eindeutig ist. „Buyer.FullName“ oder „Root.Buyer.FullName“ funktionieren genauso. Um auf die Adresse des Käufers zu verweisen, müssen Sie mindestens den Namen der übergeordneten Gruppe angeben, da es zwei Elemente namens „Address“ gibt. Verwenden Sie hier „Buyer.Address“ oder „Root.Buyer.Address“.

Sprachspezifische Regeln

Sie können die Sprache des Dokuments angeben, für die die Regel ausgeführt werden soll. Dadurch wird die Regel für andere Sprachen übersprungen. Stellen Sie der Regel ein Rautezeichen (#) und den zweistelligen Sprachcode (ISO-639-1) voran.

Codes für die unterstützten Sprachen

SpracheCode
Englischen
Deutschde
Französischfr
Spanisches
Italienischit
Portugiesisch (Standard)pt
Japanischja
Russischru
Wenn Sie beispielsweise Dokumente auf Englisch und Spanisch verarbeiten, möchten Sie möglicherweise sprachspezifische Schlüsselwörter verwenden:

Beispiel

#en
[ t: "Grantor" ] // das Schlüsselwort für englische Dokumente
=>
kw_landlord( t );

#es
[ t: "Arrendador" ] // das Schlüsselwort für spanische Dokumente
=>
kw_landlord( t );