triplestores和图形数据库之间有什么区别?

Boz*_*zho 22 graph triplestore neo4j graph-databases semantics

有三个商店(语义数据库),还有通用图形数据库.

两者都基于通过关系将一个"项目"链接到另一个"项目"的类似概念.Triplestores支持RDF并由SPARQL查询,但是这些附加组件也可以(并且)在通用图形数据库的顶部实现.

什么是使您更喜欢语义db/triplestore到neo4j这样的通用图数据库的根本区别?

Mic*_*ael 11

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

如果你对基于W3C标准的生态系统感兴趣,你会更喜欢neo4j.与其他基于RDF的系统互操作变得微不足道,它使得拾取所有东西并移动到不同的三重存储非常轻松.


Pet*_*uer 10

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

  • 您的开发和建模首选项
  • 用于插入,存储和查询模型的预期运行时性能.

如前所述,RDBMS和TripleStores在运行时在JOIN或SparQL遍历的"浅层"遍历中往往很有用,并且在缓存或准备好的视图等方面做了很多工作.图形数据库(唯一的Neo4j)实际上将图形结构放到了存储层并在节点记录级别上执行指针追踪(具有许多优化).因此,当遍历图形时,您不需要触摸比当前子图更多的内容到存储层,因此能够遍历部分数据而不触及整个图形,从而导致许多有趣场景的持续性能.


Ara*_*ram 6

我的2美分.

Neo4j属于Property Graph类别.它们支持有向关系,每个关系只有两个节点; 起始节点和结束节点.节点和关系可以以键值对的形式存储任意数据.然而,他们无法支持3-ary关系.即你不能有一个边连接两个以上的节点,即一种超级范围.但是,您可以通过创建连接节点来模拟属性图中的3元关系.你可以在这里看到如何在neo4j中实现它.

Triplestores以SPARQL的形式具有标准化查询语言,但是还没有用于查询其他图形数据库的标准.RDF是从triplestores导入/导出的标准.