Apéro Techno Web sémantique Romain Maragou - Aliou Sow Plan : Introduction Cas d’utilisation chez Canal+ Mise en œuvre Questions ? Introduction Utilise le web existant Ensemble de technologies permettant de : Structurer les informations Les lier Leur ajouter du sens (métadonnée) Passer des pages Web à un index hiérarchisé Favoriser la compréhension des données par des machines Utiliser le langage naturel et avoir une réponse précise Utilisation chez Canal+ Contexte d’utilisation chez Canal+ Base de données Programme Canal+ achète de l’information (Plurimédia) Informations du programme Critiques, notes (Allociné) Etc. … Ajouter de l’information pertinente aux programmes Recherche et recommandations plus précises et plus pertinentes Enrichissement éditorial Enrichir la base de données des programmes Suggérer de l’information supplémentaire sur un programme pour l’enrichir Récupérer des informations (gratuites !) sur d’autres sources de données Problèmes rencontrés : Grande quantité d’informations Performance d’une requête Pertinence de l’information Stade expérimental Exemple enrichissement programme Exemple enrichissement programme Contenu supplémentaire issu du web Exemple enrichissement programme Contenu supplémentaire issu du web Exemple enrichissement programme Exemple enrichissement programme Recommandation et Regroupement de programmes (en cours) Mieux structurer la base de données des programmes Réconciliation de programmes à partir d’un nombre de points communs après enrichissement Enrichir les liens entre les différentes entités Film / Personnage => acteur joue dans film metteur en scène dirige film) Recherche ciblée (en cours) Mieux utiliser la base de données des programmes Mise en avant de programmes plus précise à partir de la consommation d’un abonné Recherche sémantique pour répondre à des questions assez simples Les Films où joue Brad Pitt ? « filmographie Brad Pitt » « Brad Pitt Wikipédia » « Brad Pitt Allociné » « Brad Pitt joue au poker à Las Vegas » « etc. » Recherche ciblée (en cours) Mieux utiliser la base de données des programmes Les Films où joue Brad Pitt ? « Seven » « Inglourious Basterds » « Fight club » ... Mise en œuvre Technologies utilisées – représentation des données Identifiant de Ressource Universelle : URI Langages de représentation des données : Expressivité RDF Langage de base du Web Sémantique Langage de définition de graphe Ensemble de triplets : Prédicat Sujet Objet RDFS Extension de RDF Ajoute des concepts de classes, de sous-classes et de type de propriétés OWL (ontologie) Extension de RDF et RDFS Langage de définition des ontologies Ajoute des concepts de classes équivalentes, de propriétés équivalentes, d’égalité ou de différence de ressources, de contraire, de symétrie et cardinalité. Technologies utilisées – règles et interrogations Règles d’inférence : RIF Langage de requête : SPARQL Web Sémantique Web traditionnel Web sémantique Annotations typées des liens entre les ressources sous forme de triplet « Sujet, Prédicat, Objet » Prédicat Sujet Tennis Objet Tennis Joueur de Rafael Nadal Rafael Nadal nationalité Espagnol Roland Garros Espagnol A gagné Roland Garros Création et peuplement d’une ontologie avec Protégé Protégé Mieux structurer la base de données des programmes Protégé Mieux structurer la base de données des programmes Protégé Mieux structurer la base de données des programmes Apache Stanbol Outil utilisé : Apache Stanbol Mieux utiliser la base de données des programmes Outil open source, ensemble de services de gestion de contenu accessible par web services REST (extension CMS) Fonctionnalités principales : Annotations sémantiques d’information (ajout de métadonnées) Extraction de données et liaison à d’autres informations (privées ou publiques) Personnalisation possible avec un vocabulaire personnel (index Solr) Moteur de requête SPARQL Apache Stanbol – Les différents composants Mieux utiliser la base de données des programmes Apache Stanbol – Les Moteurs et Chaînes d’analyse sémantique Mieux utiliser la base de données des programmes Les Moteurs d’analyse sémantique sont les composants responsables de « la compréhension » du contenu. Tika : permet de convertir le contenu parsé en « text/plain » langid : permet de détecter la langue du texte parsé Ner : permet d’extraire les entités connues (personnes, organisations, lieux ) du texte parsé dbpediaLinking : permet de lier les entités extraites avec celles définies par dbpedia.org Etc. Une Chaîne d’analyse sémantique définit comment le contenu parsé par le « Enhancer » est traité. Donc quels Moteurs d’analyse sémantique sont utilisés et dans quel ordre. Il en existe plusieurs types Apache Stanbol – Enrichissement de données Mieux utiliser la base de données des programmes Utilise une Chaîne de Moteurs d’analyse sémantique pour parser un contenu textuel, l’enrichit avec données connues (personnes, lieues, organisation), propose des liens pour accéder à ses sources de données. Possibilité de créer et/ou configurer des Chaînes d’enrichissement Apache Stanbol – Utilisation de données locales Enrichir la base de données des programmes Création d’un index Solr à partir d’une ontologie custom ou de n’importe quelle donnée structurée (exemple dbpedia): Un index pour stanbol est constitué de 2 parties: org.apache.stanbol.data.site.{nom}-{version}.jar, contenant la configuration générale de l’index (nom, données et champs indexés, etc.) {nom}.solrindex.zip, contenant les données et le schéma de l’index Création du moteur d’enrichissement permettant l’utilisation de cet index, puis intégration dans une chaîne d’enrichissement Mais aussi … Classement, hiérarchisation de données (ex: bibliothèque) Favorise le travail collaboratif dans un domaine (ex: santé) Plus de barrière de la langue (en théorie) Structure des bases de connaissances (ex: DBPedia) Etc … Des Questions ?