14

寻找用于异构(多节点类型(多模式)、多边缘类型(多关系)和多描述性特征(多特征))网络的网络分析基础设施,我注意到有两个标准堆栈图数据库世界:

一方面,我们有ThinkPop/Blueprint 属性图模型Neo4jOrientDB GraphDBDexTitanInfiniteGraph等都支持它。

Tinkerpop 堆栈包括Blueprint属性图模型接口、Gremlin图遍历语言和Furnace图算法包。

另一方面,我们有W3C 的 Linked Data 技术栈,得到AllegroGraph4storeOracle Database Semantic TechnologiesOWLIMSYSTap BigData等的支持。

语义数据使用RDF / RDFS / OWL表示,并且可以使用SPARQL进行查询。此外,它还提供规则推理能力。

现在,假设我想在图形数据库中表示异构数据,并分析这些数据(统计、关系发现、结构、演化等)(我知道这些术语很宽泛) -每个的相对优势是什么各种类型的网络分析任务的模型?这两种模式是否相互补充?

4

1 回答 1

7

结合一些事情,您的链接数据堆栈示例都是三重存储。您将通过首先设置三重存储来开始构建链接数据应用程序,但是调用数据库链接数据堆栈是不正确的 imo。这也是三重商店的不完整列表,还有SesameJenaMulgaraStardog. Sesame 和 Jena 有点双重职责,它们是语义 Web 的两个事实上的标准 Java API,但都提供与 API 捆绑在一起的三重存储。我也知道 Cray 和 IBM 都在开发三重商店,但目前我对任何一家都不太了解。我确实知道 Stardog 与 TinkerPop 堆栈配合得很好,而且它基本上是一个插入并开始针对 RDF 编写 Gremlin 查询。

我认为 RDF/OWL 的优势在于您 1) 获得真正的查询语言 2) 它们是 w3c标准3) 如果三重存储支持它,您可以免费(或多或少 - 您仍然拥有写一个本体)。

使用 RDF/OWL/SPARQL 作为标准,如果您需要,可以很容易地选择并迁移到具有不同功能集的新三元存储,您的数据已经采用每个人都可以理解的通用格式,并且任何应用程序逻辑都已编码因为查询是完全可移植的。在大多数情况下,您将针对 Sesame 或 Jena API 编写代码,或者使用 SPARQL 协议,因此您可能只需要更改 config/init。我认为这是早期原型设计阶段的一大胜利。

我还认为,RDF/OWL 特别结合了推理和您可以使用新的 SPARQL 1.1 创建的各种复杂 SPARQL 查询,非常适合构建复杂的分析应用程序。此外,我认为大多数人认为 RDF 三重商店无法扩展的印象不再正确。在这一点上,大多数三合一商店很容易扩展到数十亿三合一,并且具有非常有竞争力的吞吐量数字。

因此,根据我认为您可能正在做的事情,我认为 semweb 对您来说可能是一个更好的选择。几年前我做了一个类似的项目,使用 RDF 和 RDFS 作为后端,前端是一个简单的基于 Pylons 的 web 应用程序,并且对结果非常满意。

于 2012-06-27T18:40:22.680 回答