詞典是語言相關術語的控制字彙,而相關術語通常涵蓋特定的主題區。它可視為語意的網路,而每個術語都以節點代表。 若兩個術語相關,那麼它們的節點就會用以關係名稱標出鏈節。 所有與某特定術語直接相關的術語,都可透過從它的節點向外延伸的連結找到。進一步相關的術語則可以 經由重複先前的步驟所找到的節點,它們向外延伸的連結而找到。圖 16顯示非常小的詞典的結構範例。
![]() |
DB2 Text Extender 可讓您藉由新增來自先前所建立之詞典中的術語, 來展開搜尋術語。 請參照搜尋引數的語法以瞭解如何在查詢中 使用詞典擴充。
要建立可在搜尋應用程式中使用的詞典,您需要已被編譯為內部格式的詞典定義檔案。
此字典格式用在語言和精確的索引,和用於 Ngram 索引的字典不同。 因此,此產品提供兩種不同的詞典編譯器。 它們並不只是在概念上有些許的不同,同時它們也需要不同的來源格式。 所以,在您開始為您的搜尋應用程式定義詞典前,您應該先決定要使用哪個索引類型。
詞典的基本元件是「術語」及「關係」。
術語是用來表示詞典主旨領域中之觀念的字詞或表示式。例如,下列可以是一或一個以上詞典中的術語:
在 DB2 Text Extender 詞典中,術語的分類不是描述子就是非描述子。 描述子 是同義字類別中的術語, 且最喜歡用此術語來編製索引與搜尋。此類別中的其它術語都稱為非描述子。 例如,outline 及 shape 是同義詞, 其中 shape 可以是描述子, 而 outline 可以是非描述子。
Ngram 詞典不區分描述子與非描述子。
關係是兩個術語間之關聯的表示式。 關係的性質如下:
詞典展開可使用詞典中所定義的所有關係。 您也可以指定展開的深度。 這是來源術語與目標術語之間的最大轉移數目。 請注意,術語集可能會隨著深度的增加,而指數性增加。
下例顯示隨著深度增加而剛剛新增的術語。
health health service, paramedical, medicine, illness allergology, virology, veterinary medicine, toxicology, surgery, stomatology, rhumatology, radiotherapy, psychiatry, preventive medicine, pathology, odontology, nutrition, nuclear medicine, neurology, nephrology, medical check up, industrial medicine, hematology, general medicine, epidemiology, clinical trial, cardiology, cancerology
以下是 DB2 Text Extender 詞典提供的關係類型:
在 DB2 Text Extender 詞典中沒有預設關係。 您可給予每個關係類型一個名稱,例如 BROADER TERM,而名稱可以是助記鍵縮寫 (如 BT)。 詞典設計中所用的共用關係為:
關聯式關係是描述子間的雙向關係,可擴充到任何深度。 它可連結不相等也不是階層式關係的兩個術語,但是語意上與這類範圍有關, 而它們之間的鏈結可能會建議在編製索引或擷取時使用其它術語。
關聯式關係一般是指定成 RT(相關術語)。範例為:
要區分描述子與非描述子時,就像在 DB2 Text Extender 詞典中一樣,兩個有相同或類似意義的術語的同義字關係是單向的。 在同義字類別中, 會將其中一個術語指定成描述子。而其它術語則稱為非描述子。請參照Ngram 詞典關係 以找出同義字關係的定義 (若您不區分描述子和非描述子的話)。
共用指定 USE 會從給定的非描述子導向它的描述子。 共用指定 USE FOR 則會從描述子導向每個非描述子。 例如:
階層式關係是描述子間的單向關係, 此關係表示其中一個術語比其它術語更特別或較不平常。 此差異會將術語以階層來呈現,其中某一個術語代表一個類別, 而其下的術語就是它的成員組件。 例如,術語 mouse 屬於類別 rodent。
BROADER TERM 及 NARROWER TERM 是階層式關係。 例如:
其它 類型的關係是最一般的。它代表無法輕易落在其它一個種類的關聯。 其它類型的關係可以是雙向或單向的、 沒有深度限制,且描述子與非描述子之間可以有關係。
在可決定與其它術語之間的正確關係之前,此關係通常用於詞典內的新詞。
當然您也可以定義自己的雙向同義字關係, 只要對描述子的同義字關係使用聯合關係類型, 或甚至對獨斷術語的同義字關係使用其它關係類型。
Ngram 詞典支援下列兩種類型:
有兩種預設關係,而每種都以這兩種類型之一為基礎。 您可基於聯合 類型定義您自己的關係。若需詳細說明,請參閱建立 Ngram 詞典。
聯合關係是兩個概念不同但相關的術語之雙向關係。 預設關係 RELATED_TO 以及所有使用者定義的關係都是基於 此種關係類型。
範例為:
同義字關係是兩個意義相同或類似,且可彼此互相替代的術語的雙向關係。 例如,此關係可以用於某術語及其縮寫。 預設關係 SYNONYM_OF 是唯一基於此類型的關係。
範例為:
請參閱建立 Ngram 詞典。
安裝路徑的範例目錄中,有一個英文詞典編譯器輸入檔範例 desthes.sgm 。 OS/2 與 Windows 系統的字典目錄是:
磁碟機:\dmb\db2tx\samples
在 AIX、HP-UX 以及 SUN-Solaris 系統上,目錄是:
DB2TX_INSTOWNER /db2tx/samples
此詞典的編譯版本和它的 SGML 輸入檔儲存在字典目錄中。
磁碟機:\dmb\db2tx\dict 或 DB2TX_INSTOWNER/db2tx/dicts
屬於此詞典的檔案稱為 desthes.th1、 desthes.th2、 ...,以及 desthes.th6.。
要建立詞典,請先在檔案中定義它的內容。建議您為每個要定義的詞典使用一般目錄。 此檔案可以有除了 th1 到 th6 的副檔名,因為它們是用於詞典目錄的。 若您為 Ngram 詞典使用同一個目錄, 則請參閱建立 Ngram 詞典以取得更多未包含的副檔名。
然後編譯此檔案,只要執行:
txthesc -f 檔名 -c ccsid
其中,filename 只能包含字元 a-z、A-Z、及 0-9。
目前只支援 CCSID 850。
txthesc 在定義檔所在的同一目錄中會產生擁有檔名名稱的詞典檔案,而沒有副檔名及 th1 到 th6 的副檔名。若已存在相同名稱的詞典,則它會在無預警的狀況下被改寫。
請參照搜尋引數的語法已瞭解如何在查詢中使用詞典。
請使用 Standard Generalized Markup Language (SGML) 來指定詞典內容。下列圖解顯示建立詞典時所要遵循的語法規則。
>>-<thesaurus>--<header>--<thname>--thesaurus-name--</thname>---> .----------------------------. V | >----<rldef>-----| relation-definition |---+---</rldef>---------> .------------------------. V | >----</header>-------| thesaurus-entry |---+--</thesaurus>----->< relation-definition |---<rls>--<rlname>--relation-name--</rlname>-------------------> >-----<rltype>--+-ASSOCIATIVE--+---</rltype>----</rls>----------| +-SYNONYMOUS---+ +-HIERARCHICAL-+ '-OTHER--------' thesaurus-entry |---<en>--unique-number--,----+-1-+--<t>--term--</t>------------> '-2-' >-----+--------------------+--</en>-----------------------------| '-| related-terms |--' related-terms |---<r>---------------------------------------------------------> .--------------------------------------------------------. | .--------------------. | V V | | >--------<l>--relation-name-----<t>--term--</t>---+--- </l>---+> >-----</r>------------------------------------------------------|
relation-name 只能包含字元 a-z、 A-Z、及 0-9。
<thesaurus> <header> <thname>thesc example thesaurus</thname> <rldef> <rls> <rlname>Related Term</rlname> <rltype>associative</rltype> </rls> <rls> <rlname>Narrower Term</rlname> <rltype>hierarchical</rltype> </rls> <rls> <rlname>Instance</rlname> <rltype>hierarchical</rltype> </rls> <rls> <rlname>Synonym</rlname> <rltype>synonymous</rltype> </rls> </rldef> </header> <en> 2, 1 <t>database management system</t> <r> <l>Narrower Term <t>oo database management system</t> <t>relational database management system</t> </l> <l>Synonym <t>DBMS</t> </l> <l>Related Term <t>document management system</t> </l> <l>Instance <t>database</t> </l> </r> </en> <en> 5, 1 <t> relational database management system </t> <r> <l>Narrower Term <t>object relational database management system</t> </l> </r> </en> <en> 3, 1 <t>object relational database management system</t> <r> <l>Instance <t>DB2 Universal Database</t> </l> </r> </en> <en> 6, 1 <t>object oriented database management system</t> <r> <l>Narrower Term <t>object relational database management system</t> </l> </r> </en> <en> 4, 1 <t>document management system</t> <r> <l>Synonym <t>library</t> </l> </r> </en> <en> 9, 1 <t>library</t> </en> <en> 10, 1 <t>DB2 Unversal Database</t> </en> <en> 11, 1 <t>database</t> </en> </thesaurus> |
英語 Ngram 詞典編譯器輸入檔範例 desnthes.def 儲存在安裝路徑的字典目錄中。 OS/2 與 Windows 系統的字典目錄是:
磁碟機:\dmb\db2tx\dict
在 AIX、HP-UX 以及 SUN-Solaris 系統上,字典目錄是:
DB2TX_INSTOWNER /db2tx/dicts
此範例詞典的編譯版本也儲存在這裡。 屬於此詞典的檔案稱為 desnthes.<extension>,具有下列副檔名,其中的 n 是一個數字:
要建立 Ngram 詞典,請先在定義檔中定義它的內容。 您可在同一個目錄中擁有幾個詞典,但是建議您 最好使用不同目錄存放詞典。不包含副檔名的檔名長度不得大於 8 個字元。 副檔名是可選用的,但限制在 3 個字元以內,且應與任何上述副檔名不同。
若您為其它 DB2 Text Extender 詞典使用同一目錄,請勿使用在建立詞典列出的副檔名。
然後編譯此檔案,只要執行:
txthesn -f definition-file-name-ccsid code-page
以下為 Ngram 詞典支援的字碼頁列示︰
932 | AIX、OS/2 | 日文 |
942 | OS/2 | 日文 |
943 | OS/2、Windows | 日文 |
949 | OS/2 | 韓語 |
950 | AIX、HP-UX、OS/2、SUN-Solaris、Windows | 繁體中文 |
970 | AIX、HP-UX、SUN-Solaris | 韓語 |
1381 | OS/2、Windows | 簡體中文 |
1363 | Windows | 韓語 |
1383 | AIX、HP-UX、SUN-Solaris | 簡體中文 |
850 | AIX、OS/2 | 拉丁語 1 |
1252 | Windows | 拉丁語 1 |
txthesn 會產生與 definition-file-name 相同名稱及上述副檔名的詞典檔案。 此檔案建立在與定義檔相同的目錄下。 若此目錄中已存在相同名稱的詞典,則它會在無預警的狀況下被改寫。
以下列語法圖指定詞典內容:
.---------------------------------. V | >>---+-| group-definition-block |-+--+------------------------->< '-| comment-line |-----------' group-definition-block |---| block-starting-line |--\n---------------------------------> .---------------------------------------------. V | >---------+-| member-term-definition |-----+---\n---+-----------| '-| associated-term-definition |-' block-starting-line |---:WORDS----+----------------------+-------------------------------| '-| member-relation |--' member-relation |---+-:SYNONYM----------------+----------------------------------------| +-:RELATED----------------+ '-:RELATED--(--number--)--' member-term-definition |---member-term-------------------------------------------------| associated-term-definition |---+-.RELATED_TO----------------+--associated-term-------------| +-.SYNONYM_OF----------------+ '-.RELATED_TO--(--number--)--' comment-line |---#--any-comment----------------------------------------------|
每個成員術語都應被寫入單一行。每個聯合術語都必須放在關係名稱之後。 若成員術語與其它成員相關,請指定成員關係。
術語成員及其聯合術語的長度限制為 164 個字元。 單一位元組字元和同一字母的雙位元組字元視為相同。 大小寫不區分。術語可包含空白字元,不可使用單一位元組字元句點 "." 或冒號 ":"。
此使用者定義的關係都基於聯合類型,則以 1 到 128 的唯一號碼識別。
若某應用程式要為它們的詞典關係使用使用代號名稱,而非關係名稱及號碼, 則它必須自行執行對映。 例如,若 OPPOSITE_OF 關係被定義為 RELATED_TO(1),則 此應用程式必須對映此名稱到內部關係名稱 RELATED_TO(1)。 請參照搜尋引數的語法以瞭解如何在查詢中 使用詞典擴充。