基于本体建模的动态知识图谱构建技术研究

2021-06-06 13:09:22陈雅茜邢雪枫
关键词:本体图谱可视化

陈雅茜,邢雪枫

(西南民族大学计算机科学与工程学院,计算机系统国家民委重点实验室,四川 成都610041)

1 引言

由于信息技术的快速发展,互联网内容规模大以及组织结构松散的特点,给信息和知识的有效获取提出了挑战[1].谷歌率先提出知识图谱的概念[2],并将其应用,知识图谱技术很快就得到了广泛的关注.目前在知识图谱领域,静态知识图谱的发展已经较为成熟,但是动态知识图谱向前发展仍需要解决很多问题[3],例如:如何构建规范的、可扩展的研究领域数据模型;如何高效、完整地获取研究领域研究数据等,本文着眼于动态知识图谱的构建,从知识图谱的构建架构、本体建模等方面进行系统探索,给出基于本体建模的动态知识图谱构建技术流程.最后从知识推理等方面对未来的研究方向进行展望.

2 知识图谱的定义与体系架构

2.1 知识图谱的定义

知识图谱以实体、概念以及属性作为基本组成单位,通过实体与实体、实体与属性之间的关系,来构成类似于网状的结构化知识库,便于信息的检索和知识的推理.其中实体可能指某一个人、某一本书、某一项信息技术等,概念可能指机构、国家、民族、手机等,属性则是用来去区分概念的特征,因为不同概念具有不同的特征[4].

2.2 知识图谱的体系架构

知识图谱主要有自底向上与自顶向下两种体系架构(构建方法),有时这两种方法也会结合起来使用.

自底向上的构建方法如图2.1,首先从一些非结构化数据、半结构化数据源中抽取实体、关系和属性,将其加入到知识库中形成数据层.然后对已经处理好的数据层进行概念抽象,最后形成模式层.此构建方法适用于数据量较大的知识图谱的构建.本文就是采用自底向上的构建方法完成研究领域动态知识图谱的构建.

图2 .1 自底向上的知识图谱体系结构[5]Fig 2.1 Bottom-up knowledge graph architecture

自顶向下的构建方法如图2.2,其构建过程与自底向上的构建方法相反,先进行顶层设计构建模式层,然后再对本体概念和本体关系进行细分,最后将实体加入到知识库.该构建方法人工依赖性强,适用于数据量较小的知识图谱的构建.

图2 .2 自顶向下的知识图谱体系结构[5]Fig 2.2 Top-down knowledge graph architecture

3 本体模型的构建

本体建模是动态知识图谱构建过程中非常重要的环节,可以很好地梳理实体以及实体间关系.在建立研究领域研究数据的本体模型时应遵从Gruber提出的完全性、一致性等原则,合理规范的进行研究领域的本体构建[6].本文将从研究领域相关数据源出发,参考“七步法”步骤,采用Protege5.5本体编辑工具实现领域本体的构建过程.

3.1 本体建模工具

为了方便本体领域的发展,许多科研团队开发了各种类型的建模工具,包括本体的建立、存储、查询、推理、查询等[7].具体而言,编辑工具应有以下特征:

1)支持输入输出不同格式的语言,可以定义不同概念间的约束条件;

2)具有便于用户操作使用的图形界面,简化编辑类和属性的处理过程;

3)具有一定的逻辑推理能力,能够实现简单的案例推理,并能检查一致性;

4)支持不同结构语义间的转换,对语义的维护具有可靠性;

5)对工具本身的维护操作简单,有利于后续对本体进行扩展.

由于本体语言具有强大的功能,例如在可扩展性、灵活性、易用性等方面具 有突出优势,为了展现出本体语言的优点所使用的工具也不同.在众多编辑工具 中,较为著名的有Ontolingua、WebOnto、OntoEdit、Protégé等[8],其比较如表3-1.

表3 -1 4种本体建模工具比较Table 3-1 Comparison of 4 ontology modeling tools

