

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

# 使用 SPARQL 访问 Amazon Neptune 中的图形数据
<a name="get-started-graph-sparql"></a>

SPARQL 是一种用于资源描述框架 (RDF) 的查询语言，这是一种专为 Web 设计的图形数据格式。Amazon Neptune 与 SPARQL 1.1 兼容。这表示您可以连接到 Neptune 数据库实例并使用 [SPARQL 1.1 查询语言](https://www.w3.org/TR/sparql11-query/)规范中所述的查询语言查询图形。

 SPARQL 中的查询包含一个用于指定要返回的变量的 `SELECT` 子句和一个用于指定要在图形中匹配的数据的 `WHERE` 子句。如果您不熟悉 SPARQL 查询，请参阅 [SPARQL 1.1 查询语言](https://www.w3.org/TR/sparql11-query/#WritingSimpleQueries)中的[编写简单查询](https://www.w3.org/TR/sparql11-query/)。

针对 Neptune 数据库实例的 SPARQL 查询的 HTTP 端点为 `https://your-neptune-endpoint:port/sparql`。

**连接到 SPARQL**

1. **你可以从堆栈输出部分的项目中获取 Neptune 集群**SparqlEndpoint**的 SPARQL 终端节点。** CloudFormation 

1. 输入以下内容以使用 HTTP `POST` 和 **curl** 命令提交 SPARQL **`UPDATE`**。

   ```
   curl -X POST --data-binary 'update=INSERT DATA { <https://test.com/s> <https://test.com/p> <https://test.com/o> . }' https://your-neptune-endpoint:port/sparql
   ```

   上述示例将以下三元组插入 SPARQL 默认图形中：`<https://test.com/s> <https://test.com/p> <https://test.com/o>`

1. 输入以下内容以使用 HTTP `POST` 和 **curl** 命令提交 SPARQL **`QUERY`**。

   ```
   curl -X POST --data-binary 'query=select ?s ?p ?o where {?s ?p ?o} limit 10' https://your-neptune-endpoint:port/sparql
   ```

   前面的示例使用限制为 10 的`?s ?p ?o`查询，返回图中最多 10 个三元组 (subject-predicate-object)。要查询其他内容，请将其替换为其他 SPARQL 查询。
**注意**  
对于 `SELECT` 和 `ASK` 查询，响应的默认 MIME 类型为 `application/sparql-results+json`。  
对于 `CONSTRUCT` 和 `DESCRIBE` 查询，响应的默认 MIME 类型为 `application/n-quads`。  
有关所有可用的 MIME 类型的列表，请参阅 [SPARQL HTTP API](sparql-api-reference.md)。