• 沒有找到結果。

第二章 背景知識與相關研究

2.2 背景知識

2.2.4 Protégé

Protégé 是一個免費且開放原始碼的本體編輯軟體,是由 Stanford University 團 隊所開發[19],開發語言是採用 Java,由於使用方便,Protégé 是目前最為廣泛 使用的本體編輯軟體,在許多不同領域上也有使用,如生物學、電子商務等。

而目前在網路上也有許多工具支援本體建置,如 OWL Viz、推論引擎等,在本 研究中是以 Pellet 這個推論引擎來進行描述邏輯推理的,OWL Viz 則是將本體

9

論以圖形化的方式來呈現。圖 3 為 OWL Viz 示意圖。

圖 3 OWL Viz 示意圖 2.2.5 Semantic Web Rule Language(SWRL)

SWRL[20]是一 種以語意 的方式呈 現規則的 一種語言 ,規則部 分概念是 由 RuleML 演變而來,是以 Web Ontology Language(OWL)為基礎的規則描述語言,

其目的是為了讓規則和 OWL 結合,透過與 OWL 的結合讓所要表達的語意更 加完整提供更強的表達能力,而目前 SWRL 也是 W3C 的一員。

SWRL 呈現方式可分兩種,分別是 XML 和 RDF ,使用 XML 的方式呈現是以 RuleML 加 OWLX 的方式描述,RDF 則是以 OWL 加 RDF 方式呈現,圖 4 為 SWRL 呈現方式。

10

圖 4 SWRL 呈現方式[Ian H, et al., 2004][20]

以 XML 方式呈現的好處有:

可透過 XSLT 將 OWLX 轉換為其他語法。

規則和本體論的 axiom 可以混用。

OWL 和 RuleML 互通性容易,現存的 RuleML 工具可繼續編輯 SWRL。

以 RDF 方式呈現的好處有:

由於 RDF 是直接使用語意網標準語言能直接與所建立的本體論進行結合,所以 不須轉換格式。

SWRL 內部的變數皆是 RDF 方式呈現,變數本身就是 RDF 形式,使變數對應 到本體論的工作較為簡單

SWRL 語言架構

SWRL 主要由四個部分組成,分別是 Imp、Atom 、Variable 和 Building 組成,

其語言架構如圖 5 所示。

11

圖 5 SWRL 語言架構[Ian H, et al., 2004][20]

Imp 包含 head 和 body,head 表示欲推論的結果,body 則是該推論的前提 條件,而 head 和 body 所使用的 instance 則是由 Atom 和 Variable 提供

Atom 是 head 和 body 的基本元素,在 head 中只允許一個 Atom 出現,而 在 body 中可以是多個 Atom 來組成

Variable 則是用於定義 Atom 中的變數,在 Atom 中包含許多限制,主要有 以下四種:

C(x) :C 是 OWL 描述。

P(x ,y) :P 是 OWL 的屬性,而 x、y 可以是變數(OWL individuals 或 OWL data value)。

SameAs(x, y) :x 和 y 相等。

12

DifferenceFrom(x ,y) :x 和 y 不同。

Building 用於定義 SWRL 中的各種邏輯比較關係。

下列為一條簡單的 SWRL 規則,我們將針對其作說明:

hasParent(?x, ?y) ∧ hasBrother(?y, ?z) → hasUncle(?x, ?z)

在規則中 hasParent(?x, ?y) 和 hasBrother(?y, ?z)為規則中的 Body 即為推論前提,

hasUncle(?x, ?z)為 Head 即為推論結果,而括號內的 xyz 則為 Variable。

hasParent(?x, ?y)表示?x 有雙親?y,?y 有兄弟?z,所以透過這些前提我們就可以 得到?x 有叔叔?z 這樣一個結果。

13

第三章 研究方法

本研究提出的方法是將 WordNet 和 SWRL 做結合,使用者輸入 Query 後,

利用 JWI(Java WordNet Interface)從 WordNet 中取出資料並將取出來的資料對

Query 做擴充再與 SWRL 規則結合的方式來進行知識本體配對的工作。本章節 主要分成五部分進行探討,在 3.1 研究方法首先介紹和說明本研究之 Overall

architecture,接著介紹我們的方法主要的元件 Service Match Maker 的功能和使 用的技術,3.2 介紹 SWRL 規則的定義並以例子的方式呈現和說明,3.3 介紹

Query Extension Based on WordNet(QEW)使用的技術和運作方式,3.4 本體論主 要介紹本體論的建置上我們所依循的標準和所建置的領域,最後 3.5 配對流程 部分利用循序圖說明在我們的方法中如何將使用者所發出的 Query 成功的搜尋 到相關的服務並完成知識本體配對。

