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


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é。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM