本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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" <~>) .]
屬性陳述式與其他屬性不同,其物件是基本值 (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" <~>) .]