• Aucun résultat trouvé

Passage à l’échelle des requêtes d’accessibilité et de calcul de dis-

A. Résumé en français

A.1.1. Passage à l’échelle des requêtes d’accessibilité et de calcul de dis-

Etant donné deux noeuds u et v dans un graphe G, une requête d’accessibilité consiste à répondre à la question suivante : v est-il accessible à partir de u dans G ? Nous distin- guons trois principales catégories de requêtes d’accessibilité en fonction des domaines d’application : (i) Les requêtes d’accessibilité simple déterminent si deux noeuds donnés sont connectés dans le graphe sans la prise en compte de contraintes sur le chemin liant ces deux derniers. Un exemple de requête d’accessibilité simple est illustré dans la figure A.1(a), où u v signifie que u peut atteindre v. (ii) Les requêtes de calcul de distance sont plus spécifiques que les requêtes d’accessibilité simple; elles déterminent non seulement si deux noeuds donnés sont connectés dans le graphe, mais elles donnent aussi la longueur du plus court chemin liant ces deux noeuds là. Un exemple de requête de calcul de distance est décrit dans la figure A.1(b), où d(u, v)désigne la distance entre u et v. Il existe deux types de requêtes de calcul de distance : requête point à point (Ang. p2p query) dont le but est de déterminer la distance entre deux noeuds donnés, et, les requêtes qui cherchent à déterminer la distance entre un noeud source et les reste des noeuds dans le graphe (Ang. Single Source Shortest Path query). Et, (iii) Les requêtes d’accessibilité sous contraintes sont encore plus spécifiques et considèrent des contraintes sur les étiquettes ainsi que leur ordre d’apparition sur le chemin liant deux noeuds, sur la distance, l’orientation des arcs, etc. Figure A.1(c) montre un exemple de ce type de requêtes, qui cherche à déterminer s’il existe un chemin entre u et v composé de d(u, x)arc(s) étiqueté(s) l1suivi par d(x, v)

arc(s) étiqueté(s) l2.

Dans ce qui suit, nous mettons en évidence quelques domaines d’applications où les requêtes d’accessibilité sont nécessaires :

u

v

u v?

u

v

d(u,v)?

u

x

v

l1,d(u,x)? l2,d(x,v)?

(a) Requête d’accessibilité (b) Requête de calcul (c) Requête d’accessibilité simple de distance sous contraintes

Figure A.1.: Les différents types de requêtes d’accessibilité

où les noeuds et les arcs représentent, respectivement, les utilisateurs et les relations entre eux. Les étiquettes sur les arcs désignent les différents types de relations entre les utilisa- teurs (ex : ami, collègue, ...). Plusieurs requêtes dans les réseaux sociaux cherchent à savoir comment deux noeuds donnés u et v sont connectés. Ces requêtes cherchent généralement à déterminer s’il existe un chemin allant de u à v ayant des étiquettes de certain type ou respectant une séquence prédéfinie de types d’étiquette. Par exemple, pour savoir si u est l’ami d’un collègue de v, il faut vérifier s’il y a un chemin allant de u à v composé d’un arc étiqueté ami suivi d’un arc étiqueté collgue. Comme expliqué dans la Section A.1.2, l’obtention de ce type d’information constitue un moyen qui aide les utilisateurs des réseaux sociaux à avoir plus de contrôle sur les informations qu’ils partagent tout en leur permettant de spécifier le public autorisé à voir ces informations [AD11, DAS12]. L’outil de parcours de graphes de Facebook [fbG] (voir Section A.1.2) peut aussi être considéré comme une application qui nécessite le calcul des distance entre les noeuds, comme par exemple, les utilisateurs peuvent avoir besoin de chercher les amis de leurs amis ou leurs amis pour des opportunités de travail (i.e., les amis à une distance 2 ou 3 d’un utilisateur donné). De plus, afin de pouvoir mesurer le degré de proximité entre deux utilisateurs dans un réseau social, nous aurons besoin de calculer la distance entre ces deux derniers. Considérons comme exemple la requête suivante : “Quel est le point commun entre la chancelière allemande Angela Merkel, le mathématicien Richard Courant, le gagnant du prix de Turing Jim Gray et Dalai Lama ? ”. Dire que ces quatre personnes ont obtenu une thèse de doctorat d’une université allemande nécessite la vérification de l’existence de chemins entre chaque personne et les diplômes obtenus par les autres [KRS+09]. Le search ranking dans les réseaux sociaux [VFD+07], modélisé comme une fonction qui dépend des distances entre les utilisateurs dans un réseau d’amitié est une autre application où le calcul des requêtes de distance est nécessaire.

