【知识图谱】知识表示与知识建模

一、早期知识表示简介

1、概述

人类心智区别于其它物种心智的重要特征:具有获取、表示和处理知识的能力。

知识表示 是一种为了让计算机可以接受的用于描述知识的数据结构。它是机器通往智能的基础,使得机器可以像人一样运用知识。特别是常识知识才能实现真正类人的智能

知识的特点:相对正确性、不确定性、可表示性以及可利用性。

2、知识分类

  • 按作用范围分类:常识性知识、领域性知识;
  • 按作用及表示分类:事实性知识、过程性知识、控制知识;
  • 按确定性分类:确定性知识、不确定性知识;
  • 按结构及表现形式分类:逻辑性知识、形象性知识;

3、早期知识表示方法

  • 一阶谓词逻辑(First-Order Logic)
  • 产生式规则(Production Rule)——专家系统
  • 框架(Framework)
  • 语义网络(Semantic Network)——以网络的方式来描述概念之间的语义关系
  • 逻辑程序(Logic Programming)
  • 缺省逻辑(Default Logic)
  • 模态逻辑(Modal Logic)

(1)一阶谓词逻辑(First-Order Logic)

Horn逻辑:一阶谓词逻辑的子集

  • 原子 Atom
    p ( t 1 , t 2 , . . . , t n ) p(t_1,t_2,...,t_n) p(t1,t2,...,tn)
    其中, p p p是谓词, n n n是目, t i t_i ti是项(变量或常量),eg:has_child(Helen, Jack)
  • 规则 Rules ——由原子构建:
    H : − B 1 , B 2 , . . . , B m . H:-B_1,B_2,...,B_m. H:B1,B2,...,Bm.
    H 与 B 1 , B 2 , . . . , B m H与B_1,B_2,...,B_m HB1,B2,...,Bm是原子, H H H是头部原子, B 1 , B 2 , . . . , B m B_1,B_2,...,B_m B1,B2,...,Bm是体部原子,eg:has_child(X,Y):-has_son(X,Y)
  • 事实——没有体部且没有变量的规则:
    F ( v 1 , v 2 , . . . , v n ) : − h a s c h i l d ( H e l e n , J a c k ) : − F(v_1,v_2,...,v_n):- \\has_child(Helen, Jack):- F(v1,v2,...,vn):haschild(Helen,Jack):

描述逻辑:一阶谓词逻辑的可判定子集。用于描述概念、属性,为术语知识库的构建提供便捷的表达形式。

(2)产生式规则(Production Rule)

早起的专家系统多数是基于产生式系统的。以 IF-THEN 的形式,即产生式规则表示出来的。

产生式模型
P → Q     o r I F P T H E N Q C F = [ 0 , 1 ] P→Q \ \ \ or \\ \begin{aligned} IF\quad P\quad THEN\quad Q \quad CF = [0, 1]\end{aligned} PQ   orIFPTHENQCF=[0,1]

  • 其中, P P P 是产生式的前提, Q Q Q 是一组结论或操作, C F ( C e r t a i n t y F a c t o r ) CF (Certainty Factor) CF(CertaintyFactor) 为确定性因子,也称置信度。

特点

  • 优点:自然型好,易于模块化管理、能有效表示知识、知识表示清晰等;
  • 缺点:效率不高、不能表达具有结构性的知识等。

(3)框架(Framework)

基本组成
在这里插入图片描述

示例
在这里插入图片描述
利用上述框架在知识库中匹配得到实例(对框架进行填充可得)。
在这里插入图片描述

(4)语义网络(Semantic Network)

基本形式:(节点1, 弧, 节点2)

  • 节点:表示各种事物、概念、情况、属性、动作、状态等,每个节点可以带有若干属性,一般用框架或元组表示。此外节点还可以是一个语义子网络,形成一个多层次的嵌套结构。
  • 弧:表示各种语义联系,指明它所连接的节点间某种语义关系。
  • 节点和弧都必须带有标示,来方便区分不同对象以及对象间各种不同的语义联系。