3.1 研究方法

本研究是利用使用者所輸入的 Query 為搜尋條件,將 Query 透過 JWI(Java WordNet Interface)做擴充,此擴充方法我們命名為 Query Extension Based on WordNet(QEW) ,再加上我們寫好的 SWRL 規則透過 Service Match Maker 到 Inference Engine 中取出服務資訊進行知識本體的配對,最後再將配對到的服務 列出來供使用者選擇。 下面我們將介紹本研究之 Overall architecture 並說明各

14

元件之間的關係,如圖 6 所示:

圖 6 本研究之 Overall architecture

圖 6 中 Query Handler 主要負責確認使用者所發出的 Query 格式是否正確並將

Query 送至 JWI 作擴充處理,當知識本體配對完後,再把從 Service Match Maker 傳來的配對結果傳至使用者。JWI 負責接收從 Query Handler 傳來之 Query 和依 據所設定的參數至 WordNet 尋找相關的詞做 Query 擴充的動作。OWL API 負責 將事先撰寫好的 SWRL 規則透過 Ontology Manager 與 Inference Engine 中 Protégé 裡面的 Ontology 進行結合。Inference Engine 主要利用 Protégé 提供 Ontology 資訊和透過 Pellet 推理引擎來推論規則。

下圖我們將介紹主要的元件 Service Match Maker,在 Service Match Maker 中主

15

要包含三個功能,如圖 7 所示:

圖 7 Service Match Maker 主要功能

圖 7 中顯示在 Service Match Maker 中包含了 SWRL rules、JWI、Ontology Manager 三個功能,當使用者輸入 Query 後,先透過 JWI 的方法擴充 Query 後,

SWRL rules 透過 Pellet 推論引擎與 Inference Engine 中的 Ontology 結合推論出 新的關係,再以擴充後的 Query 為搜尋依據並利用 Ontology Manager 存取

Inference Engine 中 Ontology 的資訊進行知識本體配對。以下就各功能逐一做說 明:

 SWRL rules: 是用來增加 Ontology 之間所隱含的關係進而獲取更多資訊,

開發者將 SWRL 規則撰寫好後加入到 Service Match Maker 中,再透過 OWL

API 與 Inference Engine 中的 Ontology 結合產生新的關係,增加所搜尋的服 務。 再撰寫規則時,因為 SWRL 是使用本體論中所定義的詞彙和屬性進

16

行規則的編寫,且 SWRL 本身也是以 OWL 語法所編寫,所以 XML 文件 的優點也會符合 SWRL[20]。

 JWI: 主要是用來將使用者所輸入的 Query 做擴充,在 Query 變多的情況下 配對服務找尋更多相符的服務供使用者選擇,而在此方面是透過 JWI(Java

WordNet Interface)中的 IIndexWord()方法,將所需的參數設定好後,讓使用 者所輸入的 Query 到 WordNet 中取得相關資料再進行擴充,這些擴充後的

Query 就是我們搜尋知識本體時的依據。我們使用 WordNet 是因為它是一 部訊息豐富的語意知識庫[4]且在結構上它將所有相同的語意集成 Synset,

並以 Synset 為基礎進一步連結語意之間的關係,如上義詞、下義詞、整體 關係、部分關係等等, 且目前也有支援中文[21]。

 Ontology Manager: 主要功能是用來存取和利用 Inference Engine 中的本體 論,藉由 Ontology Manager 除了能存取 Ontology 外,也能建立 Ontology、

individuals 等,也可透過本地端得 owl 檔和網路上的 URL 取得多個本體論,

讓搜尋的服務增加,讓使用者可選擇的服務增加。

3.2 SWRL 規則

SWRL 是以本體為基礎,以語意的方式定義法則的一種語言,SWRL 規則概念 則是由 RuleML[20]所演變而來,在 RuleML 中以 head 表示推論結果,body 表 示推論前提的型態也保留在 SWRL 中,所以 SWRL 可視為法則和本體的結合,

17

透過兩者的組合在撰寫法則時,可直接使用本體中所描述的關係和字詞,下列 為我們所建立的 SWRL 規則,其規則定義關係如下:

Store (Mike’s store)

HasService (Mike’s store, Sellbike)

Store 為我們所建立的一個概念(Class) ,所以表示有間商店叫 Mike’s store,而 HasService 為我們所建立的一個屬性(Slot) ,而在這屬性中是屬於物件屬性 (Object property)代表這家店有甚麼服務,所以表示 Mike’s store 有提供出售腳踏 車的服務,將前提(Body)寫好後透過 SWRL 規則的推論我們就可以得到 Mike’s store 有提供出售腳踏車的服務這個結論(Head)。

