Neptune 中的 Gremlin 语句 - Amazon Neptune

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Neptune 中的 Gremlin 语句

Amazon Neptune 中的属性图数据由四个位置(四元组)语句组成。这些语句中的每一个都代表属性图数据的单个原子单元。有关更多信息,请参阅 Neptune 图形数据模型。与资源描述框架 (RDF) 数据模型类似,这四个位置如下:

  • subject (S)

  • predicate (P)

  • object (O)

  • graph (G)

每个语句都是对一个或多个资源的断言。例如,一个语句可以断言两个资源之间是否存在关系,或者可以将一个属性(键/值对)附加到某个资源。

您可以将谓词视为语句的动词,以描述关系或属性的类型。对象是关系的目标,或者是属性的值。图形位置可选,可通过多种不同方式使用。对于 Neptune 属性图 (PG) 数据,此项可以不使用(空图),或是用于表示边缘的标识符。一组具有共享资源标识符的语句创建一个图形。

Neptune 属性图数据模型中有三类语句:

Gremlin 顶点标签语句

Neptune 中的顶点标签语句有两个作用:

  • 跟踪顶点的标签。

  • 只要存在一条此类语句,即暗示图中存在特定顶点。

这些语句的主语是顶点标识符,宾语是标签,两者均由用户指定。您对这些语句使用特殊的固定谓词(显示为 <~label>)和默认图标识符(空图,显示为 <~>)。

例如,请考虑以下 addV 遍历。

g.addV("Person").property(id, "v1")

这种遍历导致将以下语句添加到图中。

StatementEvent[Added(<v1> <~label> <Person> <~>) .]

Gremlin 边缘语句

Gremlin 边缘语句用于暗示 Neptune 图形中两个顶点之间存在边缘。边缘语句的主语 (S) 是源 from 顶点。谓词 (P) 是用户提供的边缘标签。宾语 (O) 是目标 to 顶点。图 (G) 是用户提供的边缘标识符。

例如,请考虑以下 addE 遍历。

g.addE("knows").from(V("v1")).to(V("v2")).property(id, "e1")

这种遍历导致将以下语句添加到图中。

StatementEvent[Added(<v1> <knows> <v2> <e1>) .]

Gremlin 属性语句

Neptune 中的 Gremlin 属性语句对顶点或边缘的单个属性值进行断言。主语是用户提供的顶点或边缘标识符。谓词是属性名称(键),宾语是单个属性值。图 (G) 还是默认的图标识符,即空图,显示为 <~>

考虑以下示例。

g.V("v1").property("name", "John")

该语句导致以下结果。

StatementEvent[Added(<v1> <name> "John" <~>) .]

属性语句与其他语句的不同之处在于,属性语句的宾语是基元值(stringdatebyteshortintlongfloatdouble)。它们的宾语不是可用作其他断言的主语的资源标识符。

对于多属性,集合中的每个单属性值接收各自的语句。

g.V("v1").property(set, "phone", "956-424-2563").property(set, "phone", "956-354-3692 (tel:9563543692)")

这将产生以下结果。

StatementEvent[Added(<v1> <phone> "956-424-2563" <~>) .] StatementEvent[Added(<v1> <phone> "956-354-3692" <~>) .]