« SPARQL Protocol and RDF Query Language/Le protocole SPARQL » : différence entre les versions
Contenu supprimé Contenu ajouté
m Robot : Changement de type cosmétique |
Relecture |
||
Ligne 1 :
{{Chapitre
| idfaculté = informatique
Ligne 5 ⟶ 4 :
| titre_leçon = SPARQL
| numéro = 4
| niveau =
| précédent = [[../Modèle de données RDF/]]
| suivant = [[../Requêtes de lecture/]]
}}
Dans ce
Le langage SPARQL 1.1
== Protocole HTTP ==
L'[[w:HyperText Transfer Protocol|HyperText Transfer Protocol]] — littéralement « protocole de transfert [[w:hypertexte|hypertexte]] » —, plus connu sous l'[[w:abréviation|abréviation]] '''HTTP'''
HTTP est un protocole de la couche application. Il peut fonctionner sur n'importe quelle connexion fiable
Les [[w:client HTTP|clients HTTP]] les plus connus sont les [[w:navigateur Web|navigateurs Web]] permettant à un utilisateur d'accéder à un serveur contenant les données. Il existe aussi des systèmes pour récupérer automatiquement le contenu d'un site,
Ces clients se connectent à des [[w:serveur HTTP|serveurs HTTP]] tels qu'[[w:Apache HTTP Server|Apache HTTP Server]], que nous installerons durant un TP.
La liaison entre le client et le serveur n'est pas toujours directe, mais, du point de vue du client HTTP, ces intermédiaires sont invisibles, à moins qu'une erreur ait lieu.
=== Requêtes ===
Dans le protocole HTTP, une méthode est une '''
==== Ressources ====
Jusqu'à
===== Localisateur uniforme de ressource (URL) =====
{{Définition|titre=Localisateur uniforme de ressource (URL)|contenu=
Une URL (
}}
{{Exemple|titre=Exemples d'URL|contenu=
:http://fr.wikiversity.org est une URL pour atteindre le site fr.Wikiversity via le protocole http.
:git://github.com/BorderCloud/4store-php.git est une URL pour atteindre les sources de 4store-php via le protocole git}}
===== Identificateur de ressource internationalisé (IRI) =====
{{Définition|titre=Identificateur de ressource internationalisé (IRI)|contenu=
La différence avec une URL est qu'
}}
{{Exemple|titre=Exemple d'IRI|contenu=<nowiki>http://fr.wikipedia.org</nowiki> (URL) pourra devenir <nowiki>http://fr.wikip</nowiki>'''é'''dia.org (IRI)}}
{{Remarque|contenu=Une URL est
L'architecture HTTP ne
==== Commandes ====
Liste des principales '''
;<code>GET</code>:C'est la méthode la plus courante pour demander une ressource. Une requête GET est sans effet sur la ressource, il doit être possible de répéter la requête sans effet.
;<code>POST</code>:Cette méthode doit être utilisée pour soumettre des données, en vue d'un traitement, à une ressource (typiquement depuis un formulaire HTML)
;<code>PUT</code>:Cette méthode permet de remplacer ou d'ajouter une ressource sur le serveur. L'URL
;<code>DELETE</code>:Cette méthode permet de supprimer une ressource du serveur.
Ces commandes sont souvent détournées de leur mission initiale. Par exemple, un développeur peut utiliser la méthode GET pour envoyer des informations à un serveur et pourra implémenter un traitement de mise à jour des données du serveur en cas de réception de cette commande GET.
=== Codes de statut HTTP ===
La réponse du serveur à une commande contient le code de [[w:Liste des codes HTTP|statut HTTP]](Status
Voici la liste
{| class="wikitable"
! Code !! Message !! Signification
Ligne 109 ⟶ 108 :
</pre>
Une requête respecte un certain nombre de
==== Réponse ====
Ligne 130 ⟶ 129 :
</pre>
La réponse se compose d'
L'entête se compose :
;La première ligne donne le [[w:Liste des codes HTTP|code de statut HTTP]] : 200 dans ce cas, c'est-à-dire que le serveur comprend la requête et vous transmet le résultat.
;<code>Date</code>:Moment auquel le message est généré.
;<code>Server</code>:Indique quel modèle de [[w:serveur HTTP|serveur HTTP]] répond à la requête.
;<code>Last-Modified</code>:Indique la date de dernière modification de la ressource.
;<code>ETag</code> (entity tag) :
;<code>Accept-Ranges</code>:
;<code>Content-Length</code>:Indique la taille en [[w:octet|octet]]s de la ressource.
;<code>Content-Type</code>:Indique le type [[w:Multipurpose Internet Mail Extensions|MIME]] de la ressource.
Le message contient ensuite une page HTML, mais cela dépend de la requête envoyée.
Nous allons étudier, dans la partie suivante, les différentes commandes HTTP utilisables pour un serveur SPARQL 1.0 et ses réponses.
== Protocole SPARQL ==
Ligne 167 ⟶ 166 :
;default-graph-uri : paramètre facultatif qui peut être répété, indique le ou les graphes de la base de données où exécuter la requête
;named-graph-uri : paramètre facultatif qui peut être répété, indique le ou les graphes qui seront utilisés au sein de la requête
;output : paramètre facultatif '''qui peut
Nous étudierons dans les leçons suivantes à quoi servent ces paramètres.
Ligne 179 ⟶ 178 :
Par exemple : ''<nowiki>http://lod.bordercloud.com/sparql/?query=ask {?x ?y "TSO"@en . }</nowiki>''
La méthode '''POST''' permet de faire les mêmes requêtes, mais POST permet d'envoyer des requêtes de taille plus importante par rapport à une requête GET.
}}
Ligne 205 ⟶ 204 :
La réponse d'une requête prend la forme d'un "SPARQL result" (tableau de résultat) ou le format d'un graphe RDF.
* La forme
* La forme graphe RDF peut prendre le format XML ou Turtle.
Ligne 211 ⟶ 210 :
{{Définition|titre=Format des réponses SPARQL|contenu=
Il y a quatre
;SELECT : retourne un [http://www.w3.org/TR/rdf-sparql-XMLres/ SPARQL result en XML] par défaut. Pour obtenir un autre format comme [http://www.w3.org/TR/rdf-sparql-json-res/ JSON], il faut le préciser avec le paramètre output.
;ASK : retourne un [http://www.w3.org/TR/rdf-sparql-XMLres/ SPARQL result en XML] par défaut. Pour obtenir un autre format comme [http://www.w3.org/TR/rdf-sparql-json-res/ JSON], il faut le préciser avec le paramètre output.
;CONSTRUCT : retourne un graphe RDF en XML par défaut. Pour obtenir un autre format comme Turtle, il faut le préciser avec le paramètre output.
;DESCRIBE : retourne un document en Turtle ou un graphe RDF en XML. Pour obtenir un autre format précis, il faut
}}
Ligne 346 ⟶ 345 :
{{remarque|titre=Option CORS à activer avec JSON|contenu=
L’intérêt d'obtenir un format JSON est d'utiliser ce contenu à travers un script en Javascript. Cependant, votre navigateur n'autorise pas le chargement de JSON d'un autre domaine que celui du site où vous vous trouvez. Bien que cette limitation soit justifiée pour des raisons de sécurité
Une alternative existe
}}
Ligne 473 ⟶ 472 :
==== Réponse ====
Pour savoir, si une requête c'est bien déroulée, on lit le code de statut HTTP, qui doit être
En fonction des implémentations, des messages d'erreurs peuvent être envoyés par le serveur.
|