为什么不使用面向对象的图形数据库?
InfiniteGraph 是一个建立在 Objectivity/DB 之上的图形数据库,Objectivity/DB 是一个可大规模扩展的分布式面向对象数据库。
InfiniteGraph 允许您使用标准的面向对象方法定义顶点和边,包括继承。您还可以将定义的数据类型作为属性嵌入到另一个数据类型定义中。
因为 InfiniteGraph 是面向对象的,所以它使您可以访问流行的图形数据库中不可用的复杂数据结构的查询功能。考虑下图:

在此图中,我创建了一个查询,该查询基于对挂在 Call 边缘的 CallDetail 节点集的评估来确定边缘的包含。如果存在具有特定日期的 CallDetail,或者如果两个日期之间发生的所有 CallDetails 的 callDurations 总和超过阈值,我可能只会在结果中包含边缘。这是面向对象数据库解决图问题的真正力量:您可以支持更复杂的数据模型。
我不确定为什么人们将术语图数据库和属性图混合在一起。属性图只是实现图数据库的一种方法,并不是特别有效。InfiniteGraph 是一个基于模式的数据库,模式提供了几个明显的优势,其中之一是对象放置。
免责声明:我是 InfiniteGraph 的制造商 Objectivity, Inc. 的现场运营总监。