SPARQL


SPARQL

SPARQL (prononcé "sparkle", en anglais "l'étincelle"[1]) est un langage de requête et un protocole qui permettra de rechercher, d'ajouter, de modifier ou de supprimer des données RDF disponible à travers Internet. Son nom est un acronyme qui signifie SPARQL Protocol and RDF Query Language[2].

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ête alors qu'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 pas seulement aux niveaux des services, comme avec les services Web, mais aussi aux niveaux des données structurées ou non qui sont disponible à travers l'Internet.

Ce standard a été créé par le groupe de travail DAWG (RDF Data Access Working Group) du W3C (Consortium World Wide Web). SPARQL est considéré comme l'une des technologies clés du Web sémantique et le 15 Janvier 2008, la version 1.0 est devenu une recommandation officielle du W3C[3]. La version 1.1 permettra d'enregistrer des données et de fusionner des données de sources différentes. Le dernier appel à contribution a eu lieu donc la version 1.1 sera bientôt candidat à la recommandation pour devenir un nouveau standard du Web.

Les implémentations de SPARQL au sein de triplestores se multiplient.[4] "SPARQL fera une énorme différence», selon Tim Berners-Lee dès mai 2006.[5]

Sommaire

Bénéfices

Les données touchent tous les domaines d’activités.

Voici des exemples relatifs à l'utilisation de SPARQL pour des données gouvernementales, culturelles, scientifiques, environnementales, économiques et d’infrastructure.

Gouvernementales

Les Etats diffusent des données qu’il est très coûteux de structurer par eux-mêmes ; ils organisent donc des concours pour le faire à leur place. Cependant, seule une poignée d’entreprises ou d’associations sont en mesure de répondre à ces concours, excluant la majorité des citoyens, qui n’ont pas les moyens de travailler bénévolement à la mise à disposition des données qui les concernent.

L’extension Médiawiki Mediawiki illustre la capacité de fabriquer n’importe quel rendu à partir des données disponibles à travers SPARQL comme les données du projet Data.gov aux Etats-Unis.

Exemple : Où ont eu lieu les tremblements de terre des 7 derniers jours sur la planète ? On utilise ici Google Maps et les données de Data.gov. [1]

Voici un autre exemple pour trouver sur une carte les écoles les plus proches de son domicile avec les données de Data.gov.uk (version britannique de Data.gov) qui offre justement toutes les données relatives aux écoles sur son territoire.

Culturelles

Les grands médias, les musées et autres centres culturels sont submergés par les nouveaux médias. Ils ne peuvent plus eux-mêmes développer tous les services qu’il faudrait proposer pour satisfaire leurs clients et usagers. Certains ont compris l’intérêt de SPARQL, comme la BBC, qui bascule régulièrement ses données dans des triplestores, dont certains sont publiques.

Exemple : Afficher la liste des épisodes de la série Doctor Who de la BBC. [2]

De la même manière, France Télévisions pourrait rendre toutes ses données accessibles pour laisser la possibilité aux téléspectateurs de créer de nouveaux services culturels.

Par exemple, durant une émission sur les œuvres d’art sur une chaîne de France Télévisions, on pourrait synchroniser l’émission à une application sur sa tablette PC avec les données de la Bibliothèque Nationale de France (BnF), avec les peintures du Louvre et du musée du Quai Branly. DBpedia, un projet exploratoire utilisant Wikipédia, a déjà commencé à mettre des données en ligne de Wikipédia. Malheureusement les données de DBpedia n'est pas synchrone avec les contributions de Wikipédia et les contributeurs ne peuvent intervenir dynamiquement sur la structuration des données mises en ligne.

Exemple : Quelles sont les peintures de musées disponibles dans Wikipédia (à travers DBpedia) ? [3]

Pour terminer, voici un exemple pour démontrer la combinaison infinie avec des œuvres culturelles. Exemple : durant un documentaire de Steven Spielberg, proposer aux spectateurs la liste des VOD de ce réalisateur. [4]

A l’avenir, nous pourrons même afficher la description de chaque poisson durant la rediffusion des documentaires du commandant Cousteau. Les téléspectateurs pourront associer les poissons dans un documentaire aux fiches qu’ils trouveraient au sein des bases de données du Muséum national d’histoire naturelle et de Wikipédia.

Scientifiques

Dans l’un des premiers articles de Tim Berners-Lee sur le sujet, l’objectif final du Web sémantique est d’offrir la capacité à des agents (programme informatique autonome) de trouver les incohérences dans une nouvelle théorie. Un scientifique gagnera ainsi à l’avenir un temps infini à proposer de nombreuses hypothèses qui seront éprouvées par des machines parcourant toutes les connaissances disponibles. Cela deviendra indispensable, car il est humainement impossible de lire tous les documents dans un domaine scientifique.

