我正在开发一个协作过滤推荐系统。我以前在并行线程环境中构建了这样一个系统,使用SPARQL查询RDF。这很好,因为SPARQL和RDF图的并行性质。然而,我现在在一个标准的桌面PC上工作,我想知道在一个基本上是串行的环境中,使用SPARQL是否仍然是可行的。我看过dotNetRDF,因为我使用的是C#,我想知道它是否比简单的SQL更有效,尤其是现在dotNetRDF似乎正在远离SQL后端。
那么,就几个线程的性能而言,SQL还是dotNetRDF呢?桌子还是图表?
发布于 2013-11-13 08:41:48
这两件事并没有真正的可比性,dotNetRDF是一个编程API,除了我们主要推荐用于测试和开发的纯内存中解决方案之外,它还提供了对各种存储后端的支持(免责声明我是主要的开发人员)。
不同的后端具有各种各样的性能特性,因此,如果您的问题在RDF中是可表达的,那么很可能有一个适合您的后端。
SQL是一种查询语言,实际上您应该将SQL与SPARQL进行比较,最终您选择的是数据模型的样子。如果它是常规的,那么您可能希望使用RDBMS和SQL,如果它是不规则的和/或类似的图形,那么您可能希望使用三重存储和SPARQL。正如你自己的答案所暗示的那样,这两者有不同的利弊。
发布于 2013-11-12 19:43:39
这似乎回答得很好。三重存储与关系数据库
从本质上说,RDF更灵活,但成本更高。由于我只是对数据进行协作过滤,这些数据非常适合表,所以我认为我不需要额外的费用,就像我喜欢图表一样。
https://stackoverflow.com/questions/19937897
复制相似问题