使用Gremlin访问Neptune中的命名图

问题描述

我需要在Neptune数据库集群中保存几个图。

命名图是Neptune https://docs.aws.amazon.com/neptune/latest/userguide/best-practices-sparql-graph.html的SPARQL格式支持的smths

是否可以使用GREMLIN查询该图 s

我只发现了这种方法https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-gremlin-rest.html,却没有任何提及访问命名图的能力。也许我错过了一些?

解决方法

如果使用Amazon Neptune创建命名的RDF图,则只能使用SPARQL查询来查询该图。 Gremlin没有命名的图形概念,但是您可以使用PartitionStrategy自动标记图形元素(节点,边)作为某些逻辑“分区”的一部分。您可以在Gremlin查询中使用此技术,基本上可以对RDF中的命名图执行操作,只要注意边缘不允许您在逻辑图之间“跳转”即可。

另请参阅: https://tinkerpop.apache.org/docs/current/reference/#_partitionstrategy

https://tinkerpop.apache.org/docs/current/reference/#_subgraphstrategy

,

在Neptune中使用属性图模型时,您只能创建一个图。属性图数据模型没有与“命名图”直​​接等效的内容。

使用Amazon Neptune时,您可以使用多种方法来进行这种多图方法。

  1. 如果您的用例对RDF模型有意义,则可以使用具有命名图支持的模型
  2. 如果您需要使用属性图模型,那么可以考虑使用Gremlin Partition Strategy之类的东西将单个图划分为多个不同的图
  3. 如果以上两个选项都不起作用,则可能需要使用多个群集,每个图一个。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...