A l’avenir, il sera donc indispensable de stocker et partager toutes les données scientifiques. Certains projets commencent à le faire, comme les banques de description des génomes, ou l’office des statistiques de l’Union européenne.

Exemple : Statistiques sur les aéroports en Europe, pour étudier leur efficacité. [5]

Environnementales & économiques

On peut déjà par exemple créer une application mobile pour référencer les codes-barres des produits au sein d’un wiki sur le Web afin d’indiquer les ingrédients dans chaque produit. [6]

Grâce à la flexibilité d'un wiki, les contributeurs pourront eux-mêmes créer les propriétés comme l’origine d’un produit, le calcul de l’empreinte carbone, quantité d’emballage, etc. En un mot, les consommateurs vont devenir acteur de leurs consommations.

Imaginez que tous les consommateurs puissent scanner un produit avant son achat pour savoir s’il satisfait à des critères écologiques indiqués par eux-mêmes !

Caractéristiques

SPARQL est adapté à la structure spécifique des graphes RDF, et s'appuie sur les triplets qui les constituent. En cela, il est différent du classique SQL (langage de requête qui est adapté aux bases de données de type relationnelles), mais s'en inspire clairement dans sa syntaxe et ses fonctionnalités. Il a aussi quelques traits de ressemblance mineurs avec Prolog.

SPARQL permet d'exprimer des requêtes interrogatives ou constructives :

  • une requête SELECT, de type interrogative, permet d'extraire du graphe RDF un sous-graphe correspondant à un ensemble de ressources vérifiant les conditions définies dans une clause WHERE ;
  • une requête CONSTRUCT, de type constructive, engendre un nouveau graphe qui complète le graphe interrogé.

Par exemple sur un graphe RDF contenant des informations généalogiques, on pourra par une requête SELECT trouver les parents ou grands-parents d'une personne donnée, et par des requêtes CONSTRUCT ajouter des relations frère-sœur, cousin-cousine, oncle-neveu, qui ne seraient pas explicitement déclarées dans le graphe initial.

Exemple

Exemple de requête SPARQL retournant une liste de photos avec le nom de la personne qu'elles représentent et une description, à partir d'une base de données de type RDF utilisant l'ontologie (vocabulaire) FOAF (une des plus connues et utilisée pour décrire les personnes et les liens entre elles).

  • Extrait du graphe RDF (écriture XML) d'exemple :
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:foaf="http://xmlns.com/foaf/0.1/"
  xmlns:rss="http://purl.org/rss/1.0/"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
        <foaf:Person rdf:about="http://example.net/Paul_Dupont">
                <foaf:name>Paul Dupont</foaf:name>
                <foaf:img rdf:resource="http://example.net/Paul_Dupont.jpg"/>
                <foaf:knows rdf:resource="http://example.net/Pierre_Dumoulin"/>
        </foaf:Person>
        <foaf:Person rdf:about="http://example.net/Pierre_Dumoulin">
                <foaf:name>Pierre Dumoulin</foaf:name>
                <foaf:img rdf:resource="http://example.net/Pierre_Dumoulin.jpg"/>
        </foaf:Person>
        <foaf:Image rdf:about="http://example.net/Paul_Dupont.jpg">
                <dc:description>Photo d'identité de Paul Dupont</dc:description>
        </foaf:Image>
        <foaf:Image rdf:about="http://example.net/Pierre_Dumoulin.jpg">
                <dc:description>Photo d'identité de Pierre Dumoulin</dc:description>
        </foaf:Image>
</rdf:RDF>


  • La requête SPARQL :
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT DISTINCT ?nom ?image ?description
WHERE {
        ?personne rdf:type foaf:Person .
        ?personne foaf:name ?nom .
        ?image rdf:type foaf:Image .
        ?personne foaf:img ?image .
        ?image dc:description ?description
}

On remarque la déclaration des espaces de noms en début, suivis de la requête proprement dite. Le nom des variables est précédé d'un point d'interrogation ?.

La ligne SELECT permet de sélectionner l'ensemble des tuples, ou lignes de variables (nom, image, description) correspondant aux contraintes de la clause WHERE.

