知识图谱总结(一)概念篇

参考知乎教程:知识图谱–给AI装个大脑
本文的一切环境配置都是在Windows10平台
机器学习是学习能力强的小孩。
知识图谱是经验丰富的老人。

一、知识图谱概念
1.语义网络(Semantic Network)
与语义网不是同一概念,需要注意。
语义网络由相互连接的节点和边组成,节点表示概念或者对象,边表示他们之间的关系。
在这里插入图片描述
在表现形式上,语义网络和知识图谱相似,但语义网络更侧重于描述概念与概念之间的关系,(有点像生物的层次分类体系——界门纲目科属种),而知识图谱则更偏重于描述实体之间的关联(人:概念,罗纳尔多:实体)。
语义网络的优点:容易理解和展示。相关概念容易聚类。
语义网络的缺点:节点和边的值没有标准,完全是由用户自己定义。多源数据融合比较困难,因为没有标准。无法区分概念节点和对象节点。无法对节点和边的标签(label,我理解是schema层,后面会介绍)进行定义。

2.语义网(Semantic Web)
从链接文本到链接数据(Linked Data)。用更丰富的方式表达数据背后的含义,让机器能够理解数据,并让这些数据连接,组成一个庞大的信息网络。语义网是一种智能网络,它不但能够理解词语和概念,而且还能够理解它们之间的逻辑关系,可以使交流变得更有效率和价值。
RDF、RDFS/OWL是语义网技术栈。
RDF的引入解决了语义网络部分缺点。比如定义is-a关系。
EG3.
猫 rdf:type 哺乳动物
熊 rdf:type 哺乳动物
存在问题:如果和区分概念和对象(类似于JAVA编程中类和对象的关系)。
EG4.男人:概念;贝克汉姆:对象。
可以使用RDFS/OWL解决这个问题。
EG5.
用RDFS声明一个类:哺乳动物 rdf:type rdfs:Class
用RDFS声明一个子类: 熊 rdf:type rdfs:Class
熊 rdfs:subClassOf 哺乳动物
用RDFS声明一个实例: 熊 rdf:type 哺乳动物

3.链接数据(Linked Data)
起初是用于定义如何利用语义网技术在网上发布数据,其强调在不同的数据集间创建链接。链接数据也被当做是语义网技术一个更简洁,简单的描述。当它指语义网技术时,它更强调“Web”,弱化了“Semantic”的部分。对应到语义网技术栈,它倾向于使用RDF和SPARQL(RDF查询语言)技术,对于Schema层的技术,RDFS或者OWL,则很少使用。链接数据应该是最接近知识图谱的一个概念,从某种角度说,知识图谱是对链接数据这个概念的进一步包装。

4.知识图谱
语义网和语义网络都是知识图谱的前身,知识图谱没有明确的定义,是由一些相互连接的实体以及它们的属性组成,也就是由一条条知识组成,每一条知识表示为一个SPO(Subject-Predicate-Object)三元组。
在这里插入图片描述
Eg1.
在这里插入图片描述
在知识图谱中,用RDF(Resource Description Framework)形式化地表示这种三元关系。RDF图有三种类型,分别是:IRIs(国际化资源标识符),blank nodes和literals。
(1)IRI:可以看做是URI或者URL的泛化和推广,它在整个网络或者图中唯一定义了一个实体/资源,和我们的身份证号类似。(EG.www.kg.com/person/1 定义的是罗纳尔多)
(2)Literal:字面量,我们可以把它看做是带有数据类型的纯文本,比如我们在第一个部分中提到的罗纳尔多原名可以表示为"Ronaldo Luís Nazário de Lima"^^xsd:string。
(3)blank node:简单来说就是没有IRI和literal的资源,或者说匿名资源。编者认为blank node的存在有点多余,不仅会给对RDF的理解带来额外的困难,并且在处理的时候也会引入一些问题。通常更愿意用带有IRI的node来充当blank node,行使其功能。
SPO每个部分的类型约束:
(1)Subject可以是IRI或blank node。
(2)Predicate是IRI。
(3)Object三种类型都可以。
Eg2.罗纳尔多的中文名是罗纳尔多.路易斯.纳扎里奥.达利马
RDF关系图:
在这里插入图片描述
"www.kg.com/person/1"是一个IRI,用来唯一的表示“罗纳尔多”这个实体。"kg:chineseName"也是一个IRI,用来表示“中文名”这样一个属性。"kg:"是RDF文件中所定义的prefix,prefix在之后总结。
更明确的定义:知识图谱是由本体(Ontology)作为Schema层,和RDF数据模型兼容的结构化数据集。(本体:概念和关系的形式化描述,分别指实体的类层次和关系层次)
EG.
www.kg.com/person/1 rdf:type kg:Person.
IRI:Person类的一个实例对象
以上RDF语句:罗纳尔多是一个人。
关系:
在这里插入图片描述
EG.
罗纳尔多的全名是罗纳尔多.路易斯.纳扎里奥.达利马。(数据属性:罗纳尔多,全名)
www.kg.com/person/1 kg:fullName “Ronaldo Luís Nazário de Lima”^^xsd:string
定义好的关系 数据的格式
罗纳尔多出生在里约。(对象属性:罗纳尔多,里约)
www.kg.com/person/1 kg:hasBirthPlace www.kg.com/place/10086