La bioinformatique. Les données biologiques tels que les réseaux d’interactions entre proteines et les réseaux métaboliques (réactions chimiques du métabolisme) peuvent être modélisés comme des graphes étiquetés, où les noeuds désignent les entités cellulaires (ex : protéine, gènes, ...). Un arc entre deux entités désigne une interaction chimique transformant une entité donnée en une autre. Les étiquettes sur les arcs désignent les en- zymes responsables de la transformation. L’une des opérations les plus basiques consiste à déterminer si une entité peut être transformée en une autre sous certaines contraintes. Ces contraintes exigent l’existence d’un ensemble d’enzymes dans un ordre prédéfini et

Appendix A: Résumé en français

une distance donnée entre deux entités. Plus généralement, une requête d’accessibilité en bioinformatique peut être formulée comme suit : Y a-t-il une voie moléculaire entre deux entités cellulaires composée d’un certain nombre d’interactions avec la présence d’un ensemble d’étiquettes (enzymes) respectant un ordre bien défini ? Ici encore, le problème peut être réduit au problème de répondre aux requêtes d’accessibilité sous contraintes. Dans cet exemple, les contraintes sont définies sur l’ordre des étiquettes et la distance du chemin liant deux noeuds. En biologie, les scientifiques ont besoin de calculer le chemin le plus court entre des paires de noeuds dans les réseaux d’interactions protéiques afin d’identifier les gènes lié à un cancer du côlon [LHL+12]. Les requêtes d’accessibilité sont aussi nécessaires pour le calcul du voisinage k-hop pour comparer les réseaux biomoléculaires et étudier leurs propriétés [ADH+08].

Le Web Sémantique.Le format RDF pour la représentation des données du Web séman- tique, est devenu un format commun pour construire de large collections de données. Trouver le chemin le plus court entre deux noeuds dans un graphe RDF est une opération fondamentale permettant d’explorer les relations complexes entre les entités. Malgré son expressivité, une requête RDF standard, appelée requête SPARQL, ne permet pas d’explorer la nature des relations entre objets RDF (i.e., vérifier si un objet X peut at- teindre un autre objet Y dans un graphe RDF). Par exemple, trouver tous les chercheur nés en France dans une base de connaissances peut être traduit par plusieurs requêtes d’accessibilité permettant de vérifier s’il existe un chemin entre un chercheur donné est l’entité France. En plus, les requêtes de calcul de distance sont utilisées pour calculer le degré de proximité entre les entités dans une base de connaissances [KRS+09].

Les approches classiques permettant l’évaluation des chemins les plus court soit elles prennent beaucoup de temps pour fournir la réponse quand la taille du graphe est assez grande (cas des parcours en largeur et en profondeur, voir Section 2.4), soit elles nécessi- tent un pré-calcul conséquent et beaucoup trop d’espace mémoire (cas de la fermeture transitive). Le défi qui se présente est de trouver un bon compromis en terme de temps et d’espace pour pouvoir répondre aux demandes d’accès des utilisateurs en un temps raisonnable.

Dans cette thèse, nous nous intéressons au problème de calcul de distance entre les noeuds dans les grands graphes orientés qui est plus spécifique que le problème d’accessibilité simple, d’une part, et d’autre part, une solution à ce problème peut être utilisée ultérieurement pour résoudre le problème d’accessibilité sous contraintes comme expliqué dans la Section 6.2.

L’algorithme classique de Dijkstra (voir Section 2.4.3) ne parvient pas à répondre effi- cacement aux requêtes de distance dans les grands graphes. Pour cela, des techniques plus sophistiquées on été proposées. L’une des approches les plus répandues pour le calcul de distance entre les noeuds d’un graphe est la fameuse approche de couverture à deux sauts (Ang. 2-hop cover approach) [CHKZ02] (voir Section 2.6), qui donne des garanties sur la taille de l’index ainsi que sur le temps de réponse. Toutefois, il n’y a aucun algorithme efficace qui permet de calculer la couverture à deux sauts (ang. 2-hop cover). Malgré que quelques variantes de cette approches ont été proposées ces dernières années [STW04, CYL+08, CY09], une solution plus efficace est nécessaire, étant donné qu’il est impossible d’utiliser cette approche pour indxer de très grands graphes comme les graphes réels. En fait, tout algorithme d’indexation pour le calcul des distances dans un graphe doit faire face au problème de calcul d’une représentation compacte de toutes les informations sur la distance dans le graphe initial. Ces informations sur la distance

peuvent augmenter de manière quadratique en fonction du nombre de noeuds et rendent la construction des index sur les grands graphes extrêmement coûteuses.

Documents relatifs