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 クエリを記述することなく、グラフ全体を操作する便利な方法を提供します。

リリース: 1.0.5.0 (2021-07-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

Neptune GSP 実装の特別な詳細

Neptune はGSPを定義する W3C レコメンデーションを完全に実装しています。ただし、仕様がカバーしていない状況はいくつかあります。

その 1 つは、PUT または POST リクエストが、リクエスト本文に、リクエスト URL で指定されたグラフとは異なる名前付きグラフを 1 つ以上指定する場合です。これは、リクエスト本文 RDF 形式がたとえば、Content-Type: application/n-quads または Content-Type: application/trig を使って名前付きグラフをサポートしている場合にのみ発生します。

この状況では、Neptune は、URL で指定された名前付きグラフだけでなく、本文に存在するすべての名前付きグラフを追加または更新します。

たとえば、空のデータベースから開始して、3 つのグラフにアップサートするよう PUT リクエストを送ります。1つの名前付き urn:votes は、すべての選挙年度からの全得票を含みます。他の2つ、名前付き urn:votes:2005 および urn: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>

別のあいまいな状況は、PUTPOSTGET または DELETE を使って、リクエストURL自体に複数のグラフが指定されている場合です。例:

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 はリクエスト URL に指定できるグラフが 1 つだけであることを示すメッセージを含む HTTP 400 を返します。