基於Protege的知識建模實戰

2023-09-14 06:00:24

一.Protege簡介、用途和特點
1.Protege簡介
Protege是斯坦福大學醫學院生物資訊研究中心基於Java開發的本體編輯和本體開發工具,也是基於知識的編輯器,屬於開放原始碼軟體。這個軟體主要用於語意網中本體的構建,是語意網中本體構建的核心開發工具,下面操作使用版本為5.5.0。

2.Protege用途

  • Protege是一組自由開源的工具軟體,用於構建域模型與基於知識的本體化應用程式。
  • Protege提供了大量的知識模型架構與動作,用於建立、視覺化、操縱各種表現形式的本體。
  • 可以通過使用者客製化實現域-友好(領域相關)的支援,用於建立知識模型並填充資料。
  • Protege可以通過兩種方式進行擴充套件:外掛和基於Java的API。
  • 相比與其它的本地構建工具而言,Protege最大的好處在於支援中文,在外掛上,用OntoGraf可實現中文關係的顯示。

3.Protege特點

  • 類建模(Class modeling):Protege提供了一個圖形化使用者介面來建模類(領域概念)和它們的屬性及關係。
  • 範例編輯(Instance editing):從這些類中,Protege自動產生互動式的形式,全使用者或領域專家進行有效範例編輯成為可能。
  • 模型處理(Model processing):Protege有一些外掛庫,可以定義語意、解答詢問以及定義邏輯行為。
  • 模型交換(Model exchange):最終的模型(類和範例)能以各種各樣的格式被裝載和儲存,包括XML、UML和資源描述框架RDF。

二.Protege案例
通過簡單例子介紹Protege基本操作,包括建立本體、構建類、建立子類、構建類之間的關係、建立物件屬性、建立資料屬性、建立範例、儲存本體、視覺化和推理。具體kgexample-v2.owl檔案下載參考[2]。

1.建立本體
開啟Protege後就是新建本體的介面,如下所示:

2.構建類
在Entities頁面,選擇Class標籤,右鍵點選owl:Thing,選擇增加子類"人物"和"地點"。

3.建立子類
右鍵點選"人物",然後增加子類"禪師",如下所示:

4.構建類之間的關係
因為人物和地點是不同的事物,即它們相互具有排它性(owl:disjoinWith)。首先選中"人物",在Entities右側Description點選DisjointWith後的+,在彈出的介面中展開owl:Thing,選擇"地點"後確定。

5.建立物件屬性
標籤Entities->Object properties->右鍵owl:topObjectProperty->Add Sub-properties->曾住:

為屬性新增domain和range屬性值,如下所示:

6.建立資料屬性
首先Entities->Data properties->owl:topDataProperty->Add Sub-properties->法號,然後選中法號->Description->Range->Built in datatypes->xsd:string:

說明:限制"法號"該屬性的取值範圍為字串。

7.建立範例
首先標籤Entities->Individuals->點選菱形圖示->佛印禪師,然後Entities->Description->Types->Class Hierarchy->禪師。這樣該範例就有了型別的約束,如下所示:

新增範例之間的關係,選中"佛印禪師"->Property assertions->Object property assertions->點選+->輸入物件屬性名稱(曾住)->輸入範例名稱(鎮江金山寺)。這樣"佛印禪師"和"鎮江金山寺"通過"曾住"關聯起來,如下所示:

範例新增屬性值,選中"蘇軾"->Property assertions->Data property assertions->+:

這樣就為"蘇軾"範例的屬性"別名"新增了具體的值,即蘇東坡、東坡。

8.儲存本體
Ctrl+S儲存本體,選擇"RDF/XML Syntas"檔案格式,儲存為kgexample.owl。如下所示:

9.視覺化
Windows->Tabs->OntoGraf,如下所示:

10.推理
Reasoner->HermiT->Start reasoner,推理得到的資訊將會在對應的描述中黃色背景顯示出來。裴休是裴文德的父親父親的domain是人物,range是男人,推出裴休是男人的一個範例,如下所示:

對於推匯出來的資訊,如果想知道為什麼被推理機推匯出來,可以點選推匯出的資訊後面的問號,解釋的原因會在新的對話方塊中顯示出來。

參考文獻:
[1]Protege外掛庫:https://protegewiki.stanford.edu/wiki/Protege_Plugin_Library
[2]kgexample-v2.owl: https://url39.ctfile.com/f/2501739-934982316-535253?p=2096 (存取密碼: 2096)