在 Amazon Neptune 中使用 SPARQL 1.1 Graph Store HTTP 协议 (GSP) - Amazon Neptune

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

在 Amazon Neptune 中使用 SPARQL 1.1 Graph Store HTTP 协议 (GSP)

SPARQL1.1 Graph Store HTTP 协议建议中,W3C 定义了一种用于管理RDF图形的HTTP协议。它定义了移除、创建和替换RDF图表内容以及向现有内容添加RDF语句的操作。

graph-store 协议 (GSP) 提供了一种无需编写复杂SPARQL查询即可操作整个图形的便捷方式。

截至版本:1.0.5.0(2021 年 7 月 27 日),Neptune 完全支持该协议。

图形存储协议 (GSP) 的端点是:

https://your-neptune-cluster:port/sparql/gsp/

要使用访问默认图表GSP,请使用:

https://your-neptune-cluster:port/sparql/gsp/?default

要使用访问命名图表GSP,请使用:

https://your-neptune-cluster:port/sparql/gsp/?graph=named-graph-URI

Neptun GSP e 实现的特殊细节

Neptune完全实现了 W3C建议,该建议定义了. GSP 但是,此规范没有涵盖某些情况。

其中一种情况是,PUTPOST请求在请求正文中指定了一个或多个与请求指定的图形不同的已命名图表URL。只有当请求正文RDF格式支持命名图时,才会发生这种情况,例如使用Content-Type: application/n-quadsContent-Type: application/trig

在这种情况下,Neptune 会添加或更新正文中存在的所有命名图表,以及中指定的命名图。URL

例如,假设您从一个空数据库开始,您发送 PUT 请求将选票更新插入到三个图形中。其中一个图形名为 urn:votes,它包含所有选举年份的所有选票。另外两个名为 urn:votes:2005urn:votes:2019 的图形包含特定选举年份的选票。请求及其有效负载如下所示:

PUT "http://your-Neptune-cluster:port/sparql/gsp/?graph=urn:votes" Host: example.com Content-Type: application/n-quads PAYLOAD: <urn:JohnDoe> <urn:votedFor> <urn:Labour> <urn:votes:2005> <urn:JohnDoe> <urn:votedFor> <urn:Conservative> <urn:votes:2019> <urn:JaneSmith> <urn:votedFor> <urn:LiberalDemocrats> <urn:votes:2005> <urn:JaneSmith> <urn:votedFor> <urn:Conservative> <urn:votes:2019>

请求执行后,数据库中的数据如下所示:

<urn:JohnDoe> <urn:votedFor> <urn:Labour> <urn:votes:2005> <urn:JohnDoe> <urn:votedFor> <urn:Conservative> <urn:votes:2019> <urn:JaneSmith> <urn:votedFor> <urn:LiberalDemocrats> <urn:votes:2005> <urn:JaneSmith> <urn:votedFor> <urn:Conservative> <urn:votes:2019> <urn:JohnDoe> <urn:votedFor> <urn:Labour> <urn:votes> <urn:JohnDoe> <urn:votedFor> <urn:Conservative> <urn:votes> <urn:JaneSmith> <urn:votedFor> <urn:LiberalDemocrats> <urn:votes> <urn:JaneSmith> <urn:votedFor> <urn:Conservative> <urn:votes>

另一种模棱两可的情况是,在请求URL本身中指定了多个图形,使用PUTPOSTGETDELETE中的任何一个。例如:

POST "http://your-Neptune-cluster:port/sparql/gsp/?graph=urn:votes:2005&graph=urn:votes:2019"

或者:

GET "http://your-Neptune-cluster:port/sparql/gsp/?default&graph=urn:votes:2019"

在这种情况下,Neptune 会返回 HTTP 400,并显示一条消息,表明请求中只能指定一个图表。URL