5.RDF、RDFS/OWL
(1)RDF知识图谱的基石
RDF(Resource Description Framework),即资源描述框架,其本质是一个数据模型(Data Model)。上文已经有了部分介绍。
RDF序列化的方式主要有:RDF/XML,N-Triples,Turtle,RDFa,JSON-LD等几种。主要用到的是
(A)N-Triples,即用多个三元组来表示RDF数据集,是最直观的表示方法。在文件中,每一行表示一个三元组,方便机器解析和处理。开放领域知识图谱DBpedia通常是用这种格式来发布数据的。
EG.
在这里插入图片描述
(B)Turtle, 比RDF/XML紧凑,且可读性比N-Triples好。
用Turtle表示的时候我们会加上前缀(Prefix)对RDF的IRI进行缩写。
EG.
在这里插入图片描述
同一个实体拥有多个属性(数据属性)或关系(对象属性),我们可以只用一个subject来表示,使其更紧凑。我们可以将上面的Turtle改为:
在这里插入图片描述
即,将一个实体用一个句子表示(这里的句子指的是一个英文句号“.”)而不是多个句子,属性间用分号隔开。
(2)RDF的衣服:RDFS/OWL
如果我们是在数据库中来表示人和地点这两个类别,那么为他们分别建一张表就行了;再用另外一张表来表示人和地点之间的关系。RDFS/OWL本质上是一些预定义词汇(vocabulary)构成的集合,用于对RDF进行类似的类定义及其属性的定义。

(A)轻量级的模式语言–RDFS(Resource Description Framework Schema)
我们在概念、抽象层面对RDF数据进行定义。下面的RDFS定义了人和地点这两个类,及每个类包含的属性。
在这里插入图片描述
rdfs:Class. 用于定义类。rdfs:domain. 用于表示该属性属于哪个类别。rdfs:range. 用于描述该属性的取值类型(int,string)。rdfs:subClassOf. 用于描述该类的父类。比如,我们可以定义一个运动员类,声明该类是人的子类。rdfs:subProperty. 用于描述该属性的父属性。比如,我们可以定义一个名称属性,声明中文名称和全名是名称的子类。
EG.
在这里插入图片描述
下图帮助理解RDFS,最上层即位Schema层:
在这里插入图片描述
Data层是我们用RDF对罗纳尔多知识图的具体描述,Vocabulary是我们自己定义的一些词汇(类别,属性),RDF(S)则是预定义词汇。从下到上是一个具体到抽象的过程。图中我们用红色圆角矩形表示类,绿色字体表示rdf:type,rdfs:domain,rdfs:range三种预定义词汇,虚线表示rdf:type这种所属关系。另外,为了减少图中连线的交叉,我们只保留了career这一个属性的rdf:type所属关系,省略了其他属性的此关系。

(B)RDFS的扩展OWL(Web Ontology Language)
OWL两个主要功能:提供快速、灵活的数据建模能力。高效的自动推理。
利用OWL进行数据建模,用OWL对罗纳尔多知识图进行语义层的描述:
在这里插入图片描述
在这里插入图片描述
下图帮助理解OWL:
在这里插入图片描述
数据属性用青色表示,对象属性由蓝色表示。
部分词汇:
描述属性特征的词汇
owl:TransitiveProperty. 表示该属性具有传递性质。例如,我们定义“位于”是具有传递性的属性,若A位于B,B位于C,那么A肯定位于C。
owl:SymmetricProperty. 表示该属性具有对称性。例如,我们定义“认识”是具有对称性的属性,若A认识B,那么B肯定认识A。
owl:FunctionalProperty. 表示该属性取值的唯一性。 例如,我们定义“母亲”是具有唯一性的属性,若A的母亲是B,在其他地方我们得知A的母亲是C,那么B和C指的是同一个人。
owl:inverseOf. 定义某个属性的相反关系。例如,定义“父母”的相反关系是“子女”,若A是B的父母,那么B肯定是A的子女。
本体映射词汇(Ontology Mapping)
owl:equivalentClass. 表示某个类和另一个类是相同的。
owl:equivalentProperty. 表示某个属性和另一个属性是相同的。
owl:sameAs. 表示两个实体是同一个实体。
本体映射主要用在融合多个独立的Ontology(Schema)。
EG.
张三自己构建了一个本体结构,其中定义了Person这样一个类来表示人;李四则在自己构建的本体中定义Human这个类来表示人。当我们融合这两个本体的时候,就可以用到OWL的本体映射词汇。回想我们在第二篇文章中提到的Linked Open Data,如果没有OWL,我们将无法融合这些知识图谱。
在这里插入图片描述
OWL的推理能力:在这里插入图片描述
主要研究基于本体的推理:
加入支持OWL推理的推理机(reasoner),就能够执行基于本体的推理了。
EG.
我们用RDFS定义人和动物两个类,另外,定义人是动物的一个子类。此时推理机能够推断出一个实体若是人,那么它也是动物。OWL当然支持这种基本的推理,除此之外,凭借其强大的表达能力,我们能进行更有实际意义的推理。
EG.
有一个庞大数据库存储人物的亲属关系。里面很多关系都是单向的,比如,其只保存了A的父亲(母亲)是B,但B的子女字段里面没有A,如下表。
在这里插入图片描述
用inversOf来表示hasParent和hasChild互为逆关系,上面的数据可以表示为:
在这里插入图片描述
绿色的关系表示是我们RDF数据中真实存在的,红色的关系是推理得到的。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值