为了寻找异构(多节点类型(多模式)、多边缘类型(多关系)和多描述特性(多功能))的网络分析基础设施,我注意到图数据库世界中有两个标准堆栈:
一方面,我们有ThinkPop/蓝图 属性图模型。它得到了Neo4j、OrientDB GraphDB、索克斯、泰坦、InfiniteGraph等的支持。
Tinkerpop栈包括蓝图属性图模型接口、格里姆林图遍历语言和炉子图形算法包。
另一方面,我们还有W3C的链接数据技术栈,它得到了AllegroGraph、4商店、Oracle数据库语义技术、OWLIM、SYSTap BigData等的支持。
语义数据使用RDF/RDFS/猫头鹰,表示,可以使用斯巴克尔查询,它提供了规则和推理功能。
现在,假设我想在图形数据库中表示异构数据,并分析这些数据(统计、关系发现、结构、进化等)。(我知道这些术语都很宽泛和模糊)--,对于各种类型的网络分析任务,每个模型的相对优势是什么?这两种模式相互补充吗?
发布于 2012-06-27 18:40:22
几件事,你的例子的链接数据栈都是三重存储。您可以通过首先设置三层存储开始构建链接数据应用程序,但是将数据库称为链接数据堆栈是不正确的。这也是三家商店的不完整列表,还有芝麻、耶娜、穆加拉和星犬。Sesame和Jena是双重任务,它们是语义web的两个事实上的标准Java,但它们都提供了与API捆绑在一起的三重存储。我也知道Cray和IBM都在研究三重商店,但我对这两个方面都不太了解。我知道Stardog在TinkerPop堆栈中运行得很好,它基本上是一种插入,并开始针对RDF编写Gremlin查询。
我认为RDF/OWL的优势在于,您可以获得真正的查询语言( 2)它们是w3c标准,如果三元存储支持它,则可以进行推理(或多或少--您仍然必须编写本体)。
以RDF/OWL/SPARQL为标准,如果需要,可以很容易地选择并迁移到具有不同功能集的新的三重存储,您的数据已经采用了每个人都能理解的通用格式,并且任何作为查询编码的应用程序逻辑都是完全可移植的。在大多数情况下,您可能是针对Sesame或Jena API编写的,或者是针对SPARQL协议编写的,因此您可能只需要更改config/init。我认为在早期的原型设计阶段,这是一个巨大的胜利。
我还认为,RDF/OWL,特别是结合w/推理和可以使用新的SPARQL 1.1创建的复杂SPARQL查询,非常适合于构建复杂的分析应用程序。而且,我认为大多数人认为RDF三位一体商店没有规模的印象已经不正确了。在这一点上,大多数三重商店很容易扩展到数十亿的三倍,并且有非常有竞争力的吞吐量数字。
因此,基于我认为你可能正在做的事情,我认为semweb对你来说是一个更好的选择。几年前,我做了一个类似的项目,使用RDF & RDFS作为后端前端,由一个简单的基于幽门的few应用程序实现,并且对结果非常满意。
https://stackoverflow.com/questions/11221193
复制相似问题