使用图进行数据建模

之前给大家提供过一种构建疫情知识图谱的思路,将病例与病例之间的联系、病例与行程轨迹之间的联系利用neo4j进行表示。上述思路大家可以参考我的博客:https://blog.csdn.net/petrichor316/article/details/123745787,不少同学反馈写的不错,思路清晰,也很明了,在这里一并谢谢各位咯!一同进步!

本篇博客主要介绍构建知识图谱的图查询构建的语言:Cypher语言

主要介绍create函数以及 match函数,本博客主要为简单的例子,后续会分享更为复杂的语句给大家

cypther语言的特性

为了各位能够简单直观的理解其中包含的几个元素,还是先给各位上图!

大家直观的能看到什么?

就我直观能看到的,首先蓝色的圆圈表示病例,粉色的圆圈表示地址。其次呢,就是带有方向的箭头,上面有两种,一种是病例和病例之间的表示病例之间的关系,另一种是病例和地址之间的,表示病例在什么地址干了什么事儿。那好,就直观所看到的,有两种元素:节点和联系。

那好,再给各位看一幅局部的图。

这张图呢,是点击158号病例之后所提示的,我们看到右侧,蓝色的里边写着“病例”,下边呢有他所属的地址、年龄、性别等。这个时候我们又看到了两种元素:标签(如:病例)、属性(如:地址、年龄、性别)。

那么,我们就从上边两幅图了解到一张图主要包含的有四个元素,他们有一下的几个特征,结合上边两张图来理解,就不是那么的生涩了。

  • 带标签的属性图由节点、联系、属性和标签构成
  • 节点上包含属性,同时每一个节点都能够包含一个或者多个标签
  • 节点与节点之间用联系来连接,同时联系具有方向性,联系的方向和名字使得节点的结构富有语义化。
  • 联系同节点一样也可以赋予属性,可以给图算法提供元数据,并能够赋予额外的语义(如特性和权重)

除此之外再给各位看一幅图,构建莎士比亚的关系图:

具体代码下载见:https://download.csdn.net/download/petrichor316/85358854
也可联系我所要代码哦~

cypher语言举例《特战荣耀》的人物联系

最近有一部超火的电视剧,叫做《特战荣耀》,不知道各位有没有看过,有不少女生被燕破岳(杨洋)迷的神魂颠倒,也有不少男生被郭笑笑(蒋璐霞)帅的五体投地。那么就用这部电视剧里的人物关系简单来介绍一下cypher语句的用法。比如说,我们想要描述燕破岳是一名士兵,被他的连长(李祥)和教导员(陈民涛)管理时,可以使用下边的语句:

create (燕破岳:士兵 {姓名:'燕破岳',演员:'杨洋',职衔:'士兵'})<-[:管理]-(李祥:领导 {姓名:'李祥',演员:'吴健',职衔:'连长'})-[:同级]->(陈民涛:领导 {姓名:'陈民涛',演员:'叶琪山',职衔:'教导员'})-[:`管理`]->(燕破岳)

代码拿去试试啊!如图所示:

接下来我们简要说明一下上述代码的含义: