• 沒有找到結果。

關鍵字分類建構法則

第四章、 軟體知識的關鍵字分類機制

4.1 關鍵字分類建構法則

在第三章中提出了以「問題–解法」為基礎的關鍵字分類法,將軟體知識的 關鍵字區分為類別(Category)、議題(Issue)、解法(Approach)、技術(Technique)

四個類型,當關鍵字分成這些類型後,就能夠更進一步地建構知識的關聯性。這 些關聯性有助於知識庫對知識的搜尋與分析,也能讓使用者在閱讀知識後取得相 關的知識內容。由於物件導向所提出的物件關係與知識之間的關係有相當高的相 似程度,因此我們可以利用物件之間的關係來表達知識之間的關係。

這些分類及關聯性需要清楚定義,方能使知識作者對其關鍵字有效地分類,

讓所有的知識在一個統一的架構下交換使用,使知識庫之間合作、交換知識,真 正達到軟體知識管理的最主要目的:將正確的知識在適當的時機提供給需要的成 員。

建構知識關鍵字時,關鍵字類型的選擇原則如下:

(1) 類別(Category):類別指的是知識所在的領域類別。為了讓知識能夠互 相交換溝通,將建構一個公開且維護良好的知識分類,類似網景公司提 出的ODP(Open Directory Project)或是 ACM 分類系統(ACM computing classification system),供知識工程師或知識作者選取適當的領域類別,

這個類別架構應提供足夠的深度與彈性,對軟體知識領域適當地分類。

有了這樣的分類架構,對於知識領域的選擇就有標準可循,分類架構將 在4.2 節中詳細討論。

選擇技術論文或技術報告的領域類別時,應依據其探討的主題,在 分類架構上從大至小縮小範圍,選定類別後,再循父類別定義至根類別。

舉例而言,若分類架構中有Data structure →Tree →Binary search tree 的 類別,當一篇論文所談論的內容是Binary search tree,則其領域關鍵字即 是 Data structure、Tree、Binary search tree,但這些關鍵字之間有包含

(Aggregation)的關係,故知識庫能夠知道此知識是在討論 Binary search tree,不會造成模糊不清的問題。以符號方法表示,即為:

Data structure f Tree f Binary search tree

書本知識的類別其實就是其探討的主題,一本書只會有一個主題,

只要分類架構有足夠的深度與廣度,每一本書都能夠在此分類架構上找 到適合的類別,選擇類別的方法一樣是由大至小縮小範圍,再循父類別 定義至根類別。

(2) 議題(Issue):議題關鍵字對技術論文或技術報告而言是指其解決的問 題,對書本知識而言則是其介紹或探討的議題、子議題等。由於其意義 不同,故定義法則也不相同。

對技術論文或技術報告而言,由於具有問題導向的本質,故找出其 解決的問題非常容易。問題在於描述問題的用字,定義關鍵字雖然比直 接用自然語言描述明確地多,但同義字或類似字詞仍會造成知識分類時 的 困 擾 。 如 前 一 章 舉 的 例 子 中 , 有 一 篇 論 文 的 關 鍵 字 就 有 text classification、text categorization 兩個同義字,即是因為這兩個詞都有人 用,所以必須將這兩個詞都定為關鍵字。為解決此問題,知識分類架構 中應在類別底下加入目前已有的議題,由於知識作者必須在分類架構中

選擇類別,選定類別後便可列出議題以供作者挑選;倘若這篇論文是在

(3) 解法(Approach):對技術論文或技術報告而言,解法關鍵字指的是解 決問題所用的方法。例如解Travel salesman problem,有的論文可能使用 Greedy 的方法,有的論文採用 Dynamic programming 的方法,像這些就 是所謂的解法。因為軟體知識的解法能夠代表其原理,對該領域熟悉的

書本的解法是指對特定問題所介紹的方法,例如sorting,就可能有 quick sort、bubble sort、Shell sort、insertion sort 等不同的方法,對書本知識作