特点

  • 优点:结构性、联想性、自然性;
  • 缺点:非严格性、处理上的复杂性

示例:eg:“每个学生都读过一本书”

  • 谓词逻辑表示: ( ∀ s ) 学 生 ( s ) ( ∃ b ) 书 ( b ) [ 读 过 ( s , b ) ] (\forall s)学生(s)(\exists b)书(b)[读过(s,b)] (s)(s)(b)(b)[(s,b)]
  • 语义网络表示:
    • 本质:将逻辑运算和逻辑项都映射为图中的元素。
      在这里插入图片描述

二、基于语义网的知识表示框架

1、语义网(Semantic Web)

知识图谱中最关键的技术:RDF、SPARQL

下图为W3C推荐的语义网标准栈,其中RDF和SPARQL为网络数据链接部分。与此同时,W3C还推出五星级标准,规定了RDF为标准数据格式,URI标准为事物命名等规范。
在这里插入图片描述
在这里插入图片描述

2、RDF

(1)RDF概念

RDF:Resource Description Framework(资源描述框架)

  • Resource:页面、图片、视频等任何具有URI标识符;
    • URI:http://mydomain.org//mypath//myresource
  • Description:属性、特征和资源之间的关系;
  • Framework:模型、语言和这些描述的语法。

在RDF中,知识总是以 三元组(triple)模型 形式出现的,即每一份知识可以被分解为如下形式:
(subject(主), predicate(谓), object(宾)),同时在RDF中资源和属性都可以被URI唯一标识。

(2)基本示例

示例1CCF ADL邀请王昊奋作为讲者,演讲主题是知识图谱。

  • RDF形式
    (CCF ADL, speaker, Haofen)
    (CCF ADL, theme, KG)
    
  • 图模型形式(vertex, edge, vertex)
    • 下面左图为利用URI表示的结果,右图为利用命名空间定义前缀的结果。
      在这里插入图片描述

示例2:RDF中的属性值同时也可以是一个文字,如字符串/数值XML datatype类型。(它们不是一个Resource)。

  • 左图:CCF ADL邀请王昊奋作为讲者,演讲主题是知识图谱。,此处知识图谱为字符串。
  • 右图:CCF ADL has one speaker Haofen and last 3 hours.,其中"3"后面为其类型约束,即整型。
    在这里插入图片描述

(3)RDF空白节点(Black Nodes)

空白节点

  • RDF允许空白节点;
  • 一个资源可以是匿名的;
  • 即不被URI标识,并标识为 _:xyz

egHaofen是某一次KG讲座的讲者(并不关心是什么讲座)
在这里插入图片描述

(4)RDF是数据类型,不是序列化格式

RDF序列化格式之间的关联:
在这里插入图片描述

  • RDF/XML格式:适合小数据的存储与交换
<rdf:RDF
  xmlns:ex-schema=http://ex.org/schema#>
  <rdf:Description rdf:about="http://ex.org/ccf_adl">
    <ex-schema:speaker rdf:resource="http://ex.org/haofen"/>
    <ex-schema:theme rdf:resource="http://ex.org/KG"/>
  </rdf:Description>
</rdf:RDF>
  • N-Triples格式
<http://ex.org/ccf_adl>
	<http://ex.org/schema#speaker>
	<http://ex.org/haofen>.

<http://ex.org/ccf_adl>
	<http://ex.org/schema#theme>
	<http://ex.org/KG>.
  • Turtle格式
@prefix ex:<http://ex.org>.
@prefix ex-schema:<http://ex.org/schema#>
	ex:ccf_adl
	ex-schema:speaker ex:haofen;
	ex-schema:theme ex:KG.

(5)开放世界假设

RDF 是 开放世界假设

  • 封闭世界假设:没有定义则认为不存在。
  • 开放世界假设:
  • eg:(CCF ADL, speaker, Haofen)
    • 封闭世界假设==》CCF ADL讲座只有一位讲者;
    • 开放世界假设==》CCF ADL讲座至少有一位讲者;

