Saltar al contenido principal
Para cada elemento de búsqueda, el código de una actividad de Extraction Rules contiene una serie de reglas que se ejecutan secuencialmente. Cada regla consta de dos partes y termina con un punto y coma:
Parte izquierda
=>
Parte derecha;
La parte izquierda verifica una condición o encuentra valores que cumplen una condición. La parte derecha crea nuevas instancias de elementos de búsqueda y les asigna los valores.

Ejemplo

La siguiente regla simple encuentra un elemento de búsqueda kw_Contract que contiene la palabra clave “Contract”:
[ t: "Contract" ] // busca la palabra "Contract" y asigna el token a una nueva variable llamada t
=>
kw_Contract( t ); // crea una nueva instancia del elemento de búsqueda kw_Contract en cada repetición de la palabra "Contract"

Estructura del panel izquierdo

El panel izquierdo consta de hasta tres partes:
Condición_de_existencia
Plantilla_de_token
Verificación_adicional
  1. Condición de existencia (opcional): Busca un objeto que tenga los atributos especificados. Recomendamos asignarle un nombre al objeto, si existe, para poder reutilizarlo dentro de la misma regla. La condición también puede indicar la ausencia de un objeto.

Ejemplos

Si necesita encontrar solo una instancia del elemento de búsqueda SellerName, especifique al principio de la regla que aún no se ha encontrado ninguna instancia:
~SellerName // verifica que el elemento de búsqueda SellerName todavía no se haya encontrado
Tenga en cuenta que no puede asignar un nombre de variable cuando usa condiciones negativas, porque una condición negativa implica que no existe ningún objeto. Esta condición verifica la existencia de una entidad con nombre de tipo dirección:
a: NERAddress // verifica la existencia de una entidad con nombre de dirección y la asigna a una nueva variable llamada a
Consulta Condición de existencia para obtener detalles sobre la sintaxis utilizada en esta sección.
  1. Plantilla de tokens (obligatoria): Consiste en una secuencia de tokens. Un token es una palabra de un lenguaje natural o un signo de puntuación. Por lo general, los tokens no contienen espacios, salvo en algunos casos poco comunes en los que el espacio forma parte de una construcción fija utilizada como una sola palabra: such as, a lot.

Ejemplo

Por ejemplo, la siguiente plantilla de tokens consta de un token que coincide con la palabra clave “Grantor”, un token con dos puntos y un token repetido con la entidad con nombre Person (marcado como repetido porque el nombre de una persona puede constar de varias palabras, cada una como un token independiente):
["Grantor"] [":"] [p: @NERPerson]+
La plantilla hará coincidir una cadena como “Grantor: Anne Smith” y asignará el valor “Anne Smith” a la variable p. Consulta Plantilla de token para obtener detalles sobre la sintaxis utilizada en esta sección.
  1. Comprobación adicional (opcional): Verifica condiciones adicionales para objetos que ya se mencionaron en la regla.

Ejemplo

Por ejemplo, supongamos que buscas las partes de un contrato y has agrupado los campos en dos instancias de grupo separadas, una para cada parte. Si has encontrado el nombre de una organización y una dirección, puedes comprobar si estos elementos de búsqueda comparten el mismo elemento padre. Si es así, significa que esa dirección corresponde a esa organización.
n: Party.OrgName // el elemento de búsqueda del nombre de la organización se encontró anteriormente
[ a: @Party.Address ] // encuentra el token en el que se encontró el elemento de búsqueda de la dirección
// Verifica que los elementos de búsqueda del nombre de la organización y la dirección
// sean elementos secundarios de la misma instancia del elemento de grupo Party
parent( n ) == parent( obj( a ) )
Consulte Comprobación adicional para más detalles sobre la sintaxis utilizada en esta sección.

Estructura de la parte derecha

La parte derecha consta de una o varias secciones separadas por comas que crean nuevas instancias de grupos y elementos de búsqueda, y asignan valores a dichos elementos:
Crear_grupo_A,
Crear_elemento_B_y_asignar_valor
Por lo general, la parte izquierda de la regla localiza un token, una secuencia de tokens o un objeto y lo asigna a una variable. Luego, la parte derecha puede usar esa variable para escribir su valor en uno de los elementos de búsqueda. Por ejemplo, el siguiente código escribe el valor de t en el elemento de búsqueda Element1:

Ejemplo

[t: "Lease"] ["Agreement"]
=>
Root.kw_AgreementType( t );
Consulte Parte derecha para obtener información detallada sobre la sintaxis utilizada en esta sección. Nota: El código solo crea instancias de elementos de búsqueda y elementos de búsqueda de grupos que ya existen en la actividad Extraction Rules. No se pueden crear nuevos elementos de búsqueda mediante código. Para crear elementos de búsqueda adicionales en la estructura, use la pestaña Search Elements en el Activity Editor.

Referencing search elements

Para acceder a un elemento de búsqueda en el código, debe usar un nombre que lo identifique de forma inequívoca. Si un elemento tiene un nombre único, puede referirse a él simplemente por su nombre. Si hay varios elementos con el mismo nombre, debe especificar una ruta lo suficientemente precisa como para identificar el elemento.

Ejemplo

Considere la siguiente estructura anidada de elementos de búsqueda:
  • Property
    • Type
    • Address
  • Buyer
    • FullName
    • Address
Para hacer referencia al nombre del comprador en el código, puede simplemente usar “FullName”, ya que el elemento con ese nombre es único. “Buyer.FullName” o “Root.Buyer.FullName” también funcionarán. Para hacer referencia a la dirección del comprador, deberá agregar al menos el nombre del grupo principal, porque hay dos elementos llamados “Address”. En este caso, debe usar “Buyer.Address” o “Root.Buyer.Address”.

Reglas específicas del idioma

Puede especificar el idioma del documento para el que se debe ejecutar la regla. Al hacerlo, la regla se omitirá para otros idiomas. Anteceda la regla con un símbolo de almohadilla (#) y el código de idioma de dos letras (norma ISO 639-1).

Códigos de los idiomas compatibles

IdiomaCódigo
Inglésen
Alemánde
Francésfr
Españoles
Italianoit
Portugués (estándar)pt
Japonésja
Rusoru
Por ejemplo, si procesa documentos en inglés y en español, quizá desee usar palabras clave específicas del idioma:

Ejemplo

#en
[ t: "Grantor" ] // la palabra clave para documentos en inglés
=>
kw_landlord( t );

#es
[ t: "Arrendador" ] // la palabra clave para documentos en español
=>
kw_landlord( t );