者而言,可以很自然地判斷哪些章節是屬於議題–子議題的關係,哪些 章節則屬於議題–解法的關係,清楚定義這些關鍵字有助於使用者理解 與搜尋。

(4) 技術(Technique):技術關鍵字是指技術論文或技術報告所提出的解法 中所運用的技術。「解法」指的是論文運用的基本方法,例如第三章舉的 例子中,有一篇解決text categorization 的論文是採 machine learning 的解 法 ; 而 「 技 術 」 則 是 指 其 實 際 運 用 的 技 術 , 例 如 這 篇 論 文 運 用 了 train-and-test 以及 k-fold cross-validation 的技術。知識作者在定義技術關 鍵字時,也應參考目前分類架構中已存在的技術關鍵字,一般而言,技 術關鍵字應是清楚定義(well-defined),且較成熟且廣為人知的。論文當 然也可以有新的技術,不過由於定義新的技術關鍵字將影響後面作者,

故應經過知識工程師與該領域專家討論後再加入分類架構中。

籍由上述法則,技術論文、技術報告與書本知識的作者都能夠清楚且明確地 定義其知識的關鍵字。當關鍵字依上述分類後,有些關係便會自動產生,例如類 別間與類別–議題間的包含(Aggregation)、議題–解法間的實現(Realization)、

以及論文與技術間的運用(Use)等。但仍有一些關聯性必須由知識作者定義:

(1) 繼承(Inheritance):繼承是指新的解法(Approach)是從舊的解法改進 而來的,這個關係是指方法的改進,而非論文的改進。例如針對排序的 問題,有一篇論文提出bidirectional bubble sort 的方法,這是改進自 bubble sort 的,由於此方法是新的解法,因此可以定義繼承關係。這個關係並 非所有的論文作者都必須定義,只有當論文作者提出了新的解法,而此 解法又是從舊有的解法改進而來時,才需要定義此解法的繼承關係。這 是因為解法可視為物件導向中的類別,而論文或報告可視為物件,因此 繼承關係對採用相同解法的論文都是一樣的。

(2) 依存(Dependency):依存指的書本知識中議題的先後閱讀關係,例如 閱讀Object-oriented Design 之前應該先閱讀 Object-oriented Concept;這 部份的關係建立之後有利讀者找到一個適當的閱讀切入點,且可跳過沒 有依存關係的章節。當書本作者定義了書本的議題、子議題、解法等架 構之後,便可定義議題之間的依存關係,此關係對作者而言非常容易,

因為書本知識主要便是在介紹與說明,故其章節編排的先後原本就有依 存關係的考量,作者便依此定義依存關係即可。

(3) 改善(Refine):當論文採用相同的解法,並運用一樣的技術時,知識庫 可自動依其發表時間建構改善關係。這個關係也可由技術論文或技術報

書本知識作者定義關鍵字步驟則可整理如圖 4 - 2:

自分類架構中找尋 書本知識的主題

在該類別下參考目前已存在 的議題,定義書本主要議題

建構議題的依存關係

依書本內容定義子議題架構

以及解法關鍵字

圖 4 - 2 書本知識關鍵字定義流程圖

依上述流程,知識作者可以輕鬆地以「問題–解法」知識分類法定義關鍵字,

並建構關鍵字的關聯性,對技術論文、技術報告的作者而言,定義關鍵字是發表 前必須的工作;對書籍作者而言,定義書後的索引亦是不可少的任務。採用以「問 題–解法」為基礎的關鍵字法,由於是依據知識的本質所定義,因此對知識作者 而言並不困難。對技術論文、技術報告的作者而言,他們一定非常清楚論文所在 的領域、處理的議題、提出的方法以及運用的技術;對書本知識的作者,同樣也 十分清楚書本知識探討的主題、議題、子議題或方法等,以往定義關鍵字還必須 思考哪些字詞比較重要,而以這種方法定義,反而更明確且更容易。