APP下载

水利知识图谱构建研究
——以宁波市为例

2023-12-01朱从飞任柯琦李卫政张钰荃田发美

浙江水利科技 2023年6期
关键词:宁波市图谱实体

朱从飞,任柯琦,李卫政,张钰荃,田发美

(1.宁波市水利水电规划设计研究院有限公司,浙江 宁波 315176;2.宁波市水库管理中心,浙江 宁波 315020;3.宁波市水资源信息管理中心,浙江 宁波 315016)

0 引 言

近年来,随着经济水平与信息技术水平的提升,各城市、各领域都逐步开展信息化建设,而水利信息化是国家信息化建设的重要组成部分。在当前的水利信息化建设过程中,我国已然取得非常显著的成果,实时监测、预报预警水平都有较大提升。然而,在我国水利事业漫长的发展过程中,虽积累了大量的水利信息资源,但由于各地区、各部门之间的信息建设标准不统一,存在数据壁垒,对水利信息资源的管理比较分散,导致信息利用率低下,“信息孤岛”现象也日益严重,知识图谱可以很好地解决这一问题。知识图谱的概念2012 年由谷歌首次提出,它本质上是一种语义网络的知识库,将信息连接在一起形成关系网络,能显著提高信息搜索能力,也为水利信息资源的整合、分析及管理提供一种更高效的方法[1-2]。

本文将对知识图谱的研究现状进行简要介绍,同时详细阐述水利领域知识图谱的构建方法,并以宁波市为例进行实际应用。通过构建宁波市水利知识图谱,为宁波市水旱灾害防御及水资源管理工作提供技术支持,推动宁波市智慧水利建设和数字化改革进一步发展。

1 知识图谱研究现状

知识图谱按照覆盖范围的大小可以分为通用知识图谱和领域知识图谱2 大类。通用知识图谱覆盖范围较广且包含很多常识性知识,受众用户多,通用性强;领域知识图谱覆盖范围较小,主要面向某一个具体领域,因而具有更强的专业性,更能满足具体领域的深层次需求[3-5]。

在水利领域,知识覆盖范围广,信息资源种类繁多,业务也非常丰富,为了整合共享水利信息资源,推动水利业务协同和智能应用建设,众多学者开展水利领域的知识图谱构建研究。刘建华等[6]构建黄河流域生态保护和高质量发展研究知识图谱,该研究成果能够辅助黄河流域的生态环境保护工作;段浩等[7]提出水利综合知识体系的描述方法并构建水利知识图谱的框架和关键技术体系,可实现水利知识的跨域查询与检索。

以上关于知识图谱研究现状的论述很好地印证了当前知识图谱在各行业的应用前景和价值,同时也为后续的智能化应用建设打下良好基础。但是当前构建水利领域知识图谱大多数是理论内容和方法介绍的研究,应用方面的研究相对较少,因此本文将以宁波市为例来展示水利知识图谱构建的实际成果。

2 构建方法

2.1 知识图谱构建流程

当前,知识图谱的构建流程主要有以下3 种模式:自顶向下、自底向上、自顶向下与自底向上相结合。自顶向下的模式是先梳理概念,确定概念层,再进行实体及关系的提取和填充;自底向上的模式是先从数据中提取出实体、关系和属性,然后对提取出来的内容进行分析、归纳与总结,完成概念层的构建;自顶向下与自底向上相结合的模式是首先初步设计好概念层,然后提取实体及关系并对知识进行整理归纳,在此基础上进一步完善概念层的设计。本文采用自顶向下与自底向上相结合的模式构建水利知识图谱。其中概念层主要通过水利学科的各类别知识、既往经验以及相关行业标准来确定;数据层是以宁波市水利数据中心作为数据来源,通过对数据进行处理后形成知识图谱所需的三元组数据格式,最后借助Neo4j 平台来完成水利知识图谱的构建。

2.2 水利数据获取

