有三重存储(语义数据库),还有通用的图形数据库。
两者都基于相似的概念,即通过关系将一个“项”链接到另一个“项”。Triplestore支持RDF并由SPARQL查询,但是这样的附加组件也可以(并且是)在通用图形数据库之上实现。
与neo4j这样的通用图形数据库相比,您更喜欢使用语义数据库/三元组数据库的根本区别是什么?
发布于 2013-08-29 03:12:34
诚然,三元组存储往往不会在内部以图形的形式存储信息;这对于查询回答来说是次优的,但它们仍然是图形数据库。
如果您对基于W3C标准的生态系统感兴趣,您会更喜欢它们而不是像neo4j这样的东西。使与其他基于RDF的系统的互操作变得微不足道,并且它使选择一切并转移到不同的三元组存储变得非常容易。
发布于 2013-09-03 05:31:45
首先,所有的数据结构都可以或多或少地投射到任何底层存储引擎(甚至文件系统和文本文件)中。选择某种数据模型和存储后端的原因是IMHO:
正如前面提到的,RDBMSes和TripleStores在运行时都倾向于在连接或SparQL遍历的“浅层”遍历中有用,并且在缓存或准备好的视图等方面做了很多工作。图形数据库(唯一的Neo4j)将图形结构实际放到存储层,并在节点记录级别上进行指针跟踪(通过一些优化)。因此,当遍历图形时,您不需要接触更多的当前子图到存储层,从而能够在不接触整个图形的情况下遍历部分数据,从而为许多有趣的场景带来恒定的性能。
发布于 2013-08-28 21:17:55
我的两分钱。
Neo4j属于属性图的范畴。它们支持有向关系,并且每个关系只有两个节点:开始节点和结束节点。节点和关系可以以键-值对的形式存储任意数据。然而,它们不能支持三元关系。也就是说,你不能让一条边连接两个以上的节点,也就是a kind of hyperdege。但是,您可以通过创建连接节点在属性图中模拟3元关系。You can see how to implement this in neo4j here。
Triplestore以SPARQL的形式提供了标准化的查询语言,但是还没有用于查询其他图形数据库的标准。RDF是从三元组导入/导出的标准。
https://stackoverflow.com/questions/18482663
复制相似问题