• 沒有找到結果。

知識排序法則與搜尋方法

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

4.3 知識排序法則與搜尋方法

知識排序法則與搜尋方法是知識分類法非常重要的一環。排序法則的好壞將 影響知識搜尋結果的排序,當知識量愈來愈多時,排序法則將對知識庫的效率產 生決定性的影響,好的排序法則能夠將使用者想要的知識排在前面,即使知識量 非常大,亦不會造成使用者時間的浪費;而好的知識搜尋方法能讓使用者依其需 求找尋知識。以下將先介紹知識排序法則,再進一步說明知識搜尋方法。

4.3.1 知識排序法則

根據第三章的分析,找尋書本知識是想找領域的介紹或深入了解特定議題。

對領域介紹而言,書中若談到較多的子議題,往往代表其介紹的較為豐富且完 整。舉例而言,介紹演算法的書很多,若有一本介紹了十種主要的演算法,另一 本介紹了十五種,則介紹十五種的書對於要了解演算法的讀者而言會較有助益,

因為他會能從中了解較多的演算法。對特定議題而言,同樣是介紹愈多子議題者 愈有助益,例如第三章提到介紹C++的書,對於 Inheritance 這個議題,若有的書 介 紹 了 Constructor、Polymorphism & Virtual Function、Destructor、Multiple Inheritance,而有的書只介紹了前三個議題,則閱讀前者的讀者能多對 Multiple Inheritance 有所了解,因此幫助較大。

除此之外,書本知識的頁數也具有一定的代表性,在一般情況下,相同的議 題,使用較多頁數的書本往往介紹得較為清楚且完整。這些特性將能夠運用在書 本知識的比較上。

對於技術論文或技術報告而言,因為要找尋的是問題的解法,故比較的應該 是何者是此問題的最佳解法。但解法的比較依領域不同,其準則亦不同,例如 Hash table 可能是比較其 Collision rate,而 Binary search tree 可能是比較其 Internal path,但我們發現論文之間的解法可能是有繼承的關係,即新的解法是從舊解法

改良而來,一般而言,新的解法對該議題而言應有較好的效益,否則不會被大家 接受。此外,若兩篇論文採用相同的解法,並運用同樣的技術,表示這兩篇論文 的作法類似,則新的論文應是改善舊論文作法而產生的,且其效益應較佳,假若 採用相同解法與技術但效益卻沒有比較好的話,不會被期刊審訂的領域專家所接 受。如第三章所述,我們利用上述關係建構了繼承(Inheritance)與改善(Refine)

的關係,故可用以做為知識排序的比較法則。

此外,若一篇論文被許多其他領域的論文所引用(Citation),表示其解法相 當具有學術價值,故除了上述採用繼承、改善對解法做一基本比較外,尚可利用 論文被其他領域論文引用的次數來做排序。

由上述,對書本知識的排序準則依序是:子議題數、頁數;對技術報告與技 術論文的排序準則依序是:解法繼承、論文改善、被引用數。籍由這樣的準則,

在一般情況下能夠讓使用者找到最可能符合需求的知識。

4.3.2 知識搜尋方法

如4.2 節所述,我們的分類將以七層架構為基礎,配合相關類別與相等類別 提昇知識搜尋效率。由於軟體領域既廣且深,因此使用這樣的分類較容易幫助使 用者找到符合的知識類別。如之前分析的,使用者找尋知識的需求可分為四種類 型。以下對這些需求說明其搜尋方法:

1. 找領域的介紹性知識:此狀況是使用者對特定領域不熟,想對此領域有 初步了解。由於書本知識產生的目的即是以介紹與教學為主,故針對這 類使用需求,應以找尋最具介紹性的書本知識為目標。使用者應利用我 們定義的七層分類架構,從上層往下找尋有興趣的領域,由於他想找特 定領域類別,故利用分類架構瀏覽是最容易的。找到類別之後可先觀看 該領域的基本介紹以及子議題,並可進一步依上述的排序法則找出合適 的書籍閱讀。

2. 深入了解特定議題:此狀況是使用者已對領域有所了解,而想找尋特定 議題的介紹。例如使用者知道何謂 graph,想了解 TSP(travel salesman problem)為何。這類需求仍以找尋介紹為主,故書本知識還是較為合適,

由於使用者已對領域有所了解,故可以很容易地籍由類別瀏覽先找到領 域,知識庫可該領域下的子議題列出供使用者挑選。找到議題後,使用 者可先看議題基本介紹及相關的解法,也可觀看有哪些相關書本知識,

籍以了解此議題。

3. 找出問題最佳解決方案:這是使用者已對該領域與議題熟悉,想找出該 議題的最佳解法。這類需求最適合給予討論該議題的技術論文或技術報 告,因為這兩類知識的本質便是提出問題的解法。由於使用者對領域與 議題熟悉,因此可以很快地利用分類架構由上往下找到議題,此時使用 者可先觀看此議題下提出了哪些不同的解法,此外籍由前一節所介紹的 排序方法,能讓使用者閱讀較佳的論文。使用者閱讀論文前可先觀看這 些論文分別運用了哪些技術,以便快速掌握論文的要點。

4. 了解技術的運用情況:使用者想了解技術運用狀況,可分為兩種類型,

其一是想知道哪些論文或報告運用了這項技術,其二則是想了解這項技 術被運用在哪些議題或領域上。知識庫可讓使用者直接輸入該技術關鍵 字,並由使用者選擇要找論文或是領域,由於「問題–解法」分類法建 構了論文運用技術的關係,故可由技術找到相關論文,並可再往上找到 其議題與領域類別。

除了採用上述方法外,若使用者對此分類架構熟悉後,也可以直接使用符號 表示的方法快速找尋知識,例如直接輸入:

Programming f Data structure f Tree f Binary search tree f Improve worst case 可找到Binary search tree 的改善最差狀況議題。