Utilisation du HTTP protocole Graph Store SPARQL 1.1 (GSP) 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 HTTP protocole Graph Store SPARQL 1.1 (GSP) dans Amazon Neptune

Dans la recommandation SPARQL1.1 du HTTP protocole Graph Store, le W3C a défini un HTTP protocole de gestion des RDF graphes. Il définit les opérations de suppression, de création et de remplacement du contenu du RDF graphe, ainsi que d'ajout d'RDFinstructions 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 complexesSPARQL.

À partir de la Sortie : 1.0.5.0 (27/07/2021), Neptune prend pleinement en charge ce protocole.

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

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

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

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

Pour accéder à un graphe nommé avecGSP, utilisez :

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

Détails particuliers de la mise en œuvre de Neptune GSP

Neptune met pleinement en œuvre la recommandation du W3C qui définit. GSP Cependant, il existe quelques situations que cette spécification ne couvre pas.

L'un d'entre eux est le cas où une POST demande PUT ou spécifie un ou plusieurs graphes nommés dans le corps de la demande qui diffèrent du graphe spécifié par la demandeURL. Cela ne peut se produire que lorsque le RDF format du corps de la demande prend en charge les graphes nommés, par exemple en utilisant Content-Type: application/n-quads ouContent-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 le. URL

Supposons, par exemple, qu'en partant d'une base de données vide, vous envoyiez une demande PUT pour effectuer l'upsert de votes dans trois graphes. L'un, nomméurn:votes, contient tous les votes pour toutes les années électorales. Les deux autres, nommés urn:votes:2005 eturn:votes:2019, contiennent les votes relatifs à des années électorales spécifiques. La demande et sa charge utile sont 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 demande 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 la requête URL elle-même, en utilisant l'un des PUT GET ouDELETE. POST 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 graphe peut être spécifié dans la demande. URL