« SPARQL Protocol and RDF Query Language/Système d'implication » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Changement de type cosmétique
m Relecture
Ligne 1 :
{{ébauche informatique}}
{{Chapitre
| idfaculté = informatique
Ligne 5 ⟶ 4 :
| titre_leçon = SPARQL
| numéro = 9
| niveau = 130
| précédent = [[../Requêtes d'exportation/]]
| suivant =
}}
On a vu qu'unque triplestoredes triplestores (ou basebases de données RDF) metmettent en œuvre certaines caractéristiques qui les rendent très attractifs pour certains types d'applications. Les données ne sont plus liées à des schémas statiques, car sesles schémas sont contenus directement au sein des données. On insère ces données, comme on l'a vu, via des requêtes d'écriture SPARQL ou à travers des importations de sources RDF via les outils de sauvegarde et d'importation de la base de données. <br />
 
Cependant, la caractéristique la plus intéressante d'un triplestore est la possibilité de mettre en œuvre un système d'implication (en anglais, the entailment regime).
On a vu qu'un triplestore (ou base de données RDF) met en œuvre certaines caractéristiques qui les rendent très attractifs pour certains types d'applications. Les données ne sont plus liées à des schémas statiques car ses schémas sont contenus directement au sein des données. On insère ces données, comme on l'a vu, via des requêtes d'écriture SPARQL ou à travers des importations de sources RDF via les outils de sauvegarde et d'importation de la base de données. <br />
Cependant la caractéristique la plus intéressante d'un triplestore est la possibilité de mettre en œuvre un système d'implication (en anglais, the entailment regime).
 
Le système d'implication au sein d'un triplestore permettra deux choses :
* faire des déductions sur les [[w:inférence|inférences]] contenues dans la base de données par des agents intelligents
* détecter les [[w:implication (pragmatique)|implications]] incohérentes au sein des données, c'est-à-dire détecter les erreurs d'intégrité des données.
 
Le système d'implication est l'équivalent de ce que l'on nomme les mécanismes d'[[w:Intégrité_(base_de_données)|intégrité]] au sein d'une base de données relationnelle. Ce chapitre va essayer de vous expliquer cette nouvelle approche, qui servira de base au développement de l'intégrité des données RDF.
 
 
== Système d'implication ==
=== Définitions ===
Les ontologies du Web sémantique, comme [[w:Resource Description Framework#Vocabulaires_RDF|le vocabulaire RDF]], [[w:RDFS|RDFS]] ou encore [[w:Web Ontology Language|OWL]] (Web Ontology Language), fournissent des éléments de base pour la définition d'[[w:Ontologie (informatique)|ontologies]] ou de vocabulaires destinés à structurer des ressources [[w:Resource Description Framework|RDF]]. Avec ces ressources structurées dans un [[w:triplestore|triplestore]], vous pouvez utiliser le langage de requêterequêtes [[w:SPARQL|SPARQL]] pour les atteindre à travers le [[w:Web|Web]].
 
{{Définition
| titre = Un système d'implication
| contenu =
Un Systèmesystème d'implication (Regimeentailment Entailmentregime) définit :
* la description des implications utiliséeutilisées
* les requêtes considérées comme bien formées
* les graphes considéréesconsidérés comme bien forméesformés
* les erreurs à leverrelever si les requêtes ou les graphes ne respectent pas les implications du système.
 
Un système d'implication est la somme des implications de RDFS, des implications de OWL, etc.
Ligne 37 ⟶ 34 :
 
{{remarque|contenu=
Chaque ontologie (RDF, RDFS, OWL, etc.) peut définir ses propres implications qui vont s'ajouter au système d'implication à condition que le triplestore soit implémenté pour respecter cette ontologie. Pour le moment, seules les implications RDF et RDFS commencent à être implémentéimplémentées de manière expérimentale.
}}
 
Ligne 46 ⟶ 43 :
 
=== Différences entre les systèmes d'implication ===
Pour illustrer les différences entre des implicationimplications simples, RDF et RDFS, examiner les données suivantes :
{|class="wikitable"
|-
Ligne 92 ⟶ 89 :
</pre>
 
De toute évidence, ex:dog1 est une réponse à cause du triplet (1). Intuitivement, on peut s'attendre à ce que ex:cat1 soit aussi une réponse parce qu'il est un chat (2) et tous les chats sont des animaux (3). Même ex:cat2 est un animal parce qu'il est hébergé par par un zoo (5) et tout ce qui est hébergé par un zoo est un animal (4).
 
Cependant, sans implications RDF ou RDFS, vous n'aurez que la réponse suivante à la requête SPARQL :
{| class="wikitable"
! scope=col | animal
Ligne 101 ⟶ 98 :
|}
 
Ici, seul le triplet (1) répond à la condition de la requête, car un système qui n'utilise aucune implication ne procédera à aucune des étapes de raisonnement qui sont nécessaires pour trouver ex:cat1 et ex:cat2 qui sont des animaux.
 
{{remarque|contenu=
La majorité des triplestores n'ont aucun système d'implication, pour deux raisonraisons :
# [http://www.w3.org/TR/2011/WD-sparql11-entailment-20110512/#bgpMatchingExtensions la recommandation] n'est pas encore arrêtée
# l'attention des développeurs est surtout dirigédirigée pour le moment sur l'optimisation du temps de réponse d'une requête SPARQL.
}}
 
==== Avec les implications de RDF ====
Les recommandations de RDF contiennent l'ontologie de base que devradevront contenir les triplestores.triple­stores, Parpar exemple avec ''rdf:type'' ou encore ''rdf:Property''. Les implications RDF permettent d'obtenir quelques inférences, mais pas celles qui sont requises pour obtenir "ex:cat1 et ex:cat2 sont des animaux".
 
Par contre, regardervoir l'exemple de requête suivantesuivant :
Les recommandations de RDF contiennent l'ontologie de base que devra contenir les triplestores. Par exemple avec ''rdf:type'' ou encore ''rdf:Property''. Les implications RDF permettent d'obtenir quelques inférences mais pas celles qui sont requises pour obtenir "ex:cat1 et ex:cat2 sont des animaux".
 
Par contre regarder l'exemple de requête suivante :
<source lang="sql">
SELECT ?prop
Ligne 126 ⟶ 122 :
|}
 
Sans implication, la requête donnerait une réponse vide, mais sous implication RDF, le triplet (5) peut servir à déduire que zoo:host est une propriété du type ex:zoo1 et ainsi servir de solution à cette requête SPARQL.
 
==== Avec les implications de RDFS ====
Ligne 134 ⟶ 130 :
Voici le raisonnement pour trouver :
* ex:cat1 : le triplet 3 indique que les chats sont des animaux et le triplet 2 indique que ex:cat1 est un chat donc '''ex:cat1 est un animal'''
* ex:cat2 : le triplet 4 indique que la propriété zoo:host attend uniquement des objets de type Animalanimal et le triplet 5 indique que ex:cat2 est une valeur de la propriété zoo:host donc, si le graphe est bien formé, que ex:cat2 est un animal.
 
{{remarque|contenu=
Vous remarquerez que ex:cat2 n'est pas défini comme de type chat,. Le système peut uniquement déduire qu'il est un animal.}}
 
Voici le résultat final de la requête "qui est un animal ?" à condition que votre triplestore implémente les implications RDF et RDFS :
Ligne 151 ⟶ 147 :
 
== A suivre ==
La recommandation SPARQL lecture et écriture 1.1 est assez stable, bien que non encore validée, mais la partie qui concerne [http://www.w3.org/TR/sparql11-entailment/ le système d'implication dans SPARQL 1.1] est loin d'être stabilisée. La raison est qu'il faut au moins une (ou deux) version(s) implémentée(s) de la recommandation pour la valider. Le logiciel 4SR que nous utiliserons dans un TP est l'une des versions qui estsont en cours d'implémentation.
 
Mais, même si la recommandation n'est pas stable, le concept d'implication est présent partout, donc il y a fort à parier que ce concept figurefigurera encore dans la version validée. C'est pour cela qu'il figureest présent dans ce chapitre et qu'il vous permettra de lire la documentation du W3C et des triplestores qui commencent à utiliser ce concept.
 
De plus, les concepts d'ontologies sont très complexes à appréhender et le fait de comprendre la finalité exacte d'une ontologie permet de relativiser son utilisation. Il est souvent contre -productif d'utiliser des ontologies extrêmement complexes qui exploitentexploitant des implications qui ne seront pas développerdéveloppées avant bien longtemps au sein de triplestores dans le monde réel.
 
Évidemment, cette leçon évoluera au rythme des implémentations des triplestores qui respectent les recommandations et nous irons donc au même rythme pour décrire l'utilisation des ontologies.
Ligne 166 ⟶ 162 :
| idfaculté = informatique
| précédent = [[../Requêtes d'exportation/]]
| suivant =
}}