Neptune 中的 Gremlin 陳述式 - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Neptune 中的 Gremlin 陳述式

Amazon Neptune 中的屬性圖資料由四個位置 (四元組) 陳述式組成。其中每個陳述式都代表屬性圖表資料的個別原子單位。如需詳細資訊,請參閱 Neptune 圖形資料模型。。與資源描述架構 (RDF) 資料模型類似,這四個位置如下:

  • subject (S)

  • predicate (P)

  • object (O)

  • graph (G)

每個陳述式都是有關一或多個資源的宣告。例如,陳述式可以宣告兩個資源之間的關係,或者將屬性 (鍵/值組) 連接到一些資源。

您可以將述詞視為陳述式的動詞,描述關係或屬性的類型。物件是關係的目標,或是屬性的值。圖形位置是選用的,可用於多種不同的方法。對於 Neptune 屬性圖 (PG) 資料,它是未使用的 (Null 圖),或用來代表邊緣的識別符。具有共用資源識別符的一組陳述式可建立圖形。

Neptune 屬性圖資料模型中有三種類別的陳述式:

Gremlin 頂點標籤陳述式

Neptune 中的頂點標籤陳述式有兩個用途:

  • 它們會追蹤頂點的標籤。

  • 其中至少有一個陳述式暗示圖形中存在特定頂點。

這些陳述式的主題是頂點識別符,而物件是標籤,兩者都由使用者指定。您可以針對這些陳述式使用特殊的固定述詞 (顯示為 <~label>),以及預設圖形識別符 (Null 圖形) (顯示為 <~>)。

例如,請考量下列 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) 再次是預設圖形識別符 (Null 圖形),顯示為 <~>

請考量下列範例。

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" <~>) .]