Saltar al contenido principal
Cuando crea un elemento y configura sus propiedades en el panel Properties, el programa genera automáticamente código para estas propiedades. Esta sección le ayudará a comprender el código autogenerado, de modo que pueda modificarlo si es necesario.

Estructura del elemento de búsqueda

Ejemplo de estructura del elemento de búsqueda El código generado automáticamente para el elemento de búsqueda Parties.Address tendrá el siguiente aspecto:

Regla generada automáticamente

~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 );
Como puede ver, el código generado automáticamente siempre hace referencia a cada elemento de búsqueda usando la ruta completa para evitar conflictos de nombres. En este caso, podemos acortar los nombres de los elementos, eliminando Root de cada uno.

Regla con nombres de elementos más breves

~Parties.Address,
t1 : Parties.Organization,
t2 : kw_PreNextParty
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Parties.Address ]+
=>
Parties.Address( t );
Ahora podemos desglosar el significado de cada instrucción:

Explicación de la regla

// Verificar que el elemento de búsqueda Address aún no se haya encontrado, porque solo necesitamos la primera instancia
~Parties.Address,
// Obtener el elemento de búsqueda Organization y el siguiente elemento de búsqueda de palabra clave de parte. Se encontraron antes de Address
t1 : Parties.Organization,
t2 : kw_PreNextParty
// Encontrar la secuencia de tokens que contiene una entidad nombrada NERAddress
// (la palabra clave "same" especifica que solo se debe coincidir con un NERAddress si hay varios)
// La dirección debe estar ubicada después del nombre de la organización y antes de la palabra clave para la siguiente parte
// El signo + significa que la secuencia de tokens puede consistir en varias palabras
// La condición ~@Parties.Address al final garantiza
// que la dirección no se vuelva a coincidir en los mismos tokens
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Parties.Address ]+
=>
Parties.Address( t );