Vai al contenuto principale
Quando si crea un elemento e se ne configurano le proprietà nel riquadro Properties, il programma genera automaticamente il codice relativo a tali proprietà. Questa sezione ti aiuterà a comprendere il codice generato automaticamente, così da poterlo modificare se necessario.

Struttura dell’elemento di ricerca

Esempio di struttura dell'elemento di ricerca Il codice generato automaticamente per l’elemento di ricerca Parties.Address sarà simile al seguente:

Regola creata 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 );
Come puoi vedere, il codice generato automaticamente fa sempre riferimento a ciascun elemento di ricerca utilizzando il percorso completo per evitare conflitti di nomi. In questo caso, possiamo accorciare i nomi degli elementi, rimuovendo Root da ciascuno.

Regola con nomi di elementi più brevi

~Parties.Address,
t1 : Parties.Organization,
t2 : kw_PreNextParty
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Parties.Address ]+
=>
Parties.Address( t );
Ora possiamo analizzare il significato di ciascuna istruzione:

Regola spiegata

// Verifica che l'elemento di ricerca Address non sia ancora stato trovato, perché è necessaria solo la prima istanza
~Parties.Address,
// Ottieni l'elemento di ricerca Organization e l'elemento di ricerca della parola chiave della parte successiva. Sono stati trovati prima di Address
t1 : Parties.Organization,
t2 : kw_PreNextParty
// Trova la sequenza di token che contiene un'entità denominata NERAddress
// (la parola chiave "same" specifica che deve corrispondere un solo NERAddress se ce ne sono diversi)
// L'indirizzo deve trovarsi dopo il nome dell'organizzazione e prima della parola chiave per la parte successiva
// Il segno + indica che la sequenza di token può essere composta da più parole
// La condizione ~@Parties.Address alla fine garantisce
// che l'indirizzo non corrisponda nuovamente agli stessi token
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Parties.Address ]+
=>
Parties.Address( t );