【问题标题】:What is the difference between triplestores and graph databases?三元存储和图形数据库有什么区别?
【发布时间】:2013-08-31 05:13:09
【问题描述】:

有三元存储(语义数据库),也有通用图数据库。

两者都基于通过关系将一个“项目”链接到另一个的类似概念。 Triplestore 支持 RDF 并由 SPARQL 查询,但此类附加组件也可以(并且正在)在通用图形数据库之上实现。

让您更喜欢语义数据库/三重存储而不是像 neo4j 这样的通用图形数据库的根本区别是什么?

【问题讨论】:

    标签: graph neo4j semantics graph-databases triplestore


    【解决方案1】:

    三元存储图数据库。 RDF 一个图。诚然,三重存储往往不会在内部将信息存储为图表。这对于查询回答来说是次优的,但它们仍然是图形数据库。

    如果您对基于 W3C 标准的生态系统感兴趣,您会更喜欢 Neo4j。使与其他基于 RDF 的系统的互操作变得微不足道,并且使拿起所有东西并转移到不同的三重存储非常轻松。

    【讨论】:

      【解决方案2】:

      首先,所有数据结构都可以或多或少地被投射到任何底层存储引擎(甚至是您的文件系统和文本文件)中。选择某种数据模型和存储后端的原因是恕我直言:

      • 您的开发和建模偏好
      • 插入、存储和查询模型的预期运行时性能。

      如前所述,RDBMS 和 TripleStore 在运行时往往在 JOIN 或 SparQL 遍历的“浅”遍历中很有用,并且在缓存或准备好的视图等方面做了大量工作。图数据库(唯一的 Neo4j)实际上将图结构向下到存储层并在节点记录级别上进行指针追踪(进行了一些优化)。因此,在遍历图时,您无需触及存储层以外的当前子图,从而能够在不触及整个图的情况下遍历部分数据,从而在许多有趣的场景中保持稳定的性能.

      【讨论】:

        【解决方案3】:

        我的 2 美分。

        Neo4j 属于 Property Graph 类别。它们支持有向关系,每个关系只有两个节点;起始节点和结束节点。节点和关系可以以键值对的形式存储任意数据。然而,它们不能支持三元关系。即你不能有一条边连接两个以上的节点,即a kind of hyperdege。但是,您可以通过创建连接节点来模拟属性图中的三元关系。 You can see how to implement this in neo4j here.

        Triplestores 具有 SPARQL 形式的标准化查询语言,但尚无用于查询其他图形数据库的标准。 RDF 是从三元存储导入/导出的标准。

        【讨论】:

          猜你喜欢
          • 2013-12-28
          • 2016-02-27
          • 2018-04-20
          • 2015-09-15
          • 2017-08-20
          • 2020-08-30
          • 2023-04-10
          • 2020-05-30
          • 2016-04-07
          相关资源
          最近更新 更多