图数据模型介绍 (4)

本文内容预告

上节我们讲到 RDF 既是一门语言,也是一个数据模型,它是一个数据抽象表示,定义数据元素如何组织在一起。这期就来聊聊表示知识图谱的背后用来表示图数据的图数据模型:Directed Edge-labeled Graph, Heterogeneous Graph, Property Graph

为什么要介绍图数据模型:因为在学术和工业界都使用这几个主流的图数据模型,而不同的图数据模型有不同的表示能力和搜索效率。比较常用的图数据库软件比如 VirtuosoGraphDB 是基于 Directed Edge-labeled Graph 实现的,而工业界很火的 Neo4j 图数据库软件是基于 Property Graph 实现的。

Directed Edge-labeled Graph

我没找到它的对应的中文术语。令 C o n \mathbf{Con} Con 为一个可数无穷的常数集合,一个 Directed Edge-labeled Graph 可以表示为一个三元组 G = ( V , E , L ) G=(V,E,L) G=(V,E,L),其中 V ⊆ C o n V\subseteq \mathbf{Con} VCon 是一个节点的集合, L ⊆ C o n L\subseteq \mathbf{Con} LCon 是一个边标签的集合, E ⊆ V × L × V E\subseteq V\times L\times V EV×L×V 是一个边的集合。这里的 × 是指笛卡尔积 (这个可以自行bing.com)。
W3C 推荐的 RDF 模型就是一个 Directed Edge-labeled Graph,它的定义如下:
给定可数无穷集合 R ⊂ C o n \mathbf{R}\subset\mathbf{Con} RCon (URI 集合), B ⊂ C o n \mathbf{B}\subset\mathbf{Con} BCon (Blank Node 集合), L ⊂ C o n \mathbf{L}\subset\mathbf{Con} LCon (Literal 集合),一个 RDF 图被定义为 G = ( V , E ) G=(V,E) G=(V,E),其中 V ⊆ R ∪ B ∪ L V\subseteq \mathbf{R}\cup\mathbf{B}\cup\mathbf{L} VRBL 表示一个节点集合, E ⊆ ( R ∪ B ) × ( R ) × ( R ∪ B ∪ L ) E\subseteq (\mathbf{R}\cup\mathbf{B})\times(\mathbf{R})\times(\mathbf{R}\cup\mathbf{B}\cup\mathbf{L}) E(RB)×(R)×(RBL) 表示一个 RDF 三元组结合。
下面是一个 Directed Edge-labeled Graph 的例子,而对应的 RDF Graph 只需要把节点和边上的字符填上必要的前缀和类型即可,比如 Liu_Bei 替换为 dbr:Liu_Beitype 替换为 rdf:typelabel 替换为 rdfs:label (RDFS 是以外一个语义网络通用的命名空间),161 替换为 "161"^^xsd:integer等。
image.png
其中 V {V} V={Liu_Bei, Liu_Shan, King, "man", 161, Role}, L {L} L={child, successor, label, gender, birthday, type}, E {E} E={(Liu_Bei, child, Liu_Shan), (Liu_Bei, successor, Liu_Shan), (Liu_Bei, label, King), (Liu_Bei, gender, "man"), (Liu_Bei, birthday, 161), (Liu_Bei, type, Role), (Liu_Shan, type, Role)}。

Heterogeneous Graph

一个异构图被定义为一个四元组 G = ( V , E , L , l ) G=(V,E,L,l) G=(V,E,L,l),其中 V ⊆ C o n V\subseteq \mathbf{Con} VCon 是一个节点的集合, L ⊆ C o n L\subseteq \mathbf{Con} LCon 是一个标签(顶点或边的标签)的集合, E ⊆ V × L × V E\subseteq V\times L\times V EV×L×V 是一个边的集合, l : V → L l:V\rightarrow L l:VL 是一个映射(对于每个 V V V 中的顶点,它有一个来自来自 L L L 的标签)。
以前面的刘备的例子,它对应的 Heterogeneous Graph 如下:
image.png
其中的 V V V, E E E, L L L 与前面的一样。

Property Graph

一个属性图被定义为一个八元组 G = ( V , E , L , P , U , e , l , p ) G=(V,E,L,P,U,e,l,p) G=(V,E,L,P,U,e,l,p),其中 V ⊆ C o n V\subseteq \mathbf{Con} VCon 是一个节点 ID 的集合, L ⊆ C o n L\subseteq \mathbf{Con} LCon 是一个标签的集合, E ⊆ C o n E\subseteq \mathbf{Con} ECon 是一个边 ID 的集合, P ⊆ C o n P\subseteq \mathbf{Con} PCon 是一个属性集合, U ⊆ C o n U\subseteq \mathbf{Con} UCon 是一个值的集合。
e : E → V × V e:E\rightarrow V\times V e:EV×V 是一个从边 ID 到节点集合的映射;讲人话就是说给每个边比如 edge1 分配一个节点对比如说 (刘备ID, 刘婵ID)。
l : V ∪ E → 2 L l:V\cup E\rightarrow 2^L l:VE2L 是一个从节点或边 ID 到一个标签集合的 power set 的映射,这里 2 L 2^L 2L 值的是 L L Lpower set ( L L L 的所有非空子集);讲人话就是说给每个节点或者边 ID 分配一堆标签。比如给 edge1 这个边 ID 分配两个标签 {child,successor}
p : V ∪ E → 2 P × U p:V\cup E\rightarrow 2^{P\times U} p:VE2P×U 是一个从节点或边 ID 到一个 属性-值 集合的 power set 的映射。讲人话的意思就是给每个节点或者边 ID 分配一堆属性值。比如给 刘备ID 这个节点分配性别和生日属性 {gender: “man”, birthday: 161}
下面是刘备的例子在 Property Graph 中对等的表示:
image.png
其中 V V V={Liu_Bei, Liu_Shan}, E E E={child, successor}, L L L={Role, King}, P P P={gender, birthday}。

三个图数据模型对比

Heterogeneous Graph 相比 Directed Edge-labeled Graph 允许为顶点分配标签。而 Property GraphHeterogeneous Graph 基础上进一步扩展,允许节点和边使用多个标签,并且允许节点和标签有多个属性-值对。
RDF Graph 虽然是一种 Directed Edge-labeled Graph,但是由于它有很多保留的字可以表示丰富的语义,比如在 Property Graph 中可以有多个标签,但是机器无法区分哪个是表示类,哪个表示一般标签。而 RDF 使用 rdfs:label 专门指定标签,使用 rdf:type 指定类。此外 RDF 也可以实现实体 (类比Property Graph中的节点) 的多个属性表示,以及一个边的多个标签和属性表示。但是相对而言 RDF 的表示会占用更多的存储,效率会更低。

关注不走丢,欢迎反馈、点赞、加星

参考
  1. Scientific Data Management & Knowledge Graph, by Maria-Esther Vidal
  2. HOGAN A, BLOMQVIST E, COCHEZ M, et.al. Knowledge Graphs[J]. arXiv:2003.02320 [cs], 2020.
  3. https://zhuanlan.zhihu.com/p/260430189
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值