这篇笔记来自于北大邹磊教授的知识图谱讲座
知识图谱的数据模型与查询语言(Data Models and Query Languages of Knowledge Graph)
视频地址:https://www.bilibili.com/video/BV1kv411i7A8?p=2
主要内容:
- RDF图数据模型与SPARQL查询语言?
- 属性图数据模型与Cypher查询语言
- TinkerPop图计算框架与Gremlin图遍历语言及遍历机
2. 属性图数据模型与Cypher查询语言
背景介绍
Neo4j背景
- Neo4j是由Neo4j公司开发的图数据库系统,其起源于2000年Neo4j的创始人开发的多媒体资产管理系统
- 在这个多媒体资产管理系统中,数据模型经常会发生变化,而且数据结构以及访问控制机制非常复杂。为此,Neo4j选择了用图模型来存储“关系”并在此系统中实现了变长的遍历运算
- 此外,该系统通过属性集合的方式来对图上的元素进行标记
- 官网地址:https://neo4j.com
Cypher背景
- Cypher是Neo4j系统所支持的面向Neo4j所存储属性图的查询语言
- 目前的openCypher项目是一个开发平台,用于Cypher语言的标准化
- openCypher项目目前形成了一系列成果,包括扩展巴科斯范式、ANTLR4语法、技术兼容性工具包等
- 官网地址:http://www.opencypher.org
属性图模型简介
- 属性图模型是一种不同于RDF三元组的一种图数据模型
- 这个模型由点来表示现实世界中的实体,由边来表示实体与实体之间的关系。同时,点和边上都可以通过键值对的形式被关联上任意数量的属性和属性值
- 在这种图模型中,关系被提到了一个和实体本身一样重要的程度
- 从形式化的角度来看,属性图模型包含三种元素组成:值、图和表
属性图模型符号列表
值类型 | 表示单个值得符号 | 表示值集合的符号 |
---|---|---|
属性键 | ||
点标识符 | ||
边标识符 | ||
点标签 | ||
关系标签 | ||
函数 | ||
值 |