Neo4j 从入门到构建一个简单知识图谱

2021-12-28 00:00:00 节点 关系 属性 实体 图谱

Neo4j 对于大多数人来说,可能是比较陌生的。其实,Neo4j 是一个图形数据库,就像传统的关系数据库中的 Oracel 和 MySQL一样,用来持久化数据。Neo4j 是近几年发展起来的新技术,属于 NoSQL 数据库中的一种。

本文主要从 Neo4j 为什么被用来做知识图谱,Neo4j 的简单安装,在 Neo4j 浏览器中创建节点和关系,Neo4j 的 Python 接口操作以及用 Neo4j 构建一个简单的农业知识图谱五个方面来讲。

Neo4j 为什么被用来做知识图谱

从第19课《知识挖掘与知识图谱概述》中,我们已经明白,知识图谱是一种基于图的数据结构,由节点和边组成。其中节点即实体,由一个全局的 ID 标示,关系(也称属性)用于连接两个节点。通俗地讲,知识图谱就是把所有不同种类的信息连接在一起而得到一个关系网络,提供了从“关系”的角度去分析问题的能力。

而 Neo4j 作为一种经过特别优化的图形数据库,有以下优势:

  • 数据存储:不像传统数据库整条记录来存储数据,Neo4j 以图的结构存储,可以存储图的节点、属性和边。属性、节点都是分开存储的,属性与节点的关系构成边,这将大大有助于提高数据库的性能。
  • 数据读写:在 Neo4j 中,存储节点时使用了 Index-free Adjacency 技术,即每个节点都有指向其邻居节点的指针,可以让我们在时间复杂度为 O(1) 的情况下找到邻居节点。另外,按照官方的说法,在 Neo4j 中边是重要的,是 First-class Entities,所以单独存储,更有利于在图遍历时提高速度,也可以很方便地以任何方向进行遍历。
  • 资源丰富:Neo4j 作为较早的一批图形数据库之一,其文档和各种技术博客较多。
  • 同类对比:Flockdb 安装过程中依赖太多,安装复杂;Orientdb,Arangodb 与 Neo4j 做对比,从易用性来说都差不多,但是从稳定性来说,neo4j 是好的。

综合上述以及因素,我认为 Neo4j 是做知识图谱比较简单、灵活、易用的图形数据库。

Neo4j 的简单安装

Neo4j 是基于 Java 的图形数据库,运行 Neo4j 需要启动 JVM 进程,因此必须安装 Java SE 的 JDK。从 Oracle 官方网站下载 Java SE JDK,选择版本 JDK8 以上版本即可。

下面简单介绍下 Neo4j 在 Linux 和 Windows 的安装过程。首先去官网下载对应版本。解压之后,Neo4j 应用程序有如下主要的目录结构:

  • bin 目录:用于存储 Neo4j 的可执行程序;
  • conf 目录:用于控制 Neo4j 启动的配置文件;
  • data 目录:用于存储核心数据库文件;
  • plugins 目录:用于存储 Neo4j 的插件。

Linux 系统下的安装

通过 tar 解压命令解压到一个目录下:

tar -xzvf neo4j-community-3.3.1-unix.tar.gz

相关文章