« SPARQL Protocol and RDF Query Language/Requêtes d'écriture » : différence entre les versions

Une page de Wikiversité, la communauté pédagogique libre.
Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 15 : Ligne 15 :


Nous allons décrire ici les requêtes qui fonctionnent dans le logiciel 4Store (utilisé dans les TP de cette leçon) et qui sont aussi définies dans la recommandation SPARQL 1.1 (la personne qui coordonne la recommandation de SPARQL 1.1 et aussi le principal développeur de 4Store).
Nous allons décrire ici les requêtes qui fonctionnent dans le logiciel 4Store (utilisé dans les TP de cette leçon) et qui sont aussi définies dans la recommandation SPARQL 1.1 (la personne qui coordonne la recommandation de SPARQL 1.1 et aussi le principal développeur de 4Store).

== Un silo de données ==

Un silo de données ou base de données RDF (etc.) est un conteneur de graphes RDF géré par un seul service. Un silo contient un graphe (sans nom) par défaut et zéro ou plusieurs emplacements nommés tenant pour contenir des graphes nommés. Un silo a un service SPARQL (endpoint SPARQL en anglais) qui traite les requêtes. Grâce à SPARQL 1.1, on peut maintenant spécifier dans une requête le graphe auquel doit s'appliquer cette requête. Si une requête ne contient pas de graphe identifié, la requête s'applique au graphe par défaut.

{{Remarque|contenu=
Un graphe par défaut est implémenté de manière différente dans chaque logiciel. Il existe encore des subtilités. Il vaut mieux toujours travailler dans des graphes nommés, cela vous évitera de très mauvaise surprise.
}}

Vous pouvez ajouter ou supprimer un graphe.

{{Remarque|contenu=
SPARQL 1.1 n'est pas encore intégralement implémenté. Les développeurs commencent par les fonctions les plus simples et n'ont souvent pas encore développé les requêtes d'administration de graphes. Ainsi pour supprimer un graphe, il suffit juste de supprimer tous les triplets d'un graphe pour supprimer ce graphe ou il suffit d'insérer au moins un triplet dans un graphe pour créer ce nouveau graphe.
}}

Les fonctions qui fonctionnent pour le moment sont les principales :
* L'insertion de triplets
* La suppression de triplets

Il existe d'autres fonctions mais différentes d'un logiciel à un autre. Nous étudierons ici que les requêtes "INSERT DATA" et "DELETE DATA". Dans les TP, vous pourrez voir d'autres fonctions et apprendre à les utiliser à travers leurs API PHP disponibles.


== INSERT DATA ==
== INSERT DATA ==


=== Syntaxe ===
=== Syntaxe ===
Une requête d'insertion est en 3 parties:
*les préfixes
*l'adresse du graphe de destination
*les triplets à enregistrer
<pre>
#Les préfixes
PREFIX dc: <...>
...


#Clause INSERT DATA
INSERT DATA
{
#IRI du graphe qui contiendra les triplets
GRAPH <...> {

#les triplets
...

}
}

</pre>


=== Exemple ===
=== Exemple ===
Ligne 31 : Ligne 72 :


=== Syntaxe ===
=== Syntaxe ===
Une requête de suppression est en 3 parties:
*les préfixes
*l'adresse du graphe où se trouve les triplets à supprimer
*les triplets à supprimer ou le masque des triplets à supprimer
<pre>
#Les préfixes
PREFIX dc: <...>
...

#Clause INSERT DATA
DELETE DATA
{
#IRI du graphe qui contient les triplets
GRAPH <...> {

#les triplets ou le masque de triplet
...

}
}


</pre>


=== Exemple ===
=== Exemple ===

Version du 6 octobre 2011 à 13:06

