
1.3 什么是知识图谱
知识图谱在学术界没有一致的定义。Wikipedia给出的描述是,知识图谱是谷歌公司用来支持从语义角度组织网络数据,能够提供智能搜索服务的知识库。从这个定义可以看出,知识图谱首先是知识库的一种,是知识的一种描述、组织和存储方式。它所专注的重点是语义范畴的知识,是人类语言中所涉及的概念、实体、属性、概念之间及实体之间的关系。脱离谷歌公司的限制,知识图谱泛指当前基于通用语义知识的形式化描述而组织的人类知识系统。这个系统在本质上是一个有向、有环的复杂的图结构。其中,图的节点表示语义符号;节点之间的边表示符号之间的关系,如图1-3所示。这样的图结构通过语义符号和符号之间的链接,来描述人类认知下的物理世界中的对象及它们之间的关系。利用这样的知识表达与描述方式可以作为人类及人类和机器之间对世界认知理解的桥梁,便于知识的分享与利用。

图1-3 知识图谱示例
知识图谱是在本体(Ontology)技术的基础上发展起来的。本体是一个哲学用语,是一套对客观世界进行描述的概念体系。人工智能涉及的本体包括概念(实体所属的类)、属性(实体之间的关系映射)及概念之间的关系。举例来说,本体就是定义了类的上下位关系、包含关系及类所具有的属性,可以对知识结构进行描述,形成的具体事例数据必须满足约定的知识框架(Schema),即元知识。概念主要是指集合、类别、对象类型、事物的种类,如人、动物等;属性主要是指对象可能具有的属性、特征、特点及参数,如地点、性别、生日等;属性值主要是指对象指定属性的值,可以是数值型、字符串型的,也可以是其他实体对象,如可定义“人”“运动员”等概念,而“运动员”和“人”是上下位关系。对于“人”这个概念,可以定义“身高”“生日”“配偶”等属性及属性的约束条件。知识图谱是由知识框架和实体数据共同构成的。实体数据必须满足框架所规定的条件。
在知识图谱系统中,不论是知识框架还是实体数据的描述都采用统一三元组的形式。知识图谱G=(ε,R,S)。其中,ε={e1,e2,…,e|ε|} 是知识库中的实体集合,共包含|ε|种不同的实体;R={r1,r2,…,r|R|}是知识库中的关系集合,共包含|R|种不同的关系;S⊆ε×R×ε代表知识库中的三元组集合。一般来说,三元组的基本形式主要包括(实体a,关系,实体b)和(实体,属性,属性值)等。实体是知识图谱中最基本的元素。不同的实体之间存在不同的关系。每个实体可用一个全局唯一确定的ID来标识。给定一个实体,则其属性-属性值可用来刻画实体的内在特性,关系可用来连接两个实体,刻画两个实体之间的关联。
知识图谱中的三元组是用RDF(Resource Description Framework),即资源描述框架来表示的[6]。RDF的本质是一个数据模型(Data Model),它提供了一个统一的标准来描述Web上的资源,也可以用来描述知识图谱。RDF在形式上表示为SPO三元组,即Subject、Predicate、Object三元组,或借助图结构表示为(h,r,t),即头实体、关系和尾实体的三元组。三元组也称一条语句(Statement),在知识图谱中记为一条知识。在实际RDF的实现过程中,RDF数据有多种通用的表示格式和序列化方法,虽然在本质上是等价的,但是在具体的数据交换、编写和存储中有着各自的优势。
RDF/XML:用XML来表示RDF,是比较早的RDF表示方法。因为XML的技术比较成熟,有很多工具可以处理XML文件。但是这种表示方法冗余性很高,可读性和可编辑性比较差。
N-Triples:用多个三元组来表示RDF数据是最直观的表示方法。在文件中,每一行表示一个三元组,可方便解析和处理[7]。这种表示方法有一定的可读性。DBpedia通常使用这种方法发布数据,是本体编辑软件Protégé的默认文件格式。
Turtle:使用较多的一种RDF序列化方式,借鉴传统的框架表示法,将一个实体的各个属性-属性值排列在实体之下[7]。其结果比RDF/XML紧凑,可读性比N-Triples好。本体编辑软件TopBraid Composer采用这种格式进行数据的输入/输出。
JSON-LD:JSON for Linked Data,是用JSON表示和传输链接数据(Linked Data)的表示方法[8]。JSON是一种通用的轻量级数据交换格式,因此这种表示方法可以将知识图谱数据直接应用到基于Web的编程环境中,有利于计算机数据的交换与存储,是当前比较流行的表示方法。
当前,公开的大规模知识图谱主要包括Freebase、DBpedia、Freebase、Know It All、Wiki Taxonomy、YAGO、Babel Net、Concept Net、Deep Dive、NELL、Probase、Wikidata、XLore等。中文知识图谱有openKG、cnSchema、cn-DBpedia、ownthink及zhishi.me等。这些知识图谱都是按照三元组的二元关系进行描述的,有比较严格和完整的Schema定义结构。用户可以通过下载或开放AP I访问相关的数据库。