知识图谱入门——知识表示与知识建模

版权声明:文章作者:du_milestone;许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。 https://blog.csdn.net/du_milestone/article/details/84946357

文章首发于博客du_ok’s Notes,本文链接为知识图谱入门——知识表示与知识建模

本文首先介绍了早期的知识表示方法,接着介绍了知识图谱的基石——RDF及其扩展RDFS,在它们的基础上又介绍了表达能力以及推理能力更强的OWL与OWL2,最后介绍了一些新的只是知识表示方式,如Json-LD、RDFa、HTML5 Microdata等。

早期知识表示

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

Horn逻辑:一阶谓词逻辑的子集
描述逻辑:一阶谓词逻辑的可判定子集

  1. 产生式系统
    产生式模型:
    P Q o r I F P T H E N Q C F = [ 0 , 1 ] \begin{aligned} & P \rightarrow Q\quad or \\\\& IF\quad P\quad THEN\quad Q \quad CF = [0, 1] \end{aligned}
  • 其中,P是产生式的前提,Q是一组结论或操作,CF (Certainty Factor)为确定性因子,也称置信度。
  • 谓词逻辑中的规则与产生式的基本形式相似,事实上,蕴涵式只是产生式
    的一种特殊情况。理由如下:
    • 谓词逻辑规则只能表示精确知识,其值非“真”即“假”,而产生式不仅可以表示精确知识,而且还可以表示不精确知识;
    • 用产生式表示知识的系统中,“事实”与产生式的“前提”中所规定的条件进行匹配时,可以是“精确匹配”,也可以是基于相似度的“不精确匹配”,只要相似度落入某个预先设定的范围内,即可认为匹配。但对谓词逻辑的规则而言,其匹配必须是精确的。
  1. 框架
    框架基本组成:
    在这里插入图片描述
  • 框架:是一种描述对象 (事物、事件或概念等)属性的数据结构,在框架理论中,框架是知识表示的基本单位。
  • 一个框架由若干个“槽” (Slot)结构组成,每个槽又可分为若干个“侧面”
    。一个槽:用于描述所论对象某一方面的属性;一个侧面:用于描述相应属性的一个方面。
  • 槽和侧面所具有的属性值分别称为槽值和侧面值。

框架的示例:
一个框架的示例.PNG
框架的实例:
在这里插入图片描述

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

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

RDF与RDFS

Resource Description Framework

RDF的概念:
在RDF(Resource Description Framework,资源描述框架)中,R可以代表页面、图片、视频等任何具有URI(Universal Resource Identifiers)的标识符,D代表属性、特征和资源之间的关系,F代表模型、语言和这些描述的语法
RDF模型:
RDF中知识以三元组的形式出现,每一知识可以被分解为: ( s u b j e c t , p r e d i c a t e , o b j e c t ) (\mathrm{subject,predicate,object})

如:(合肥,坐落于,安徽)

RDF同时也是一种用来连接资源的描述的图模型,三元组可以表述为: ( v e r t e x , e d g e , v e r t e x ) \mathrm{(vertex, edge, vertex)} ,同时在RDF中资源和属性都可以被URI唯一标识。

如给出两个三元组为(CCF ADL, speaker, Haofen),(CCF ADL, theme, KG),可以使用表示为如下图模型:
在这里插入图片描述
我们还可以将命名空间定义为前缀,如定义为ex-schema,则得到如下图:
RDF图模型2

RDF中的属性值同时也可以是一个文字,如字符串/数值(它们不是一个Resource)。

如将上述例子的三元组改为(CCF ADL, theme, ‘KG’),那么这里的KG将不是一个资源或属性,而是一个属性的值,此时图模型表示如下(注意图中的方框):RDF图模型3

RDF中的属性的文字值同时可以使一个XML datatype类型。

RDF空白结点:
RDF允许存在匿名的资源,它可以作为连接其他非匿名资源的桥梁,此时RDF中会出现空白结点,因为这个资源不被URI表示,所以可以表示为 _:xyz。

例子:Haofen是某一次KG讲座的讲者。这表示意味着CCF ADL讲座至少有一位讲者,可以表示为如下2跳相连图:
空白结点
上述例子说明:一个三元组的缺失并不是什么大事情。

RDF分布式的定义与合并知识:
我们可以分布式定义知识:
分布式定义知识
接着我们可以将分布式的知识进行合并:
分布式合并知识

带标注RDF:
使用带标注RDF(s),来扩展RDF用来表示更多的信息,如时间、不确定性、空间、信任等。

例子: YAGO2,使用annotated RDF表示的知识库。

语法形式为: ( s , p , o ) : λ (s,p,o):\lambda ,其中 λ \lambda 是一个标志,可以是上述的扩展信息。

例子:(特朗普,就职,总统):2017年1月

RDF Schema(RDFS)

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

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

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

RDFS通过这样的方式来描述不同词汇集的元数据之间的关系,为网络上统一格式的元数据交换提供便利。
RDF定义了如下几种词汇:

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

RDFS例子1
图中,data层是对schema层的实例化,是由数据驱动的。

基于RDFS的推理:
在上面的图中,我们可以在data+schema之后进行推理,如上下位的推理(如subClass),类别的判断等。
给出一个推理的示例:
RDFS推理