因Protégé安装便捷、使用简单,支持创建不同复杂度的本体模型,可以对不同版本的模型进行操作,例如输入、编辑和输出等,同时还可以定义具体类和抽象类[9].为了给用户更好的使用环境,Protégé支持用户自定义图形界面.其具有可扩展的结构,可以根据用户自身需求增加想要的功能模块.因此,本文采用软件Protege5.5版本来实现本体模型的创建.

3.2 本体建模方法

本体的构建方法有:骨架法、TOVE法、METHONTOLO法、IDEF5法、SENSUS法、KACTUS工程法、七步法、循环获取法、五步法等[10].本文在建立研究领域的本体模型时,将参考七步法完成本体模型的构建,具体过程如下:

1)确定本体应用的学科领域和范畴

率先给出限制对于复杂系统的实现是有利的,因此先明确本体表示的范围和突出优势以及本体的系统运维人员和使用对象.

2)考虑复用现有本体的可能性

3)列出本体中的重要术语

将该学科范围内的所有概念名词以及概念名词的具体说明列举出来.在某些学科领域中,这些概念名词作为重要术语需要将其陈列出来,这样有助于构建更专业的本体模型.

4)定义类和类的等级体系

5)定义类的属性

6)定义概念之间的关系

对于已经构建好的类进行分析,总结出不同类之间的关系.

7)创建实例

3.3 本体建模技术路线

3.1节和3.2节分别给出了本体建模的工具以及参照的方法,本节将给出本体建模的技术路线[11],具体如图3.1.

图3 .1 本体构建技术路线图Fig 3.1 Technical roadmap for ontology construction

以相关研究领域的数据为基础,首先确定构建领域本体应用的目的,即这个本体模型是要用来做什么;然后对领域本体的整体进行设计,分析列举出有哪些类;接着进行详细设计,对之前设计的类进行细分,分析不同类之间的关系以及类的属性;将设计完整的本体用相关软件以图的形式表示出来;之后对构建的领域本体进行评价,判断构建的本体是否存有需要再次改进和完善的地方,最后完成本体的构建.例如,图3.2展示了某一领域构建好的本体的可视化关系.

图3 .2 本体可视化Fig 3.2 Ontology visualization

4 动态知识图谱的构建

本文将基于protégé本体建模和Neo4j图数据库相结合的方法,应用到相关领域动态知识图谱的构建中.在上一节中已经构建好了研究领域的本体模型,定义好了研究领域实体和实体间的关系.本节基于构建好的本体结合Neo4j图数据库,且利用Cypher语言对相关领域中的实体、关系以及属性进行设计、编译,从而构建出相关领域的动态知识图谱.

4.1 Neo4j图数据库介绍

Neo4j图数据库是处理图论等关系时常被研究者学习和使用的高性能开源数据库,和关系型数据库一样完全兼容事务的ACID特性,即原子性(A)、一致性(C)、隔离性(I)、持久性(D)[12].由于具有良好的性能,成熟的系统等特点而被用户广泛应用.

基于Neo4j的图数据库模型如图4.1所示,Neo4j的信息建模包括图数据节点、节点之间的关系、节点包含的属性以及关系包含的属性.Neo4j中的节点可以包含多个属性,同时可以与其他任何节点建立相关关系,但是建立的每组关系中必须含有一个初始节点和一个终止节点,且每个关系也可以包含多个属性.同时Neo4j可以存储海量数据并且具有较高的查询效率[13],因此本文将利用Neo4j图数据库来构建知识图谱.

图4 .1 Neo4j的图数据库模型Fig 4.1 Neo4j"s graph database model

使用Neo4j图数据库时,其相匹配的查询语言为Cypher语言,Cypher语言入门容易可以快速上手使用,具有非常强大的性能[14].例如输入“MATCH(n1{title:“小麦"})-[]->(n2)RETURN n1,n2””,最终得到的查询结构如图4.2.

图4 .2 Cypher语句查询结果图Fig 4.2 Cypher statement query result diagram

4.2 本体到Neo4j的映射

在建立好本体模型后,可以将数据实例按照此前定义的类和类间关系存入图数据库中.图数据库存储的知识表示形式和基于本体的知识表示形式有所不同,Neo4j中的数据等价于本体中类的具体实例.因此为了实现数据的存储,需要把这两种表示模型进行相互映射,即将本体模型中的知识表示形式映射为可以存储在Neo4j数据库中的知识表示形式.依据Neo4j数据库的存储方式,本文将研究领域的本体模型和Neo4j图模型中的基本元素按如图4.3所示映射,具体解释说明如下:

1)节点映射

Neo4j图数据库中存储的节点是本体模型中不同类的具体数据实例.例如,对农业信息化文献而言,在本体中是类,在Neo4j中是实例,将这些含义清晰的、具体的实例作为Neo4j中的节点.

2)关系映射