(6)分布式的定义与合并知识

  • RDF允许分布式地定义知识
    在这里插入图片描述
  • 分布式定义的知识可以自动合并
    • 若分布式存储 ex:haofen 的URI不一致,如何融合??
      在这里插入图片描述

(7)变种:带标注RDF

动机:如何扩展 RDF 用来表达更多信息

  • 时间、不确定性、空间、信任等
  • ==》带标注 RDF(S) ==》知识库:YAGO2

YAGO2:采用 annotated RDF 表示的知识库

  • 语法形式 ( s , p , o ) : λ (s, p, o):\lambda (s,p,o):λ
    • λ \lambda λ 是一个标志
    • eg:(特朗普,就职,总统):2017年1月

3、RDF Schema(RDFS)

(1)概述

RDFS在RDF基础上提供了一个术语、概念等的定义方式,以及哪些属性可以应用到哪些对象上。换句话说,RDFS为RDF模型提供了一个基本的类型系统。

示例:三元组表示用户自定义的元数据Author是Dublin Core的元数据Creator的子类。

<http://mymetadata.vocab.org/Author>
<rdfs: subClassOf > 
<http://purlorg/dc/elements/1.0/Creator>.

作用:RDFS通过这样的方式来描述不同词汇集的元数据之间的关系,为网络上统一格式的元数据交换提供便利。

(2)具体

RDF定义了如下几种词汇:

  • Class、subClass、type、Property、subPropertyOf、Domain、Range

示例

  • 图中,data层 是对 schema层 的实例化,是由数据驱动的。
    在这里插入图片描述

(3)基于RDFS的推理

基于 data层schema层 可进行推理,如上下位的推理(如subClass),类别的判断等。

示例
在这里插入图片描述

4、OWL和OWL2

RDF是有一定的表达缺陷,RDF不能表达复杂类。

(1)OWL简述

OWL Web Ontology Language包含三个子语言:OWL Lite、OWL DL、WOL Full
在这里插入图片描述

在这里插入图片描述

(2)OWL词汇

  • 等价性
OWL中的词汇描述示例
owl:equivalentClass类等价exp:运动员 owl:equivalentClass exp:体育选手
owl:equivalentProperty属性等价exp:获得 owl:equivalentProperty exp:取得
owl:sameIndividualAs个体等价exp:运动员A owl:sameIndividualAs exp:小明

exp 是命名空间 http://www.example.org 的别称。

  • 传递性
OWL中的词汇描述示例
owl:TransitiveProperty属性传递exp:ancestor rdf:type owl:TransitiveProperty

exp:ancestor 是一个传递关系 exp:小明 exp:ancestor exp:小林; exp:小林 exp:ancestor exp:小志
那么根据上述声明,有 exp:小明 exp:ancestor exp:小志

  • 属性相反
OWL中的词汇描述示例
owl:inverseOf属性相反exp:ancestor owl:inverseOf exp:descendant

exp:ancestorexp:descendant 是互反关系
eg:exp:小明 exp:ancestor exp:小林,那么有 exp:小林 exp:descendant exp:小明

  • 属性函数性
OWL中的词汇描述示例
owl:FunctionalProperty属性函数性exp:hasMother rdf:type owl:FunctionalProperty

exp:hasMother 是一个具有函数性的属性(只有一个);因为每个人只有一个母亲。

  • 属性对称性
OWL中的词汇描述示例
owl:SymmetricProperty属性对称性exp:hasMother rdf:type owl:FunctionalProperty

exp:小明 exp:friend exp:小林,那么有 exp:小林 exp:friend exp:小明

  • 属性的局部约束:全称限定
OWL中的词汇描述示例
owl:allValuesFrom全称限定exp:Person owl:allValuesFrom exp:Women,exp:Person owl:onProperty exp:hasMother

exp:hasMother在主语属于exp:Person类的时候,宾语的取值只能来自exp:Women这个类。

  • 属性的局部约束:存在限定
