有没有一种Web语义框架不像三节点结构一样表示三元组?

6

在我的工作中,我们正在构建一个使用数十亿个三元组的巨大应用程序,为了优化存储这些三元组所需的空间,我一直在寻找一种不同的表示方法,任何更经济的方式都受到欢迎。 谢谢。


3
考虑在semanticoverflow.com上提问。 - harschware
4个回答

3
还有一整个类别的图形存储系统,不像neo4j那样将事物存储为三元组。但是,我不会仅因为它们将事物存储为三元组而排除三元组存储方式。今天许多当前的解决方案已经存储了数十亿个三元组,所以这并非不可行(尽管当你比这高出1或2个数量级时,情况变得困难)。我个人使用Allegrograph存储了超过10亿个三元组。
请参见此线程: http://www.semanticoverflow.com/questions/3332/scalable-owl-rdf-database

3
我认为存储数十亿个三元组所需的空间实际上不比在SQL数据库中存储数十亿行更差。
大多数系统采用的一般方法,无论是原生存储/基于SQL的存储,都是为节点分配ID,并将每个三元组仅存储为3个节点ID。通过选择良好的节点ID生成方式和节点ID与节点值之间的高效索引,您可以轻松构建可大规模扩展的存储。
作为进一步的优化,一些存储系统以这样的方式生成节点ID,即将简单值类型(例如整数、布尔值、日期时间等)的值直接编码到节点ID中,因此无需进行ID到值的查找(或在插入此类数据时反之亦然)。

2

正如RobV所说,几乎所有的商店都会将内部值/节点ID附加到三元组的元素上。话虽如此,在三元组存储中,大量空间都被各种索引占据,这些索引是必需的用于查找。在关系型数据库中,您可以根据使用的数据模型轻松减少索引数量。但在三元组存储中,这更加困难,商店基本上会创建许多(6个或以上)索引,用于对三元组元素进行不同排序的方式。


0

有很多所谓的三元存储可用。请参见维基百科W3C并选择一个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接