知識圖譜學習與實踐(4)——Protégé使用入門

cooldream2009發表於2019-07-29

1 Protégé簡介

Protégé是一個本體建模工具軟體,由史丹佛大學基於java語言開發的,屬於開放原始碼軟體。軟體主要用於語義網中本體的構建和基於本體的知識應用,是本體構建的核心開發工具,最新版本為5.5.0(截至2019年7月)。

Protégé支援中文,能夠實現實體關係的中文展示。如下圖。

 

 

具體來說,Protégé具有以下功能。

類建模。Protégé提供了一個圖形化使用者介面來建模類(包括概念)和它們的屬性以及關係。

例項編輯。根據建立的型別,Protégé會自動產生互動的形式,可以根據類之間的關係獲得相應例項的約束,並對例項進行編輯。

模型處理。Protégé有一些外掛庫,可以定義語義、解答詢問以及定義邏輯行為。

模型交換。最終的模型(類、例項、關係、屬性等)能以各種各樣的格式被儲存和載入,包括XML、UML、RDF、OWL等。

2 Protégé的安裝

軟體到官網https://protege.stanford.edu/products.php直接下載,我們使用的是5.5.0版本,下載後是名為Protege-5.5.0-win.zip的壓縮檔案,解壓縮後,得到以下檔案。

 

直接執行Protege.exe即可。

Protégé是由java開發的,執行時需要java執行時環境,執行時可能需要配置一下java的執行時環境,按照提示進行配置就可以了。

3 軟體主要工作tab

開啟軟體後,可以看到工作區域是由很多tab組成。

 

Active ontology是顯示當前的實體名稱,以URI的形式顯示,前面是www.semanticweb.org後面跟著主機名(我的主機名稱為dell),再後面是預設的根據時間命名實體。

Entities,可以看作是實體的總覽,能夠看到我們建立實體的一些主要資訊,是對實體資訊的彙總。

Classes,是對本體模型中,型別部分的編輯,能夠定義類之間的層次關係,相互之間的關係。

Object properties,物體關係,可以理解為編輯實體外部的關係,也就是實體和實體之間的關係。

Data properties,資料屬性,可以理解為編輯實體內部的屬性,用來定義實體本身所具有的屬性以及屬性值。

Annotation Properties,標註屬性,是w3c定義的一些常用的屬性,根據URI可以看到這些屬性的具體說明。

Individuals by class,根據型別建立的例項,用來編輯例項資訊,類似於java程式中的物件,要歸於某個類別。

OntoGraf,本體關係圖,用來展示我們建立的本體裡面各個實體之間的層次關係。

SPARQL Query,SPARQL查詢,使用SPARQL語言,對建立的本體進行查詢,獲取查詢結果。

4 建立一個本體例項

4.1 建立本體

軟體開啟後,就像大多數軟體一樣,利用file-new來建立一個本體,Protégé會自己根據預設規則為本體起一個名稱,比如我建立的本體名稱為:http://www.semanticweb.org/dell/ontologies/2019/6/untitled-ontology-35,然後我們就可以編輯這個本體了。

4.2 建立模型層的資料

本體分為模型層和資料層,模型層主要定義類和類之間的關係。Thing是所有型別的根節點,也就是基類,所有的型別都是從Thing派生出來的,我們建立如圖的型別層次結構。

 

在Classes這個tab頁面下,可以看到紅色方框標出來的是Add subclass,一個是工具欄直接增加子類,一個是通過右鍵選擇增加子類,比如我們將滑鼠點選owl:Thing之後,然後增加子類人物、勢力、工具。然後再點選人物,再增加子類文官、武將和皇族,同樣操作,增加工具的子類,武器和馬匹。

還可以定義類之間的一些約束關係,比如人物和工具是互斥的,選擇人物後,在右下方,Disjoint with關係選擇工具。表示了人物和工具的互斥關係,這時候,我們點選工具,就會發現,Disjoint with已經自動新增了人物這個類。

4.3 建立實體關係

建立實體之間的關係,在Object Properties這個tab頁面。

 

編輯方法和新增型別的tab頁面類似,最頂層的實體關係為owl:topObjectProperty,選擇後,點選工具欄的按鈕或者右鍵選擇add sub-properties,新增使用、屬於和騎三個關係。對於“使用”這個關係,Domains選擇人物,Ranges選擇武器,代表三元組中主語是人物,謂語是使用,賓語是武器,組成的三元組就是人使用武器。“屬於”這個關係,Domains和Ranges分別為人物和勢力,“騎”這個關係的Domains和Ranges分別為人物和馬匹。

4.4 建立實體屬性

建立實體的屬性,在Data properties這個tab頁面。

 

三國裡面的人物,人名都有一個字,比如一般都說,關羽關雲長。關羽就是他的名字,雲長是他的字。名字用於自稱,字都是別人喊得,表示尊重。

新增屬性“字”後,Domains我們選擇人物,Ranges選自如圖,在Built in datatypes中選擇xsd:string,表示“字”的屬性值型別是個字串。

4.5 建立例項

建立本體的例項,在Individuals by class這個tab頁面。

 

在Individuals裡面,建立關羽、劉備、諸葛亮、蜀、赤兔馬、青龍偃月刀等例項。然後分別編輯這些例項。此處以關羽為例說明對例項的編輯。

首先是確定例項的型別,關羽的型別,選擇武將。然後增加實體的關係,騎赤兔馬,屬於蜀,使用青龍偃月刀等三個關係。最後增加資料屬性,字為雲長。

這樣就確定了關羽這個例項的型別、關係和屬性,從而編輯完成關羽這個例項。同樣方法,編輯其它例項的型別、關係和屬性,如果某項內容空缺,可以不編輯。

4.6 本體關係展示

對於本體的關係資訊展示,在OntoGrap這個tab頁面。

 

雙擊左側的owl:Thing,在右側區域會顯示本體資訊,將展示的資訊中,有加號的都雙擊展開,就會看到整個本體的關係圖。紅色方框中,是以不同的方式展示關係圖,依次是按字母網格展示,徑向展示,彈簧展示,垂直樹狀展示,水平樹狀展示,垂直方向展示,水平方向展示等。如果將滑鼠放到某個資訊節點,就會顯示該資訊節點的詳細資訊。本例中顯示的是“關羽”這個資訊點的詳細資訊。

5 結語

介紹了Protégé的基礎知識,並通過一個具體的本體建立過程,將軟體的使用做了說明。Protégé作為一個強大的本體編輯工具,還有很多功能,比如推理能力,希望通過介紹,大家能夠對Protégé進行簡單的操作,並通過不斷地實踐和練習,能夠更深入的理解和使用Protégé。

相關文章