Pular para o conteúdo principal
Quando você cria um elemento e define suas propriedades no painel Properties, o programa gera automaticamente o código correspondente a essas propriedades. Esta seção ajuda você a entender o código gerado automaticamente, para que possa modificá-lo, se necessário.

Estrutura do elemento de pesquisa

Exemplo da estrutura do elemento de pesquisa O código gerado automaticamente para o elemento de pesquisa Parties.Address será o seguinte:

Regra gerada automaticamente

~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 você pode ver, o código gerado automaticamente sempre faz referência a cada elemento de pesquisa usando o caminho completo para garantir que não haja conflito de nomes. Neste caso, podemos reduzir os nomes dos elementos, removendo Root de cada um.

Regra com nomes de elementos mais curtos

~Parties.Address,
t1 : Parties.Organization,
t2 : kw_PreNextParty
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Parties.Address ]+
=>
Parties.Address( t );
Agora podemos detalhar o significado de cada instrução:

Explicação da regra

// Verifica se o elemento de busca Address ainda não foi encontrado, pois precisamos apenas da primeira instância
~Parties.Address,
// Obtém o elemento de busca Organization e o próximo elemento de busca de palavra-chave de parte. Eles foram encontrados antes de Address
t1 : Parties.Organization,
t2 : kw_PreNextParty
// Localiza a sequência de tokens que contém uma entidade nomeada NERAddress
// (a palavra-chave "same" especifica que apenas um NERAddress deve ser correspondido caso haja vários)
// O endereço deve estar localizado após o nome da organização e antes da palavra-chave para a próxima parte
// O sinal + significa que a sequência de tokens pode ser composta por várias palavras
// A condição ~@Parties.Address no final garante
// que o endereço não será correspondido nos mesmos tokens novamente
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Parties.Address ]+
=>
Parties.Address( t );