水利对象数据一般存储在关系数据库中,主要由对象名录表、对象基础信息表和对象关系表共3 类表组成。其中对象名录表保存水利对象的对象名称、对象代码等信息,对象基础信息表保存不同水利对象的特征信息,对象关系表记录2 个水利对象之间的关系。

2.3 知识表示

水利知识图谱通常用三元组来表示,三元组的基本形式主要包括(实体1,关系,实体2)和(实体,属性,属性值)等。通过唯一的ID 号来标识实体,实体间内在特征通过属性-属性值来刻画,实体之间的关联通过关系来描述。

2.4 知识抽取

对于结构化数据,采用基于D2R 技术的知识图谱构建方法,利用信息系统中的结构化对象数据,抽取静态对象及其相关关系。

2.5 知识融合

通过基于多特征的命名实体消歧、基于词典的属性对齐和基于贝叶斯分析的属性真值发现模块,消除实体、关系、属性及其对象之间的歧义,最终获得跟水利对象有关的属性及相应的属性值。

2.6 知识推理

利用基于规则推理的方法,结合现有水利知识,手工定义推理规则,服务水利知识推理。在概念层,通过一阶谓词逻辑表示定义相关推理规则;在实例层,再通过实例将推理规则实例化,找到符合推理规则的关系事实。

2.7 知识存储

水利知识存储的优化目标是减少冗余数据存储,提高查询效率。首先对经过质量评估后的水利知识进行基于主语的哈希划分形成三元组表(TT);然后对哈希划分后的三元组表进行垂直划分,形成只包含主语-宾语列的垂直划分表(VP);最后通过监控查询工作负载,挖掘频繁模式,对频繁模式所对应的垂直划分表进行半连接计算,形成频繁谓词扩展垂直划分表(FP-ExtVP)[4]。

3 图谱构建实例及应用

本文以宁波市为例进行水利知识图谱构建的实际应用。

3.1 区域概况

宁波市位于我国东部沿海,西部和南部分别与绍兴、台州相接,北临杭州湾,东部有舟山群岛天然屏障。宁波境内有3 大水系,分别是甬江、奉化江和姚江,姚江、奉化江在“三江口”处交汇,共同汇入甬江。

当前,浙江省正大力推进数字化改革,宁波市也是全国首批水利现代化试点城市之一[8],这对于宁波市的水利信息化建设提出更高的要求。通过构建宁波市水利知识图谱,可以梳理和整合宁波市内的水利信息资源,为进一步推进智慧水利建设打下更加坚实的基础。

3.2 宁波市水利知识图谱实例构建

3.2.1 水利数据获取

本文所使用的数据来源为宁波市水利数据中心,该数据中心基本囊括了宁波市域内的水利信息资源。通过水利数据共享平台获取宁波市内各水利对象名录及相应的属性数据,基于水利基础数据库的构建标准,利用MySQL 数据库构建各水利对象的基础信息表以及不同水利对象实体间的关系表,为后续水利知识图谱概念层设计以及实体层构建做准备。

3.2.2 水利知识图谱概念层设计

构建水利知识图谱,首先需要进行概念层设计。在进行概念层设计时,先明确各水利对象概念之间的层级关系,本文对此进行梳理,结果见表1。每个概念名称都代表1 个概念节点,其中第三级概念层中每个概念节点都对应1 张水利对象基础信息表和1 张水利对象名录表。除顶层级别外,任何一层与其上一层的关系都是从属关系。

表1 水利对象概念层级关系表

确定好概念节点后需要进一步构建属性边和属性值类型节点。由于单独设置属性边会使得图谱构建过于复杂,所以本文选择直接利用节点来储存属性信息。水利对象的属性及属性类型根据水利对象基础信息表进行设置。

对于概念节点之间的关系构建而言,不同层级之间的概念节点是从属关系,例如“闸门”“堤防”“水库”等都属于“水利工程”这一概念;而处于同一层级的概念节点之间也有一定关系,例如“湖泊”与“行政区划”之间的关系是“位于”。同一层级的概念节点关系根据水利对象关系表来构建,构建的关系可继续应用于后续实体节点间的关系。概念层模式设计见图1。

