SPARQL: Introduction


SPARQL est l’abréviation de Simple Protocol And Rdf Query Language.

Présentation

SPARQL est une Recommandation du W3C de langage de requête pour RDF soutenu par la Plate-forme Talis.
Si vous êtes familiarisés avec SQL, vous allez reconnaitre les mots clés tels que SELECT, DISTINCT, WHERE, FROM, OFFSET et LIMIT, bien que l’usage peut être légèrement différents en SPARQL.
Turtle qui est une forme de la notation RDF , est utilisée dans la clause WHERE, pour définir les conditions que les triplets doivent matcher ou correspondre.

Qu’est-ce SPARQL peut vous donner:

  • Une description RDF complète d’une ou plusieurs ressources des données stockées (en utilisant DESCRIBE)
  • Une sélection des triplets RDF des données stockées (en utilisant CONSTRUCT)
  • Autre modélisation des données RDF différent de la façon dont il sont stockées au début(en utilisant CONSTRUCT)
  • Résultats tabulaires (en SPARQL format XML), telles que celles que vous obtenez d’une requête SQL (en utilisant SELECT)
  • Un résultat booléen (en SPARQL format XML), en utilisant ASK

Qu’est-ce SPARQL ne peut pas vous donner (pour l’instant):

  • Modification des données (mise à jour, supprission …) – SPARQL est un langage de requête en lecture seule (ReadOnly). Pour l’actualisation et l’insertion de données de plate-forme de Talis, voir ChangeSets.
  • COUNT – vous ne pouvez pas utiliser SPARQL pour vous compter les résultats.
  • AVG – ni pour vous donner une moyenne
  • Sous-sélections: il n’y a pas WHERE ... IN ( ... ) , ou WHERE ... NOT IN ( ... )

Formats des résultats

Actuellement, les résultats seront soit SPARQL XML (à partir d’une requête SELECT ou ASK), ou RDF/XML (à partir d’une requête DESCRIBE ou CONSTRUCT). Talis a d’autres travaux pour mettre en œuvre des résultats du RDF dans d’autres formats, tels que RDF/JSON et Turtle.

Formes de requêtes

DESCRIBE

Retourne un graphe RDF des descriptions complètes (contenant toutes les propriétés connues) des ressources recherchées.

Elle ressemble à:

	DESCRIBE <http://example.com/resources/#uri>
	# retourne une seule description - de la ressource identifiée par l'URI donné

Ou

	PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

	DESCRIBE ?resource
	WHERE
	{
		?resource rdfs:label "SPARQL tutorial" .
	}
	# retourne les descriptions de toutes les ressources
	# qui matche avec les conditions de la clause WHERE

Avantages
Quand vous ne savez pas exactement quelles sont les propriétés que vous attendez de la ressource (s) à avoir.

CONSTRUCT

Retourne un graphe de triplets RDF basé sur un modèle de la clause CONSTRUCT avec les données de triplets correspondant à la clause WHERE.

Elle ressemble à:

	PREFIX dc: <http://purl.org/dc/elements/1.1/>
	PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

	CONSTRUCT
	{
	  ?resource rdfs:label ?title .
	}
	WHERE
	{
	  ?resource dc:title ?title .
	}
	#retourne des triplets avec dc:title

Avantages:

  • Récupération des graphiques RDF « sélectif », ne contenant que les propriétés dont vous avez besoin.
  • Remodeler les données en RDF modélisés d’une manière différente:
    • Mapper les données à l’aide de différentes propriétés RDF ou des types de classe.
    • ‘Smushing’ – la fusion des propriétés de plusieurs ressources en une seule ressource.
    • ‘inferencing’ – voir [Ontology Mapping with SPARQL CONSTRUCT]
    • «approfondissement» de la structure du graphe en déplaçant les propriétés d’une ressource liée à une ressource nouvelle.
    • «aplatissement» de la structure du graphe en déplaçant les propriétés d’une ressource accessoire à la ressource cible.

SELECT

Renvoie les résultats sous forme de tabulaire au format XML SPARQL.

Elle ressemble à:

	PREFIX foaf: <http://xmlns.com/foaf/0.1/>

	SELECT ?name ?email
	WHERE
	{
		?person foaf:name ?name ;
				foaf:mbox ?mbox .
	}
	#retourne un resultat sous format tabulaire avec les colonnes 'name' et 'email'

Avantages

  • récupérer des données en XML avec une structure fiable prévisible (pour une utilisation avec XSLT par exemple).RDF/XML a de nombreux moyens de sérialiser les mêmes données.
  • Sélectionner des lignes spécifiques de données, en particulier lorsqu’il est utilisé avec le mot-clé DISTINCT

ASK

Renvoie les résultats sous forme de tabulaire au format XML SPARQL.

Elle ressemble à:

	ASK
	WHERE
	{
		?person  <http://xmlns.com/foaf/0.1/mbox> <example@example.org> .
	}
	#retourne TRUE si une ressource avec cet adresse email comme
	# valeur de la propriété foaf:mbox existe

Avantages

lorsque vous avez besoin seulement de savoir si un graphe RDF correspondant à certaines conditions existant dans la base de données.




You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

2 Responses to “SPARQL: Introduction”

  1. nawel Says:

    Bonjour,
    J’ai une question sur rdf et Sparql. Lorsqu’on a généré un fichier RDF par le biais d’un outil d’annotations textuelles comment faire pour l’interroger avec sparql? le fichier rdf est dans quel format? quel outil utiliser pour faire des requetes en sparql ? et comment faire le lien avec l’outil d’annotation?

    Merci de me répondre

    Nawel

    Université d’Alger
    Algerie

  2. lhou Says:

    Pour interroger ton fichier RDF à l’aide de SPARQL, tu dois avoir l’ontologie utilisé pour générer ton RDF afin de connaitre la structure de tes données RDF pour que tu puisses les interroger.
    Souvent le fichier RDF est en format XML, mais pas toujours, on peut avoir un autre type de format comme N3 (notation 3), Turtle, N-Triples.
    Pour l’outil, moi personnellement j’utilise un outil académique développer en Java, c’est : Twinkle

Leave a Reply