【发布时间】:2018-12-25 04:45:42
【问题描述】:
基于 Sparql 的存储,或者换一种说法,TripleStore,已知比属性图存储效率低,除了不能在保持属性图性能的同时进行分发。
我知道这里涉及很多事情,例如推理等等。将分布和推理放在一边,我们可以将自己限制为可以通过 SPARQL 完全捕获的 RDFS,我想知道为什么会这样?
更具体地说,为什么是存储问题。是什么限制了基于 Sparql 的存储像属性图存储一样存储数据,并执行遍历而不是大量连接查询。例如,sparql 不能简单地翻译成 Gremlin 步骤吗?那里有什么限制?不能避免join吗?
我的假设是,如果 sparql 可以在有效的步骤遍历中进行转换,并且数据存储为属性图,例如 janusGraph 所做的 https://docs.janusgraph.org/latest/data-model.html ,那么性能问题将得到解决,同时保持一些推理,例如 RDFS .
话虽这么说,Sparql 当然不是图灵完备的,但至少就它的功能而言,它可以快速完成并且可能还可以大规模完成。在我看来,目标不是竞争,而是受益于 SPARQL 的易用性和使用像 gremlin 这样的遍历语言来处理真正需要它的事情,例如OLAP。
在这个方向上是否有任何项目,Apache jena 是否考虑过这些?
由于我上面解释的原因,我看到 Grakn 的 Graql 似乎正在使用这条路,因此是什么阻止了 TripleStore 社区?
【问题讨论】:
-
我不明白你的问题。三重存储何时比其他基于属性图的存储慢?
-
为什么三重商店应该在后台使用属性图模型?三重存储用于 RDF 数据 - RDF 不遵循属性图模型。
-
我认为这个问题理解起来相当复杂。它与查询语言的实现和形式语义有关。我还在旅途中,这就是我问这个问题的原因,但也许下面的论文会让你走上 arxiv.org/abs/1801.02911 的道路(使用 Gremlin Traversals 对属性图进行 SPARQL 查询)Gremlinator
-
这与 Join vs micro-indices 实现有关。 sparql alegbra 基于连接运算符:inf.unibz.it/~nutt/Teaching/SemTechs1415/SemTechsSlides/…
-
希望它可以帮助您调查自己,如果您有答案,请带回来:)
标签: sparql gremlin triplestore vaticle-typeql property-graph