第一部分 世界是由粒子组成的
知识图谱的基本粒子
1.什么是知识图谱
简单的理解就是描述知识,标识知识
2.知识图谱包括的内容
知识表示、知识抽取、知识存储、知识融合、知识推理、知识众包、语义搜索、知识问答等内容
3.知识图谱的构成
知识图谱由一条一条知识组成
每条知识标识为一个SPO三元组(Subject-Predicate-Object)
Subject : 主语
Predicate: 谓词
Object :宾语
举个例子:猫是动物
猫:主语
是:谓词 用来描述或判定客体性质、特征或者客体之间关系的词项
动物:宾语
4.怎么描述一个三元组——即怎么描述一条知识
RDF(Resource Description Framework),资源描述框架,是W3C制定的,用于描述实体/资源的标准数据模型
RDF图中一共有三种类型,International Resource Identifiers(IRIs),blank nodes 和 literals
- Subject可以是IRI或blank node。
- Predicate是IRI。
- Object三种类型都可以。
IRI:我们可以看做是URI或者URL的泛化和推广,它在整个网络或者图中唯一定义了一个实体/资源,和我们的身份证号类似。
blank node:有争议的存在,先不做介绍
literal:是字面量,我们可以把它看做是带有数据类型的纯文本,假如上面提到猫的名字叫小花,那么小花可以表示为"xiaohua"^^xsd:string
描述一下猫的名字是小花这个三元组
- 猫是一个唯一标识实体很容易理解
- kg:name是RDF中定义的一些perfix文件中的一个
定义格式如下:
@perfix kg:<www.kg.com/ontology/>
kg:name
相当于www.kg.com/ontology/name
- 小花是一个字面量
这样经过RDF的规则统一,梳理一下,就将一个句子(一条知识)做了充分的定义和表示
第二部分 粒子该怎么组合
语义网络、知识图谱
第一部分介绍的只是某一条知识,太简单了,也达不到我们的要求,将一条一条的知识组合在一起,会组成一个庞大的网络,才会有意义。可以理解为,第一部分介绍的东西是造句,接下来要将句子组合在一起,做作文
1.语义网络 Semantic Network
语义网络是一种知识的表达形式,用一幅图表示一下这样的一个语义网络可以表示一些知识,但是优点和缺点都很明显
优点
- 1.容易理解
- 2.知识容易聚类
缺点
- 1.节点和边的值没有标准,完全是由用户自己定义。
- 2.多源数据融合比较困难,因为没有标准。
- 3.无法区分概念节点(class)和对象(object)节点。
- 4.无法对节点和边的标签进行定义。
RDF的标准解决了缺点1和2,制定了一些标准,但是对于3和4还没有解决
看一个问题引出问题3,如何用RDF的规则表示“猫是哺乳动物”这句话
RDF中可以表示为
猫 rdf:type 哺乳动物
语言文化博大精深,“猫是哺乳动物”这句话有两成含义,在语境A中“猫”可以指一个特定的实体,即object,但是在语境B中,猫可以指一个类型即class
为了解决这个问题,即问题3和4,W3C提出了RDFS和OWL两个标准
下面举几个例子:以RDFS为例,
- 声明一个类
哺乳动物 rdf:type rdfs:class
- 声明一个子类
猫 rdf:type rdfs:Class
猫 rdfs:subClassOf 哺乳动物
- 声明一个实例
猫 rdf:type 哺乳动物
rdf:type
可以缩写为a
,即猫 a 哺乳动物
2.知识图谱
对于上面的语义网络,虽然RDF可以描述边节点之间的关系,但是大家发现一个最可怕的问题吗,这个语义网络没有边界,可以随便扩展,这就导致无法描述
知识图谱和语义网络的区别在于此,知识图谱只包含两种类型,即资源和字面量,所有节点的边最终都是一个字面量,类似于树的叶子节点,不会再有出度,如下面的图
里面所有的边界最后都是一个字面量,这样就可以使所有的数据量化,并可表达
至此,大致的就可以了解知识图谱是什么东西