550 likes | 827 Views
(Social networks) and Semantic peer-to-peer systems . Systèmes pair-à-pair . Coalition de serveurs d’information indépendants (pairs) Chaque pair peut être soit client soit serveur Architecture dynamique. 2. Gestion de données : Piazza. Partage de fichiers mots-clés : KaZaA…. T 5.
E N D
Systèmes pair-à-pair • Coalition de serveurs d’information indépendants (pairs) • Chaque pair peut être soit client soit serveur • Architecture dynamique 2
Gestion de données : Piazza Partage de fichiers mots-clés : KaZaA… T5 T4 T1 T3 T2 madonna.mp3 ? SELECT * FROM … WHERE … ? De différents systèmes pair à pair Systèmes d’inférence : SomeWhere Systèmes sémantiques : SomeOWL, SomeRDFS Conséquents d’une clause par rapport à la théorie globale Ressources sur la musique de Rock ? 3
Les systèmes P2P de gestion de données • Réseau logique de pairs (connectés via le réseau physique) • Chaque pair est caractérisé par • Son addresse physique (IP) • La description de ses données • Ses voisins dans le réseau • Les pairs à qui il peut transmettre des messages (requêtes, réponses) • Topologies variées • on structurées (Kazaa, Gnutella) • fixées (Chord, Hypercube) • Guidées par la sémantique • SON, Edutella, Piazza, DRAGO, coDB, Somewhere
Un réseau P2P SomeWhere • Topologie non fixée • Guidée par les mappings • Un pair • Se joint au réseau en déclarant des mappings entre son schéma et ceux de certains pairs qu’il connait • Part en supprimant ses mappings
SomeOwl : réseau sémantique P2P au dessus de SomeWhere • Modèle de données très simple fondé sur un langage propositionnel de classes • pour définir les schémas, les mappings, et les requêtes • Passe à l’échelle du millier de pairs • topologie « petit monde »
A0 A1 A2 A3 A4 A5 St_A5 St_A3 Ontology: hierarchy of intentional classes Storage description: extensional classes More complex inclusion statement: St_A1 A1¬A2 Modèle de données Schema+Data Data Data
Queries: Logical combination of class literals: A1 ¬A3 Mappings: Q1 Q2 A1 B3 B3 A1 A A1 A2 A3 A1 (A2 A3) B1 ¬B3 B B1 B2 Q B3 Modèle de données
Sémantique • Standard FOL • Domaine d’interprétation unique • Un ensemble distribué de formules interprétées comme dans le cas centralisé • À la différence d’autres approches • coDB: logique épistémique • DRAGO: sémantique distribuée DDL ou DFOL basée sur une collection de domaines d’interprétations • Hypothèse forte : • Les instances ont un identifiant unique (URI) • Les ressources stockées dans différents pairs ayant le même URI sont interprétées comme étant identiques
Illustration sur un exemple MyBookmarks MyBookmarks P1:Action Movies P2 P1 P3 DVD P1:Suspense P1:Animation Comedy Thriller Cartoons Adult Animation Action Suspense P2:BruceWillis P1:Action ViewAdult ViewThriller ViewCartoons ViewComedy P1:Action P1:Suspense P3:Thriller ViewAnimation ViewAction ViewSuspense mappings : mappings : P1:Animation P3:Cartoons P2:BenStiller P3:Comedy P2:BenStiller P2:BruceWillis MyBookmarks Actors MyBookmarks , Actors BruceWillis Actors , BenStiller Actors , BruceWillis BenStiller JuliaRoberts ViewBruceWillis BruceWillis , JuliaRoberts Actors , ViewBenStiller BenStiller , ViewBruceWillis ViewBenStiller ViewJuliaRoberts ViewJuliaRoberts J uliaRoberts ontology : ontology : ontology :
Illustration sur un exemple Requêtes: combinaison logique de classes Thriller Comedy ? ontology : MyBookmarks ontology : MyBookmarks P1:Action Movies P2 P3 P1 DVD P1:Suspense P1:Animation Comedy Thriller Cartoons Adult Animation Action Suspense P2:BruceWillis P1:Action ViewAdult ViewThriller ViewCartoons ViewComedy P1:Action P1:Suspense P3:Thriller ViewAnimation ViewAction ViewSuspense mappings : mappings : P1:Animation P3:Cartoons P2:BenStiller P3:Comedy MyBookmarks Actors BruceWillis BenStiller JuliaRoberts ViewBruceWillis ViewBenStiller ViewJuliaRoberts P2:BenStiller P2:BruceWillis ontology :
Calcul des réponses à une requête Soit un PDMS someOWL et l’ensemble de ses données (réponse certaine) • Qu’est ce qu’une réponse ? Comment trouver toutes les réponses certaines ? • Par réécriture de la requête : • Étape 1: calcul de réécritures = reformulation plus précise de la requête contenant uniquement des classes extensionnelles • Étape 2: Évaluation des réécritures (calcul des extensions) donnant des réponses
Calcul des réponses par réécriture • Intérêt de cette méthode: • Permet de raisonner en pair-à-pair uniquement au niveau du schéma (pas de transport de données) • Les réécritures indiquent directement les pairs à interroger • Propriété : • S’il existe un nombre fini de réécritures conjonctives maximales de la requête initiale relativement au PDMS, l’évaluation de ces réécritures donne toutes les réponses certaines en temps polynomial dans la taille des données [Goasdoué & Rousset 2004]
Récriture de requêtes dans SomeOwl • Se réduit au problème du calcul de conséquences logiques dans un ensemble distribué de formules en logique des propositions • schémas et mappings encodés par des clauses • Les récritures maximales conjonctives d’une requête Q correspondent à la négation des clauses qui sont impliqués premiers propres de la négation de Q et de l’union des théories locales et des mappings
SomeOwl : calcul des réécritures Par encodage propositionnel direct Propriété de transfert Soit P un PDMS et Prop(P) son encodage propositionnel. Qe est réécrituremaximale d’une requête Q ssi Prop(Qe) est un impliqué premier propre de Prop(Q) rel. à Prop(P)
SomeWhere : illustration ¬ Movies v MyBookmarks , ¬ DVD v MyBookmarks, DVD MyBookmarks, Movies MyBookmarks , ¬ Comedy v Movies , ¬ Thriller v Movies , ¬ Animation v DVD , P1:Action Comedy Movies , Thriller Movies , Animation DVD , P1 P3 P2 ¬ Action v DVD , ¬ Cartoons v Movies , ¬ Adult v Movies , Adult Movies , P1:Suspense Action DVD ¬ Suspense v DVD , ¬ Adult v¬ Cartoons , P1:Animation Adult Cartoons , ¬ ViewAnimationv Animation , Cartoons Movies , ViewAnimation Animation , ¬ ViewComedy v Comedy , ¬ ViewCartoons v Cartoons , P2:BruceWillis P1:Action ViewComedy Comedy , ViewCartoons Cartoons , ViewAction Action , ¬ ViewAdult v Adult ¬ ViewThriller v Thriller , ¬ ViewActionv Action , ViewThriller Thriller , ViewAdult Adult Suspense DVD, P1:Action P1:Suspense P3:Thriller ¬ ViewSuspensev Suspense ViewSuspense Suspense ¬ P1:Action v P1:Suspense v P3:Thriller ¬P1:Animation v P3:Cartoons P1:Animation P3:Cartoons P2:BenStiller P3:Comedy ¬ P2:BruceWillis v P1:Action ¬P2:BenStiller v P3:Comedy ¬ Actors v MyBookmarks , Actors MyBookmarks , ¬ BruceWillis v Actors , BruceWillis Actors , ¬ BenStiller v Actors , BenStiller Actors , ¬ JuliaRoberts v Actors , ViewBruceWillis BruceWillis , ¬ ViewBruceWillisv BruceWillis , JuliaRoberts Actors , ViewBenStiller BenStiller , ¬ ViewBenStillerv BenStiller , P2:BenStiller P3:Comedy ViewJuliaRoberts JuliaRoberts ¬ ViewJuliaRobertsv JuliaRoberts ¬ P2:BenStiller v P3:Comedy ontology : ontology : mappings : mappings : P2:BenStiller P2:BruceWillis ontology : mappings :
Thriller ? Thriller ? P3:ViewThriller P1:ViewAction P1:ViewSuspense P2:ViewBruceWillis P1:ViewSuspense ¬ P1:Suspense ¬ Movies v MyBookmarks , ¬ DVD v MyBookmarks, ¬ Comedy v Movies , ¬ Thriller v Movies , ¬ Animation v DVD , P1:Action P2 P3 P1 P1 ¬ Action v DVD , ¬ Cartoons v Movies , ¬ Adult v Movies , P1:Suspense ¬ P1:Action ¬ Suspense v DVD , ¬ Adult v¬ Cartoons , P1:Animation ¬ ViewAnimationv Animation , ¬ ViewComedy v Comedy , ¬ ViewCartoons v Cartoons , ¬ ViewAdult v Adult ¬ ViewThriller v Thriller , ¬ ViewActionv Action , ¬ ViewSuspensev Suspense ¬ P1:Action v P1:Suspense v P3:Thriller ¬P1:Animation v P3:Cartoons ¬ P2:BruceWillis v P1:Action ¬P2:BenStiller v P3:Comedy ¬ Actors v MyBookmarks , ¬ BruceWillis v Actors , ¬ BenStiller v Actors , ¬ P2:BruceWillis ¬ JuliaRoberts v Actors , ¬ ViewBruceWillisv BruceWillis , ¬ ViewBenStillerv BenStiller , ¬ ViewJuliaRobertsv JuliaRoberts ¬ P2:BenStiller v P3:Comedy P3:ViewThriller P1:ViewAction v P1:ViewSuspense P2:ViewBruceWillis v P1:ViewSuspense v ontology : ¬ P1:ViewSuspense ¬ P1:ViewSuspense ontology : ¬ P2:ViewBruceWillis ¬ P1:ViewAction ¬ P1:ViewAction ¬ P1:ViewAction mappings : mappings : P2:BenStiller P2:BruceWillis ontology : ¬ P2:ViewBruceWillis ¬ P2:ViewBruceWillis mappings :
P3:ViewThriller P1:ViewAction P1:ViewSuspense ontology : ontology : ¬ Movies v MyBookmarks , ¬ DVD v MyBookmarks, ¬ Comedy v Movies , ¬ Thriller v Movies , ¬ Animation v DVD , P1:Action P1 P3 P2 P1 ¬ Action v DVD , ¬ Cartoons v Movies , ¬ Adult v Movies , P1:Suspense ¬ Suspense v DVD , ¬ Adult v¬ Cartoons , P1:Animation ¬ ViewAnimationv Animation , ¬ ViewComedy v Comedy , ¬ ViewCartoons v Cartoons , ¬ ViewAdult v Adult ¬ ViewThriller v Thriller , ¬ ViewActionv Action , mappings : ¬ ViewSuspensev Suspense ¬ P1:Action v P1:Suspense v P3:Thriller mappings : mappings : ¬P1:Animation v P3:Cartoons ¬ P2:BruceWillis v P1:Action ¬P2:BenStiller v P3:Comedy ontology : ontology : ¬ Actors v MyBookmarks , ¬ BruceWillis v Actors , ¬ BenStiller v Actors , ¬ JuliaRoberts v Actors , ¬ ViewBruceWillisv BruceWillis , ¬ ViewBenStillerv BenStiller , ¬ ViewJuliaRobertsv JuliaRoberts mappings : mappings : ¬ P2:BenStiller v P3:Comedy Locales Distantes Intégration P2:ViewBruceWillis P1:ViewSuspense P2:BenStiller P2:BruceWillis
L’algorithme DeCa : illustration P2 ¬ I v P P4 ¬ K v B ¬ C v H ¬ PAL v AM P3 ¬ K v FJ ¬ B v ¬ K v PAL B,PAL I K K,C P1 ¬ L v O ¬L v I ¬ L v C v K
avant:I , [ (L,P1) ] L ? P2 ¬ I v P Nature du message (avant, arrière, fin) Historique C: v K: • Raisonnement local • Passage de messages • Gestion d’historique dans les messages P4 ¬ K v B ¬ C v H ¬ PAL v AM P3 ¬ K v FJ ¬ B v ¬ K v PAL B,PAL I, [(L,P1)]: P I K K,C P1 ¬ L v O ¬L v I ¬ L v C v K O L O I :
fin:I , [ (L,P1) ] L ? P2 ¬ I v P C: v K: • Raisonnement local • Passage de messages • Gestion d’historique dans les messages P4 ¬ K v B ¬ C v H ¬ PAL v AM P3 ¬ K v FJ ¬ B v ¬ K v PAL B,PAL I, [(L,P1)]: P P I K K,C P1 ¬ L v O ¬L v I ¬ L v C v K O L O P I : P
avant:C , [ (L,P1) ] avant:K , [ (L,P1) ] L ? P2 ¬ I v P I, [(L,P1)]: P P C: v K: • Raisonnement local • Passage de messages • Gestion d’historique dans les messages P4 ¬ K v B ¬ C v H ¬ PAL v AM P3 ¬ K v FJ ¬ B v ¬ K v PAL B,PAL C, [(L,P1)]: K, [(L,P1)]: I K K,C P1 ¬ L v O ¬L v I ¬ L v C v K O L O P I : P
L ? P2 ¬ I v P I, [(L,P1)]: P P C: v K: • Raisonnement local • Passage de messages • Gestion d’historique dans les messages • Découpage / recombinaison P4 ¬ K v B ¬ C v H ¬ PAL v AM P3 ¬ K v FJ ¬ B v ¬ K v PAL B,PAL C, [(L,P1)]: H H K, [(L,P1)]: B B I K K,C P1 ¬ L v O ¬L v I ¬ L v C v K O L H O P B H v B I : P
Génération de la clause vide Détection de cycles L ? P2 ¬ I v P I, [(L,P1)]: P P avant:B , [ (K,P4), (L,P1) ] ¬ K: v ¬ K , [ (B,P3) , (K,P4), (L,P1) ] PAL C: v K: Négation de la requête dans l’historique génération de la clause vide • Raisonnement local • Passage de messages • Gestion d’historique dans les messages • Découpage / recombinaison P4 ¬ K v B ¬ C v H ¬ PAL v AM P3 ¬ K v FJ ¬ B v ¬ K v PAL □ B,PAL B, [(K,P4),(L,P1)] C, [(L,P1)]: H K, [(L,P1)]: B I K K,C P1 ¬ L v O ¬L v I ¬ L v C v K O □ L H O P B H v B I : P
Génération de la clause vide Détection de cycles L ? P2 ¬ I v P I, [(L,P1)]: P P ¬ K: v PAL C: v K: • Raisonnement local • Passage de messages • Gestion d’historique dans les messages • Découpage / recombinaison P4 ¬ K v B ¬ C v H ¬ PAL v AM P3 ¬ K v FJ ¬ B v ¬ K v PAL □ B,PAL B, [(K,P4),(L,P1)] C, [(L,P1)]: H PAL K, [(L,P1)]: B PAL I K K,C P1 ¬ L v O ¬L v I ¬ L v C v K O L H O P B H v B I : P H v PAL …
L’algorithme DeCa : propriétés • Anytime • Termine et notifie sa terminaison • Correct • Condition suffisante de complétude: • tout couple de pairs ayant une variable A en commun est relié par un chemin dont toutes les arêtes sont étiquetées par A
L’algorithme DeCa : résumé Une clause c Tous les ppis de c relativement à la théorie globale… inconnue!
1 machine N pairs N machines K pairs par machine N machines 1 pair par machine Déploiement de SomeWhere
Zoom sur une machine 100 % JAVA 1.5 somewhere.jar ~ 250 Ko
B’ A’ A B A’ A B’ B Handling inconsistencies • How to define them ? • unsatisfiability => derivation of the empty clause • empty classes => derivation of unit negative clauses • How to detect inconsistencies? • at each join of a new peer • How to deal with inconsistencies? • avoid them when reasoning there exists A such that A is empty in every model: S |= A
2005 m0 AIPubliTheory AIPubli BDPubli 2005Conf TheoryJournal m1 m2 Publi P3 >--< Conf Journal illustration path m1: AIPubli is a subclass of Conf. Article P1 P2 Theory path m0 -> m2: AIPublic is a subclass of Journal. Expe Conf and Journal are disjoint, therefore AIPUbli is necessarily empty inconsistencies are caused by mappings.
¬2005v Conf ¬Theoryv Journal m2 m1 P2P detecting of inconsistencies ¬AIPubli v 2005 ¬BDPubli v 2005 ¬Theory v Article ¬Expe v Article ¬AIPubliv Theory ¬Conf v Publi ¬Journal v Publi ¬Journal v ¬Conf • Propagation of m2: { ¬TheoryvJournal;¬AIPublivJournal;…..;¬AIPubli ;…;¬AIPubliv¬Conf}. Production of a unit clause Inconsistency{m1,m2} is a NoGood stored at P3 • Propagation of m1: { ¬AIPublivConf;¬AIPublivPubli;¬AIPubliv¬Journal; ¬BDPublivConf; ¬BDPublivPubli;¬BDPubliv¬Journal}. No production of unit clause No inconsistency
{ } { } M*1 M*2 … M*n { } Distributed storage of the NoGoods
P2P well-founded reasoning • Principle: • avoid the inconsistencies when constructing answers • Semantics of « well-founded » answer: • obtained from a consistent subset of formulas • Algorithm: • for each answer, • build its set of mapping supports and return the set of NoGoods encountered during the reasoning, • discard the mapping supports including a NoGood • return the answers having a not empty set of mapping supports
MuseumName http://www.louvre.fr "Le Louvre" Located CityName " Paris" http://www.paris.fr SomeRDFS • Extending the data model to RDF(S) • W3C recommendation for describing web resources • Classes and (binary) relations between objects • each object is identified by a URI Triple notation: <resource, property, value> Relational notation: property(resource, value)
CulturalPlace Is-a Contains MadeBy MuseumName Literal Work Artist Museum WorkName Located ArtistName Is-a Is-a Literal Literal CityName Literal City ModernMuseum ArcheologyMuseum RDFS
SomeRDFS: data model a simple fragment of RDFS distributed throughsimplemappings (using the same constructors) Q(X,Y): P2.Work(X)P2.refersTo(X,Y)
Query rewriting in SomeRDFS • Propositionalisation of the RDFS statements and the query: removing the variables • Propositional query rewriting using SomeWhere • Building the relational rewritings by adding the variables at the right place. C1dom C2dom C1range C2range P1rel P2rel Prel Cdom Prel Crange
P2.refersTorel P2.Workdom P2.Workrange SomeWhere rewriting SomeWhere rewriting SomeWhere rewriting P2.Paintingdom … P1.Paintsrel … P1.belongsTorel … P1.belongsTo(X,Y) P2.Painting(X) P1.Paints(Z,X) R1(X,Y): P2.Painting(X)P1.belongsTo(X,Y) illustration Q(X,Y): P2.Work(X)P2.refersTo(X,Y)
P2.refersTorel P2.Workdom P2.Workrange SomeWhere rewriting SomeWhere rewriting SomeWhere rewriting P2.Paintingdom … P1.Paintsrel … P1.belongsTorel … P1.belongsTo(X,Y) P2.Painting(X) P1.Paints(Z,X) R2(X,Y): P1.Paints(Z,X)P1.belongsTo(X,Y) illustration Q(X,Y): P2.Work(X)P2.refersTo(X,Y)
Recherche sémantique d’informations • requêtes : • posées à un pair, utilisant le vocabulaire du pair : Action1, non-Drama1, … • peuvent être traitées par SomeWhere et Deca via un encodage propositionnel : concept -> variable, relation de concepts -> disjonction/conjonction/disjointness de variables • résultats : un ensemble de ressources • chacune accompagnée d’une justification logique : son label (une combinaison de classes « feuilles » des pairs) 41
Modélisation et calcul de la confiance • La satisfaction des utilisateurs n’est pas garantie : • une ressource mal-annotée : Shrek.avi : Drama ! • différents points de vue : IamLegend.avi : Scientifique ou Thriller ? • Un modèle de confiance • la confiance est considérée au niveau de label 42
Modélisation probabiliste • Hypothèse : évaluation binaire de ressources • Soit XiL une variable aléatoire • définie sur l’ensemble des ressources annotées par L • XiL (r) = 1 si r satisfait Pi , XiL (r) = 0 sinon => elle suit une loi de Bernoulli de paramètre p • p : probabilité qu’une ressource annotée par L soit satisfaisante pour Pi • p:inconnu • Confiance de Pi dans un label L = p. A estimer ! 43
Approche Bayésienne • Principe : • observer un échantillon des valeurs de XiL • modéliser Confiance(Pi , L) comme une variable aléatoire suivant une loi qui tient compte des observations • estimer Confiance(Pi , L) par l’espérance de cette loi • affiner l’estimation en fonction de nouvelles observations 44
Observations # d’observations + sur L faites par P1 # d’observations - sur L faites par P1 Observations pertinentes O-1 (Western4) = 14 O+1 (Western4) = 2 # d’observations + pertinentes sur Western4 # d’observations -pertinentes sur Western4 Cas général: O+i (L) O-i (L) • Table des observations O1 dans le pair P1 45
Estimation de la confiance 1+ O+i (L) 2+ O+i (L) + O-i (L) Ecart type = √ (1+ O+i (L)) * (1+ O-i (L)) (2+ O+i (L) + O-i (L))2 * (3+ O+i (L) + O-i (L)) Confiance(Pi , L) ≈ 46
Résultats • on peut calculer le nombre d’observations nécessaire pour que l’écart type soit inférieure à un seuil. • observations locales trop peu nombreuses? 47
Observations locales non suffisantes • Collection d’observations d’autres pairs • avantage : homogénéité du modèle • 2 stratégies de propagation d’observations • stratégie « lazy » • stratégie « greedy » 48
Approche « lazy » • Poser une requête, attendre les réponses • Pour un label L, demander à certains pairs leurs observations sur L • Pas d’adaptation du mécanisme de raisonnement • Des messages supplémentaires après le traitement de la requête 49
Approche « greedy » b4.avi : B4 O+3(B4) , O-3(B4) O+2(B4) , O-2(B4) B1 • Poser une requête • Collecter les observationsau cours du traitement de la requête • Etendre les messages de réponses B2 B1 Pair P4 Pair P2 Pair P3 Pair P1 b4.avi : B4 A1 A2 A4 A3 B3 B2 B4 B3 O+3(B4) O-3(B4) B2 B3 B1 B4 C4 C1 C3 C2 b4.avi : B4 50