以农业知识图谱为案例介绍neo4j图数据库的使用

说明

上篇博客《知识图谱构建利器:图数据库Neo4j的环境部署和简单使用》分享了Neo4j图数据库的环境搭建和简单使用,下面就以农作物为例创建一个简单的农作物相关的知识图谱,首先了解一下相关概念。

知识图谱(Knowledge Graph,引自百科),在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形,用 可视化技术描述知识资源及其载体,挖掘、分析、 构建、绘制和显示知识及它们之间的相互联系。 知识图谱是通过将应用数学、 图形学、信息可视化技术、 信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、 前沿领域以及整体知识架构达到多学科融合目的的现代理论。它能为学科研究提供切实的、有价值的参考。

使用

1. 首先,我们删除数据库中以往的图,确保一个空白的环境进行操作:

MATCH (n) DETACH DELETE n

这里,MATCH匹配操作,而小括号()代表一个节点node,括号里面的n为标识符

2.接下来,我们创建一个农作物(小麦)节点:

CREATE (n:Crops {name:'Wheat'}) RETURN n

CREATE创建操作,Crops是标签,代表节点的类型。花括号{}代表节点的属性,属性类似Python的字典。这条语句的含义就是创建一个标签为Crops的节点,该节点具有一个name属性,属性值是Wheat。

如图所示,在Neo4J的界面上可以看到创建成功的节点。

以农业知识图谱为案例介绍neo4j图数据库的使用

3. 我们继续来创建更多的农作物节点:

CREATE (n:Crops {name:'Corn'}) RETURN n
CREATE (n:Crops {name:'DaDou'}) RETURN n
CREATE (n:Crops {name:'ShuiDao'}) RETURN n
CREATE (n:Crops {name:'MianHua'}) RETURN n
CREATE (n:Crops {name:'QingKe'}) RETURN n
CREATE (n:Crops {name:'DaZao'}) RETURN n

如图所示,7个农作物节点创建成功

以农业知识图谱为案例介绍neo4j图数据库的使用

4. 接下来创建地区节点

CREATE (n:Location {region:'HuaBei', QiHou:'冬暖夏凉'})
CREATE (n:Location {region:'NanFang', QiHou:'湿热'})
CREATE (n:Location {region:'DongBei', QiHou:'冷'})
CREATE (n:Location {region:'XiBei', QiHou:'环境比较恶劣,高寒'})

可以看到,节点类型为Location,属性包括region和QiHou。

如图所示,共有7个农作物节点、3个地区节点,Neo4J有好地使用不用的颜色来表示不同类型的节点。

以农业知识图谱为案例介绍neo4j图数据库的使用

5. 创建关系(农作物的生长地)

MATCH (a:Crops {name:'MianHua'}), (b:Location {region:'XiBei'}) MERGE (a)-[:Grown_IN]->(b)
MATCH (a:Crops {name:'QingKe'}), (b:Location {region:'XiBei'}) MERGE (a)-[:Grown_IN]->(b)
MATCH (a:Crops {name:'DaZao'}), (b:Location {region:'XiBei'}) MERGE (a)-[:Grown_IN]->(b)
MATCH (a:Crops {name:'ShuiDao'}), (b:Location {region:'NanFang'}) MERGE (a)-[:Grown_IN]->(b)
MATCH (a:Crops {name:'DaDou'}), (b:Location {region:'DongBei'}) MERGE (a)-[:Grown_IN]->(b)
MATCH (a:Crops {name:'Wheat'}), (b:Location {region:'HuaBei'}) MERGE (a)-[:Grown_IN]->(b)
MATCH (a:Crops {name:'Corn'}), (b:Location {region:'HuaBei'}) MERGE (a)-[:Grown_IN]->(b)

这里的关系是Grown_IN,表示生长在哪里。

如图,在农作物节点和地区节点之间,农作物生长地关系已建立好。

以农业知识图谱为案例介绍neo4j图数据库的使用

6. 至此,知识图谱的数据已经插入完毕,可以开始查询了。我们查询下所有XiBei地区的农作物:

MATCH (a:Crops)-[:Grown_IN]->(b:Location {region:'XiBei'}) RETURN a,b

结果

以农业知识图谱为案例介绍neo4j图数据库的使用

7. 查询所有对外有关系的节点

MATCH (a)-->() RETURN a

注意这里箭头的方向,返回结果不含任何地区节点,因为地区并没有指向其他节点(只是被指向)

以农业知识图谱为案例介绍neo4j图数据库的使用

8. 查询所有对外有关系的节点,以及关系类型

MATCH (a)-[r]->() RETURN a.name, type(r)

结果如下图所示

以农业知识图谱为案例介绍neo4j图数据库的使用

9. 增加/修改节点的属性

MATCH (a:Crops {name:'Wheat'}) SET a.type='农作物'

这里,SET表示修改操作

10. 删除节点的属性

MATCH (a:Crops {name:'Wheat'}) REMOVE a.type

删除属性操作主要通过REMOVE

11. 删除节点

MATCH (a:Location {region:'DongBei'}) DELETE a

删除节点操作是DELETE

总结

本文重点以农作物和生长地关系为案例,对常见的图数据库Neo4J进行了介绍,讲解了Neo4J的查询语言Cypher的使用方法。

类似MySQL等其它关系型数据库一样,在实际的生产应用中,一般还是使用Python、Java等提供的driver来在程序中实现,后续会继续介绍编程语言如何操作Neo4J。

展开阅读全文

页面更新:2024-03-06

标签:图谱   括号   农作物   节点   属性   生长   案例   操作   关系   数据库   地区   知识   农业知识

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top