翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Neptune の Gremlin ステートメント
Amazon Neptune のプロパティグラフデータは、4 つの位置 (四角形) のステートメントで構成されます。これらの各ステートメントは、プロパティグラフデータの個々のアトミック単位を表します。詳細については、「Neptune のグラフデータモデル。」を参照してください。リソース記述フレームワーク (RDF) データモデルと同様に、これらの 4 つの位置は次のとおりです。
subject (S)
predicate (P)
object (O)
graph (G)
各ステートメントは、1 つ以上のリソースに関するアサーションです。たとえば、ステートメントでは、2 つのリソース間の関係の有無に対してアサーションを行ったり、いくつかのリソースにプロパティ (キーと値のペア) を付加したりすることができます。
述語は、関係の型またはプロパティの型を記述するステートメントの動詞と考えることができます。オブジェクトは、関係のターゲット、またはプロパティの値を表します。グラフの位置はオプションであり、さまざまな方法で使用できます。Neptune プロパティグラフ (PG) データの場合、未使用 (null グラフ) であるか、エッジ識別子を表すために使用されます。共有リソース識別子を持つ一連のステートメントはグラフを作成します。
Neptune プロパティグラフデータモデルには、次の 3 つのクラスのステートメントがあります。
Gremlin 頂点ラベルステートメント
Neptune の頂点ラベルステートメントは、次の 2 つの目的を果たします。
頂点のラベルを追跡します。
これらのステートメントが少なくとも 1 つ存在することは、グラフに特定の頂点が存在することを意味します。
これらのステートメントのサブジェクトは頂点識別子、オブジェクトはラベルで、どちらもユーザーが指定します。これらのステートメントには、<~label>
として表示される特別な固定述語と、<~>
として表示されるデフォルトのグラフ識別子 (null グラフ) を使用します。
たとえば、次の addV
トラバーサルを考えてみます。
g.addV("Person").property(id, "v1")
このトラバーサルにより、次のステートメントがグラフに追加されます。
StatementEvent[Added(<v1> <~label> <Person> <~>) .]
Gremlin エッジステートメント
Gremlin エッジステートメントは、Neptune のグラフの 2 つの頂点間にエッジが存在することを意味します。エッジステートメントのサブジェクト (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" <~>) .]