La première ligne de la clause WHERE se lit : la variable personne est de type Person au sens de l'ontologie FoaF. La seconde ligne permet de définir la variable nom en tant que propriété name de la variable personne.


  • Le résultat SPARQL :
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
        <head>
                <variable name="nom"/>
                <variable name="image"/>
                <variable name="description"/>
        </head>
        <results ordered="false" distinct="true">
                <result>
                        <binding name="nom">
                                <literal>Pierre Dumoulin</literal>
                        </binding>
                        <binding name="image">
                                <uri>http://example.net/Pierre_Dumoulin.jpg</uri>
                        </binding>
                        <binding name="description">
                                <literal>Photo d'identité de Pierre Dumoulin</literal>
                        </binding>
                </result>
                <result>
                        <binding name="nom">
                                <literal>Paul Dupont</literal>
                        </binding>
                        <binding name="image">
                                <uri>http://example.net/Paul_Dupont.jpg</uri>
                        </binding>
                        <binding name="description">
                                <literal>Photo d'identité de Paul Dupont</literal>
                        </binding>
                </result>
        </results>
</sparql>

Références

  1. Jim Rapoza, « SPARQL Will Make the Web Shine », eWeek, 2 May 2006. Consulté le 2007-01-17
  2. (en) Toby Segaran, Programming the Semantic Web, O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472, 2009 (ISBN 978-0-596-15381-6), p. 84 
  3. W3C Semantic Web Activity News - SPARQL is a Recommendation, W3.org, 2008-01-15. Consulté le 2009-10-01
  4. SparqlImplementations - ESW Wiki, Esw.w3.org. Consulté le 2009-10-01
  5. Reuters : Berners-Lee looks for Web's big leap, zdnet.co.uk (22 May 2006). Consulté le 2007-01-17.

Liens externes

Sur les autres projets Wikimedia :


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article SPARQL de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • SPARQL — (рекурсивный акроним от англ. SPARQL Protocol and RDF Query Language)  язык запросов к данным, представленным по модели RDF, а также протокол для передачи этих запросов и ответов на них. SPARQL является рекомендацией консорциума W3C[1]… …   Википедия

  • SPARQL — ist eine graph basierte Anfragesprache für RDF. Der Name ist ein rekursives Akronym für SPARQL Protocol And RDF Query Language. Die RDF Data Access Working Group (DAWG) des World Wide Web Consortium trieb die Entwicklung und Standardisierung von… …   Deutsch Wikipedia

  • SPARQL — Saltar a navegación, búsqueda SPARQL es un acrónimo recursivo del inglés SPARQL Protocol and RDF Query Language. Se trata de una recomendación para crear un lenguaje de consulta dentro de la Web semántica que, aunque en 2005 está en proceso de… …   Wikipedia Español

  • SPARQL — NOTOC SPARQL (pronounced [cite web | url = http://www.eweek.com/article2/0,1759,1965980,00.asp | title = SPARQL Will Make the Web Shine | author = Jim Rapoza | work = eWeek | date = May 2, 2006 | accessdate = 2007 01 17 ] ) is an RDF query… …   Wikipedia

  • RDFLib — Infobox Software name = RDFLib developer = Daniel Krech latest release version = 2.4.0 latest release date = April 4, 2007 operating system = Cross platform genre = Library license = BSD website = [http://rdflib.net/ http://rdflib.net/] RDFLib is …   Wikipedia

  • RDF query language — A RDF query language is a computer language able to retrieve and manipulate data stored in Resource Description Framework format.SPARQL is emerging as the de facto RDF query language, and is a W3C Recommendation [ [http://www.w3.org/TR/rdf sparql …   Wikipedia

  • Meta Content Framework — Das Resource Description Framework (RDF, engl. (sinngemäß) „System zur Beschreibung von Ressourcen“) bezeichnet eine Familie von Standards des World Wide Web Consortiums (W3C) zur formalen Beschreibung von Informationen über Objekte, sogenannte… …   Deutsch Wikipedia

  • Ressource Description Framework — Das Resource Description Framework (RDF, engl. (sinngemäß) „System zur Beschreibung von Ressourcen“) bezeichnet eine Familie von Standards des World Wide Web Consortiums (W3C) zur formalen Beschreibung von Informationen über Objekte, sogenannte… …   Deutsch Wikipedia

  • OpenLink Software — Inc Type Private Industry Computer software, IT Services Founded 1992 Headquarters Burlington, Massachusetts, USA Key people Kingsley Uyi Idehen, CEO Founder Hugh Wil …   Wikipedia

  • Cypher transcoder — Infobox Software name = Cypher Transcoder caption = Cypher Interface (Web Services API Interface) developer = [http://www.monrai.com Monrai Technologies] latest release version = 1.2 beta latest release date = June 2008 operating system = Cross… …   Wikipedia