Logo de la faculté
Cette page est une ébauche concernant l’informatique. Avant de recréer une ressource du même type, essayez d'abord de compléter celle-ci ; si c'est impossible, remplacez son contenu par le vôtre. Si vous êtes l'auteur(e) de cette page et que vous souhaitez la continuer, retirez ce bandeau.
Début de la boite de navigation du chapitre
Requêtes d'écriture
Icône de la faculté
Chapitre no 5
Leçon : SPARQL Protocol and RDF Query Language
Chap. préc. :Requêtes de lecture
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « SPARQL : Requêtes d'écriture
SPARQL Protocol and RDF Query Language/Requêtes d'écriture
 », n'a pu être restituée correctement ci-dessus.

Dans la première recommandation de SPARQL (1.0) en 2008, il n'était pas encore question de faire des requêtes en écriture. Cependant dès 2008, des implémentations commencent à apparaître pour écrire des triplets à travers une requête comme une requête SQL et dés lors, les développeurs qui désiraient faire des services Linked Open Data, ont trouvé enfin le moyen d'en faire sans écrire du RDF/XML ou définir une ontologie.

Cependant, il faut garder à l'esprit que l’interopérabilité est l'objectif final de SPARQL pour faire avancer la roadmap du Web Sémantique ainsi l'utilisation de prédicats fantaisistes c'est-à-dire d'ontologies fantaisistes n'est pas conseillée à terme. Dans les prochains mois ou années, une couche d'intégrité va apparaître pour vous aider à respecter ce critère d'interopérabilité. En attendant dans ce cours, nous vous donnons les moyens de faire les choses comme vous le souhaitez avec vos propres prédicats mais si vous ne voulez pas tout refaire dans 2 ans, gardez à l'esprit qu'un bon prédicat est un prédicat qui existe déjà dans une ontologie documentée (et si possible, simple).

Nous allons décrire ici les requêtes qui fonctionnent dans le logiciel 4Store (utilisé dans les TP de cette leçon) et qui sont aussi définies dans la recommandation SPARQL 1.1 (la personne qui coordonne la recommandation de SPARQL 1.1 et aussi le principal développeur de 4Store).

Un silo de données

Un silo de données ou base de données RDF (etc.) est un conteneur de graphes RDF géré par un seul service. Un silo contient un graphe (sans nom) par défaut et zéro ou plusieurs emplacements nommés tenant pour contenir des graphes nommés. Un silo a un service SPARQL (endpoint SPARQL en anglais) qui traite les requêtes. Grâce à SPARQL 1.1, on peut maintenant spécifier dans une requête le graphe auquel doit s'appliquer cette requête. Si une requête ne contient pas de graphe identifié, la requête s'applique au graphe par défaut.


Vous pouvez ajouter ou supprimer un graphe.


Les fonctions qui fonctionnent pour le moment sont les principales :

  • L'insertion de triplets
  • La suppression de triplets

Il existe d'autres fonctions mais différentes d'un logiciel à un autre. Nous étudierons ici que les requêtes "INSERT DATA" et "DELETE DATA". Dans les TP, vous pourrez voir d'autres fonctions et apprendre à les utiliser à travers leurs API PHP disponibles.

INSERT DATA

Syntaxe

Une requête d'insertion est en 3 parties:

  • les préfixes
  • l'adresse du graphe de destination
  • les triplets à enregistrer
#Les préfixes
PREFIX dc: <...>
...

#Clause INSERT DATA
INSERT DATA
{ 
#IRI du graphe qui contiendra les triplets
GRAPH <...> { 

   #les triplets
   ...

   }
}

Exemple

Exercice

DELETE DATA

Syntaxe

Une requête de suppression est en 3 parties:

  • les préfixes
  • l'adresse du graphe où se trouve les triplets à supprimer
  • les triplets à supprimer ou le masque des triplets à supprimer
#Les préfixes
PREFIX dc: <...>
...

#Clause INSERT DATA
DELETE DATA
{ 
#IRI du graphe qui contient les triplets
GRAPH <...> { 

   #les triplets ou le masque de triplet
   ...

   }
}

Exemple

Exercice