知識圖譜學習筆記(2)


  一、知識圖譜的基礎概念1:RDF

RDF(Resource Description FrameWork),就是資源描述框架,它的本質是一個數據模型(Data Model)。它提供了一個統一的標准,用於描述實體/資源。簡單來說,就是表示事物的一種手段和方法。RDF在形式上表示為SPO三元組,有時候也稱為一條語句(statment),在知識圖譜中我們稱之為一條知識)

  Subject ---------------------------Predicate-------------------------------->Object

其中RDF由節點和邊組成,節點表示實體/資源、屬性,邊則表示實體和實體之間以及實體和屬性之間的關系。

  二、RDF序列化的方法

RDF的表示形式和類型有了,那我們如何創建EDF數據集,將其序列化呢(Serialization)呢?換句話說,就是我們怎么存儲和傳輸RDF數據。目前,RDF序列化的主要方式有:RDF/XML,N-Triples,Turtle,RDFa,JSON-LD等幾種方式。  

  (1)RDF/XML,顧名思義,就是XML的格式來表示RDF數據,之所以用到這個方法就是因為XML技術比較成熟,有很多現成的工具來存儲和進行解析XML。然而,對於RDF來說,XML的格式太冗長,也不便於閱讀,通常我們不會使用這種方式來處理RDF數據。

  (2)N-Triples,就是用三元組的方式來表示RDF數據集,是最直觀的表述方法。在文件中每一行表示一個三元組,方便機器的解析和處理。開放知識領域的圖譜DBpedia通常是用這種格式來發布數據的。

  (3)Turtle,是用的最多的一種RDF序列化的方式了。他比RDF/XML緊湊,並且可讀性比N-Triple要好一些。

  (4)RDFa,即"The Resource Description Framework in Attributes",是HTML5的一個擴展,在不改變任何顯示效果的情況下,能夠讓網站構建者在頁面中標記實體,像人物、時間、地點、評論等等。也就是說,將RDF數據嵌入到網頁中,搜索引擎能夠更好的解析非結構化的頁面,獲取一些有用的結構化信息。

  (5)JSON-LD,j就是"JSON for Linking Data",用鍵值對的方式來存儲RDF數據

接下來我們結合羅納爾多的例子,進行N-Triples和Turtle的具體表示。

N-Triples;
<http://www.kg.com/person/1<http://www.kg.com/ontology/chineseName>"羅納爾多.路易斯"

 

 

 

 

 

 

 

 