OWL中的词汇描述示例
owl:someValuesFrom存在限定exp:SemanticWebPaper owl:someValuesFrom exp:AAAI,exp:SemanticWebPaper owl:onProperty exp:publishedIn

exp:publishedIn在主语属于exp:SemanticWebPaper类的时候,宾语的取值部分来自exp:AAAI这个类。上面的三元组相当于:关于语义网的论文部分发表在AAAI上。

  • 属性的局部约束:基数限定
OWL中的词汇描述示例
owl:cardinality基数限定exp:Person owl:cardinality “1”^^xsd:integer,exp:Person owl:onProperty exp:hasMother

exp:hasMother在主语属于exp:Person类的时候,宾语的取值只能有一个;“1”的数据类型被声明为xsd:integer;这是基数约束,本质上属于属性的局部约束。

  • 声明相交的类
OWL中的词汇描述示例
owl:intersectionOf相交的类exp:Mother owl:intersectionOf _tmp,_tmp rdf:type rdfs:Collection,_tmp rdfs:member exp:Person,_tmp rdfs:member exp:HasChildren

_tmp是临时资源;它是rdfs:Collection类型,是一个容器;它的两个成员是exp:Person,exp:HasChildren;上述三元组说明exp:Mother是exp:Person,exp:HasChildren这两个类的交集。

  • OWL其他词汇
    在这里插入图片描述

(3)OWL2

OWL2 定义了一些 OWL 的子语言,通过限制语法使用,使得这些子语句能够更方便地实现,以及服务于不同的应用。

OWL2的三大子语言:

  • OWL2 RL、OWL2 QL、OWL2 EL,家族树如下:
    在这里插入图片描述

5、SPARQL简介

SPARQL 是 RDF的查询语言(i.e.基于RDF数据模型),可以针对不同的数据集撰写复杂的连接,它支持主流的图数据库。

SPARQL查询的基本构成

  • 变量,RDF中的资源,以 ? 或者 $ 来表示;
  • 三元组模板 (triple pattern), 在 WHERE子句 中列示关联的三元组模板;之所以称之为模板,因为三元组中允许变量;
  • SELECT子句 中指示要查询的目标变量。
# prefix declarations:for abbreviating URIs
PREFIX foo: <http://example.com/resources/>
...
# dataset defintion, stating what RDF graph(s) are being queried
FROM ...
# result clause:identifying what information to return from the query
SELECT ...
# query pattern:
WHERE {
	...
}
# query modifiers:slicing, ordering, and otherwise rearranging query results
ORDER BY ...

示例1:查询学生姓名、选修课程,以及他们的年龄;若有年龄,则年龄必须大于25岁。

  • 涉及 OPTIONAL关键字、FILTER关键字
## 命名空间声明
PREFIX exp: http://www.example.org/
SELECT ?module ?name ?age
WHERE {
	?student exp:studies ?module .
	?student foaf:name ?name .
OPTIONAL {
	?student exp:age ?age .
FILTER (?age > 25)}
}

示例2:查询选修课程CS328或CS909的学生姓名以及邮箱,涉及 UNION关键字。

SELECT ?student ?email
WHERE {
	?student foaf:mbox ?email .
	{?student exp:studies CS328}
	UNION {?student exp:studies CS909}
}

注意:此处邮箱为必返回项,若没有邮箱值,则不返回该记录,注意与OPTIONAL区别。

示例3:查询选修课CS909的学生姓名以及邮箱和住址,涉及 FROM关键字,引入其他本体或可访问的知识库。

SELECT ?student ?email ?home
FROM <http://www2.warwick.ac.uk/rdf/student>
WHERE {
	?student exp:studies CS909 .
OPTIONAL {?student foaf:mbox ?email .
		  ?student foaf:homepage ?home .}
}

SPARQL查询语言与SQL很相似,定义了OPTIONALFILTERUNIONFROM 等关键字,同时它支持嵌套查询,基于规则的查询.

6、JSON-LD 、RDFa、 HTML5 MicroData等新型知识表示

(1)JSON-LD

