Bénéfices clés des technologies du web de données 2/2 – absence de modèle, raisonnement

Bénéfices clés des technologies du web de données 2/2 – absence de modèle, raisonnement

Dans la première partie de cette étude sur les avantages des technologies du web de données – que je valorise au sein de la société Sparna, j’avais étudié ce qui fait leur essence, leur « principe actif », c’est-à-dire les mécanismes de publication de données dans un environnement distribué. Je continue ici l’analyse sur deux autres aspects qui font l’originalité de ces approches : l’absence de modèle de données et les possibilités offertes par le raisonnement.

 

Le schéma de données, quel schéma de données ?

 

Facilite les phases de prototypage

Dans les approches à base de RDF+SPARQL, on n’a pas besoin d’avoir un schéma de données pour commencer à travailler. On a juste besoin des données. Le schéma peut venir après. « Data first, model after ». C’est une approche « bottom-up », là où les SGBD+SQL ont nécessairement une approche « top-down » : « model first, data after ». Cela permet un prototypage rapide des projets : plus besoin d’attendre d’avoir défini un modèle de base de données avant de faire une première requête.

Intégration de données hétérogènes

Ces absence de schéma, de modèle, dans les bases de données RDF (triplestores) donne la possibilité d’y intégrer des données :

  • hétérogènes : exprimées avec des modèles différents, en ayant ensuite la possibilité de les réconcilier sur un modèle unique si besoin;
  • incomplètes : avec des valeurs manquantes, en ayant la possibilité de repérer ces objets anormaux si besoin;
  • incohérentes : venant de sources différentes qui donnent des informations contradictoires, en ayant la possibilité de repérer ces incohérences et de les corriger si besoin;

Une infinité de points de vue

Zéro schéma signifie aussi une multiplicité de schémas. Les technologies sémantiques permettent d’exprimer les mêmes données suivant plusieurs schémas dans la même base, offrant alors plusieurs « points de vue », plusieurs façons de voir les mêmes données. Et ceci automatiquement avec de l’inférence OWL. Chaque application consommant les données pourra alors s’appuyer sur le schéma qu’elle comprend. On favorise ainsi l’interopérabilité entre applications. Un exemple ? le standard de représentation SKOS permet une représentation simple de systèmes d’organisation de connaissances (thesaurus, arbres de classement, …) , à base de « Concept » qui portent des « prefLabels » (libellés préférentiels). C’est un format d’échange commode, mais inadapté à la représentation de bases de connaissances riches, comme une base de personnes. Il est tout à fait possible de dire « ce que tu appelles une Personne dans ton système je l’appelle également un Concept SKOS, et la propriété foaf:name que tu utilises correspond à la propriété skos:prefLabel SKOS », pour ainsi obtenir une « vue » SKOS d’une base de personnes.

Ce faisant, on permet également de séparer les métadonnées initiales des contenus (riches et compliquées) des catégories de ces contenus pour la diffusion, en fonction des supports ou des publics (souvent plus simples et liées à l’usage). L’exemple classique est l’hôtel rangé dans une catégorie « bon marché » alors que ses métadonnées initiales sont plus complexes : prix par nuit, nombre d’étoiles, labels, piscine, etc.

Flexibilité maximale

Le fait que le schéma ne contraigne pas les données donne une flexibilité et une évolutivité importante au système. On peut rajouter, supprimer, modifier un attribut ou une classe à la volée. On peut modifier le schéma, sans toucher aux données. On peut même changer de schéma facilement. Prenons un cas d’intégration de données : une application intégrant une source de données externe avec ses propres données, et se retrouvant confronté au cas où cette source de données change de format et de modèle :

  • dans le monde du XXème siècle, en SGBD+SQL, confronté à un tel cas on doit 1/ modifier le parsing des données qui ont changé, 2/ modifier les tables du système pour prendre en compte ce nouveau format, 3/ modifier les requêtes de l’applicatif.
  • Dans le monde du XXIème siècle, en RDF+SPARQL : 1/ pas de parsing à modifier (les données arrivent toujours en RDF), 2/ pas de schema à modifier (il n’y en a pas) et 3/ il faut toujours modifier les requêtes de l’applicatif… plus qu’un 1/3 du travail. Et encore, il est possible, le temps de modifier les requêtes, d’ajouter de l’inférence pour recréer les données dans l’ancien modèle à partir du nouveau, de façon à ce que les requêtes continuent à répondre.

 

Le raisonnement, ou les manipulations automatiques des données

Réconciliation

Le raisonnement est la capacité des outils RDF à déduire automatiquement de nouvelles informations à partir des informations existantes. Notons bien que ces capacités de raisonnement ne sont ni proposées par tous les outils RDF, ni forcément utiles dans tous les contextes. Elles vont par exemple permettre de réconcilier les données hétérogènes sur un modèle commun : « Ensemble des personnes = ensemble des contacts qui viennent de mon répertoire de téléphone + ensemble de mes contacts dans les réseaux sociaux ».

Classification

Le même mécanisme est utilisé pour des besoins plus proches de la classification (« repurposing » de contenu), pour définir les ensembles d’objets dans des points de vue multiples, tel qu’évoqué plus haut. On peut par exemple avoir d’un côté l’ensemble des objets « Hébergements », et de l’autre l’ensemble des objets « Hôtels pas chers » défini comme « l’ensemble des objets Hébergements qui sont de type hôtel et ont un prix par nuit inférieur à 60 euros ». Le deuxième ensemble sera calculé à partir du premier, automatiquement.

Inférence

L’inférence permet de précalculer des liens ou des données qui facilitent l’écriture des requêtes et améliorent les temps de réponse. Le total des buts marqués par une équipe de football dans une compétition est calculé comme la somme de tous les buts marqués par cette équipe dans les matchs de cette compétition. La donnée est calculée une fois, et peut ensuite être présentée directement sur la page de l’équipe, il n’y a pas de calcul à faire au moment de l’affichage (voir le site de la coupe du monde de la BBC, réalisé à partir des technologies du web de données en utilisant le raisonnement).

Consistance

L’inférence est aussi ce qui permet de contrôler la consistance par rapport au modèle de données. Car si en RDF il est possible de ne pas avoir de schéma, dans les cas où il y en a un, le moteur d’inférence sera capable de déterminer si les données sont consistantes par rapport à ce schéma ou non.

Conclusion…

Ce travail d’analyse partiel est une synthèse des expériences acquises avec ces technologies, et des lectures spécialisées (le forum answers.semanticweb.com contient beaucoup de réponses intéressantes). Il doit permettre de bien situer les avantages de ces technos pour ne pas en faire une évangélisation aveugle, et de les utiliser au mieux pour résoudre des problèmes concrets. Il y aurait peut-être d’autres avantages à étudier, comme la réutilisation possibles de schémas existants, comme ceux que l’on peut trouver dans le LOV (Linked Open Vocabularies).

De plus en plus de projets vont vouloir soit tirer parti de ce qui est publié librement sur le web de données, soit rationnaliser des intégrations d’API compliquées, ou encore améliorer leurs chaines de traitement et de diffusion de contenus, ouvrir des données de bases auparavant fermées, aligner des référentiels avec du raisonnement, etc… tous ces projets peuvent bénéficier d’une approche basée sur le web de données. Si vous voulez en savoir plus, n’hésitez pas à réagir ici ou à me contacter.

Next Post:
Previous Post:
There is 1 comment for this article
  1. Pingback: Web de données ("Linked Data") : avantages clés | Thomas Francart

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>