第三章、 「問題–解法」軟體知識分類法之設計構想
3.3 效益比較及分析
在 前 一 章 提 到 了 四 種 常 用 的 知 識 分 類 方 法 , 包 括 Taxonomy 、 Faceted Classification、Case-based Reasoning、Ontology。這四種分類方法各有其優缺點,
在3.1.2 節中也曾提出這些方法的問題,以下將以我們提出的「問題–解法」知 識分類法與上述四種方法進行比較與分析。
與Taxonomy的比較
Taxonomy 是以樹狀架構為基礎的知識分類法,是最直觀也最為常用的方 法。Taxonomy 最主要的分類是以領域為主,例如著名的杜威十進分類法(Dewey decimal classification),在第一層是以大領域分類,如自然科學、語言學、社會 科學等,再下一層就更細分,如自然科學可分為數學、天文學、物理、化學等等。
以軟體知識的 Taxonomy 為例,最著名的是 ACM 分類系統(ACM computing classification system),第一層是軟體知識的大領域,如硬體(Hardware)、計算
機組織(Computer System Organization)、軟體(Software)、資料(Data)、計算 理論(Theory of Computation)、計算數學(Mathematics of Computing)等等,再 下一層就再細分,例如軟體可分為程式技術(Programming Techniques)、軟體工 程(Software Engineering)、程式語言(Programming Languages)、作業系統
(Operating System),這個分類主要以三到四層為主,從上述的分類可明顯看出 這是對知識領域的分類。
由上述可知,Taxonomy 方法僅對領域類別加以分類,只有「問題–解法」
架構中的類別(Category)功能,缺乏議題、解法、技術等技術知識特性,而樹 狀架構下的知識又缺乏關連性,因此相較之下,「問題–解法」架構對技術知識 而言較為合適,且能提供更佳的知識管理效率。
與Faceted Classification的比較
Facet Classification 是利用清楚定義、完全互斥及完整窮舉的知識主題、特 性來進行分類,其特色是讓知識分類具備更高的彈性及自由度,不必侷限於之前 的分類架構,隨時都可以新增一個Facet 分類。因此一項知識可依不同面向來分 類,如IBM 對於物件導向元件分類(Classification of object-oriented components), 就有如演算法(Algorithm)、應用領域(Application domain)、元件大小(Component size )、 開 發 標 準 ( Development standard )、 功 能 ( Function )、 實 作 語 言
(Implementation language)等等面向的分類。由於 Facet 的建構與維護都較 Taxonomy 繁複,且技術論文、技術報告或書本知識都缺乏明顯互斥的分類面向,
因此對此未有標準的 Facet 分類系統。對技術論文而言,其 Facet 除了領域類別 外,還可能包括如作者、期刊等,而書本知識則可能有作者、出版社、ISBN 等 面向,這些面向雖然有助於縮小檢索範圍,但對知識內容的描述沒有幫助,而主 要的領域類別僅是一個單純的 Taxonomy,其缺點如前所述,知識量增加時將對 使用者造成負擔。此外,即使定義了更具意義的描述面向,Facet Classification 對使用者而言仍不方便。因為使用者必須從各個面向的大類別往下找尋,無法直 找Travel salesman problem 的解法,也可指定要找 Greedy 或 Dynamic programming 解法的論文,或更進一步指定特定的技術等,找到知識之後利用此分類架構中的 物件導向關係可以找到使用相同解法與技術的論文,或找相關解法、相關技術的 知識,具備高度的彈性,籍由關鍵字搜尋比起Facet Classification 方法快速而直
觀,對使用者而言較為方便。
因此,Facet Classification 雖然可對知識定義較多面向,但無法描述解法、
技術等知識,且難以將書本知識與技術論文、技術報告整合,提供各種不同需求 使用者適當的知識;知識間也僅有各面向的同類關係,欠缺知識比較與技術相關 性,使得知識僅是單純地以各面向分類,而無法對知識做較有意義的描述。「問 題–解法」知識分類法能改善上述問題,因此是較佳的分類方法。
與Case-based Reasoning的比較
Case-based Reasoning(以下簡稱 CBR)的原則是以過往的經驗來解決新的 問題,因此對知識的處理是先分析,再經過特定的程序使知識能符合其模型,當 使用者對知識有需求時,透過其介面對案例(Case)進行描述,系統將此案例分 析後找出最合適的方案。由於此方法牽涉到對案例與解決方法的內容描述,故其 模型往往相當複雜,且有一定的領域限制,沒辦法運用在各個不同領域中。對 CBR 方法而言,各個案例都是單獨的存在,彼此之間僅有一些共通性的關聯,
而沒有架構良好的分類系統。這對軟體知識而言是不合適的,因為軟體知識有非 常多的知識領域,而各領域之下又有各種不同的問題,這些問題若沒有經過知識 領的分類,將顯得雜亂而難以搜尋,且不容易描述與分辨。例如資料結構中的 Binary search tree 與搜尋引擎中的 Inverted file 都會有改善最差狀況(Improve worst case)的問題,這看似類似的問題,由於其領域不同,相關的解法與技術 也完全不同,因此,CBR 方法以單純的「案例」對「解決方法」來描述知識,
不足以對領域既廣且深的軟體知識做有效的分類。
「問題–解法」軟體知識分類法,採用了定義良好的階層架構對知識領域分 類,在領域之下才定義議題與解法,並更進一步定義了各論文使用的技術,使得 議題有了良好的分類,讓技術論文、技術報告與書本知識都能依其知識領域不同 做最基本的分類,有效地依內容縮小知識範圍,且能透過關鍵字類別的關係找到
其他相關的知識,增強知識的重用性與延伸性,相較於僅以「案例」與「解決方 法」來分類的CBR,這個方法更適合用於複雜領域的軟體知識中。
與Ontology的比較
Ontology 係指領域知識定義一個共通的分享方式,運用正式且清楚定義的模 型,籍以描述知識的意義。Ontology 也可以利用樹狀架構來分類,並搭配關鍵字 以及特殊的關聯性對知識搜尋,然而 Ontology 為了要建構良好的知識模型,因 此經常必須運用具有領域特性的描述方法,不同領域所定義的 Ontology 也很難 通用。例如著名的On-To-Knowledge 其文件的 Ontology 可表示如圖 3 - 11:
圖 3 - 11 On-To-Knowledge Ontology 模型圖
如上圖所示,其對文件做了詳盡的描述,如標題(title)、摘要(summary)、
作者、相關概念、附件等,而作者也描述其名字、e-mail 等資訊,這樣的描述固 然能夠改善傳統關鍵字分類的缺憾,但純粹以各類特性來描述仍有其問題。以上 述「問題–解法」知識分類法而言,亦可籍由 Ontology 方式描述技術論文的類 別、議題、解法、技術等特性,但這樣的描述法讓知識之間缺乏關聯性,使用者 無法在閱讀知識之後快速取得相關知識,也沒辦法對知識進行比較,當知識量愈
來愈多時,單一議題下的解法非常多,Ontology 僅能提供這些解法,卻沒辦法對
Taxonomy Faceted CBR Ontology Problem- Approach
關鍵字與