JSON-LD(JavaScript Object Notation for Linked Data),是一种基于JSON表示和传输互联数据 (Linked Data) 的方法。

  • JSON-LD描述了如何通过JSON表示有向图,以及如何在一个文档中混合表示互联数据及非互联数据。
  • JSON-LD的语法和JSON兼容。

示例

  • 一个JSON文本
// 表示一个人,具有名字、主页、照片
{ 
    "name": "Manu Sporny", 
    "homepage": "http://manu.sporny.org/", 
    "image": "http://manu.sporny.org/images/manu.PNG"
}
  • 对应的JSON-LD文件:通过引入规范的术语表示,eg:统一化表示"name","homepage"和"image"的URI,使得数据交换和机器理解成为基础。
{
    "http://schema.org/name": "Manu Sporny", 
    "http://schema.org/url": { "@id":"http://manu.sporny.org/" }, 
    "http://schema.org/image": { "@id":"http://manu.sporny.org/images/manu.PNG" }
}

(2)RDFa

RDFa (Resource Description Framework in attributes)是网页标记语言,它扩充了XHTML的几个属性,网页制作者可以利用这些属性在网页中添加可供机器读取的资源,与RDF的对应关系使得RDFa可以将RDF的三元组嵌入在XHTML文档中,它也使得符合标准的使用端可以从RDFa文件中提取出这些RDF三元组来。

RDFa工作原理

  • 通过引入命名空间的方法在已有的标签中加入RDFa相应的属性来使得支持RDFa技术的浏览器或者搜索引擎可以解析到,从而达到优化的目的。
<div xmlns:dc="http://purl.org/dc/elements/1.1/" about="http://www.example.com/books/wikinomics">
    <span property="dc:title">Wikinomics</span>
    <span property="dc:creator">Mr right</span>
    <span property="dc:date">2006-09-02</span>
</div>

分析:上面的代码示例中用到了RDFa属性中的about属性property属性,这段代码示例说明了一篇文章,然后描述了和这篇文章相关的信息,比如说标题,创建者和创建日期,而这些属性就可以使得支持RDFa的机器识别。

(3)HTML5 Microdata

  • Microdata微数据,是在网页标记标记语言嵌入机器可读的属性数据
  • 微数据使用可以来自自定义词汇表、带作用域的键/值对给DOM做标记;
  • 用户可以自定义微数据词汇表,在自己的网页中嵌入自定义的属性;
  • 微数据是给那些已经在页面上可见的数据施加额外的语义。当HTML的词汇不够用时,使用微数据可以取得较好的效果。

示例:便于浏览器从网页上提取微数据实体、属性以及属性值。
在这里插入图片描述

7、RDF+SPARQL vs. ER+SQL

RDF:关系显示定义(语义存在于数据中)——数据变更较为方便(图增加边更为方便),易于推理。
ER:关系隐式声明(语义存在于人脑中)——数据变更时,需要添加新表并修改原来的SQL语句。

数据的智能性

  • ER+SQL:Dumb Data->Smart Application Code
  • RDF+SPARQL:Smart Data->Uniform Inference Engine
    在这里插入图片描述

三、典型知识库项目的知识表示

1、各种知识图谱项目

在这里插入图片描述

2、知识表示:多元关系

名称多元关系表述
DBPedia无考虑,可通过Blank Node等用多个三元组来表示
FreebaseCVT 复合类型节点
WikiDataQualifier 或者 Reference
ConceptNet将多元关系添加为边的属性

3、实用的知识表示

实用的知识表示的特点

  • 接近人的自然语言:好的KG是同时为机器和人设计的;
  • 够用的表达能力:够用就好,不必苛求逻辑完备;
  • 易于扩展:能够非常方便的增加新的类、实体和关系。

现状:RDF/OWL只是众多知识表示框架的一种,不少商业化的KG并未采用该框架,物理存储也是直接采用关系数据库实现,但基本表达要素都可在RDF/OWL中找到对应。

四、基于本体工具的知识建模实践

基于Protege本体工具的知识建模实践
在这里插入图片描述

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值