

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kepatuhan standar Gremlin di Amazon Neptune
<a name="access-graph-gremlin-differences"></a>

Bagian berikut memberikan gambaran umum tentang implementasi Neptunus Gremlin dan bagaimana hal itu berbeda dari implementasi Apache. TinkerPop 

Neptunus mengimplementasikan beberapa langkah Gremlin secara native di mesinnya, dan menggunakan implementasi TinkerPop Apache Gremlin untuk memproses yang lain (lihat). [Dukungan langkah Gremlin asli di Amazon Neptune](gremlin-step-support.md)

**catatan**  
Untuk beberapa contoh konkret dari perbedaan implementasi ini yang ditunjukkan di Konsol Gremlin dan Amazon Neptune, lihat bagian [Menggunakan Gremlin untuk mengakses data grafik di Amazon Neptunus](get-started-graph-gremlin.md) dari Quick Start.

**Topics**
+ [Standar yang Berlaku untuk Gremlin](#feature-gremlin-applicable-standards)
+ [Variabel dan parameter dalam skrip](#feature-gremlin-differences-variables)
+ [TinkerPop pencacahan](#feature-gremlin-differences-tinkerpop)
+ [Kode Java](#feature-gremlin-differences-java)
+ [Properti pada elemen](#feature-gremlin-differences-properties-on-elements)
+ [Eksekusi skrip](#feature-gremlin-differences-script)
+ [Sesi](#feature-gremlin-differences-sessions)
+ [Transaksi](#feature-gremlin-differences-transactions)
+ [Vertex dan tepi IDs](#feature-gremlin-differences-vertex-edge-ids)
+ [Disediakan pengguna IDs](#feature-gremlin-differences-user-supplied-ids)
+ [Properti Vertex IDs](#feature-gremlin-differences-vertex-property-ids)
+ [Kardinalitas sifat simpul](#feature-gremlin-differences-vertex-property-cardinality)
+ [Memperbarui properti vertex](#feature-gremlin-differences-vertex-property-update)
+ [Label](#feature-gremlin-differences-labels)
+ [Karakter melarikan diri](#feature-gremlin-differences-escapes)
+ [Keterbatasan Groovy](#feature-gremlin-differences-groovy)
+ [Serialisasi](#feature-gremlin-differences-serialization)
+ [Langkah-langkah Lambda](#feature-gremlin-differences-lambda)
+ [Metode Gremlin yang tidak didukung](#feature-gremlin-differences-unsupported-methods)
+ [Langkah-langkah Gremlin yang tidak didukung](#feature-gremlin-differences-unsupported-steps)
+ [Fitur grafik Gremlin di Neptunus](#gremlin-api-reference-features)

## Standar yang Berlaku untuk Gremlin
<a name="feature-gremlin-applicable-standards"></a>
+ Bahasa Gremlin didefinisikan oleh [ TinkerPop Dokumentasi Apache](http://tinkerpop.apache.org/docs/current/reference/) dan TinkerPop implementasi Apache dari Gremlin bukan oleh spesifikasi formal.
+ Untuk format numerik, Gremlin mengikuti standar IEEE 754 ([IEEE 754-2019 - Standar IEEE untuk Floating-Point Arithmetic](https://standards.ieee.org/content/ieee-standards/en/standard/754-2019.html). Untuk informasi selengkapnya, lihat juga [halaman Wikipedia IEEE 754](https://en.wikipedia.org/wiki/IEEE_754)).

## Variabel dan parameter dalam skrip
<a name="feature-gremlin-differences-variables"></a>

Jika variabel pra-terikat bersangkutan, objek traversal `g` adalah Pre-bound di Neptunus, dan objek tidak didukung. `graph`

Meskipun Neptunus tidak mendukung variabel Gremlin atau parameterisasi dalam skrip, Anda mungkin sering menemukan skrip sampel untuk Server Gremlin di Internet yang berisi deklarasi variabel, seperti:

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

Ada juga banyak contoh yang menggunakan [parameterisasi](https://tinkerpop.apache.org/docs/current/reference/#parameterized-scripts) (atau binding) saat mengirimkan kueri, seperti:

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

Contoh parameter biasanya dikaitkan dengan peringatan tentang hukuman kinerja karena tidak membuat parameter bila memungkinkan. Ada banyak sekali contoh seperti itu TinkerPop yang mungkin Anda temui, dan semuanya terdengar cukup meyakinkan tentang perlunya membuat parameter.

Namun, baik fitur deklarasi variabel dan fitur parameterisasi (bersama dengan peringatan) hanya berlaku untuk Server TinkerPop Gremlin saat menggunakan. `GremlinGroovyScriptEngine` Mereka tidak berlaku ketika Gremlin Server menggunakan tata bahasa `gremlin-language` ANTLR Gremlin untuk mengurai kueri. Tata bahasa ANTLR tidak mendukung deklarasi variabel atau parameterisasi, jadi saat menggunakan ANTLR, Anda tidak perlu khawatir gagal membuat parameter. Karena tata bahasa ANTLR adalah komponen yang lebih baru TinkerPop, konten lama yang mungkin Anda temui di Internet umumnya tidak mencerminkan perbedaan ini.

Neptunus menggunakan tata bahasa ANTLR di mesin pemrosesan kueri daripada`GremlinGroovyScriptEngine`, sehingga tidak mendukung variabel atau parameterisasi atau properti. `bindings` Akibatnya, masalah yang terkait dengan kegagalan parameterisasi tidak berlaku di Neptunus. Menggunakan Neptunus, sangat aman hanya untuk mengirimkan kueri apa adanya di mana seseorang biasanya akan membuat parameter. Akibatnya, contoh sebelumnya dapat disederhanakan tanpa penalti kinerja sebagai berikut:

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

## TinkerPop pencacahan
<a name="feature-gremlin-differences-tinkerpop"></a>

Neptune tidak mendukung nama kelas yang memenuhi syarat untuk nilai pencacahan. Misalnya, Anda harus menggunakan `single` dan bukan `org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality.single` dalam permintaan Groovy Anda.

Jenis pencacahan ditentukan oleh jenis parameter.

Tabel berikut menunjukkan nilai enumerasi yang diizinkan dan nama yang TinkerPop sepenuhnya memenuhi syarat terkait.

| Nilai yang Diizinkan | Kelas | 
| --- |--- |
| id, key, label, value | [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) | 
| set, single | [org.apache.tinkerpop.gremlin.structure. VertexProperty.Kardinalitas](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) | 
| global, 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) | 
| 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) | 
| all, 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](https://tinkerpop.apache.org/javadocs/3.7.2/core/org/apache/tinkerpop/gremlin/process/traversal/SackFunctions.Barrier.html).Penghalang | 
| addAll, and, assign, div, max, min, minus, mult, or, 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) | 
| keys, values | [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) | 
| any, none | [org.apache.tinkerpop.gremlin.process.traversal.step. TraversalOptionParent.Pilih](https://tinkerpop.apache.org/javadocs/current/full/org/apache/tinkerpop/gremlin/process/traversal/Pick.html) | 

## Kode Java
<a name="feature-gremlin-differences-java"></a>

Neptunus tidak mendukung panggilan ke metode yang ditentukan oleh panggilan perpustakaan Java atau Java arbitrer selain Gremlin yang didukung. APIs Misalnya, `java.lang.*`, `Date()`, dan `g.V().tryNext().orElseGet()` tidak diperbolehkan.

## Properti pada elemen
<a name="feature-gremlin-differences-properties-on-elements"></a>

 Neptunus tidak mendukung bendera `materializeProperties` yang diperkenalkan di 3.7.0 untuk mengembalikan TinkerPop properti pada elemen. Akibatnya, Neptunus masih hanya akan mengembalikan simpul atau tepi sebagai referensi hanya dengan dan. `id` `label`

## Eksekusi skrip
<a name="feature-gremlin-differences-script"></a>

Semua kueri harus dimulai dengan `g`, objek traversal. 

Dalam pengiriman kueri String, beberapa traversals dapat dikeluarkan terpisah dengan titik koma (`;`) atau karakter baris baru (`\n`). Untuk dieksekusi, setiap pernyataan selain yang terakhir harus diakhiri dengan langkah `.iterate()`. Hanya data dari traversal akhir yang dikembalikan. Perhatikan bahwa ini tidak berlaku untuk pengiriman ByteCode kueri GLV.

## Sesi
<a name="feature-gremlin-differences-sessions"></a>

Sesi di Neptune dibatasi hanya durasi 10 menit. Lihat [Sesi berbasis skrip Gremlin](access-graph-gremlin-sessions.md) dan [Referensi TinkerPop Sesi](https://tinkerpop.apache.org/docs/current/reference/#console-sessions) untuk informasi lebih lanjut.

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

Neptune membuka transaksi baru pada awal setiap traversal Gremlin dan menutup transaksi setelah berhasil menyelesaikan traversal. Transaksi di-rollback ketika ada kesalahan. 

 Beberapa pernyataan dipisahkan dengan titik koma (`;`) atau karakter baris baru (`\n`) disertakan dalam satu transaksi. Setiap pernyataan selain yang terakhir harus diakhiri dengan langkah `next()` yang akan dieksekusi. Hanya data dari traversal akhir yang dikembalikan.

Logika transaksi manual menggunakan `tx.commit()` dan `tx.rollback()` tidak didukung.

**penting**  
Ini ***hanya*** berlaku untuk metode di mana Anda mengirim kueri Gremlin sebagai ***string teks*** (lihat[Transaksi Gremlin](access-graph-gremlin-transactions.md)).

## Vertex dan tepi IDs
<a name="feature-gremlin-differences-vertex-edge-ids"></a>

Neptunus Gremlin Vertex dan Edge harus bertipe. IDs `String` String ID ini mendukung karakter Unicode, dan ukurannya tidak boleh melebihi 55 MB.

Disediakan pengguna IDs didukung, tetapi opsional dalam penggunaan normal. Jika Anda tidak memberikan ID saat menambahkan simpul atau tepi, Neptunus menghasilkan UUID dan mengubahnya menjadi string, dalam bentuk seperti ini:. `"48af8178-50ce-971a-fc41-8c9a954cea62"` Ini UUIDs tidak sesuai dengan standar RFC, jadi jika Anda membutuhkan standar, UUIDs Anda harus membuatnya secara eksternal dan menyediakannya saat Anda menambahkan simpul atau tepi.

**catatan**  
Perintah `Load` Neptunus mengharuskan Anda IDs menyediakan, menggunakan bidang \$1id dalam format **CSV** Neptunus.

## Disediakan pengguna IDs
<a name="feature-gremlin-differences-user-supplied-ids"></a>

Disediakan pengguna IDs diizinkan di Neptunus Gremlin dengan ketentuan berikut.
+ Disediakan IDs adalah opsional.
+ Hanya vertex dan edge yang didukung.
+ Hanya tipe `String` yang didukung.

Untuk membuat vertex baru dengan ID kustom, gunakan langkah `property` dengan Kata Kunci `id`: `g.addV().property(id, 'customid')`.

**catatan**  
 Jangan menaruh tanda kutip di sekitar Kata Kunci `id`. Ini mengacu pada`T.id`.

Semua simpul IDs harus unik, dan semua tepi IDs harus unik. Namun, Neptune tidak mengizinkan vertex dan edge untuk memiliki ID yang sama.

Jika Anda mencoba untuk membuat sebuah vertex baru menggunakan `g.addV()` dan sebuah vertex dengan ID sudah ada, operasi gagal. Pengecualian untuk ini adalah jika Anda menentukan label baru untuk vertex tersebut, operasi berhasil tetapi menambahkan label baru dan properti tambahan yang ditentukan ke vertex yang ada. Tidak ada yang ditimpa. Sebuah vertex baru tidak dibuat. ID vertex tidak berubah dan tetap unik.

Misalnya, perintah konsol Gremlin berikut berhasil:

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

## Properti Vertex IDs
<a name="feature-gremlin-differences-vertex-property-ids"></a>

Properti Vertex IDs dihasilkan secara otomatis dan dapat muncul sebagai angka positif atau negatif ketika ditanyakan.

## Kardinalitas sifat simpul
<a name="feature-gremlin-differences-vertex-property-cardinality"></a>

Neptune mendukung kardinalitas rangkaian dan kardinalitas tunggal. Jika tidak ditentukan, kardinalitas rangkaian dipilih. Ini berarti bahwa jika Anda menetapkan nilai properti, ia menambahkan nilai baru ke properti, tetapi hanya jika itu belum muncul di set nilai. Ini adalah nilai pencacahan Gremlin [Set](https://tinkerpop.apache.org/javadocs/3.7.2/core/org/apache/tinkerpop/gremlin/structure/VertexProperty.Cardinality.html). 

`List` tidak didukung. Untuk informasi lebih lanjut tentang kardinalitas properti, lihat topik [Vertex](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...-) di Gremlin. JavaDoc

## Memperbarui properti vertex
<a name="feature-gremlin-differences-vertex-property-update"></a>

Untuk memperbarui nilai properti tanpa menambahkan nilai tambahan untuk set nilai, tentukan kardinalitas `single` dalam langkah `property`.

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

Ini akan menghapus semua nilai yang ada untuk properti tersebut.

## Label
<a name="feature-gremlin-differences-labels"></a>

Neptune mendukung beberapa label untuk sebuah vertex. Ketika Anda membuat label, Anda dapat menentukan beberapa label dengan memisahkannya dengan `::`. Sebagai contoh, `g.addV("Label1::Label2::Label3")` menambahkan sebuah vertex dengan tiga label yang berbeda. Langkah `hasLabel` cocok dengan vertex ini dengan salah satu dari tiga label tersebut: `hasLabel("Label1")`, `hasLabel("Label2")`, dan `hasLabel("Label3")`. 

**penting**  
Pembatas `::` dicadangkan untuk penggunaan ini saja. Anda tidak dapat menentukan beberapa label di langkah `hasLabel`. Misalnya, `hasLabel("Label1::Label2")` tidak cocok dengan apa pun.

## Karakter melarikan diri
<a name="feature-gremlin-differences-escapes"></a>

Neptune menyelesaikan semua karakter escape seperti yang dijelaskan dalambagian [Meng-Escape Karakter Khusus]( http://groovy-lang.org/syntax.html#_escaping_special_characters) dari dokumentasi bahasa Apache Groovy.

## Keterbatasan Groovy
<a name="feature-gremlin-differences-groovy"></a>

Neptune tidak mendukung perintah Groovy yang tidak dimulai dengan `g`. Ini termasuk matematika (misalnya, `1+1`), panggilan sistem (misalnya, `System.nanoTime()`), dan definisi variabel (misalnya, `1+1`).

**penting**  
Neptune tidak mendukung nama kelas yang memenuhi syarat. Misalnya, Anda harus menggunakan `single` dan bukan `org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality.single` dalam permintaan Groovy Anda.

## Serialisasi
<a name="feature-gremlin-differences-serialization"></a>

Neptune mendukung serialisasi berikut berdasarkan jenis MIME yang diminta.

 Neptunus mengekspos semua serializer TinkerPop yang melakukannya, dengan dukungan untuk berbagai versi dan konfigurasi GraphSon dan. GraphBinary Meskipun ada banyak pilihan yang ada, panduan untuk digunakan sangat mudah: 
+  Jika Anda menggunakan TinkerPop driver Apache, pilih default untuk driver tanpa menentukan satu secara eksplisit. Kecuali Anda memiliki alasan yang sangat spesifik untuk melakukannya, Anda mungkin tidak perlu menentukan serializer dalam inisialisasi driver Anda. Secara umum, default yang digunakan oleh driver adalah`application/vnd.graphbinary-v1.0`. 
+  Jika Anda terhubung ke Neptunus melalui HTTP, prioritaskan penggunaan `application/vnd.gremlin-v3.0+json;types=false` sebagai tipe tertanam dalam versi alternatif GraphSon 3 membuatnya rumit untuk dikerjakan. 
+  `application/vnd.graphbinary-v1.0-stringd`Umumnya hanya berguna bila digunakan bersama dengan [Gremlin Console](https://docs.aws.amazon.com//neptune/latest/userguide/access-graph-gremlin-console.html) karena mengubah semua hasil menjadi representasi string untuk tampilan sederhana. 
+  Format yang tersisa tetap ada karena alasan lama dan biasanya tidak boleh digunakan dengan driver tanpa alasan yang jelas. 

|  |  |  | 
| --- |--- |--- |
| Tipe MIME | Serialisasi | Konfigurasi | 
| `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(hanya bekerja dengan 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 |  | 

**catatan**  
 Tabel serializer yang ditampilkan di sini mengacu pada penamaan pada 3.7.0. TinkerPop Jika Anda ingin tahu lebih banyak tentang perubahan ini, silakan lihat [dokumentasi TinkerPop pemutakhiran](https://tinkerpop.apache.org/docs/current/upgrade/#_serializer_renaming). Dukungan serialisasi Gryo tidak digunakan lagi di 3.4.3 dan secara resmi dihapus di 3.6.0. Jika Anda secara eksplisit menggunakan Gryo atau pada versi driver yang menggunakannya secara default, maka Anda harus beralih ke GraphBinary atau meningkatkan driver Anda. 

## Langkah-langkah Lambda
<a name="feature-gremlin-differences-lambda"></a>

Neptune tidak mendukung Lambda Steps.

## Metode Gremlin yang tidak didukung
<a name="feature-gremlin-differences-unsupported-methods"></a>

Neptune tidak mendukung metode Gremlin berikut:
+ `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)`

Misalnya, traversal berikut tidak diperbolehkan: `g.V().addE('something').from(__.V().next()).to(__.V().next())`.

**penting**  
Ini ***hanya*** berlaku untuk metode di mana Anda mengirim kueri Gremlin sebagai ***string teks***.

## Langkah-langkah Gremlin yang tidak didukung
<a name="feature-gremlin-differences-unsupported-steps"></a>

Neptune tidak mensupport langkah-langkah Gremlin berikut:
+ [Langkah Gremlin io ()](http://tinkerpop.apache.org/docs/3.7.2/reference/#io-step) hanya didukung sebagian di Neptunus. Ini dapat digunakan dalam konteks baca, seperti dalam`g.io((url)).read()`, tetapi tidak untuk menulis.

## Fitur grafik Gremlin di Neptunus
<a name="gremlin-api-reference-features"></a>

Implementasi Gremlin Neptune tidak mengekspos`graph`objek. Tabel berikut mencantumkan fitur Gremlin dan menunjukkan apakah Neptunus mendukungnya atau tidak.

### Dukungan Neptunus untuk fitur `graph`
<a name="gremlin-api-graph-features"></a>

Fitur grafik Neptunus, jika didukung, sama seperti yang akan dikembalikan oleh perintah. `graph.features()`


| 
| 
| Fitur grafik | Diaktifkan? | 
| --- |--- |
| Transactions |  true | 
| ThreadedTransactions |  SALAH | 
| Computer |  SALAH | 
| Persistence |  true | 
| ConcurrentAccess |  true | 

### Dukungan Neptunus untuk fitur variabel
<a name="gremlin-api-variable-features"></a>


| 
| 
| Fitur variabel | Diaktifkan? | 
| --- |--- |
| Variables |  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 | 

### Dukungan Neptunus untuk fitur vertex
<a name="gremlin-api-vertex-features"></a>


| 
| 
| Fitur Vertex | Diaktifkan? | 
| --- |--- |
| MetaProperties |  false | 
| DuplicateMultiProperties |  SALAH | 
| AddVertices |  true | 
| RemoveVertices |  true | 
| MultiProperties |  true | 
| UserSuppliedIds |  true | 
| AddProperty |  true | 
| RemoveProperty |  true | 
| NumericIds |  SALAH | 
| StringIds |  BETUL | 
| UuidIds |  SALAH | 
| CustomIds |  false | 
| AnyIds |  false | 

### Dukungan Neptunus untuk fitur properti vertex
<a name="gremlin-api-vertex-property-features"></a>


| 
| 
| Fitur properti Vertex | Diaktifkan? | 
| --- |--- |
| UserSuppliedIds |  SALAH | 
| AddProperty |  true | 
| RemoveProperty |  true | 
| NumericIds |  true | 
| StringIds |  true | 
| UuidIds |  SALAH | 
| CustomIds |  false | 
| AnyIds |  SALAH | 
| Properties |  BETUL | 
| SerializableValues |  SALAH | 
|  UniformListValues |  false | 
| BooleanArrayValues |  false | 
| DoubleArrayValues |  false | 
| IntegerArrayValues |  false | 
| StringArrayValues |  SALAH | 
| BooleanValues |  true | 
| ByteValues |  true | 
| DoubleValues |  true | 
| FloatValues |  true | 
| IntegerValues |  true | 
| LongValues |  true | 
| MapValues |  SALAH | 
| MixedListValues |  SALAH | 
| StringValues |  BETUL | 
| ByteArrayValues |  SALAH | 
| FloatArrayValues |  false | 
| LongArrayValues |  false | 

### Dukungan Neptunus untuk fitur tepi
<a name="gremlin-api-edge-features"></a>


| 
| 
| Fitur tepi | Diaktifkan? | 
| --- |--- |
| AddEdges |  true | 
| RemoveEdges |  true | 
| UserSuppliedIds |  true | 
| AddProperty |  true | 
| RemoveProperty |  true | 
| NumericIds |  SALAH | 
| StringIds |  BETUL | 
| UuidIds |  SALAH | 
| CustomIds |  false | 
| AnyIds |  false | 

### Dukungan Neptunus untuk fitur properti edge
<a name="gremlin-api-edge-property-features"></a>


| 
| 
| Fitur properti tepi | Diaktifkan? | 
| --- |--- |
| Properties |  true | 
| SerializableValues |  SALAH | 
| UniformListValues |  false | 
| BooleanArrayValues |  false | 
| DoubleArrayValues |  false | 
| IntegerArrayValues |  false | 
| StringArrayValues |  SALAH | 
| BooleanValues |  true | 
| ByteValues |  true | 
| DoubleValues |  true | 
| FloatValues |  true | 
| IntegerValues |  true | 
| LongValues |  true | 
| MapValues |  SALAH | 
| MixedListValues |  SALAH | 
| StringValues |  BETUL | 
| ByteArrayValues |  SALAH | 
| FloatArrayValues |  false | 
| LongArrayValues |  false | 