Proteger工具介紹使用

  1.Protege簡介:

    (1)Protege軟件是斯坦福大學醫學院生物信息中心基於java語言開發的本體編輯和本體開發工具,也是基於知識的編輯器,屬於開放的源代碼軟件

    (2)這個軟件主要用於語義網中本體的構建,是語義網中本體構建的核心開發工具。

  2.Protege使用:

    (1)Protege是一組自由開源的工具軟件,用於構建模型與基於知識的文本化應用程序。

    (2)Protege提供了大量的知識模型架構與動作,用於創建、可視化、操縱各種表現形式的本體

    (3)可以通過用戶定制實現域-友好(領域相關)的支持,用於創建知識模型並填充數據。

    (4)相比於其他的本體構建工具而言,Protege最大的好處是在於支持中文,在插件上,用OntoGraf可以實現中文關系的顯示。

  3.Protege用途

    (1)類建模:Protege提供了一個圖形化用戶界面來建模類(領域概念)和他們的屬性以及關系

    (2)示例編輯(Instance editing):從這些類中,Protege自動產生交互式的形式,全用戶或領域轉件進行有效的實例編輯成為可能。

    (3)模型處理:Protege有一些插件庫,可以定義語義、解答查詢以及定義邏輯行為。

    (4)模型交換(Model exchange):最終的模型(類和實例)能以各種各樣的格式被裝在和保存,包括XML、UML和資源描述框架RDF

    4.Protege的使用

  (1)建立新的本體。

    第一步:建立新的本體。

        打開Protege軟件之后(界面上顯示如圖所示),便是新建文本的界面;

        或者,可以在菜單里面的選擇File->New ... 新建一個本體

    第二步:構建類。

        1.Protege的主頁面中,點擊Entities頁面,進入本體的編輯界面;

        2.在Entities頁面,選擇Classes標簽(默認情況下用戶看到的是該標簽的頁面),進入類及其層次的編輯頁面

        3.在Classes頁面,右鍵點擊owl:Thing,選擇Add Subclasses...,在出現的對話框中Name標簽后輸入類的名字,然后點擊確定;

        4.在Classes頁面點擊一個類名,在protege右側Description部分修改跟該類相關的屬性值

    第三步:建立子類。

        1.在"人物"上右鍵點擊,選擇Add subclass...;

        2.在彈出的對話框中輸入子類的名稱,如"禪師",點擊確定,在Classes界面顯示類的層次

        3.如果需要就刪除某個類,點擊該類,然后點擊刪除圖案進行相應的刪除

    第四步構建類之間的關系。

        因為人物和地點是不同的事物,即他們具有排他性,下面定義該關系。

        1.在選中"人物"的狀態下,在Entities界面的右側Description部分點擊DisjointWith后面 的加號

        2.在彈出的界面中,展開owl:Thing,選擇"地點",然后點擊確定。這樣人物和地點就有相互排斥的屬性了

    第五步  建立對象屬性

        添加屬性名稱:

          1:在Entities界面選擇Object properties標簽,進入對象屬性的編輯界面

          2.在owl:topObjectProperty上右鍵點擊,選擇"Add Sub-Properties.."

          3.在彈出的界面中,輸入屬性的名稱,例如"曾住",點擊"Continue",再點擊"Finish",便建好了屬性。

        為屬性添加domain和range屬性值

          1.在Object properties界面,選擇一個屬性,例如"曾住";

          2.在Entities界面的右側Description模塊中點擊Domain后的加號;

          3.在彈出的界面中選擇"人物",點擊確定,這樣為"曾住"加了domain約束;

          4.類似地,點擊Description中后的加號,選擇"地點"。

    第六步:建立數據屬性:

          1.在Entities界面選擇Data properties標簽,進入數據屬性的編輯界面;

          2.在owl:topDataProperty上右鍵點擊,選擇"Add sub-properties...";

          3.在彈出的界面中,輸入屬性名稱,例如法號,點擊"Continue",再點擊"Finish",便已經建好了屬性;

          4.在Data properties界面,選擇一個屬性,例如"法號";

          5.在Entities界面的右側Description模塊中點擊Range后的加號;

          6.在彈出的界面中,選擇"Built indataypes",從中挑選xsd:string,再點擊確定,即限制該屬性的取值范圍是字符串;建立數據屬性類似於建立對象屬性,主要是在家range時的約束條件不同。

    第七步:建立實例

        添加實例機及其類型

          1.在Entities界面選擇Individual標簽,進入實例的編輯界面

          2.單機Individuals界面的菱形圖標,在彈出的界面輸入實例的名字,如"佛印大師",點擊確定

          3.在Entities的右側界面的Description部分,點擊Types后面的加號,在出現的界面中選擇Class           Hierarchy標簽,從類層次中選擇"禪師"。這樣實例就有了類型約束。

        添加實例之間的關系,以"佛印禪師"為例

          1.在Individuals界面選擇實例"佛印禪師",在Entities界面右側的Property assertions部分點擊Object             property assrttions旁邊的加號    

          2.在彈出的界面分別輸入一個對象屬性的名字(如"曾住")和一個實例名字(如"鎮江金山寺"),點擊確定。這樣,使得"佛印禪師"與"鎮江金山寺"通過"曾住"關聯起來了。    

        添加實例添加屬性值,以"蘇軾"為例

          1.在Individuals界面選擇"蘇軾",在Entities界面右側的"Property assertions"部分點擊Data property assertions旁邊的加號(類似添加是李建關系的操作);

          2.在彈出的界面中,在左側選擇數據屬性(如"別名"),右側填寫屬性值(如"蘇東坡、東坡"),點擊確定。這樣,便為實例"蘇軾"的屬性"別名"添加了具體的值,即"蘇東坡、東坡"

        第八步:保存本體

          1.在菜單選擇File--->Save;

          2.在彈出的界面中,選擇"RDF/XML Syntax"

          3.在新出現的界面中,在在文件名處輸入本體的名字,例如kgexample,文件類型是"OWL File",點擊保存

        第九步:可視化。

          1.在菜單中選擇Windows->Tabs->OntoGraf;

          2.在出現的界面中,點擊加號可以進行展開,鼠標移到線上,可以顯示此線代表的關系名稱。

        第十步:推理

          1.在菜單中選擇Reasoner

          2.在出現的界面中,選擇HermiT,然后點擊Start reason

          3.推理得到的信息就會在對應的描述中顯示出來

          例如:本體中給出裴文德和裴林是人物的實例,裴林是裴文德的父親,父親的domain是人物,range是男人,因此可以推導出裴林是男人的一個實例。

          4.對於推理出來的信息,如果想知道為什么能被推理機推到出來,可以點擊推到信息后面的問號

          5.解釋的原因會在新的對話框中進行顯示

 


免責聲明!

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



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