本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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" <~>) .]
属性语句与其他语句的不同之处在于,属性语句的宾语是基元值(string
、date
、byte
、short
、int
、long
、float
或 double
)。它们的宾语不是可用作其他断言的主语的资源标识符。
对于多属性,集合中的每个单属性值接收各自的语句。
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" <~>) .]