知识图谱入门 (二) 知识表示与知识建模
歡迎大家關注我的博客 http://pelhans.com/ ,所有文章都會第一時間發布在那里哦~
本講首先對早期的知識表示做了一個簡單介紹,而后詳細介紹了基于語義網的知識表示框架,如RDF和RDFS和查詢語言SQARQL。最終給出幾個典型的知識項目的知識表示。
知識表示歷史
知識的概念
知識表示就是對知識的一種描述,或者說是對知識的一組約定,一種計算機可以接受的用于描述知識的數據結構。它是機器通往智能的基礎,使得機器可以像人一樣運用知識。
知識具有相對正確性、不確定性、可表示性以及可利用性的特點。根據不同劃分標準,知識可以分為不同的類別。例如按照作用范圍分類,可分為常識性知識和領域性知識。按作用及表示分類為事實性知識、過程性知識、控制知識。按確定性分類有確定性知識,不確定性知識。按結構及表現形式可分為邏輯性知識和形象性知識。
早期的知識表示方法
一階謂詞邏輯
謂詞邏輯(Lp)可以對原子命題做進一步分析,分析出其中的個體詞、謂詞、量詞,研究它們的形式結構的邏輯關系、正確的推理形式和規則。
一階邏輯是數理邏輯的基礎部分,主要包括經典命題邏輯和一階謂詞邏輯,但實際上一階謂詞邏輯包含了命題邏輯。一階邏輯之所以是“一階”的,是因為它所包含的謂詞邏輯是一階的。謂詞就是表示對象屬性的語詞。對象的屬性具有層次,在謂詞用法中,這種層次叫做“階”。所謂一階謂詞就是指刻畫個體屬性的謂詞,如“紅色”“大于”等謂詞都只適用于個體概念,像“鮮艷”“傳遞性”等用來刻畫“紅色”“大于”這種謂詞的謂詞就是高階謂詞了,它們刻畫的是屬性的屬性。
一階謂詞邏輯具有自然性、接近自然語言、容易接受、嚴密性、易于轉化為計算機內部形式等優點,但同時也具有無法表示不確定性知識、難以表示啟發性知識及元知識、組合爆炸、效率低等缺點。為了克服以上缺點,人們提出了Horn邏輯、描述邏輯等改進方案。
產生式系統
產生式系統是一種更廣泛的規則系統,和謂詞邏輯有關聯,也有區別。早起的專家系統多數是基于產生式系統的。產生式知識表示法是常用的知識表示方式之一。它是依據人類大腦記憶模式中的各種知識之間的大量存在的因果關系,并以“IF-THEN”的形式,即產生式規則表示出來的。這種形式的規則捕獲了人類求解問題的行為特征,并通過認識–行動的循環過程求解問題。一個產生是系統由規則庫、綜合數據庫和控制機構三個基本部分組成。
謂詞邏輯中的規則與產生式的基本形式相似,事實上,蘊涵式只是產生式的一種特殊情況。產生式規則表示法具有非常明顯的優點,如自然型好,易于模塊化管理、能有效表示知識、知識表示清晰等優點。但是產生式規則也有著效率不高、不能表達具有結構性的知識等缺點。因此,人們經常將它與其它知識表示方法(如框架表示法、語義網絡表示法)相結合。
框架表示法
框架表示法是明斯基于1975年提出來的,其最突出的特點是善于表示結構性知識,能夠把知識的內部結構關系以及知識之間的特殊關系表示出來,并把與某個實體或實體集的相關特性都集中在一起。
框架表示法認為人們對現實世界中各種事物的認識都是以一種類似于框架的結構存儲在記憶中的。當面臨一個新事物時,就從記憶中找出一個合適的框架,并根據實際情況對其細節加以修改、補充,從而形成對當前事物的認識。
框架是一種描述固定情況的數據結構,一般可以把框架看成是一個節點和關系組成的網絡??蚣艿淖罡邔哟问枪潭ǖ?#xff0c;并且它描述對于假定情況總是正確的事物,在框架的較低層次上有許多終端–被稱為槽(Slots)。在槽中填入具體值,就可以得到一個描述具體事務的框架,每一個槽都可以有一些附加說明–被稱為側面(Facet),其作用是指出槽的取值范圍和求值方法等。一個框架中可以包含各種信息:描述事物的信息,如何使用框架的信息,關于下一步將發生什么情況的期望及如果期望的事件沒有發生應該怎么辦的信息等等,這些信息包含在框架的各個槽或側面中。
一個具體事物可由槽中已填入值來描述,具有不同的槽值得框架可以反映某一類事物中的各個具體事物。相關的框架鏈接在一起形成了一個框架系統,框架系統中由一個框架到另一個框架的轉換可以表示狀態的變化、推理或其它活動。不同的框架可以共享同一個槽值,這種方法可以把不同角度搜集起來的信息較好的協調起來。
框架表示法對于知識的描述非常完整和全面;基于框架的知識庫質量非常高;且框架允許數值計算,這一點優于其它知識表示語言。但框架的構建成本非常高,對知識庫的質量要求非常高;框架的表達形式不靈活,很難同其它形式的數據集相互關聯使用。
語義網絡
語義網絡是知識表示中最重要的方法之一,是一種表達能力強而且靈活的知識表示方法。語義網絡利用節點和帶標記的邊結構的有向圖描述事件、概念、狀況、動作及客體之間的關系。帶標記的有向圖能十分自然的描述客體之間的關系。
語義網絡由于其自然性而被廣泛應用。采用語義網絡表示的知識庫的特征是利用帶標記的有向圖描述可能事件。結點表示客體、客體性質、概念、事件、狀況和動作,帶標記的邊描述客體之間的關系。知識庫的修改是通過插入和刪除客體及其相關的關系實現的。采用網絡表示法比較合適的領域大多數是根據非常復雜的分類進行推理的領域以及需要表示事件狀況、性質以及動作之間的關系的領域。
語義網絡的基本形式為(節點, 弧, 節點2),節點表示各種事物、概念、情況、屬性、動作、狀態等,每個節點可以帶有若干屬性,一般用框架或元組表示。此外節點還可以是一個語義子網絡,形成一個多層次的嵌套結構。語義網絡中的弧表示各種語義聯系,指明它所連接的節點間某種語義關系。節點和弧都必須帶有標示,來方便區分不同對象以及對象間各種不同的語義聯系。一個語義網絡的例子為:
本質上是將邏輯運算符和邏輯項映射到了圖中的元素。語義網絡具有以下優點:
- 把各個節點之間的聯系以明確、簡潔的方式表示出來,是一種直觀的表示方法;
- 著重強調事物間的語義聯系,體現了人類思維的聯想過程,符合人們表達事物間的關系,因此把自然語言轉換成語義網絡較為容易;
- 具有廣泛的表示范圍和強大的表示能力,用其他形式的表示方法能表達的知識幾乎都可以用語義網絡來表示;
- 把事物的屬性以及事物間的各種語義聯系顯示地表示出來,是一種結構化的知識表示法。
但語義網絡也具有以下缺點:
- 推理規則不十分明了,不能充分保證網絡操作所得推論的嚴格性和有效性;
- 一旦節點個數太多,網絡結構復雜,推理就難以進行;
- 不便于表達判斷性知識與深層知識。
基于語義網的知識表示框架
上圖為W3C推薦的語義網標準棧,其中RDF和SPARQL為網絡數據鏈接部分。與此同時,W3C還推出五星級標準,規定了RDF為標準數據格式,URI標準為事物命名等規范。
RDF簡介
RDF概念
資源描述框架(Resource Description Framework, RDF),R代表頁面,圖片、視頻等任何具有URI標識符,D標識屬性、特征和資源之間的關系,F標識模型、語言和這些描述的語法。在RDF中,知識總是以三元組的形式出現,即每一份知識都可以被分解為:(subject, predicate, object)。
(NJU,student,Pelhans)(NJU,student,Pelhans)
與此同時,RDF三元組可以看做是圖模型的邊和頂點(vertex,edge,vertex)(vertex,edge,vertex),還可以將兩個三元組結合起來表示:
在RDF中resource和properties是以URIs的形式表示的,如http://mydomain.org/mypath/myresource。這樣我們的表示就變成了這樣:
再結合URI的表示,我們可以把它簡化為:
在RDF中,properties的值可以是literals,如字符串,因此也可以長成:
properties還可以是XML類型的,因此還可以長成:
RDF和RDFS
RDFS(RDF Schema)在RDF的基礎上提供了一個術語、概念的定義方式,以及那些屬性可以應用到哪些對象上。換句話說,RDFS為RDF模型提供了一個基本的類型系統。如:
上述三元組表示用戶自定義的元數據Author是Dublin Core的元數據Creator的子類。RDF Schema正是通過這樣的方式來描述不同詞匯集的元數據之間的關系,從而為網絡上統一格式的元數據交換打下基礎。
RDFS支持推理功能,如:
OWL和OWL2
前面我們知道,通過RDF(S)可以表達一些簡單的語義,但在更復雜的場景下,RDF(S)語義表達能力顯得太弱,還缺少諸多常用的特征。包括對局部值域的屬性定義,類、屬性、個體的等價性,不相交類的定義,基數約束,關于屬性特征的描述等。因此W3C提出了OWL語言擴展RDF(S),作為語義網上表示本體的推薦語言。
OWL
W3C于2002年7月31日發布了OWL Web本體語言(OWL Web Ontology Language)工作草案的細節其目的是為了更好地開發語義網。OWL有三個子語言:OWL Lite、OWL DL、OWL Full。下表給出OWL三個子語言的特征于區別:
OWL各語言如何選擇
- 選擇OWL Lite還是OWL DL主要取決于用戶需要整個語言在多大程度上給出約束的可表達性;
- 選擇OWL DL還是OWL Full主要取決于用戶在多大程度上需要RDF的元模型機制 (如定義類型的類型以及為類型賦予屬性);
- 在使用OWL Full而不是OWL DL時,推理的支持可能不能工作,因為目前還沒有完全的支持OWL Full的系統實現。
綜上所述,在要求簡單是可采用OWL Lite,通??刹捎肙WL DL,對概念要求定義精確時采用OWL Full。(在Protege練習中感覺DL 和 Full區別并不明顯)
OWL與RDF的關系
- OWL Full可以看成是RDF的擴展;
- OWL Lite和OWL Full可以看成是一個約束化的RDF的擴展;
- 所有的OWL文檔 (Lite,DL,Full)都是一個RDF文檔;
- 所有的RDF文檔都是一個OWL Full文檔;
- 只有一些RDF文檔是一個合法的OWL Lite和OWL DL文檔。
上面說的很模糊,在Protege操作中,OWL給我的感覺就是在RDFS的基礎上,添加了很多描述類別、屬性之間關系的定義或約束。,如兩個類是否不相交這樣的類屬性。
OWL詞匯擴展
OWL2
OWL2是OWL的最新版本,老的OWL也稱為OWL1,OWL2定義了一些OWL的子語言,通過限制語法使用,使得這些子語言能夠更方便地實現,以及服務于不同的應用;OWL2也有三大子語言:OWL2 RL,OWL2 QL, OWL2 EL;
OWL2 QL適合概念多的情況,OWL2 EL適合實例較多的情況,如醫學領域,OWL2 RL適合高效推理。
OWL2 QL
QL代表query language的意思,專為基于本體的查詢設計:
- OWL 2 QL的復雜度是AC 0 ,非常適合大規模處理;
- OWL 2的三大子語言中,QL最為簡單;
- OWL 2 QL是基于描述邏輯語言DL-Lite定義的。
OWL2 QL允許的核心詞匯為:
通過OWL 2 QL的語言限制,基于QL的本體查詢可以優化到多項式對數時間復雜度。
OWL2 EL
OWL 2 EL專為概念術語描述,推理而設計:
- 在生物醫療領域廣泛應用,如臨床醫療術語本體SNOMED CT;
- 復雜度是PTime-Complete;
- OWL2 EL是基于描述邏輯語言EL++定義的;
它允許的核心詞匯為:
OWL2 EL允許表達復雜的概念,如
Female??likes.Movie??hasSon.(Student??attends.CSCourse)Female??likes.Movie??hasSon.(Student??attends.CSCourse)
OWL2 RL
OWL 2 RL在ter Horst的工作基礎上延伸而來; 該工作的目的是將
OWL詞匯引入RDFS,使得RDFS在表達能力上豐富起來,同時保持
計算復雜度在PTime級別。OWL 2 RL在RDFS的基礎上引入屬性的特殊特性 (函數性,互反性,對稱性);允許聲明等價性;允許屬性的局部約束。OWL 2 RL與描述邏輯沒有直接關系。
業界的一種觀點是,OWL 2 RL是專為高效推理設計的本體語言(推理針對的是實例數據)。
OWL2 RL允許的核心詞匯為:
OWL2的推理系統
SPARQL簡介
SPARQL是RDF的查詢語言,它基于RDF數據模型,可以對不同的數據集撰寫復雜的連接,同時還被所有主流的圖數據庫支持。
SPARQL的查詢結構如下圖所示:
從語法上結構上來看,SPARQL和SQL語言還是有一定的相似性的。比較重要的區別有:
- 變量,RDF中的資源,以“?”或者“$”指示;
- 三元組模板 (triple pattern), 在WHERE子句中列示關聯的三元組模板,之所以稱之為模板,因為三元組中允許變量;
- SELECT子句中指示要查詢的目標變量
有關SPARQL的詳細操作指令我打算在實戰單開一個小結把重要操作演示一遍。這里僅給出一個小例子看操作是什么樣子的:
JSON-LD
為了方便程序員閱讀知識標識,出現了JSON-LD,JSON-LD是JavaScript Object Notation for Linked Data的縮寫,是一種基于JSON表示和傳輸互聯數據 (Linked Data)的方法。JSON-LD描述了如何通過JSON表示有向圖,以及如何在一個文檔中混合表示互聯數據及非互聯數據。JSON-LD的語法和JSON兼容。
JSON-LD呈現出語義網技術的風格,它們有著類似的目標:圍繞某類知識提供共享的術語。例如,每個數據集不應該圍繞“name”重復發明概念。JSON-LD 的 實 現 沒 有 選 擇 大 部 分 語 義 網 技 術 棧 (Turtle/SPARQL/Quad Stores)而是以簡單、不復雜以及面向一般開發人員的方式推進。下圖給出JSON-LD事例,可以看出非常容易理解:
RDFa
RDFa(Resource Description Framework in attributes)是網頁標記語言,也是W3C推薦的標準,它擴充了XHTML的幾個屬性,網頁制作者可以利用這些屬性在網頁中添加可供機器讀取的資源。與RDF的對應關系使得RDFa可以將RDF的三元組嵌入在XHTML文檔中,它也使得符合標準的使用端可以從RDFa文件中提取出這些RDF三元組來。RDFa從機器可理解的層面優化搜索,提升訪問性以及網頁數據的關聯性。
HTML5 Microdata
Microdata微數據,是在網頁標記標記語言嵌入機器可讀的屬性數據,微數據使用可以來自自定義詞匯表、帶作用域的鍵/值對給DOM做標記。用戶可以自定義微數據詞匯表,在自己的網頁中嵌入自定義的屬性。微數據是給那些已經在頁面上可見的數據施加額外的語義。當HTML的詞匯不夠用時,使用微數據可以取得較好的效果。
Cite
王昊奮知識圖譜教程
總結
以上是生活随笔為你收集整理的知识图谱入门 (二) 知识表示与知识建模的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用计算机求一个正数的算术平方根,《用
- 下一篇: 如何用电脑录制视频?图文教学,快速学会