

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Neptune の Gremlin 標準への準拠
<a name="access-graph-gremlin-differences"></a>

以下のセクションでは、Gremlin の Neptune 実装の概要と、Apache TinkerPop の実装との違いについて説明します。

Neptune はそのエンジンでいくつかの Gremlin ステップをネイティブに実装し、Apache TinkerPop Gremlin 実装を使用して他のステップを処理します ([Amazon Neptune でのネイティブ Gremlin ステップサポート](gremlin-step-support.md))。

**注記**  
Gremlin コンソールと Amazon Neptune における実装の違いの具体的な例については、クイックスタートの [Gremlin を使用して Amazon Neptune のグラフデータにアクセスする](get-started-graph-gremlin.md) セクションを参照してください。

**Topics**
+ [Gremlin に適用される標準](#feature-gremlin-applicable-standards)
+ [スクリプト内の変数とパラメータ](#feature-gremlin-differences-variables)
+ [TinkerPop の列挙](#feature-gremlin-differences-tinkerpop)
+ [Java コード](#feature-gremlin-differences-java)
+ [要素のプロパティ](#feature-gremlin-differences-properties-on-elements)
+ [スクリプトの実行](#feature-gremlin-differences-script)
+ [セッション](#feature-gremlin-differences-sessions)
+ [取引](#feature-gremlin-differences-transactions)
+ [頂点およびエッジ ID](#feature-gremlin-differences-vertex-edge-ids)
+ [ユーザーによって指定された ID](#feature-gremlin-differences-user-supplied-ids)
+ [頂点プロパティ ID](#feature-gremlin-differences-vertex-property-ids)
+ [頂点プロパティのカーディナリティ](#feature-gremlin-differences-vertex-property-cardinality)
+ [頂点プロパティの更新](#feature-gremlin-differences-vertex-property-update)
+ [ラベル](#feature-gremlin-differences-labels)
+ [エスケープ文字](#feature-gremlin-differences-escapes)
+ [Groovy の制限](#feature-gremlin-differences-groovy)
+ [シリアル化](#feature-gremlin-differences-serialization)
+ [Lambda ステップ](#feature-gremlin-differences-lambda)
+ [サポートされていない Gremlin メソッド](#feature-gremlin-differences-unsupported-methods)
+ [サポートされていない Gremlin ステップ](#feature-gremlin-differences-unsupported-steps)
+ [Neptune での Gremlin グラフ機能](#gremlin-api-reference-features)

## Gremlin に適用される標準
<a name="feature-gremlin-applicable-standards"></a>
+ Gremlin 言語は、正式な仕様によって定義されているのではなく、[Apache TinkerPop ドキュメント](http://tinkerpop.apache.org/docs/current/reference/)と Gremlin の Apache TinkerPop 実装によって定義されています。
+ 数値の形式については、Gremlin は IEEE 754 標準に従っています ([IEEE 754-2019 - IEEE Standard for Floating-Point Arithmetic](https://standards.ieee.org/content/ieee-standards/en/standard/754-2019.html)/[Wikipedia IEEE 754 ページ](https://en.wikipedia.org/wiki/IEEE_754)も参照してください)。

## スクリプト内の変数とパラメータ
<a name="feature-gremlin-differences-variables"></a>

事前にバインドされた変数に関しては、トラバーサルオブジェクト `g` はNeptune では事前にバインドされており、`graph` オブジェクトはサポートされていません。

Neptune は Gremlin 変数やスクリプト内のパラメータ化をサポートしていませんが、インターネット上では、次のような変数宣言を含む Gremlin Server 用のサンプルスクリプトをよく目にすることがあります。

```
String query = "x = 1; g.V(x)";
List<Result> results = client.submit(query).all().get();
```

また、クエリの送信時に[パラメータ化](https://tinkerpop.apache.org/docs/current/reference/#parameterized-scripts) (またはバインディング) を利用する例も多数あります。例えば、次のようになります。

```
Map<String,Object> params = new HashMap<>();
params.put("x",1);
String query = "g.V(x)";
List<Result> results = client.submit(query).all().get();
```

パラメータの例は通常、可能であればパラメータ化しないことによるパフォーマンス上のペナルティに関する警告と関連付けられます。TinkerPop にはこのような例がたくさんあり、パラメータ化の必要性についてはどれも納得のいくものです。

ただし、変数宣言機能とパラメータ化機能 (および警告) はどちらも、TinkerPop の Gremlin Server が `GremlinGroovyScriptEngine` を使用している場合にのみ適用されます。Gremlin Server が Gremlin の `gremlin-language` ANTLR 文法を使用してクエリを解析する場合には適用されません。ANTLR 文法は変数宣言もパラメータ化もサポートしていないため、ANTLR を使用するときにはパラメータ化の失敗を心配する必要はありません。ANTLR 文法は TinkerPop の新しいコンポーネントであるため、インターネット上で遭遇する可能性のある古いコンテンツには、一般的にこの区別が反映されていません。

Neptune は、クエリ処理エンジンでは `GremlinGroovyScriptEngine` ではなく ANTLR 文法を使用するため、変数、パラメータ化、または `bindings` プロパティをサポートしません。その結果、パラメータ化の失敗に関連する問題は、Neptune には当てはまりません。Neptune を使用すると、通常はパラメータ化するようなクエリをそのまま送信しても完全に安全です。そのため、前の例を次のように簡略化しても、パフォーマンスを低下させずに済みます。

```
String query = "g.V(1)";
List<Result> results = client.submit(query).all().get();
```

## TinkerPop の列挙
<a name="feature-gremlin-differences-tinkerpop"></a>

Neptune では、列挙値の完全修飾クラス名はサポートしていません。たとえば、Groovy リクエストでは `org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality.single` ではなく `single` を使用する必要があります。

列挙型は、パラメータタイプによって決定されます。

次の表は、使用できる列挙値と関連する TinkerPop の完全修飾名を示しています。

| 許可された値 | Class | 
| --- |--- |
| id, key, ラベル, 値 | [org.apache.tinkerpop.gremlin.structure.T](https://tinkerpop.apache.org/javadocs/current/core/org/apache/tinkerpop/gremlin/structure/T.html) | 
| T.id, T.key, T.label, T.value | [org.apache.tinkerpop.gremlin.structure.T](https://tinkerpop.apache.org/javadocs/current/core/org/apache/tinkerpop/gremlin/structure/T.html) | 
| 設定, single | [org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality](https://tinkerpop.apache.org/javadocs/current/core/org/apache/tinkerpop/gremlin/structure/VertexProperty.Cardinality.html) | 
| asc, desc, shuffle | [org.apache.tinkerpop.gremlin.process.traversal.Order](https://tinkerpop.apache.org/javadocs/3.7.2/full/org/apache/tinkerpop/gremlin/process/traversal/Order.html) | 
| Order.asc, Order.desc, Order.shuffle | [org.apache.tinkerpop.gremlin.process.traversal.Order](https://tinkerpop.apache.org/javadocs/3.7.2/full/org/apache/tinkerpop/gremlin/process/traversal/Order.html) | 
| グローバル, ローカル | [org.apache.tinkerpop.gremlin.process.traversal.Scope](https://tinkerpop.apache.org/javadocs/3.7.2/core/org/apache/tinkerpop/gremlin/process/traversal/Scope.html) | 
| Scope.global, Scope.local | [org.apache.tinkerpop.gremlin.process.traversal.Scope](https://tinkerpop.apache.org/javadocs/3.7.2/core/org/apache/tinkerpop/gremlin/process/traversal/Scope.html) | 
| すべて, first, last, mixed | [org.apache.tinkerpop.gremlin.process.traversal.Pop](https://tinkerpop.apache.org/javadocs/3.7.2/core/org/apache/tinkerpop/gremlin/process/traversal/Pop.html) | 
| normSack | [org.apache.tinkerpop.gremlin.process.traversal.SackFunctions.Barrier](https://tinkerpop.apache.org/javadocs/3.7.2/core/org/apache/tinkerpop/gremlin/process/traversal/SackFunctions.Barrier.html) | 
| AddAll, と, assign, div, max, min, minus, mult, または, sum, SumLong | [org.apache.tinkerpop.gremlin.process.traversal.Operator](https://tinkerpop.apache.org/javadocs/3.7.2/core/org/apache/tinkerpop/gremlin/process/traversal/Operator.html) | 
| キー, 値 | [org.apache.tinkerpop.gremlin.structure.Column](https://tinkerpop.apache.org/javadocs/3.7.2/core/org/apache/tinkerpop/gremlin/structure/Column.html) | 
| BOTH, IN, OUT | [org.apache.tinkerpop.gremlin.structure.Direction](https://tinkerpop.apache.org/javadocs/3.7.2/core/org/apache/tinkerpop/gremlin/structure/Direction.html) | 
| すべて, なし | [org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent.Pick](https://tinkerpop.apache.org/javadocs/current/full/org/apache/tinkerpop/gremlin/process/traversal/Pick.html) | 

## Java コード
<a name="feature-gremlin-differences-java"></a>

Neptune は、サポートされている Gremlin API 以外の、任意の Java または Java ライブラリ呼び出しにより定義されるメソッドへの呼び出しをサポートしていません。たとえば、`java.lang.*`、`Date()`、および `g.V().tryNext().orElseGet()` は許可されていません。

## 要素のプロパティ
<a name="feature-gremlin-differences-properties-on-elements"></a>

 Neptune は、要素のプロパティを返すために TinkerPop 3.7.0 で導入された `materializeProperties` フラグをサポートしていません。その結果、Neptune は頂点またはエッジのみを `id` および `label` のみの参照として返します。

## スクリプトの実行
<a name="feature-gremlin-differences-script"></a>

すべてのクエリは、トラバーサルオブジェクト `g` で始まる必要があります。

文字列クエリの送信で、複数のトラバーサルは、セミコロン (`;`) または改行文字 (`\n`) で区切って発行することができます。実行されるように、最終以外の各ステートメントは、`.iterate()` ステップで終わる必要があります。最終的なトラバーサルデータのみが返されます。これは GLV ByteCode クエリの送信には適用されない点に注意してください。

## セッション
<a name="feature-gremlin-differences-sessions"></a>

Neptune のセッションは、長さが 10 分のみに制限されます。詳細については、「[Gremlin スクリプトベースのセッション](access-graph-gremlin-sessions.md)」および[TinkerPop セッションリファレンス](https://tinkerpop.apache.org/docs/current/reference/#console-sessions)を参照してください。

## 取引
<a name="feature-gremlin-differences-transactions"></a>

Neptune は、各 Gremlin トラバーサルの開始時に新しいトランザクションを開き、トラバーサルが正常に完了したときにトランザクションを閉じます。エラーが発生すると、トランザクションはロールバックされます。

 セミコロン (`;`) または改行文字 (`\n`) で区切られた複数のステートメントは、単一のトランザクションに含まれています。最後のもの以外の各ステートメントは、`next()` ステップの実行で終わる必要があります。最終的なトラバーサルデータのみが返されます。

`tx.commit()` および `tx.rollback()` を使用した手動トランザクションロジックはサポートされていません。

**重要**  
これは Gremlin クエリを***テキスト文字列***として送信するメソッド***のみ***に当てはまります (「[Gremlin トランザクション](access-graph-gremlin-transactions.md)」を参照)。

## 頂点およびエッジ ID
<a name="feature-gremlin-differences-vertex-edge-ids"></a>

Neptune Gremlin 頂点およびエッジ ID は、タイプ `String` である必要があります。これらの ID 文字列は Unicode 文字をサポートし、サイズは 55 MB を超えることはできません。

ユーザーが指定した ID はサポートされますが、通常の使用ではオプションとなります。頂点やエッジを追加するときに ID を指定しなかった場合、Neptune は UUID を生成し、次のような形式の文字列に変換します。これらの UUID は RFC 標準に準拠していないため、標準 UUID が必要な場合は、外部で生成し、頂点やエッジを追加するときに指定する必要があります。

**注記**  
Neptune `Load` コマンドでは、**\$1id** フィールドを使用して、Neptune CSV 形式で ID を指定する必要があります。

## ユーザーによって指定された ID
<a name="feature-gremlin-differences-user-supplied-ids"></a>

ユーザーにより提供される ID は、以下の規定により Neptune Gremlin で許可されます。
+ 指定 ID はオプションです。
+ 頂点とエッジのみがサポートされています。
+ タイプ `String` のみがサポートされます。

カスタム ID で新しい頂点を作成するには、`id` キーワードで `property` ステップを使用します。`g.addV().property(id, 'customid')`。

**注記**  
 `id` キーワードを引用符で囲むことはできません。`T.id` を指します。

すべての頂点 ID およびすべてのエッジ ID は、一意である必要があります。ただし、Neptune では、頂点とエッジで同じ ID を持つことができます。

`g.addV()` を使用して新しい頂点を作成しようとする場合、既にその ID を持つ頂点が存在すると、オペレーションは失敗します。この例外として、頂点に新しいラベルを指定するとオペレーションは成功しますが、新しいラベルおよび既存の頂点に指定されたすべての追加のプロパティが追加されます。Nothing は上書きされます。新しい頂点は作成されません。頂点 ID は変更せず、一意のままになります。

たとえば、次の Gremlin コンソールコマンドは成功します。

```
gremlin> g.addV('label1').property(id, 'customid')
gremlin> g.addV('label2').property(id, 'customid')
gremlin> g.V('customid').label()
==>label1::label2
```

## 頂点プロパティ ID
<a name="feature-gremlin-differences-vertex-property-ids"></a>

頂点プロパティ ID は自動的に生成され、クエリを実行したときに、正または負の数値で表示されます。

## 頂点プロパティのカーディナリティ
<a name="feature-gremlin-differences-vertex-property-cardinality"></a>

Neptune は、セット濃度と単一濃度をサポートしています。指定されていない場合は、セット濃度が選択されます。つまり、プロパティ値を設定した場合、値のセットに既に表示されていない場合にのみ、プロパティに新しい値が追加されます。これは、[セット](https://tinkerpop.apache.org/javadocs/3.7.2/core/org/apache/tinkerpop/gremlin/structure/VertexProperty.Cardinality.html)の Gremlin 列挙の値です。

`List` はサポートされていません。プロパティ濃度の詳細については、Gremlin JavaDoc にある「[頂点](https://tinkerpop.apache.org/javadocs/3.7.2/core/org/apache/tinkerpop/gremlin/structure/Vertex.html#property-org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality-java.lang.String-V-java.lang.Object...-)」 トピックを参照してください。

## 頂点プロパティの更新
<a name="feature-gremlin-differences-vertex-property-update"></a>

値のセットに追加の値を追加せずにプロパティ値を更新するには、`property` ステップで `single` 濃度を指定します。

```
g.V('exampleid01').property(single, 'age', 25)
```

これにより、既存のプロパティの値はすべて削除されます。

## ラベル
<a name="feature-gremlin-differences-labels"></a>

Neptune は、頂点の複数のラベルをサポートしています。ラベルを作成する際、`::` で区切ることで複数のラベルを指定できます。たとえば、`g.addV("Label1::Label2::Label3")` は頂点に 3 つの異なるラベルを追加します。`hasLabel` ステップでは、この頂点を `hasLabel("Label1")`、`hasLabel("Label2")`、および `hasLabel("Label3")` の 3 つのラベルのいずれかと一致させます。

**重要**  
`::` 区切り記号は、この使用のみに予約されます。`hasLabel` ステップで複数のラベルを指定することはできません。たとえば、`hasLabel("Label1::Label2")` はいずれにも一致しません。

## エスケープ文字
<a name="feature-gremlin-differences-escapes"></a>

Neptune は、Apache Groovy 言語ドキュメントの 特殊文字のエスケープ セクションで説明されているすべての[エスケープ文字]( http://groovy-lang.org/syntax.html#_escaping_special_characters)を解決します。

## Groovy の制限
<a name="feature-gremlin-differences-groovy"></a>

Neptune は、`g` 以外で始まる Groovy コマンドをサポートしていません。これには、算術 (`1+1` など)、システム呼び出し (`System.nanoTime()` など)、および変数の定義 (`1+1` など) が含まれます。

**重要**  
Neptune では、完全修飾クラス名はサポートしていません。たとえば、Groovy リクエストでは `org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality.single` ではなく `single` を使用する必要があります。

## シリアル化
<a name="feature-gremlin-differences-serialization"></a>

Neptune は、リクエストされた MIME タイプに基づいて、以下のシリアル化をサポートしています。

 Neptune は、TinkerPop が実行するすべてのシリアライザーを公開し、GraphSON と GraphBinary のさまざまなバージョンと設定をサポートします。多くのオプションがありますが、使用するガイダンスは簡易です。
+  Apache TinkerPop ドライバーを使用している場合は、ドライバーを明示的に指定せずに、ドライバーのデフォルトを優先します。特に理由がない限り、ドライバーの初期化でシリアライザーを指定する必要はありません。一般的に、ドライバーで使用されるデフォルトは `application/vnd.graphbinary-v1.0` です。
+  HTTP 経由で Neptune に接続する場合は、GraphSON 3 の代替バージョンで埋め込みタイプとして `application/vnd.gremlin-v3.0+json;types=false` を使用することを優先し、操作を複雑にします。
+  一般的に、`application/vnd.graphbinary-v1.0-stringd` はすべての結果を文字列表現に変換して簡単に表示するため、[Gremlin コンソール](https://docs.aws.amazon.com//neptune/latest/userguide/access-graph-gremlin-console.html)と組み合わせて使用する場合にのみ活用できます。
+  残りの形式はレガシーの理由で残っており、通常、明確な原因がないドライバーでは使用しないでください。

|  |  |  | 
| --- |--- |--- |
| MIME type | Serialization | Configuration | 
| `application/vnd.gremlin-v1.0+json` | GraphSONMessageSerializerV1 | ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1] | 
| `application/vnd.gremlin-v1.0+json;types=false` | GraphSONUntypedMessageSerializerV1 | ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1] | 
| `application/vnd.gremlin-v2.0+json` | GraphSONMessageSerializerV2 | ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2] | 
| `application/vnd.gremlin-v2.0+json;types=false` | GraphSONUntypedMessageSerializerV2 | ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2] | 
| `application/vnd.gremlin-v3.0+json` | GraphSONMessageSerializerV3 | ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3] | 
| `application/vnd.gremlin-v3.0+json;types=false` | GraphSONUntypedMessageSerializerV3 | ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3] | 
| `application/json` | GraphSONUntypedMessageSerializerV3 | ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1] | 
| `application/vnd.graphbinary-v1.0` | GraphBinaryMessageSerializerV1 |  | 
| `application/vnd.graphbinary-v1.0-stringd` | GraphBinaryMessageSerializerV1 | serializeResultToString: true | 
| `application/vnd.gremlin-v1.0+json` | GraphSONMessageSerializerGremlinV1 | ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1] | 
| `application/vnd.gremlin-v2.0+json` | GraphSONMessageSerializerV2   (only works with WebSockets) | ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2] | 
| `application/vnd.gremlin-v3.0+json` | `GraphSONMessageSerializerV3` |  | 
| `application/json` | GraphSONMessageSerializerV3 | ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3] | 
| `application/vnd.graphbinary-v1.0` | GraphBinaryMessageSerializerV1 |  | 

**注記**  
 ここに示すシリアライザーテーブルは、TinkerPop 3.7.0 時点の命名を参照しています。この変更の詳細については、[TinkerPop アップグレードドキュメント](https://tinkerpop.apache.org/docs/current/upgrade/#_serializer_renaming)を参照してください。Gryo シリアル化のサポートは 3.4.3 で廃止され、3.6.0 で正式に削除されました。Gryo または Gryo をデフォルトで使用しているドライバーバージョンで明示的に使用している場合は、GraphBinary に切り替えるか、ドライバーをアップグレードする必要があります。

## Lambda ステップ
<a name="feature-gremlin-differences-lambda"></a>

Neptune では、Lambda ステップはサポートされていません。

## サポートされていない Gremlin メソッド
<a name="feature-gremlin-differences-unsupported-methods"></a>

Neptune は、以下の Gremlin メソッドをサポートしていません。
+ `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.program(org.apache.tinkerpop.gremlin.process.computer.VertexProgram)`
+ `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.sideEffect(java.util.function.Consumer)`
+ `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.from(org.apache.tinkerpop.gremlin.structure.Vertex)`
+ `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.to(org.apache.tinkerpop.gremlin.structure.Vertex)`

たとえば、以下のトラバーサルは許可されません。`g.V().addE('something').from(__.V().next()).to(__.V().next())`。

**重要**  
これは Gremlin クエリを***テキスト文字列***として送信するメソッド***のみ***に当てはまります。

## サポートされていない Gremlin ステップ
<a name="feature-gremlin-differences-unsupported-steps"></a>

Neptune は、以下の Gremlin ステップをサポートしていません。
+ Gremlin [io( ) ステップ](http://tinkerpop.apache.org/docs/3.7.2/reference/#io-step)は、Neptune では部分的にしかサポートされていません。`g.io((url)).read()` のように読み取りコンテキストでは使用できますが、書き込みには使用できません。

## Neptune での Gremlin グラフ機能
<a name="gremlin-api-reference-features"></a>

Gremlin の Neptune 実装には、`graph` オブジェクトは表示されません。次の表は、Gremlin の機能と、Neptune がそれらをサポートしているかどうかを示しています。

### Neptune の `graph` 機能のサポート
<a name="gremlin-api-graph-features"></a>

Neptune グラフ機能は、サポートされている場合、`graph.features()` コマンドによって返されるものと同じです。


| 
| 
| グラフ機能 | 有効? | 
| --- |--- |
| 取引 |  true | 
| ThreadedTransactions |  false | 
| [コンピュータ] |  false | 
| 永続的 |  true | 
| ConcurrentAccess |  true | 

### Neptune の変数機能のサポート
<a name="gremlin-api-variable-features"></a>


| 
| 
| 変数機能 | 有効? | 
| --- |--- |
| [変数] |  false | 
| SerializableValues |  false | 
| UniformListValues |  false | 
| BooleanArrayValues |  false | 
| DoubleArrayValues |  false | 
| IntegerArrayValues |  false | 
| StringArrayValues |  false | 
| BooleanValues |  false | 
| ByteValues |  false | 
| DoubleValues |  false | 
| FloatValues |  false | 
| IntegerValues |  false | 
| LongValues |  false | 
| MapValues |  false | 
| MixedListValues |  false | 
| StringValues |  false | 
| ByteArrayValues |  false | 
| FloatArrayValues |  false | 
| LongArrayValues |  false | 

### Neptune の頂点機能のサポート
<a name="gremlin-api-vertex-features"></a>


| 
| 
| 頂点機能 | 有効? | 
| --- |--- |
| MetaProperties |  false | 
| DuplicateMultiProperties |  false | 
| AddVertices |  true | 
| RemoveVertices |  true | 
| MultiProperties |  true | 
| UserSuppliedIds |  true | 
| AddProperty |  true | 
| RemoveProperty |  true | 
| NumericIds |  false | 
| StringIds |  true | 
| UuidIds |  false | 
| CustomIds |  false | 
| AnyIds |  false | 

### Neptune の頂点プロパティ機能のサポート
<a name="gremlin-api-vertex-property-features"></a>


| 
| 
| 頂点プロパティ機能 | 有効? | 
| --- |--- |
| UserSuppliedIds |  false | 
| AddProperty |  true | 
| RemoveProperty |  true | 
| NumericIds |  true | 
| StringIds |  true | 
| UuidIds |  false | 
| CustomIds |  false | 
| AnyIds |  false | 
| プロパティ |  true | 
| SerializableValues |  false | 
|  UniformListValues |  false | 
| BooleanArrayValues |  false | 
| DoubleArrayValues |  false | 
| IntegerArrayValues |  false | 
| StringArrayValues |  false | 
| BooleanValues |  true | 
| ByteValues |  true | 
| DoubleValues |  true | 
| FloatValues |  true | 
| IntegerValues |  true | 
| LongValues |  true | 
| MapValues |  false | 
| MixedListValues |  false | 
| StringValues |  true | 
| ByteArrayValues |  false | 
| FloatArrayValues |  false | 
| LongArrayValues |  false | 

### Neptune のエッジ機能のサポート
<a name="gremlin-api-edge-features"></a>


| 
| 
| エッジ機能 | 有効? | 
| --- |--- |
| AddEdges |  true | 
| RemoveEdges |  true | 
| UserSuppliedIds |  true | 
| AddProperty |  true | 
| RemoveProperty |  true | 
| NumericIds |  false | 
| StringIds |  true | 
| UuidIds |  false | 
| CustomIds |  false | 
| AnyIds |  false | 

### Neptune のエッジプロパティ機能のサポート
<a name="gremlin-api-edge-property-features"></a>


| 
| 
| エッジプロパティ機能 | 有効? | 
| --- |--- |
| プロパティ |  true | 
| SerializableValues |  false | 
| UniformListValues |  false | 
| BooleanArrayValues |  false | 
| DoubleArrayValues |  false | 
| IntegerArrayValues |  false | 
| StringArrayValues |  false | 
| BooleanValues |  true | 
| ByteValues |  true | 
| DoubleValues |  true | 
| FloatValues |  true | 
| IntegerValues |  true | 
| LongValues |  true | 
| MapValues |  false | 
| MixedListValues |  false | 
| StringValues |  true | 
| ByteArrayValues |  false | 
| FloatArrayValues |  false | 
| LongArrayValues |  false | 