知识图谱在黄河宁夏段健康诊断与智能管理系统中的应用研究

2020-11-12 07:10
水资源开发与管理 2020年10期
关键词:排水沟断面图谱

(河海大学,江苏 南京 210098)

图形数据库采用图形理论来存储实体之间的从属和拓扑关系信息,是一种非关系型SQL数据库。知识图谱是谷歌公司在2012年为提高用户搜索质量提出的图形化数据库,用以存储低结构化或非结构化数据。知识图谱可通过一系列不同的图形,描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系,来表现现实世界中事物之间的联系。相对于传统的关系型数据库,图形数据库具有强大的图形遍历能力和较高的数据可视化能力。知识图谱的出现, 为人们提供了一种更好地组织、管理和理解海量信息的方法, 同时, 也成为知识检索、智能问答、个性化推荐等应用的基础。

有学者曾指出,Web 1.0时代以文档互联为主要特征,Web 2.0时代以数据互联为主要特征,而Web 3.0时代则以知识互联为主要特征[1]。不同类型的数据之间往往是相互孤立的,但数据之间存在内在的从属与拓扑关系,这就构成了知识。图形数据库就是将各类零散数据通过不同的内在关系联系起来,形成“实体-关系-实体”三元组的特殊数据库[2]。传统数据库仅单纯地存储数据信息,而图形数据库存储的信息是节点及其之间的关联信息。在信息检索时,图形数据库通过遍历所有节点迅速寻找符合条件的节点,展示该节点信息及与其相关的信息。

Neo4j是一款基于Java开发的高性能的SQL图形数据库[3]。在数据检索时,Neo4j会以相同的速度遍历节点与边,其遍历速度与构成图形的数据量没有关系。Neo4j善于处理大量复杂、动态、互联和低结构化的数据,具有强大的图形遍历功能,可方便地通过Java接口与开发软件耦合。Cypher是应用在Neo4j中的一种轻量化的数据库查询语言,不用编写复杂的代码即可实现对图形数据库的创建、查询等操作,使操作与开发人员不必苦恼于复杂的代码,将精力聚集于查询本身。

水利行业的数据量大、动态性较强[4],导致传统的关系型数据库RDBMS越来越难以满足人们对大规模数据存储、读写及处理方面的要求,且可视化程度较差。信息化建设成为提高河长制工作效率的抓手[5],针对水利信息量大、多变且可视化难的问题,本文拟利用图形数据库信息遍历性强、检索迅速的优势,对水污染数据进行可视化表达,应用于黄河宁夏段健康诊断与智能管理系统中。

1 研究方案与技术路线

本文采用Neo4j将国控断面设置为节点,揭示黄河宁夏段水文、水质数据和国控断面的逻辑从属和拓扑关系,构建国控断面与水利多要素的关系图谱,提出一种适用于黄河宁夏段的“数据层建立、模型层建立、应用可视化界面展示”3个阶段的水利大数据知识图谱构建方案。建立简单易用的查询功能代码库,利用知识图谱遍历性强的特点实现重要水利信息的快速检索与查询,能够准确而直观地展示国控断面的水文、水质信息[6]。技术路线见图1。

图1 技术路线

2 黄河宁夏段水文知识图谱设计

2.1 基本术语

2.1.1 节点

节点(Node)是图形数据库中的一个基本元素,用以表示一个实体记录,就像传统关系数据库中的一条记录。在Neo4j中节点可包含多个属性(Property)和多个标签(Label),见图2。

图2 带有属性和标签的节点

2.1.2 关系

关系(Relationship)是图形数据库中的另一个基本元素。当数据库中已存在节点时,需将节点关联起来,构成关系图。关系用来连接两个节点,在图论中称为边(Edge),起始末端点都是节点。关系和节点一样可包含多个属性,但是一个属性只能有一个类型(Type),见图3。一个节点可以被多个关系指向或作为多个关系的起始节点,见图4。

图3 带有类型和属性的关系

图4 多个关系指向同一节点

关系必须有开始节点(Strat Node)和结束节点(End Node),两头都不能为空。节点可以通过关系串联或并联起来。由于关系是有指向的,故可在由节点和关系组成的图中进行遍历操作。

2.1.3 属性

