330 likes | 465 Views
Médiation et Classification Sémantique dans une Architecture Pair-à-Pair. Nicolas Lumineau (nicolas.lumineau@lip6.fr) Équipe Base de Données du LIP6. Objectif. Elaborer un système de partage de données hétérogènes et distribuées: Autonome Passant à l’échelle Décentralisé
E N D
Médiation et Classification Sémantique dans une Architecture Pair-à-Pair Nicolas Lumineau (nicolas.lumineau@lip6.fr) Équipe Base de Données du LIP6 GdR I3 - SPHERE - 22 juin 05
Objectif • Elaborer un système de partage de données hétérogènes et distribuées: • Autonome • Passant à l’échelle • Décentralisé • Evolutif ( auto-gérable ) • Permettant une localisation efficace des données pertinentes
Métadonnées Métadonnées Métadonnées Métadonnées Métadonnées Contexte PADOUE (1) Projet ACI GRID Une importante masse de métadonnées sémantiquement riches distribuées à travers le monde Une importante masse de données sémantiquement pauvres distribuées à travers le monde
Environnement … hydrologie climatologie océanographie océanologie hydrogéologie météorologie paléoclimatologie Contexte PADOUE (2) • Réseau de partage de métadonnées : • structurées • qui référencent les données • normalisées (norme de publication) • Attributs normalisés • Attributs spécifiques • étiquetées par un ou plusieurs thèmes • Une taxonomie définie les thèmes couverts par le réseau de partage de données • connaissance globale partagée par tous les nœuds Norme Schema
LeSelect SQL Architecture Pair-à-Pair basée sur la médiation de données • Solution Création d’un réseau pair-à-pair non structuré permettant l’interopérabilité d’un grand nombre de médiateurs • Complémentarité Pair-à-Pair / Médiateur Pair-à-Pair : + Large échelle et dynamicité - Données faiblement structurées et langage de requête pauvre (simple mots-clés) Médiateur : + Langage de requête de haut niveau (SQL, Xquery…) • Sources figées et en faible nombre • Sémantique + Vision sémantique du réseau
Plan • Schéma de médiation personnalisé • Architecture pair-à-pair basée sur la médiation • Génération des schémas de médiation • Schéma publié (dédié à l’échange à travers le réseau) • Schéma thématique (dédié à l’interrogation du réseau) • Interrogation du réseau • Organisation sémantique du réseau • Critères sémantiques • Service de classification distribué • Protocole d’insertion de nœuds • Expérimentations & Travaux Connexes • Conclusion
Objectif • Offrir aux utilisateurs du réseau de partage un outil de localisation transparente de données structurées. • Contraintes principales • Absence de coordination entre les fournisseurs de données • Large échelle (grand nombre de sources d’information) • Dynamicité du réseau Finalité: Construire un schéma de médiation personnalisé aux besoins des utilisateurs 1: Découverte du réseau Utilisateur Réseau 2 : Extraction des données Finalité: Récupérer les tuples filtrant la requête Médiateur
Découverte du réseau • Construire un schéma de médiation (schéma thématique) pour un thème donné à partir des schémas disponibles sur le réseau (schéma publié). A Schéma publié de «A» pour thème «H» C publication Source Schéma thématique pour thème «H» Réseau P2P Intégration B Schéma publié de «B» pour thème «H» Utilisateur publication Source Problèmes: 1) Comment publier ses sources ? 2) Comment traiter l’intégration des attributs spécifiques ?
Architecture globale • Un pair représente un organisme • Double rôle : producteur et utilisateur
Enrichissement sémantique des schémas de médiation • Objectifs: • Faciliter l’échange de schémas à travers le réseau • Permettre un traitement efficace des requêtes à venir • Dimensions sémantiques • type • contraintes • thématique • localisation • qualité • description sémantique Dimensions classiques Dimensions supplémentaires
Instanciations Schéma publié Schéma thématique <publishedSchema theme="hydrology" source="//x@A.org/" quality=5> <relation name="Dyke"> <sequence normalized=“yes”> <xs:element name="langCd" type=”string”> <description info=”document language code”/> </xs:element> <xs:element name="countryCd" type=”string”> <description info=”document country code”/> </xs:element> </sequence> <xs:sequence normalized=“no”> <xs:element name="lineage_stat" type=”string”> <description info=”statement of lineage”/> </xs:element> </sequence> </relation>…</publishedschema> <thematicSchema theme="hydrology" freshness=1106129611224 > <relation name="Dyke"> <xs:element name="langCd" type=”string”> <description info=”document language code”/> <source uri="//x@A.org/"/> <source uri="//y@B.org/"/> </xs:element> <element name="countryCd" type=”string”> <description info=”document country code”/> <source uri="//x@A.org/"/> <source uri="//y@B.org/"> <mapping as="countryCd"> </sources> </element> <element name="lineage_stat" type=”string”> <description info=”statement of lineage”/> <source uri=“//x@A.org/“/> </xs:element> </relation> …. </thematicschema> Permet la détection de conflits Permet la réutilisation et le partage des schémas thématiques Permet la résolution des conflits
H Médiateur Génération d’un schéma publié Étape 2: Configurer le médiateur • Définition des wrappers • Définition des vues Étape 1: Récupérer les informations sur le thème de publication Étape 3: Description sémantique des attributs Étape 4: Configurer le service web A Couche de Publication Publier données thème H Publieur Norme de publication Schéma publié de «A» pour thème «H» Service Web Schéma thématique pour thème «H» Réseau Fournisseur Catalogue des descriptions sémantiques Interface Fournisseur Sources Sources
H H Génération d’un schéma thématique (1) • Étape 1: Découverte des schémas publiés associés au thème H Besoin de données sur thème «H» Réseau P2P A Schéma publié de «A» pour thème «H» Service ID de A C D Fournisseur B Utilisateur F Schéma publié de «B» pour thème «H» E Service ID de B G Fournisseur
Génération d’un schéma thématique (2) • Étape 3: Collecte des URLs des services web pertinents • Étape 4: Récupération et Intégration des schémas publiés • Étape 5: Affichage à l’utilisateur du schéma thématique associé au thème H Réseau P2P Besoin de données sur thème «H» A SW Schéma publié de «A» pour thème «H» Service ID de A {IP_A} C D SW Fournisseur Schéma thématique pour thème «H» B Utilisateur SW F Schéma publié de «B» pour thème «H» E Service ID de B {IP_B} G Fournisseur
Algorithme d’Intégration • Processus d’intégration • Détection des conflits • Gestion des conflits • Mémorisation des mappings • Intégration des schémas publiés: • Analyse basée sur le schéma au niveau élément (et non au niveau structure) • Approche linguistique sur la technique de «description matching» • Extraction des mots clés des descriptions d’attributs • Calcul de distance sémantique • Intégration coûteuse: • Structure de contrôle du processus d’intégration basée sur la qualité des schémas publiés • Schémas de même qualité : intégration = union stricte • Schémas de qualités différentes : intégration = analyse linguistique
Traitement adaptatif des requêtes SQL • Quid de la distribution des thèmes ? Pour un thème populaire, risque de construire une connaissance quasi globale du réseau ! • Définition d’un seuillimitant le nombre de sources mémorisées pour un attribut et au-delà duquel le système préfère ne rien mémoriser Traitement de médiateur à médiateur Traitement via le réseau Pair-à-Pair Propagation : Requête résultats médiateur Utilisateur Utilisateur Communication synchrone Ni Nœud Ni Nœud N0 N0 N3 N1 N2 N3 N1 N2 N6 N7 N4 N5 N6 N7 N4 N5 N10 N8 N9 N10 N8 N9 • Seuil évolutif selon la capacité et la charge du médiateur
Optimisation du système • Remarque Performance du système dépend de la rapidité de la localisation des schémas publiés • Proposition Organiser sémantiquement le réseau en fonction du thème des données Réduire la distance logique entre des nœuds stockant des données de même thème Architecture non P2P (avec tous les nœuds interconnectés) Architecture P2P (choix aléatoire des voisins – à la Gnutella) Architecture P2P (choix des voisins tenant compte du contenu sémantique des nœuds)
Plan • Schéma de médiation personnalisé • Architecture pair-à-pair basée sur la médiation • Génération des schémas de médiation • Schéma publié (dédié à l’échange à travers le réseau) • Schéma thématique (dédié à l’interrogation du réseau) • Interrogation du réseau • Organisation sémantique du réseau • Critères sémantiques • Service de classification distribué • Protocole d’insertion de nœuds • Expérimentations & Travaux Connexes • Conclusion
Gestionnaire d’insertion de noeuds • Construire le réseau en déterminant le voisinage logique pertinent pour le nœud voulant se connecter • Problèmes: 1) Qui gère l’insertion des noeuds? 2) Comment ne pas rapprocher logiquement des nœuds physiquement très éloignés ? (représentation sémantique du contenu d’un nœud) Vecteur d’entrée Outil de classification Gestionnaire d’insertion Nœud classe Table de voisinage Outil d’ordonnancement Vecteur de sortie (IPs du voisinage pertinent)
Représentations sémantiques E F G C … A B • Critère de classification • Contenu des données • Critère d’ordonnancement • Approximation de la localisation physique du nœud Taxonomie de thèmes Analyseur de données A 100 100 50 0 50 0 … B C D Vecteur thématique E F G H I données (d1,E,…) (d2,G,…) Ni 5 60 10 10 5 60 Vecteur de localisation N3 N2 N1
d1 Classifieur non supervisé basé sur un réseau de neurones Neural net. V1 V2 … Vn V1 V2 … Vn V1 V2 … Vn V1 V2 … Vn Classe Clj out argmin {di} d2 i=1,…,k dk update Service de classification • Classifieur C’est un algorithme qui permet de regrouper (ou segmenter)une collection de données en différents ensembles, tel que les similarités entre individus d’un groupe donné soient plus importantes que celles entre individus de classes différentes • Exemples: • K-means, cartes auto-organisatrices de Kohonen … Service de classification Classifieur P11 P12 … P1n P’11 P’12 … P’1n V in P21 P22 … P2n P’21 P’22 … P’2n P’k1 P’k2 … P’kn Pk1 Pk2 … Pkn
P71 P72 … P7n P11 P12 … P1n P41 P42 … P4n P21 P22 … P2n P51 P52 … P5n P81 P82 … P8n P61 P62 … P6n P31 P32 … P3n P91 P92 … P9n Vers un service de classification distribué N1 (associé aux classes Cl1,Cl2,Cl3) • Distribution du classifieur et de l’ordonnanceur Attribuer la charge des calculs de la classification à plusieurs nœuds considérés comme stable N2 (associé aux classes Cl4,Cl5,Cl6) Classifieur N3 (associé aux classes Cl7,Cl8,Cl9)
P71 P72 … P7n P11 P12 … P1n P41 P42 … P4n P21 P22 … P2n P51 P52 … P5n P81 P82 … P8n P61 P62 … P6n P31 P32 … P3n P91 P92 … P9n V1 V2 … Vn V1 V2 … Vn V1 V2 … Vn V1 V2 … Vn Insertion d’un nœud dans le réseau (1) N1 (associé aux classes Cl1,Cl2,Cl3) d1 d2 d3 e1 • Étape 1: • Interrogation du classifieur distribué • Récupération des distances sémantiques d1,d2,d3,e1 V N2 (associé aux classes Cl4,Cl5,Cl6) Nœud entrant Classifieur Vecteur thématique V V d4 d5 d6 e2 d4,d5,d6,e2 Cl4 = argmin{di} V e1 e2 e3 N3 (associé aux classes Cl7,Cl8,Cl9) d7,d8,d9,e3 • Étape 2: • Election de la classe gagnante • Construction du vecteur de localisation d7 d8 d9 e3
Insertion d’un nœud dans le réseau (2) N1 (associé aux classes Cl1,Cl2,Cl3) MAJ (Cl4) • Étape 3: • Notification de la classe gagnante • Envoi du vecteur de localisation à N2 N2 (associé aux classes Cl4,Cl5,Cl6) Nœud entrant MAJ (Cl4) Ordonnanceur Cl4 N1 N2 N3 e1 e2 e3 IP1 4 10 6 e1 e2 e3 {IP2, IP6, IP10,…} 8 15 IP2 6 … … … … • Étape 4: • Tri des nœuds mémorisés comme appartenant à Cl4 • Récupération des k premières adresses N3 (associé aux classes Cl7,Cl8,Cl9) MAJ (Cl4)
Construction de la table de voisinage • Trouver un bon compromis entre des liens de voisinage intra et inter clusters Pour une table de voisinage de p adresses - - - - - - - - - - - Les k premiers nœuds du classement Intra-cluster Grille de neurones p - k nœuds parmi les clusters voisins Inter-cluster
Stratégies de clusterisation Clusterisé optimisé Clusterisé Gnutella
Maintenance du système • Évolution de la taxonomie • En cas de modification de la taxonomie, il est important de pouvoir répercuter ces modifications sur les vecteurs thématiques • Régénération du Vecteur Thématique • Dès que de nouvelles données sont insérées dans les sources, le Vecteur Thématique doit être mis à jour. • Récupération d’un nouveau voisinage
Modèle de coût • basé sur: • L’efficacité du traitement des requêtes de localisation • Nombre moyen de rebonds nécessaires à la localisation des nœuds pertinents • Courbes de Rappel / précision • Coût de maintien du système • Échanges de messages supplémentaires • Stage de DEA : • Comparaison de stratégies de clusterisation de réseau P2P par Julien Tanguy
Expérimentations • Tests effectués • Par prototypage • Simulateur réparti (communication UDP) • Agents simulant les utilisateurs et les fournisseurs • Données fictives • Pondération aléatoire pour simuler les distances physiques • Pour l’instant, jusqu’à 1000 nœuds (limite due aux nombres d’instances de médiateurs par noeud)
Performances (1) • Rappel / Précision (moyenne sur 10 requêtes sur un réseau de 200 pairs)
Travaux connexes • P2P dédié au partage de données • PeerDB • Gossiping • Edutella • Piazza • PIER • PinS • … • P2P & Clustering • Semantic overlay network • Semantic small world • pSearch • …
Conclusion • Architecture de médiation basée sur la complémentarité du pair-à-pair et des médiateurs • Schémas facilitant les échanges entre pairs: • Publication des données Schéma publié • Intégration dynamique des schémas publiés Schéma thématique • Schéma de médiation reflétant la réalité du réseau • Service de classification distribué et adapté à l’organisation sémantique des nœuds d’un réseau P2P • Classification consensuelle qui tient compte: • de la distance sémantique entre les nœuds • de la distance physique entre les nœuds