图数据库(Neo4j)入门

1. 基本概念

Neo4j 是一种目前主流的图数据库,它采用属性图(Property Graph)方式来表示图结构数据。在 Neo4j 中,采用特定的数据模型来存储知识图谱中某一概念的数据,其数据模型标签(Node labels)、节点(Node)、关系(Relationship)、关系类型(Relationship type)和关系类型(Relationship type)五种,它们与知识图谱中概念的对应关系如下所示:

知识图谱概念 Neo4j 数据模型
概念(class) 标签(Node labels)
实体(entity) 节点(Node)
关系(relation) 关系类型(Relationship type)
关系(relation) 关系(Relationship)
属性(Properties)

可见,知识图谱中的概念(class)由标签(Node labels)数据模型来实现,实体(entity)由节点(Node)数据模型来实现,关系(relation)由关系类型(Relationship type)数据模型和关系(Relationship)数据模型共同实现,属性(Properties)数据模型是属性图(Property Graph)特有的理论概念,它负责记录实体或关系的定、状、补语等描述性信息。

标签(Node labels)

标签通过将节点分组(分类)为集合来塑造域,其中具有特定标签的所有节点都属于同一集合。例如,所有代表用户的节点都可以用 label 标记User。有了这些,您可以要求 Neo4j 仅在您的用户节点上执行操作,例如查找具有给定名称的所有用户。

由于标签可以在运行时添加和删除,它们也可以用于标记节点的临时状态。一个节点可以有零到多个标签,可以添加更多的标签来表达数据的不同维度。

关系

关系描述了源节点和目标节点之间的连接是如何相关的1,它是一条自源节点指向目标节点有(方)向连线,它必须有且只有一种关系类型,来定义(分类)该连线是什么类型的关系。

关系总是有方向的,但在没有用处的地方可以忽略方向。这意味着不需要添加相反方向的重复关系,除非需要正确描述数据模型。

属性(Properties)

属性是用于在节点和关系上存储数据的键值对。属性的值可以保存不同的数据类型,例如number、string或boolean,也可以保存包含例如字符串、数字或布尔值的列表(数组)。

2. 常用命令

Cypher 是 Neo4j 的图形查询语言,允许用户从图数据库存储和检索数据。它就像用于图数据的 SQL,并受到 SQL 的启发,因此它可以让您专注于想要从图形中获取哪些数据(而不是如何获取它)。

3. Python API


  1. 节点也可能与其自身有关系,即源节点和目标节点可能是同一个节点。 ↩︎

你可能感兴趣的:(#,自然语言处理,数据库,知识图谱,自然语言处理,nlp)