Utilisation du protocole HTTP (GSP) SPARQL 1.1 Graph Store dans Amazon Neptune - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation du protocole HTTP (GSP) SPARQL 1.1 Graph Store dans Amazon Neptune

Dans leProtocole HTTP SPARQL 1.1 Graph Storerecommandation, le W3C a défini un protocole HTTP pour la gestion des graphes RDF. Il définit les opérations permettant de supprimer, de créer et de remplacer le contenu d'un graphe RDF ainsi que d'ajouter des instructions RDF au contenu existant.

Le protocole Graph-Store (GSP) fournit un moyen pratique de manipuler l'ensemble de votre graphe sans avoir à écrire de requêtes SPARQL complexes.

À partir deVersion : 1.0.5.0 (27/07/2021), Neptune prend entièrement en charge ce protocole.

Le point de terminaison du protocole Graph-Store (GSP) est le suivant :

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

Pour accéder au graphique par défaut avec GSP, utilisez :

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

Pour accéder à un graphe nommé avec GSP, utilisez :

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

Détails spécifiques de la mise en œuvre du GPS Neptune

Neptune met pleinement en œuvre leRecommandation du W3Cqui définit le SPG. Cependant, il existe quelques situations que la spécification ne couvre pas.

L'un d'entre eux est le cas où unPUTouPOSTrequest spécifie un ou plusieurs graphes nommés dans le corps de la requête qui diffèrent du graphe spécifié par l'URL de la demande. Cela ne peut se produire que lorsque le format RDF du corps de la requête prend en charge les graphes nommés, comme par exemple en utilisantContent-Type: application/n-quadsouContent-Type: application/trig.

Dans ce cas, Neptune ajoute ou met à jour tous les graphes nommés présents dans le corps, ainsi que le graphe nommé spécifié dans l'URL.

Supposons, par exemple, qu'en commençant par une base de données vide, vous envoyiez unePUTdemande de replacer les votes dans trois graphiques. Un, nomméurn:votes, contient tous les votes de toutes les années électorales. Deux autres, nommésurn:votes:2005eturn:votes:2019, contiennent des votes d'années électorales spécifiques. La requête et sa charge utile se présente comme suit :

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>

Une fois la requête exécutée, les données de la base de données se présentent comme suit :

<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>

Une autre situation ambiguë est celle où plusieurs graphes sont spécifiés dans l'URL de la requête elle-même, en utilisant l'un desPUT,POST,GETouDELETE. Par exemple :

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

Ou:

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

Dans ce cas, Neptune renvoie un HTTP 400 avec un message indiquant qu'un seul graphique peut être spécifié dans l'URL de la requête.