在 Amazon Neptune 中使用 SPARQL 1.1 圖形存放區 HTTP 通訊協定 (GSP) - Amazon Neptune

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

在 Amazon Neptune 中使用 SPARQL 1.1 圖形存放區 HTTP 通訊協定 (GSP)

SPARQL 1.1 圖形存放區 HTTP 通訊協定建議中,W3C 定義了用於管理 RDF 圖形的 HTTP 通訊協定。它會定義用於移除、建立和取代 RDF 圖形內容的操作,以及用於將 RDF 陳述式新增至現有內容的操作。

圖形存放區通訊協定 (GSP) 提供了一種便利的方式來操作您的整個圖形,而不必撰寫複雜的 SPARQL 查詢。

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

Neptune GSP 實作的特殊詳細資訊

Neptune 完全實作了定義 GSP 的 W3C 建議。不過,有一些規格未涵蓋的情況。

其中一種情況是,PUTPOST 請求在請求內文中指定一個或多個具名圖形,這些圖形與請求 URL 指定的圖形不同。僅在請求內文 RDF 格式支援具名圖形時,才可能發生這種情況,例如,使用 Content-Type: application/n-quadsContent-Type: application/trig

在此情況下,Neptune 會新增或更新內文中存在的所有具名圖形,以及在 URL 中指定的具名圖形。

例如,假設從空白資料庫開始,您會傳送 PUT 請求,以將選票 upsert 至三個圖形。其中一個名為 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 中指定一個圖形。