

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 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`（包括正负无穷大和 NaN，但不包括 INF）
+ `Double`（包括正负无穷大和 NaN，但不包括 INF）
+ `DateTime` 
+ `String`