图1 概念层模式设计示意图

最后利用Neo4j 平台进行水利知识图谱概念层结构的搭建,模型搭建结果见图2。每个概念名称都表示1 个概念节点,在图谱中用圆表示,不同层次的节点用不同颜色区分,节点与节点之间的关系用有向线段表示,具体关系则用标签文字的形式标注在有向线段上。本次设计的水利知识图谱概念层包含4 个层级,共计29 个节点。

图2 水利知识图谱概念层模型图

3.2.3 水利知识图谱实体层构建

概念层设计初步完成之后进行实体层构建。实体节点以及属性节点的构建可以通过提取对象基础信息表来实现,实体节点之间的关系可以继承概念节点之间的关系,主要来自于对象关系表。实现知识及关系的提取可通过MySQL 数据库来完成。利用语义翻译工具对MySQL 数据库中的水利对象实体信息表和实体对象关系表进行字段抽取、识别与翻译,例如:“甬江”识别为河流概念,“周皎水库”识别为水库概念,“宁波市”“甬江流域”与“甬江”的关系通过该工具可进一步翻译为“位于”,最后将识别与翻译后的内容转换成CSV 文件,导入图数据库Neo4j 中即可完成这一过程。部分实体对象基础信息和关系见表2~3。

表2 部分实体对象基础信息展示表

表2 中,ID 号主要是为了方便实体与实体之的关系连接;Label 则表示该节点所要挂接的概念节点,如代表“奉化江”的实体节点要挂接到“省级河道”的概念节点。在3.2.2 节中设计的概念层不包含“省级河道”这一概念,本文采取的是自顶向下与自底向上相结合的构建模式,所以在构建实体层时,通过对提取的知识进行整理归纳,进一步细化概念层。表3 中,start_ID 和end_ID 表示实体关系指向,type 表示实体关系类型。

表3 部分实体对象关系展示表

实体知识提取完成之后,需要将各类实体相对应概念层中的概念进行实体填充,从而创建水利知识图谱的本体。本文使用Cypher Load CSV 语句将实体关系和属性信息批量导入图数据库。

实体信息表导入语句:

LOAD CSV FROM′file:///河流.csv′AS line

CREATE(:河流{entityID:line[1],name:line[2],City:line[3]

Basin:line[4],Length:line[5]})

实体关系导入语句:

LOAD CSV FROM′file:///位于.csv′AS row

Match(S:水位站{id:row[1]}),(E:水库工程{id:row[2]})

Merge(S)-[r:关系{locate:row[4]}]->(E)

实体填充完成之后,水利知识图谱的构建流程结束。本次所构建的水利知识图谱存储在Neo4j中,输入相应语句即可查询知识图谱内容。例如,输 入”match(m:` 市 级 河 道`)-[n:contain]-(p)return m,n,p”,查询结果见图3。

图3 知识图谱查询结果展示图

4 结 语

本文对水利知识图谱的构建流程进行详细介绍,包括水利数据获取、概念层设计以及实体层构建,并以宁波市为例,基于Neo4j 平台进行水利知识图谱构建的实际应用。在图谱构建的应用过程中,能够发现在水利知识图谱方面仍需进行更加深入的研究,包括拓宽知识图谱的覆盖范围、提高知识提取的精准度以及知识图谱的可视化展示。

知识图谱在水利领域的应用价值不仅仅局限于作为知识库存在,而是能够推动水利数据自动化和智能化处理,从而实现水利对象的全面互联,促进水利事业的现代化发展[9]。

猜你喜欢

宁波市图谱实体
绘一张成长图谱
前海自贸区:金融服务实体
重建宁波市图书馆记忆
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
补肾强身片UPLC指纹图谱
振兴实体经济地方如何“钉钉子”
两会进行时:紧扣实体经济“钉钉子”
主动对接你思维的知识图谱
宁波市四眼碶中学
宁波市中城小学