01 知识图谱基础
2019-10-25 本文已影响0人
武漂的小丙
1 基本概念
- 图形是一组节点和连接这些节点的关系
- 图形以属性的形式将数据存储在节点和关系中;
- 属性是用于表示数据的键值对;
- 图库的主要作用:
- 主要用于存储更多的连接数据;
- RDBMS存储更多连接的数据,不能提供用于遍历大量数据的适当性能;在这情况下,Graph Database提高了应用程序性能;
- 在图形理论中,我们可以表示一个带有圆的节点,节点之间的关系用一个箭头标记表示
- 单个节点:不包含任何属性
- 带有属性的节点:属性是一个名称:值对
- 两个节点之间创建关系:
- 节点关系:
- 单向关系:ABC到PQR
- 双向关系: ABC到XYZ
2 数据模型
2.1 属性图模型规则
- 表示节点,关系和属性中的数据
- 节点和关系都包含属性
- 关系连接节点
- 属性是键值对
- 节点用圆圈表示,关系用方向键表示
- 关系具有方向:单向和双向。
- 每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”
Neo4j图数据库需要注意的事项:
- “关系应该是方向性的”:在属性图数据模型中,关系应该是定向的。如果我们尝试创建没有方向的关系,那么它将抛出一个错误消息;
- 将其所有数据存储在节点和关系中。不需要任何额外的RRBMS数据库或无SQL数据库来存储Neo4j数据库数据。它以图形的形式存储其数据的本机格式;
- 本机GPE(图形处理引擎)引擎来使用它的本机图存储格式
2.2 主要构建模块
- 节点
- 关系
- 属性
这里我们使用圆圈表示节点。 使用箭头的关系。 关系是有方向性的。 我们可以用Properties(键值对)来表示Node的数据。 在这个例子中,我们在Node的Circle中表示了每个Node的Id属性。
3 Neo4j 特点和优势
3.1 特点
- SQL就像简单的查询语言Neo4j CQL
- 它遵循属性图数据模型
- 它通过使用Apache Lucence支持索引
- 它支持UNIQUE约束
- 它包含一个用于执行CQL命令的UI:Neo4j数据浏览器
- 它支持完整的ACID(原子性,一致性,隔离性和持久性)规则
- 它采用原生图形库与本地GPE(图形处理引擎)
- 它支持查询的数据导出到JSON和XLS格式
- 它提供了REST API,可以被任何编程语言(如Java,Spring,Scala等)访问
- 它提供了可以通过任何UI MVC框架(如Node JS)访问的Java脚本
- 它支持两种Java API:Cypher API和Native Java API来开发Java应用程序
3.2 优点
- 它很容易表示连接的数据
- 检索/遍历/导航更多的连接数据是非常容易和快速的
- 它非常容易地表示半结构化数据
- Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习
- 它使用简单而强大的数据模型
- 它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引
3.3 缺点或限制
- AS的Neo4j 2.1.3最新版本,它具有支持节点数,关系和属性的限制。
- 它不支持Sharding。
4 Neo4j构建模块
Neo4j主要有以下构建模块:
- 节点:图标的基本单位,具有键值对的属性
- 如下是Node Name = “Employee”, 包含一组属性作为键值对
-
属性:描述图节点和关系的键值对
- Key = 值
- Key是字符串
- 值可以用任意Neo4j数据类型表示
-
关系:另一个主要构建块。 它连接两个节点
- Emp和Dept是两个不同的节点
- WORKS_FOR”是Emp和Dept节点之间的关系
- 从Emp到Dept的箭头标记
- 每个关系包含一个起始节点和一个结束节点,这里“Emp”是一个起始节点,Dept”是结束节点。
- 由于该关系箭头标记表示从“Emp”节点到“Dept”节点的关系,该关系被称为“进入关系”到“Dept”节点
- 像节点一样,关系也可以包含属性作为键值对。
- 这里的“WORKS_FOR”关系有一个属性作为键值对,它代表了这种关系的一个ID。
-
标签:
- 将一个公共名称与一组节点或关系相关联
- 节点或关系可以包含一个或多个标签
- 可以为现有节点或关系创建新标签
- 可以从现有节点或关系中删除现有标签
- 从上图可以观察到:左侧节点都有一个标签:“EMP”,而右侧节点都有一个标签:“Dept”。
- 两个节点之间的关系,也有一个标签:“WORKS_FOR”
-
数据浏览器:
- 访问链接:http://localhost:7474/browser/
- Neo4j数据浏览器用于执行CQL命令并查看输出输出
- 在美元符号后键入命令,然后单击“执行”按钮运行命令
- 与Neo4j数据库服务器交互
- 使用“VI视图”按钮以图形格式查看结果。 以“UI视图”格式显示结果。
- 使用“网格视图”按钮在网格视图中查看结果
- CSV
- JSON