节点和关系都可具有多重属性。属性由键值对组成,属性值可为一个单独的数据或者众多数据的数组,数据格式可为字符串、整数、浮点数等多种基础数据类型[7],见表1。

表1 属性值的数据类型

属性值不会出现NULL,如果一个属性不需要可直接将整个键值对移除。在使用Cypher或Java API时,可用IS NULL关键字判断属性是否存在。

2.1.4 路径

节点和关系创建的图中,任意两个节点之间都可能存在路径,见图5。任意两个节点都存在由节点和关系组成的路径,路径也具有长度。一个单独的节点可组成长度为0的路径。

图5 路径的示意

2.1.5 遍历

遍历(Traversal)就是按照一定的检索规则,根据节点之间的关系,依次访问所有相关节点的操作。Neo4j提供了一套高效的可指定遍历规则API,可指定遍历规则使Neo4j按照既定的遍历规则执行遍历操作,返回遍历的结果。遍历的规则可以是广度优先,也可是深度优先。

2.2 节点定义

根据应用需求定义以下 3 类节点:“重点国控断面”节点、“污染物”节点和“排水沟”节点。

2.2.1 “重点国控断面”节点

“重点国控断面”节点包含7个属性,属性名称及说明见表2。

表2 “重点国控断面”节点的属性名称及说明

以创建下河沿断面的“重点国控断面”节点为例,忽略该节点关系创建该节点,命令如下:

CREATE (xiaheyan:Station{name:‘下河沿’,tributary:‘1条’,flowprocess:‘2种’,Sorts_of_pollution:‘2种’,substandard:‘25天’,scope:‘40km2’,measures :‘2个’})

其他国控断面节点的创建过程如“下河沿”节点,此类节点的标签均为“Station”,见图6。

图6 已创建的重点国控断面节点

2.2.2 “污染物”节点

以创建平罗黄河大桥断面的“污染物”节点“总磷”为例,忽略该节点关系创建该节点,命令如下(节点的属性定义见表3):

CREATE (Total_Phosphorus6: Pollutant: exceed_standard {name:“总磷”, location: ‘平罗黄河大桥’,content:0.37})

其他“污染物”节点的创建过程同“总磷”节点,此类节点的第一类标签皆为“Pollutant”。节点的总磷含量超标时,为了方便后续的检索查询工作,在超标的“污染物”节点添加第二类标签“exceed_standard”。

表3 “污染物”节点的属性名称及说明

2.2.3 “排水沟”节点

以创建叶盛公路桥断面的“排水沟”节点“吴忠市南干沟”为例,忽略该节点关系创建该节点,命令如下(节点的属性定义见表4):

CREATE (a21: Gutterway {name:‘吴忠市南干沟’, location:‘叶盛公路桥’})

其他排水沟节点的创建过程同“吴忠市南干沟”节点,此类节点的标签均为Gutterway”。

表4 “排水沟”节点的属性名称及说明

2.3 关系定义

根据数据挖掘需求,创建了如下3种关系:“国控断面”之间的关系、“国控断面”与“排水沟”之间的关系以及“国控断面”与“污染物”之间的关系。

2.3.1 “国控断面”之间关系的定义

黄河宁夏段有6个国控断面,从上游至下游依次为下河沿、清水河、金沙湾、叶盛公路桥、银古公路桥和平罗黄河大桥。国控断面之间包含上下游关系,采用如下命令创建:

CREATE

(xiaheyan)-[:downstream {name:[‘下游’]}]->(qingshuihe),

(qingshuihe)-[:downstream {name:[‘下游’]}]->(jinshawan),

(jinshawan)-[:downstream {name:[‘下游’]}]->(yeshenggongluqiao),

(yeshenggongluqiao)-[:downstream {name:[‘下游’]}]->(yinggugongluqiao),

(yinggugongluqiao)-[:downstream {name:[‘下游’]}]->(pingluohuanghedaqiao)

关系创建完成后的图谱见图7。

图7 国控断面之间的上下游关系

2.3.2 “国控断面”与“排水沟”之间关系的定义

以银古公路桥为例,建立“国控断面”与“排水沟”间的联系,采用如下命令创建关系:

CREATE (yeshenggongluqiao:Station{name:“叶盛公路桥”, tributary:‘2条’,flowprocess:‘1种’,Sorts_of_pollution:‘2种’,substandard:‘10天’,scope:‘35km2’,measures :‘3个’})

