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