

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

# openCypher 資料模型
<a name="access-graph-opencypher-data-model"></a>

Neptune OpenCypher 引擎建置在與 Gremlin 相同的屬性圖模型上。尤其是：
+ 每個節點都有一個或多個標籤。如果插入沒有標籤的節點，則會附加名為 `vertex` 的預設標籤。如果嘗試刪除節點的所有標籤，則會擲回錯誤。
+ 關係是只有一種關係類型的實體，而且其會在兩個節點之間形成單向連線 (也就是說，「從」**其中一個節點「到」**另一個節點)。
+ 節點和關係都可以具有屬性，但不必如此。Neptune 支援沒有屬性的節點和關係。
+ Neptune 不支援中繼屬性，而這些中繼屬性也不包括在 OpenCypher 規格中。
+ 如果您圖形中的屬性是使用 Gremlin 建立的，則它們可以是多值的。也就是說，一個節點或關係屬性可有一組不同的值，而不是只有一個值。Neptune 已擴展 OpenCypher 語義，來正常地處理多值屬性。

支援的資料類型記載於 [openCypher 資料格式](bulk-load-tutorial-format-opencypher.md)。不過，我們目前不建議將 `Array` 屬性值插入至 OpenCypher 圖形。雖然可以使用大量載入器插入陣列屬性值，但目前的 Neptune OpenCypher 版本會將它視為一組多值屬性，而非單一清單值。

以下是此版本支援的資料類型清單：
+ `Bool`
+ `Byte`
+ `Short`
+ `Int` 
+ `Long`
+ `Float` (包括正負 Infinity 和 NaN，但不包括 INF）
+ `Double` (包括正負 Infinity 和 NaN，但不包括 INF）
+ `DateTime` 
+ `String`