Body

Store (Mike’s store)

HasService (Mike’s store, Sellbike) Head

HasServiceSellbike(Mike’s store)

編寫好 SWRL 規則後,將規則加入 Service Match Maker 中,再透過 OWL API 和 Pellet 推論引擎將 SWRL 規則與 Inference Engine 中的本體論結合,最後再以 擴充後的 Query 為搜尋依據到 Inference Engine 中取得 Ontology 資訊並進行服 務配對。在服務的配對中我們是以字串擷取的方式來進行,當 SWRL 與 Inference

18

Engine 中的本體論結合後,透過 OWL API 將存在 Inference Engine 中的本體取 出後,再利用字串擷取的方式將與 Query 相符的資訊挑選出來供使用者挑選完 成配對。而我們在添加 SWRL 規則前,會先釐清使用者的需求和本體之間的關 係再來做 SWRL 規則的撰寫和加入,主要是針對使用者的回饋或較常使用的本 體來進行本體之間的分析和撰寫規則的動作,撰寫好後再將其 SWRL 規則加入 至 Service Match Maker 中。由於我們搜尋的依據是基於 WordNet 的方法來對

Query 作擴充的,但在擴充上因為參數設定的關係可能會導致擴充出的資料有 些是不符合原本使用者所輸入的 Query 意思,所以針對這個問題,我們利用

SWRL 規則中的 Built-Ins 來解決,例如 swrlb:notEqual、sqwrl:difference 等方法。

舉例說明,在本文的例子中我們以 Bike 作為我們的 Query,利用我們所設定好 的參數透過 JWI 擴充後會得到 bicycle、cycle、pedal、wheel 這些詞,但是在

wheel 一詞中也同義於 Car,所以會導致搜尋時可能會搜尋到與 Query 不相關的 結果,而在這例子中我們就會使用 SWRL 規則中的 sqwrl:difference 方式來區分

Car 中的 wheel 和 Bike 中的 wheel,讓搜尋時能更準確的判斷找出合適的結果。

透過這些方法的加入,能有效地將非相關的詞做區分,達到提升查準度的效果。

目前在本研究中 SWRL 規則主要是針對每一個不同的 Query 搜尋結果逐件個別 處理的方式加入。

3.3 Query Extension Based on WordNet(QEW)

19

在 Query Extension Based on WordNet(QEW)方法中,我們主要是使用 WordNet 中的資料來做擴充的。WordNet 是一部訊息豐富的語意知識庫,其中收錄了為 數極多的詞彙,也包含很多功能,像是語句間相似度的計算等等,而在本研究 中主要是使用詞義的關係來做 Query 擴充,在詞性的部分主要分名詞、形容詞、

動詞、副詞、上義詞、下義詞等,在參數設定上我們也是以這六種詞類作為我 們對 Query 之擴充,其參數設定如圖 8 所示:

圖 8 詞性參數設定

圖 8 中分別為名詞、形容詞、動詞、副詞之參數設定,圖 9 為上、下義詞之參 數設定:

圖 9 上、下義詞參數設定

透過這些參數的設定,我們就可以得到相對應的詞。下面我們將以”Bike”作為 例子,圖 10 將簡單介紹 WordNet 是如何利用我們所輸入的參數對映到相關資 料。

20

圖 10 WordNet 詞性對映圖

如圖 10 所示,號碼標示為各 Word 所代表的 ID,而這些 ID 會因輸入的參數不 同而有變化,當輸入尋找上義詞的參數時就是 Bike: 03791235 這個 ID,WordNet 會根據 ID 對映到 motor vehicle 和 automotive vehicle,而輸入尋找名詞的參數時 就是 Bike: 02834778,則會對映到 Bicycle。輸入不同詞性的參數也會找到不同 的參數,如動詞就是 Pedal:01935476,會對映到 Pedal,依此類推。透過這樣的

如圖 10 所示,號碼標示為各 Word 所代表的 ID,而這些 ID 會因輸入的參數不 同而有變化,當輸入尋找上義詞的參數時就是 Bike: 03791235 這個 ID,WordNet 會根據 ID 對映到 motor vehicle 和 automotive vehicle,而輸入尋找名詞的參數時 就是 Bike: 02834778,則會對映到 Bicycle。輸入不同詞性的參數也會找到不同 的參數,如動詞就是 Pedal:01935476,會對映到 Pedal,依此類推。透過這樣的

相關文件