Neo4j图数据库中的关系用于连接本体模型中不同的类,包括类之间的“Sub Class Of”关系.构建本体模型时自定义的两个类之间存在的某种关系作为类间关系,如“前驱关系”等,因此将本体中类间关系转换为图数据库中节点与节点间的关系.

图4 .3 数据映射图Fig 4.3 Data mapping diagram

3)属性映射

在本体模型中,数据属性是对不同类特征的描述,如果在图数据库中将其存储为节点的形式,在展示的过程中会有很多冗余数据出现,影响最终可视化显示的效果,在Neo4j图数据库中,可以将数据的特征描述作为节点的属性存储.Neo4j的数据类型由本体确定,按照本体模型中研究对象的类名称、属性和类间关系分别转化为Neo4j中的节点标签、节点属性和节点关系,在Neo4j中的节点表示本体模型中不同类型的实例.在具体实现方式上,可通过Python语句选取MongoDB数据库中相应的数据自动存储到Neo4j中,利用Cypher中的CREATE语句创建图结构,将数据三元组转化成图谱中节点和边,从而实现知识的可视化.

4.3 可视化平台设计

将数据存储到Neo4j图数据库,进行数据库设计后,动态知识图谱就构建完成.因Neo4j自带可视化查询界面,所以可直接使用Cypher语句进行知识图谱的动态查询.但是并不是所有人都会使用Cypher语句,因此为了方便使用者使用,还需开发一个可视化平台,图4.4为可视化平台的总体架构.

该平台采用B/S架构,平台从下端往上端依次是:原始数据模块;数据采集处理模块;数据存储模块;知识图谱模块;搜索模块;服务器模块;前端设计模块.

5 总结与展望

本文通过比较与分析给出了基于本体建模的动态知识图谱构建技术,将基于protégé本体建模和Neo4j图数据库相结合的方法,应用到动态知识图谱的构建中.改进了单纯的依靠protégé本体建模和单纯的依靠Neo4j图数据库构建知识图谱的方法.同时秉承交互友好性原则进行了平台的总体设计,给出了基于知识图谱的信息可视化搜索查询平台的构建流程,构建了基于知识图谱的信息资源智能检索可视化应用平台,达到了知识图谱的动态交互性.

图4 .4 可视化平台总体架构Fig 4.4 The overall architecture of the visualization platform

但是本文仅对动态知识图谱的构建进行了研究,对于构建好的图谱后期的知识推理过程并没有详细阐述,目前的知识推理过程多数还是依赖人工参与.后期研究的重点应该放在知识推理[15]过程中,将知识图谱与深度学习领域[16]有机结合.

猜你喜欢
本体图谱可视化
Abstracts and Key Words
哲学分析(2023年4期)2023-12-21 05:30:27
基于CiteSpace的足三里穴研究可视化分析
基于Power BI的油田注水运行动态分析与可视化展示
云南化工(2021年8期)2021-12-21 06:37:54
绘一张成长图谱
对姜夔自度曲音乐本体的现代解读
中国音乐学(2020年4期)2020-12-25 02:58:06
基于CGAL和OpenGL的海底地形三维可视化
“融评”:党媒评论的可视化创新
传媒评论(2019年4期)2019-07-13 05:49:14
补肾强身片UPLC指纹图谱
中成药(2017年3期)2017-05-17 06:09:01
主动对接你思维的知识图谱
《我应该感到自豪才对》的本体性教学内容及启示
文学教育(2016年27期)2016-02-28 02:35:15