跳轉到主要內容
當您建立元素並在 Properties 窗格中設定其屬性時,程式會自動為這些屬性產生程式碼。本節將說明這些自動產生的程式碼,讓您在需要時可以進行修改。

搜尋元素結構

搜尋元素結構範例 Parties.Address 搜尋元素自動產生的程式碼如下:

自動生成規則

~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 );
如您所見,自動產生的程式碼一律以完整路徑來參照每個搜尋元素,以確保不會發生命名衝突。在這種情況下,我們可以縮短元素名稱,將各名稱中的 Root 移除。

元素名稱較短的規則

~Parties.Address,
t1 : Parties.Organization,
t2 : kw_PreNextParty
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Parties.Address ]+
=>
Parties.Address( t );
現在我們可以逐一說明每個敘述的意思:

規則說明

// Check that the Address search element hasn't been found yet, because we need only the first instance
~Parties.Address,
// Get the Organization search element and the next party keyword search element. They were found before Address
t1 : Parties.Organization,
t2 : kw_PreNextParty
// 尋找包含一個 NERAddress 命名實體的標記序列
// (「same」關鍵字指定如果有多個 NERAddress 時,只應匹配一個)
// 地址應位於組織名稱之後和下一個當事方關鍵字之前
// + 符號表示標記序列可能由多個詞彙組成
// 結尾的 ~@Parties.Address 條件確保
// 地址不會在相同的標記上再次匹配
[ t: @NERAddress( same, right_to( t1 ), left_to( t2 ) ) ~@Parties.Address ]+
=>
Parties.Address( t );