我将数据作为 RDF 图存储在 DB 中,并使用 SPARQL 检索数据。现在图中的节点(对象)变得很大,遍历/搜索现在变得更慢。
一个。谁能建议有效的遍历/搜索算法来获取数据?
作为下一步,我已经联合了数据,即来自 SAP 等外部应用程序的数据。在这种情况下,搜索变得更加缓慢。
湾。在这种情况下我使用什么有效的搜索算法?
这似乎是大型企业系统中的一个常见问题,任何关于如何在此类系统中解决这些问题的输入也将有所帮助。
我将数据作为 RDF 图存储在 DB 中,并使用 SPARQL 检索数据。现在图中的节点(对象)变得很大,遍历/搜索现在变得更慢。
一个。谁能建议有效的遍历/搜索算法来获取数据?
作为下一步,我已经联合了数据,即来自 SAP 等外部应用程序的数据。在这种情况下,搜索变得更加缓慢。
湾。在这种情况下我使用什么有效的搜索算法?
这似乎是大型企业系统中的一个常见问题,任何关于如何在此类系统中解决这些问题的输入也将有所帮助。
我有一个类似的问题。我使用 SPARQL 属性路径进行了大量的图形遍历,使用基于 RDF 的存储库太慢了。我使用的是 Jena TDB,它应该很快,但还是太慢了!
就像@Mikos 建议的那样,我尝试了 Neo4J。然后它变得更快了。就像马克沃森在这篇博文中所说的那样,
RDF 数据存储支持 SPARQL 查询:非常适合匹配数据中的模式。
Neo4j 支持任意图结构,并且似乎最适合探索图的邻域:从节点开始并探索连接的节点。(图遍历)
我使用了 Neo4j,但您可以尝试为图遍历构建的任何工具。我读到 Allegrograph 4 是基于 RDF 的,并且具有良好的图形遍历速度。
现在我使用 Neo4j,但我没有放弃 RDF。我仍然使用 URI 作为标识符并尝试重用流行的 rdf 词汇和关系。稍后我将添加一个功能来将我的间隙渲染为 RDF。我知道使用 Neo4j 你也可以使用 Tinkerpop 来渲染 RDF,但我自己还没有尝试过。
图遍历和高效查询是一个范围广泛的问题,使用方法取决于您的情况。我建议查看像 Neo4j 这样的数据存储,并使用像 Lucene 这样的工具对其进行补充。