技术开发 频道

Java开发者调查:最受欢迎的图形数据库

  6. Trinity (微软出品)

  微软不久之前才刚刚携Trinity首个发布版本V0.1(只允许企业内网接入)加入角逐。根据介绍,Trinity是一款基于内存的图形存储机制,且具备丰富的数据库功能,其中包括高并行性联机查询处理、ACI事务支持等等。在图形处理方面,Trinity只为用户提供了C# API。

  由于Trinity软件包还不对微软公司之外公开,因此目前尚无法获悉更多细节信息。不过至少Trinity拥有以下关键性功能:

  ·使用超图形作为数据模型;

  ·适合部署于公布式模型中。

  Trinity的系统架构可点此查看。总体而言,在将Trinity与其它开源图形类数据库进行比较时,我们很难发现它所独有的明显优势。然而,由于Trinity仍处于开发原型阶段,因此适当加以关注也是必要的。此外,Probase作为一个进行中的项目,似乎在本体论/分类法知识方面将Trinity当成了理论基础。点击此处可以查看另一篇讨论Probase与Trinity的好文。

  7. AllegroGraph (Franz Inc.出品)

  AllegroGraph是一款老牌图形类数据库了,据称其负载“数十亿RDF(即资源描述框架)三元组仍可保持高性能”。尽管RDF三元组可以作为边线来处理,但AllegroGraph的原本设计意图是创建以RDF为中心的语义网络应用程序,并支持SPARQL、RDFS++以及Prolog等由包括Java程序在内的各类客户应用推衍得出的程序。AllegroGraph RDFStore免费版本支持最多5000万个三元组。

图形数据库:Trinity和AllegroGraph
▲图七

  图七展示的正是RDF图形实例。AllegroGraph为每个三元组配备了一个名为“命名图”的额外接口,这就使得三元组成为四边形结构(但为了方便起见仍称其为三元组)。以下是作者根据图七内容所做出的判断:

主语         谓语          对象         图形

Robbie     …的宠物    jans        jans的主页

…的宠物   反义          拥有宠物   英语语法

            子分类       哺乳动物   科学

  要在RDF图形中添加大量三元组,AllegroGraph提供了一套批量加载N个三元组与RDF/XML文件的工具。总而言之,AllegroGraph是RDF存储的上佳选择,但一般图形则不太适合用这套方案。说明文档似乎相当冗长。点击此处可以查看介绍与Java API教程,Sesame版本点此而Jena版本点此。

  总体比较

  总体比较结果如下表所示。每款产品似乎都支持高性能及分布式部署。“1M”是指对应图形数据库可以支持100万个免费节点。RDF图形可以被看作一种特殊属性的图形。由于超图形是目前图形格式中最常见的类型,因此支持超图形的数据库在理论上也应该会支持属性图形。

 

Neo4j

InfiniteGraph

DEX

InfoGrid

HyperGraphDB

Trinity

AllegroGraph

说明文档质量

一般

便携性如何

是否支持Java

是否免费

< 1M

< 1M

< 50 M

是否支持属性图

RDF

是否支持超图形

  暂定排名:

  哪款数据库能够胜出?哈哈,还是老答案,“取决于实际需求”。尽管对具备不同特点的产品进行排名总会惹来激烈的辩论,但有时我们还是需要做出这个“艰难的决定”。作者根据个人理解给出了以下排名结果:

  ·如果大家需要存储RDF三元组,那么AllegroGraph是首选;

  ·处理属性图,Neo4J与DEX是当仁不让的利器;

  ·处理超图形,HyperGraphDB堪称行家。

0
相关文章