RDF(S)的缺陷
通过RDF(S)可以表示一些简单的语义,但在更复杂的场景下,RDF(S)语义表达能力显得太弱,还缺少诸多常用的特征。

  1. RDF(S)表达能力上的缺陷
    • *对于局部值域的属性定义:*RDF(S)中通过rdfs:range定义了属性的值域,该值域是全局性的,无法说明该属性应用于某些具体的类时具有的特殊值域限制。
    • *类、属性、个体的等价性:*RDF(S)中无法声明两个或多个类、属性和个体是等价还是不等价 。
    • *不相交类的定义:*在RDF(S)中只能声明子类关系,如男人和女人都是人的子类,但无法声明这两个类是不相交的 。
  2. RDF(S)的缺陷
    -* 基数约束:*即对某属性值可能或必须的取值范围进行约束,如说明一个人有双亲(包括两个人),一门课至少有一名教师等。
    • *关于属性特性的描述:*即声明属性的某些特性,如传递性、函数性、对称性,以及声明一个属性是另一个属性的逆属性等。

OWL与OWL2

由于RDF(S)的缺陷,W3C提出了OWL来枯燥和你RDF(S),作为在语义网上表示本体的推荐语言。

OWL

OWL Web Ontology Language包含三个子语言:OWL Lite、OWL DL、WOL Full。
WOL 三个子语言

关于OWL子语言的选择:

  • 选择OWL Lite还是OWL DL主要取决于用户需要整个语言在多大程度上给出约束的可表达性;
  • 选择OWL DL还是OWL Full主要取决于用户在多大程度上需要RDF的元模型机制 (如定义类型的类型以及为类型赋予属性);
  • 在使用OWL Full而不是OWL DL时,推理的支持可能不能工作,因为目前还没有完全的支持OWL Full的系统实现。

OWL与RDF关系:

  • OWL Full可以看成是RDF的扩展;
  • OWL Lite和OWL Full可以看成是一个约束化的RDF的扩展;
  • 所有的OWL文档 (Lite,DL,Full)都是一个RDF文档;
  • 所有的RDF文档都是一个OWL Full文档;
  • 只有一些RDF文档是一个合法的OWL Lite和OWL DL文档。

OWL词汇:

  • 等价性
OWL中的词汇 描述 示例
owl:equivalentClass 类等价 exp:运动员 owl:equivalentClass exp:体育选手
owl:equivalentProperty 属性等价 exp:获得 owl:equivalentProperty exp:取得
owl:sameIndividualAs 个体等价 exp:运动员A owl:sameIndividualAs exp:小明
  • 传递性
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:ancestor与exp:descendant是互反关系
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这两个类的交集。

  • 其他词汇

![其他词汇]!(https://img-blog.csdnimg.cn/20181210204853682.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2R1X21pbGVzdG9uZQ==,size_16,color_FFFFFF,t_70)

OWL2

OWL2包含三大子语言:OWL 2 RL,OWL 2 QL,OWL 2 EL,家族树如下:
OWL2家族树

OWL2 QL:
QL代表查询语言的意思,用于本体的查询;OWL2 QL是基于描述逻辑语言DL-Lite定义的
其表达能力如下:
QL表达能力

通过OWL 2 QL的语言限制,基于QL的本体查询可以优化到多项式对数时间复杂度

OWL2 EL :
QWL2 EL是为概念术语描述,推理而设计的。

QWL2 EL在医疗领域广泛应用,如临床医疗术语本体SNOMED CT

其表达能力如下:
EL表达能力.PNG

OWL2 RL :

  • OWL 2 RL在扩展RDFS表达能力的同时,保持了较低的复杂度;
  • OWL 2 RL在RDFS的基础上引入属性的特殊特性 (函数性,互反性,对称性);允许声明等价性;允许属性的局部约束;
  • OWL 2 RL是专为高效推理设计的本体语言,OWL 2 RL推理是针对于实例数据的推理

OWL 2 RL 表达能力:
OWL 2 RL 表达能力

SPARQL查询语言

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

SPARQL查询的基本构成:

  • 变量,RDF中的资源,以“?”或者"$"来表示;
  • 三元组模板 (triple pattern), 在WHERE子句中列示关联的三元组模板;之所以称之为模板,因为三元组中允许变量;
  • SELECT子句中指示要查询的目标变量。

SPARQL查询语言与SQL很相似,定义了OPTIONAL、FILTER、UNION、FROM等关键字,同时它支持嵌套查询,基于规则的查询,详细见Apache Jena - SPARQL TutorialSPARQL Query Language for RDF

Json-LD、RDFa、HTML5 MicroData

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文本
{
    "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" }
}

JSON-LD通过引入规范的术语表示,比如统一化表示“name”,“homepage”和“image”的URI,使得数据交换和机器理解成为基础。

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的机器识别。

HTML5 Microdata

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

HTML5 Microdata

RDF+SPARQL对比ER+SQL

假设我们给定信息:腾讯坐落于深圳,深圳坐落于中国;接着给定问题,腾讯坐落于那个国家。此时我们分别用RDF模型与ER模型来表示:
RDF语义模型——关系显示定义:
RDF语义模型
在语义模型中,我们可以通过两个三元组推理得出腾讯在中国。
关系模型——关系隐式声明:
ER模型
在ER模型中,我们需要存放三张表,接着通过SQL连接三张表进行查询,这里需要对问题进行语义的理解,对语义的理解是一个较难做到的事情。
这样看RDF语义模型好像与ER模型相比没有什么优势,但是当数据发生变更了的时候,如修改上述给出的信息为:深圳位于广东,广东位于中国,此时语义模型仍然可以根据三元组的推理就可以得出答案,同时并不需要修改其他的任何东西。
RDF语义模型2
而此时,ER模型需要添加一张表,同时还需要修改原来的SQL语句。
ER模型2

Reference

王昊奋《知识图谱》

猜你喜欢

转载自blog.csdn.net/du_milestone/article/details/84946357