CREATE (d2: Sorts_of_Gutterway {name:‘排水沟’, type:‘2种’})

CREATE (d21: Gutterway {name:‘吴忠市清水沟’})

CREATE (d22: Gutterway {name:‘吴忠市南干沟’})

CREATE

(yeshenggongluqiao)-[:Type_of_Gutterway{name:[‘排水沟’]}]-> (d2),

(d2)-[: Gutterway_name{name:[‘排水沟名称’]}]->(d21),

(d2)-[: Gutterway_name{name:[‘排水沟名称’]}]->(d22)

关系创建完成后的图谱见图8。

图8 国控断面与排水沟间的从属关系

2.3.3 “国控断面”与“污染物”间关系的定义

以银古公路桥为例,建立“国控断面”与“污染物”间的联系,采用如下命令创建关系:

CREATE (yeshenggongluqiao:Station{name:“叶盛公路桥”, tributary:‘2条’,flowprocess:‘1种’,Sorts_of_pollution:‘2种’,substandard:‘10天’,scope:‘35km2’,measures :‘3个’})

CREATE (d1:Sorts_of_Pollution {name:‘污染物种类’,type:‘3种’})

CREATE (ammonia_nitrogen4: Pollutant{name:“氨氮”,location:‘叶盛公路桥’,content:‘0.2’})

CREATE (Total_Phosphorus4: Pollutant: exceed_standard {name:“总磷”,location:‘叶盛公路桥’,content:‘0.32’})

CREATE (Total_Nitrogen4: Pollutant{name:“总氮”,location:‘叶盛公路桥’,content:‘0.16’})

CREATE

(yeshenggongluqiao)-[:Type_of_Pollutant{name:‘污染物种类’}]->(d1),

(d1)-[:Pollutant_name{name:[‘污染物名称’]}]->( ammonia_nitrogen4),

(d1)-[:Pollutant_name{name:[‘污染物名称’]}]->( Total_Phosphorus4),

(d1)-[:Pollutant_name{name:[‘污染物名称’]}]->( Total_Nitrogen4)

关系创建完成后的图谱见图9。

图9 重点国控断面与污染物间的从属关系

图9的3种污染物中总磷的圆圈比总氮和氨氮大、颜色更深,以显示其超标信息。这种处理可便捷地识别每个节点的超标污染物类型,其机理是在超标的“污染物”节点添加第二类标签“exceed_standard”。

3 水文知识图谱在黄河宁夏段的应用

3.1 重点国控断面的查询

水利部正开展智慧水利调研和总体建设方案顶层设计[8],对于重点国控断面的实时监测就显得尤为重要。定向查询叶盛公路桥的相关信息命令如下(查询结果见图10):

MATCH (yeshenggongluqiao:Station)

RETURN yeshenggongluqiao

3.2 查询超标污染物的种类及其所在的国控断面

查询超标污染物的种类及其所在的国控断面的代码如下:

match (station)-[:Type_of_pollutant]-> (Property)-[:Pollutant_name]->( Pollutant)

where Pollutant.content>0.3

return station,Pollutant

图10 重点国控断面查询结果

系统自动生成的查询结果见图11。

图11 超标污染物查询结果

4 结 语

Neo4j 图形数据库是目前挖掘实体间关系最优秀的图形数据库。本文根据国控断面之间的内在联系,以及国控断面与相应排污口、COD、氨氮浓度等信息的从属关系,采用Neo4j选取和设置了节点与关系,设计了黄河宁夏段水利大数据的知识图谱,实现了河湖健康数据的图形化展示,并通过 Neo4j 高效的查询功能实现了重要水利信息的快速检索。这为人们了解河道流域的健康状况、污染物的分布规律等提供了有效的数据支持及方法指导。

猜你喜欢
排水沟断面图谱
高清大脑皮层发育新图谱绘成
基于图对比注意力网络的知识图谱补全
一种精确的轮胎断面束缚方法
高深度大断面中深孔一次成井技术探索与应用
绘一张成长图谱
超大断面隧道初期支护承载力学特性及形变研究
Thalidomide for refractory gastrointestinal bleeding from vascular malformations in patients with significant comorbidities
茂名市开展全面攻坚劣Ⅴ类国考断面行动!
皇家库府遇盗
主动对接你思维的知识图谱