# SPARQL Protocol and RDF Query Language

| Chap. 1 : | Introduction au Web des données (15) |
| Chap. 2 : | La programmation Web (15) |
| Chap. 3 : | Modèle de données RDF (15) |
| Chap. 4 : | Le protocole SPARQL (15) |
| Chap. 5 : | Requêtes de lecture (15) |
| Chap. 6 : | Requêtes d'écriture (15) |
| Chap. 7 : | Requêtes de découverte (15) |
| Chap. 8 : | Requêtes d'exportation (15) |
| Chap. 9 : | Système d'implication (15) |
| Exercice : | Requêtes de lecture (15) |
| TP 1 : | Installer Linux (15) |
| TP 2 : | Faire un serveur Web (15) |
| TP 3 : | Initiation à PHP (15) |
| TP 4 : | Initiation à MySQL (15) |
| TP 5 : | Initiation à PHPUnit (15) |
| TP 6 : | Initiation à Eclipse (15) |
| TP 7 : | Faire un serveur SPARQL (15) |
| TP 8 : | PHP les variables (15) |
| TP 9 : | PHP les formulaires (15) |
| TP 10 : | PHP les boucles et opérateurs (15) |
| TP 11 : | PHP les fonctions (15) |
| TP 12 : | PHP avec MySQL (15) |
| TP 13 : | PHP avec SPARQL (15) |
| TP 14 : | Requêtes de découverte (15) |
| TP 15 : | Système d'implication (15) |
| TP 16 : | Javascript avec SPARQL (15) |
Sur les autres projets Wikimedia :
* « SPARQL » sur Wikipédia
* « SPARQL » sur le Wiktionnaire

## Présentation [Modifier]

SPARQL (prononcer « sparkle », en anglais « étincelle ») est un langage de requêtes et un protocole qui permet de rechercher, d'ajouter, de modifier ou de supprimer des données RDF disponibles à travers Internet. Son nom est un acronyme qui signifie « SPARQL Protocol and RDF Query Language ».
SPARQL est l'équivalent de SQL, car, comme en SQL, on accède aux données d'une base de données via ce langage de requêtes. Avec SPARQL, on accède aux données du Web des données. Cela signifie qu'en théorie, on pourrait accéder à toutes les données du Web avec ce standard. L'ambition du W3C est d’offrir une interopérabilité non seulement au niveau des services, comme avec les services Web, mais aussi au niveau des données, structurées ou non, qui sont disponibles à travers l'Internet.
SPARQL est un langage de requêtes. Il permet de récupérer des informations depuis des serveurs SPARQL (ou endpoint SPARQL), aussi appelés triplestore. Parmi ces triplestores, on peut citer 4Store, Sesame, Jena et bien d'autres.
En général, on utilise SPARQL conjointement à un autre langage de programmation. Un couple PHP/4Store permet de concevoir des pages web dynamiques et de stocker les données dans une base de données 4Store.
Énormément d’applications actuelles utilisent des bases de données avec le langage SQL. SPARQL 1.1 offre le même usage que SQL, mais en respectant les standards du W3C pour transmettre des données à travers le réseau. L'avantage est qu'une application pourra en théorie interroger à l'avenir n’importe quel serveur SPARQL sans se soucier du constructeur de la base de données.
Autre avantage : SPARQL permet de découvrir la structure d'une base de données. Cela servira à l'avenir à des agents (machines) sur le Web qui pourront ainsi découvrir les données disponibles à travers le Web pour répondre à des questions complexes. SPARQL ouvre ainsi les portes au Web des données (Linked Data), qui permettra à l'homme et à la machine de mieux interpréter les informations à travers le Web, sans service intermédiaire comme Google.

## Objectifs [Modifier]

* Interroger un triplestore avec SPARQL
* Développer une application PHP/SPARQL
* Installer un triplestore

## Niveau et prérequis conseillés [Modifier]

Leçon de niveau 15.
Les travaux pratiques associés à cette leçon peuvent être redondants avec d'autres leçons (PHP, Linux) mais elle permet de mettre en œuvre progressivement les connaissances indispensables pour utiliser SPARQL.
Les travaux pratiques sont de 2 types :
* Pour installer correctement un serveur et un poste de travail par un débutant : Ces exercices ne font que survoler les connaissances pour mettre en œuvre SPARQL. Un débutant avec Linux ou PHP peut ainsi faire ces TPs.
* Pour apprendre à développer avec PHP et SPARQL : Ces TPs seront indiqués à faire au sein de la leçon.
Pour approfondir le cours et les TPs :
* HTML
* PHP

## Référents [Modifier]

Ces personnes sont prêtes à vous aider concernant cette leçon :
* Karima Rafes