《語義網與知識圖譜》期末復習(二)
之前總結的鏈接:
考試題型
選擇題(1*15)-單選、多選隨機混合
填空題(1*20)-據說不好填
判斷題(1*10)
簡答、問答:
- 寫SPARQL語句和結果(書上),根據RDF圖寫
- 根據屬性圖寫SPQRQL查詢語句
- 根據句子描述寫描述邏輯
- 畫三元組的圖
- 根據句子寫OWL的XML格式片段
- 圖里面去補充節點信息
基本
- 語義web的組成:語義web信息的開放標准、從web描述信息中進一步獲取語義的方法。
- 本體:本體是一種形式化的,對共享概念體系的明確而又詳細的說明。提供一種共享詞表。核心是分類體系。
- RDF使用有向圖作為數據類型。
- 語義網和語義網絡的區別:語義網是未來發展的趨勢,是web3.0的特征;而語義網絡是一種知識表示方法,僅僅是一個方法。
- 知識圖譜:學術角度上講,知識圖譜本質上是一種揭示實體之間關系的語義網絡,可以對現實世界的事物及其相互關系進行形式化地描述。
- 知識圖譜的技術流程:知識表示、知識獲取、知識融合、知識推理、知識檢索、知識分析
- Datalog的基本語法包含:原子、規則、事實。
- 知識圖譜的存儲:關系型數據庫、三元組庫、圖數據庫
- 知識圖譜的應用:推薦系統、知識問答等
- 邏輯語義包含:模型論和證明論
- 知識譜圖的表示:符號表示、向量表示。
- 描述邏輯的基本概念:個體、類、屬性。
RDF-Literals
即文本或者說是字符串,在rdf圖種用方框表示。
RDF表示
一個三元組包含
- 主語:URIs和空節點
- 謂語:URIs(通常被成為屬性)
- 賓語:URIs、空節點或者文字
Turtle
Turtle需要注意:
- URIs放在<>中
- 文字用雙引號
- 三元組用.結束
- 忽略空格
- @prefix描述前綴。eg. @prefix ex: <http://xx.com>.
- 三元組的主語一樣可以簡化縮寫。
XML-based RDF
<rdf:description rdf:about="xx">
</rdf:description>
利用rdf:description表示是一個節點,rdf:about表述節點名或者說是URI
通過xml 的包含結構來描述主謂關系。
literal有兩種寫法
- 直接寫
- 省略寫法.eg: <ex:name="aoru">等價於<ex:name>aoru</ex:name>
空節點在xml中有下列的寫法:
- 指定rdf:nodeId,然后再下面引用
- 縮寫,利用rdf:parseType = "Resource"表示空節點
空節點再turtle中對應為:
- _ 用下划線表示空節點前綴
- 或者下面縮寫,[]用方括號表示空節點,在方括號中寫謂語和賓語。
RDFS
在類和實例上對RDF拓展。
A rdf:type B 表示A是B的實例。
隱式推理:
- a type A, A subclassOf B,則a type B
- A subclassOf B,B subClassOf C,則A subClassOf C。
- A subclassOf B,B subClassOf A,則A、B等價。
屬性約束:
rdfs:domain定義域
rdfs:range值域
語義
主要考慮語義概念的邏輯維度。
邏輯語義包括:模型論和證明論。
OWL
基本元素:
Class、rdfs:subClassOf
所有的類都繼承自owl:Thing
定義一個類
<owl:Class rdf:ID="A">
</owl:Class>
定義一個實例化個體
<A rdf:ID="a">
</A>
屬性:
<owl:ObjectProperty rdf:ID="makeFrom">
<rdf:range rdf:resource="a"></rdf:range>
<rdf:domain rdf:resource="b"></rdf:domain>
</owl:ObjectProperty>
本體映射:
<owl:Class rdf:ID="a">
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Class rdf:ID="b"></rdf:Class>
<rdf:Class rdf:ID="c"></rdf:Class>
</owl:intersectionOf>
</owl:Class>
owl:intersectionOf 交運算
owl:unionOf 並運算
owl:disjointOf 不相交類
描述邏輯
描述邏輯的基本概念包含:個體(URIs)、類(URIs)、屬性(URIs)。
描述邏輯的體系結構包括:表示概念和關系的構造集、Tbox術語集、Abox斷言集、Tbox和Abox上的推理機制。
Abox:上面那種is關系,類與對象的關系屬於Abox。
Tbox:上面那種類與類之間的關系。比如包含關系。
如何利用DL構造一個類.
ALC的構造算子:合取、析取、非、存在量詞、全稱量詞。
一個ALC的例子:
Happy Father概念
下面是存在量詞和全程量詞的符號解釋:
那么根據這個解釋,我們可以對上面HappyFather這么理解:
HappyFather首先是一個Man,然后第二個條件怎么理解呢?存在一個個體滿足hasChild的關系,且在hasChild的值域中,並且這個個體是Male的子集,那么滿足這樣關系的hasChild的定義域集合就是結果。同樣地,hasChild.Famale也可以這么理解。最后一行,理解為,任意一個個體滿足hasChild的關系,這個個體在hasChild的值域中,並且這個個體是醫生或者律師的集合中的元素,那么這樣的關系對(hasChild)中的定義域即為結果。
注意這里HappyFather也是個類,所以不能用個體來描述。
用自然語言描述為:快樂的父親等價於 (他們是男人) 並且 (他們有至少一個孩子,這個孩子是男的,就是他們有兒子的意思) 並且 (他們有至少一個孩子,這個孩子是女的,就是他們有女兒的意思) 並且 (他們所有的孩子都要么是醫生要么是律師)
SROIQ
原文:
The extension of ALC with transitive roles is traditionally denoted by the letter S. Some other letters used in DL names hint at a particular constructor, such as inverse roles I, nominals O, qualified number restrictions Q.The letter R most commonly refers to the presence of role inclusions, local reflexivity Self
S:傳遞關系
R:自反關系
I:可逆關系
O:集合關系封閉
Q:表示集合有基數限制
可判定性:如果一個問題的結果最終能夠收斂到一個穩定的值,不管能不能直接得到解,都稱這個問題是可判定的。
半判定:算法在有限時間能解決的問題是半判定問題。
存在同時是半判定和非判定的問題。
一種描述邏輯如果其”蘊含公理“是可判定的,則這種描述邏輯是可判定的。
大多數的描述邏輯是可判定的,可判定行是判斷一種”好的“描述邏輯標准。
什么是知識圖譜
學術角度上講,知識圖譜本質上是一種揭示實體之間關系的語義網絡,可以對現實世界的事物及其相互關系進行形式化地描述。
知識圖譜的”圖譜“不是圖像而是圖模型。
知識圖譜不僅關心知識如何用圖表達,還關注圖譜如何獲取、融合、更新和推理等問題。
知識圖譜的技術流程
數據->知識表示->知識獲取->知識融合->知識推理->知識檢索->知識分析->應用
知識圖譜與數據庫
- RDF三元組庫,使用SPARQL查詢
- 圖數據庫,使用Cypher(開源圖數據庫Neo4j)、Gremlin、PGOL和G-Core
知識圖譜與推薦系統
推薦系統的問題:冷啟動,最開始沒得數據推薦。
使用知識圖譜解決:知識圖譜可以提供先驗知識,幫助緩解數據稀疏問題,提高模型性能。
推薦系統:
- 基於協同過濾
- 基於內容
引入知識圖譜:
- 基於知識圖譜中元路徑的推薦模型
- 基於概率邏輯程序的推薦模型
- 基於知識圖譜表示學習技術的推薦模型
知識圖譜小結
知識圖譜的終極目標:將非結構、無顯式關聯的粗糙數據逐步提煉為結構化、高度關聯的高質量知識。
知識圖譜涉及:知識表示、關系抽取、圖數據存儲、數據融合、推理補全、語義搜索、知識問答、自動推理、知識驅動等。
關系型數據庫:不強調語義邏輯、數據量大、實用
傳統知識庫:以邏輯為基礎,強調語義、數據量小、不實用
知識圖譜:弱語義,弱邏輯、大量實例、實用
知識表示
知識表示:用易於計算機處理的方式來描述人腦的知識。
數據與知識的區別:知識可以推理。
知識圖譜是知識表示的一種方法。
霍恩子句、霍恩邏輯
霍恩子句:文字的析取,最多有一個肯定文字。也就是說,霍恩子句中最多只能存在一個肯定的句子,其他皆為否定。
如上圖所示,據說這樣的表示能夠在計算機上非常高效。
框架系統
框架系統的基本思想:認為人們對現實世界中事物的認識都是以一種類似於框架的結構存儲在記憶中。當面臨新事物的時候,就從記憶中找出一個合適的框架,並根據實際情況對細節加以修改、補充,從而形成對當前事物的認識。
框架:是一種描述對象的屬性的數據結構。
一個框架系統由若干個槽組成。每個槽又分為若干側面/
槽:描述對象某一方面的屬性。
側面:描述屬性的一個方面。
SPARQL
是rdf數據庫的查詢語言。
用三元組形式查詢。
例子:
prefix exp: <http://aa.com>
SELECT ?student ?email
WHERE {
?student exp:studies exp:English.
OPTIONAL {
?student foaf:mbox ?email.
FILTER(?age >5).
}
}
- 變量前面要加?
- OPTIONAL是帶選項的查詢,表示里面的選項是查詢可選的。
- FILTER是過濾算子,如果OPTIONAL滿足,則就要過濾掉age大於5的結果。
語法 | 含義 |
---|---|
PREFIX | 地址前綴,跟turtle里一樣 |
OPTIONAL | 可選過濾的條件 |
FILTER(REGEX(?name,"jack")) | 對結果過濾 |
{}UNION{} | 兩個結果的並集 |
ORDER BY | 結果排序規則 |
LIMIT 10 | 限制結果數量 |
OFFSET 10 | 略過前十條 |
例子:
prefix exp: <http://example.com>
SELECT ?a ?b
WHERE{
{
{?a exp:has ?b.} UNION {FILTER(?b > 50).}
}
OPTIONAL {
?a exp:is ?b.
}
} LIMIT 10 OFFSET 5
知識圖譜嵌入
嵌入就是映射到高維的向量空間,知識譜圖的嵌入一般可以通過深度學習等方法把系欸但轉化為向量,然后映射到高維空間處理。
知識圖譜中可以用類比推理做知識圖譜的補全。
知識圖譜的存儲
專門存儲RDF數據的三元組庫、圖數據庫、傳統關系型數據庫
Cypher
圖數據庫的查詢語言,neo4j中使用的查詢語言就是Cypher。
Cypher是一種聲明式查詢語言,一個簡單的查詢例子為:
MATCH (P:程序員)
return p
TableAux
基本思想:通過一系列規則構建Abox,檢測可滿足性,或者檢測某一實體是否存在於某概念。
后記
考完了,選擇填空其實不是最難的我感覺,選擇題第一個是問語義網的創始人是誰,一臉懵逼。填空題基本上告訴你一個概念的解釋讓你說出這個概念的名字,然后SPARQL查詢語句的題特別多,但分值不是很高,然后是畫圖的送分題(我好像畫錯了),就是平時作業的唯一一道畫圖題,然后我感覺那描述邏輯的題挺難的,就是給你寫一句話,讓你用SROIQ語句表示出來,比如說,A和B至少同時參加了一個小組類似的這樣的。這部分上課聽不太懂,如果有同學選了這個課要考的話最好還是查一些英文原版資料盡量寫一些配套的題,不然這里會坑(我也不知道自己寫沒寫對,沒得底),然后最后一題好像是平時作業里的送分題。難點主要在SROIQ語句,基礎點主要在SPQRQL查詢語句。后記完。