Vous êtes sur la page 1sur 54

INSTITUT DE LA FRANCOPHONIE POUR LINFORMATIQUE

LABORATOIRE MATHEMATIQUES APPLIQUES AUX SYSTEMES,


ECOLE CENTRAL DE PARIS

MEMOIRE DE FIN DETUDE


Master dinformatique
Option Intelligence artificielle & multimdia

Sujet : Conception dun langage visuel de


requtes sur des graphes

Encadrement : Marie-aude AUFAURE


Rania SOUSSI
Ralis par : KIEU Van Cuong
Promotion 14, IFI

Paris, octobre 2011

-1-

Table des manires


Table des manires.............................................................................................................................. - 2 Remerciements .................................................................................................................................... - 4 Rsum ............................................................................................................................................... - 5 Abstract............................................................................................................................................... - 6 Table des figures ................................................................................................................................. - 7 Liste des tableaux ................................................................................................................................ - 8 CHAPITRE I INTRODUCTION ...................................................................................................... - 9 1.

CONTEXTE ET MOTIVATION.......................................................................................... - 9 -

2.

OBJETIFS............................................................................................................................ - 11 -

3.

CONTRIBUTION................................................................................................................ - 12 -

4.

ENVIRONNEMENT DU STAGE ....................................................................................... - 13 -

CHAPITRE II ETAT DE LART ............................................................................................................. - 14 1.

2.

RESEAU SOCIAL ............................................................................................................... - 14 1.1

Dfinition ...................................................................................................................... - 14 -

1.2

Mthode et mtrique danalyse .................................................................................... - 14 -

SYSTEME DE REQUETE VISUEL................................................................................... - 15 2.1

Prsentation .................................................................................................................. - 15 -

2.2

EXEMPLE DE LANGAGES VISUELS...................................................................... - 16 -

2.2.1

SEWASIE ............................................................................................................. - 16 -

2.2.2

GrOWL Query................................................................................................... - 17 -

2.2.3

GRQL.................................................................................................................... - 20 -

2.2.4

GRAPHITE .......................................................................................................... - 20 -

2.3

LANGAGE VISUEL POUR RDF ............................................................................... - 22 -

2.3.1

DERI ..................................................................................................................... - 22 -

2.3.2

GLOO ................................................................................................................... - 23 -

2.3.3

EROS .................................................................................................................... - 24 -

2.3.4

RDF-GL ................................................................................................................ - 25 -

CHAPITRE III SYSTEME DE VISUALISATION ET DE REQUETAGE DES GRAPHES... - 30 1.

DESCIRPTION DE LA SOLUTION PROPOSEE ............................................................ - 30 1.1

ARCHITECTURE DU SYSTEME.............................................................................. - 30 -

-2-

LANGAGE VISUEL PROPOSE......................................................................................... - 31 -

2.

2.1

SYMBOLES UTILISES............................................................................................... - 31 -

2.2

Fonction deE TRANSFORMATION DES REQUETES EN PATRONS ................... - 32 FONCTION DEXTRACTION DES PATRONS ........................................................... - 35 -

3.

2.2.1

Requte de slection .............................................................................................. - 35 -

2.2.2

Requte danalyse ................................................................................................. - 36 -

SOLUTION PROPOSEE POUR AMELIORATION DE LA RECHERCHE CHEMIN . - 36 3.1

ALGORITHME A_ETOILE ET FONCTION HEURISTIQUE PROPOSEE .......... - 37 -

3.1.1

Evaluation du poids dun nud ........................................................................... - 37 -

3.1.2

Evaluation des types dobjet. ................................................................................ - 38 -

3.1.3

Evaluation du type de relation. ............................................................................ - 38 -

3.1.4

Fonction heuristique ............................................................................................. - 39 -

CHAPITRE IV IMPLEMENTATION ET EVALUATION............................................................................ - 40 1.

2.

IMPLEMENTATION.......................................................................................................... - 40 1.1

INTERFACE DINTERROGATION.......................................................................... - 40 -

1.2

INTERFACE DE VISUALISATION .......................................................................... - 41 -

1.2.1

Visualisation du graph simple .............................................................................. - 41 -

1.2.2

Visualisation du spider graphe ............................................................................. - 42 -

1.3

FONCTION DEXTRACTION DES PATRONS ....................................................... - 43 -

1.4

TRANSFORMATION DES PATRONS EN REQUETE SPARQL ........................... - 44 -

1.5

FONCTION DEXECUTION DES REQUETES........................................................ - 45 -

1.6

ALGORITHME DE LA RECHERCHE DU CHEMIN.............................................. - 45 -

EVALUATION .................................................................................................................... - 47 2.1

GRAPHE DE DONNEES POUR LEVALUTION ..................................................... - 47 -

2.1.1

Schma .................................................................................................................. - 47 -

2.1.2

Nombre des nuds ................................................................................................ - 47 -

2.2

EVALUATION DALGORITHME DE LA RECHERCHE DU CHEMINE ............ - 48 -

2.3

EVALUATION DE LA FONCTION DE VISUALISATION ..................................... - 49 -

CHAPITRE V CONCLUSION ET PERSPECTIVE ..................................................................................... - 51 REFERENCES ................................................................................................................................ - 53 -

-3-

Remerciements
Je tiens particulirement remercier professeur Marie-Aude AUFAURE, la directrice de
stage, et lencadrant Rania SOUSSI pour les aides, les conseils prcieux pendant six mois
de mon stage.
Je tiens galement remercier Nizar MESSAI, tienne CUVELIER, Amine LOUATI
qui ont travaill avec moi pendant ce stage, et qui m'ont beaucoup aid grce ses
explications, ses conseils utiles et les documents.
Jadresse mes sincres remerciements tous les professeurs de lInstitut de la
Francophonie pour lInformatique (IFI) pour m'avoir enseign et me donne les cours
intressants pendant mes tudes au niveau de master. Je profite de cette occasion pour
dire remercier tous les personnels de lIFI qui m'ont apport de laide.
Finalement, je voudrais remercier ma famille, mes parents et mes amis qui sont toujours
prs de moi et m'ont apport de courage dans les moments difficiles.

-4-

Rsum
Aujourdhui, des diffrents types de larges graphes reprsentant des rseaux sociaux sont
apparus. A travers les rseaux sociaux, les utilisateurs peuvent chercher et partager
linformation. Cet intrt pour les rseaux sociaux les utilisateurs a motiv les
chercheurs pour dfinir des modles de graphe plus adapts pour visualiser et interroger
ces rseaux sociaux.
Dans ce travail, nous prsentons un langage visuel facilitant aux utilisateurs laccs
linformation. Les langages de requtage visuels permettent aux utilisateurs de dessiner la
requte dsire qui sera par la suite transform un patron de requte. Le patron sera
recherch dans le graphe et le rsultat sera une partie de ce graphe initial.
Les langages de requte ntant pas toujours simples utiliser ou couvrant la majorit des
types de requtes, lobjectif de ce travail est donc de proposer un mode dinterrogation
simple et intuitif. Le langage propos devra permettre aux utilisateurs dinterroger des
graphes ayant des relations htrognes (ce graphe peut tre un rseau social, un graphe
dinteraction entre des laboratoires et des entreprises, etc.) dune manire interactive.
Mots cl : Rseau social, Langages de requte visuels, Ontologie, Visualisation de RDF
graphes. Resource Description Framework (RDF), Le langage SPARQL

-5-

Abstract
Nowadays, different types of large graphs representing social networks have emerged.
Through social network, users can search and share information. This interest in social
network, users has motivated researchers to develop models of graph best suited to view
and query these social networks.
In this work, we present a visual langage to facilitate users access to information. Visual
query langages allows users to draw the desired query which will then be transformed to
a pattern of query. The pattern will be searched in the graph and the result will be a part
of this initial graph.
Query languages are not always easy to use and covers most types of queries, the
objective of

this

work is

to

propose

a mode

of

questioning simply

and

intuitively. The proposed language will allow users to query graphs with heterogeneous
relations

(the

graph

may

be

a social

network, a

graph of

interaction

between laboratories and businesses, etc...) - in an interactive way.


Keywords: Social Network, visual query languages, RDF graph visualization, Resource
Description Framework RDF, The language SPARQL.

-6-

Table des figures


Figure 1 : Processus global ................................................................................................... - 10 Figure 2: Systme en gnral ................................................................................................ - 15 Figure 3: L'interface de SEWASIE ....................................................................................... - 17 Figure 4-a : Requte visuel avec GrOWL ............................................................................. - 18 Figure 5 : Requte en forme du langage DLs ........................................................................ - 18 Figure 6 : GrOWL interface ................................................................................................. - 19 Figure 7 : Linterface de GRAPHITE ................................................................................... - 21 Figure 8 : Exemple de requte visuel avec EROS ................................................................. - 25 Figure 14 : Un exemple de requte de RDF-GL.................................................................... - 26 Figure 15 : Les positions des options dans un symbole ......................................................... - 27 Figure 16 : Architecture du systme ..................................................................................... - 30 Figure 18 : Un schma dun petit graphe .............................................................................. - 37 Figure 19 : Diagramme de fonction de dessiner des requtes. ............................................... - 40 Figure 20 : Linterface dinterrogation.................................................................................. - 40 Figure 21 : Diagramme de la fonction de visualisation ......................................................... - 41 Figure 22 : Linterface de visualisation du graphe de donnes .............................................. - 41 Figure 23 : Linterface de visualisation du graphe de rsultat ............................................... - 42 Figure 24 : Visualisation du spider graphe ............................................................................ - 42 Figure 25 : Exemple dune visualisation deux nuds du spider graphe ................................. - 43 Figure 26 : Diagramme de la fonction dextraction des patrons ............................................ - 43 Figure 27 : Lentre et les sorties de la fonction de transformation des patrons en SPARQL . - 44 Figure 28 : Lentre et sortie de la fonction dexcution des requtes SPARQL.................... - 45 Figure 29 : Le schma du graphe .......................................................................................... - 47 Figure 30 : Graphe des 6000 nuds...................................................................................... - 48 Figure 31 : Diagramme du temps de rponse et nombre de nuds ........................................ - 49 -

-7-

Liste des tableaux


Table 1 : Des symboles utiliss et leurs smantiques ............................................................ - 19 Table 2 : Un exemple de requte simple de GRQL ............................................................... - 20 Table 3 : Un exemple de requte avec la proprit ................................................................ - 20 Table 4 : la comparaison entre des systmes de requtage visuel .......................................... - 22 Table 5 : Une requte visuelle de DERI ................................................................................ - 23 Table 6 : Les symboles et leurs smantiques ......................................................................... - 24 Table 7 : Une requte de GLOO et nRQL requte en texte .................................................. - 24 Table 8 : Les symboles et leurs smantiques de RDF-GL ..................................................... - 27 Table 9 : Les positions des options dans une symbole RDF-GL ............................................ - 27 Table 10 : Un exemple de requte RDF-GL transforme au SPARQL.................................... - 28 Table 11 : Rgles de combinaison des symboles de RDF-GL ............................................... - 29 Table 12 : La comparaison des langages visuels ................................................................... - 29 Table 13 : Les symboles proposs de nud .......................................................................... - 32 Table 14 : Les symboles proposs d'arc ................................................................................ - 32 Table 15 : Exemple de requte visuel et de patron extrait de cette requte. ........................... - 33 Table 16 : Les smantiques de requte de slection des exemples ......................................... - 36 Table 17 : Les smantiques de requte d'analyse des exemples ............................................. - 36 Table 18 : L'algorithme d'extraction des patrons ................................................................... - 44 Table 19 : L'algorithme de transformation une requte visuelle en SPARQL ........................ - 45 Table 20 : Fonction de transformation d'une requte chemin en patron ................................. - 46 Table 21 : L'algorithme de lexecution des requtes chemins. ............................................... - 47 Table 22 : Rsultats obtenus des requtes chemin ................................................................. - 49 Table 23 : Rsultats obtenus des requtes de slection .......................................................... - 50 -

-8-

CHAPITRE I INTRODUCTION
1. CONTEXTE ET MOTIVATION
Ce sujet se situe dans le contexte du projet ARSA (Analyse de Rseaux Sociaux pour les
Administrations). Ce sujet est une partie importante dans le module de concevoir des algorithmes
innovants danalyse et de requtage de graphes des rseaux sociaux.
Un rseau social peut tre grand graphe avec des millions nuds et des relations htrognes.
Chaque nud peut avoir des attributs ; par exemple un nud correspond une personne avec les
attributs : nom, ge, adresse, emailetc. Les nuds se connectent par des relations diffrentes
qui sont appeles des relations htrognes. Par exemple une personne a la relation est_n_
une ville, mais une autre a la relation traivailler_ cette ville.
Dans ARSA, les graphes sont modliss laide de RDF [2] (Resource Description Framework).
RDF permet de dcrire de faon formelle les ressources Web et leurs mtadonnes. RDF permet
une certaine interoprabilit parmi des applications changeant de l'information non formalise
et non structure sur le Web.
Les graphes utiliss sont galement modliss par GraphML [3]. GraphML utilise une syntaxe
XML supportant toute la gamme des possibles constellations structure de graphe dirig ou nondirige, de graphes mixtes, hypergraphes, et l'application des attributs spcifiques.
Le premier but du sujet est de visualiser ces graphs. La visualisation permet davoir une vue
exploratoire et dtre complmentaire linterrogation. Il y a plusieurs APIs qui fournissent des
fonctions de visualisation des graphs tels que Jung, Prefuse, Gephi. Cependant, ils ne support pas
tous les deux types (GraphML et RDF). Comment peut-on donc visualiser des graphs dans une
application avec nimport types GraphML ou RDF ?
Le deuxime but du sujet est linterrogation des graphes. Lutilisateur va rechercher des parties
de graphes rpondant aux critres prcis. Les langages de requtes existants ntant pas toujours
simples utiliser, lobjectif de ce travail est donc de proposer un mode dinterrogation simple et
intuitif.

Le langage propos

devra

permettre aux utilisateurs dinterroger des graphes

htrognes. Il faut construire un langage visuel graph avec des symboles qui sont facile
comprendre pour utilisateurs non experts. Un ensemble des rgles correspondant aux symboles

-9-

seront propos pour extraire des patrons. Les patrons sont des structures de requte en forme
textuelle. Les structures permettent dtre facile transformer des patrons en SPARQL [4]
requte.

Figure 1 : Processus global


Linterface proposera lutilisateur des noms dobjets et de relations existantes au fur et
mesure de lcriture de la requte. Lutilisateur peut dessiner des requtes sous forme dun
graphe en utilisant des symboles prdfinis (pour les objets, les relations et certains oprateurs).
Les symboles proposs ont la capacit de dessiner des requtes simples (de type select), des
requtes dagrgation (utilisant les oprateurs MIN, MAX, AVG,) ainsi que des requtes
utilisant des expressions rgulires (telles que des requtes de recherche de chemins entre deux
nuds).
Le processus dextraction des patrons prend en entre le graphe interroger et le patron
rechercher afin de dlivrer tous les sous-graphes correspondants. Il faut galement prendre en
considration que la requte dessine par lutilisateur peut contenir plusieurs patrons.

Il ny a pas encore une application qui permet de visualiser des graphs RDF et GraphML
et mme de faire du requtage. On espre que ce sujet peut prouver lefficacit
dapplication construite. Les applications existantes telles que RDF-GL [5], GRAPHITE
[6] supportent plusieurs types de requte slective avec des FILTERs et des options
OFFSET, ORDER BY, LIMIT mais elles nont pas de capacit de traiter des requtes
- 10 -

avec des AGGREGATIONs telles que MIN, MAX, COUNT, AGGet ni de requte du
chemin. Une motivation importante du sujet est donc de construire des types de requte
avec AGGREGATION et le chemin.
Une fonctionnalit principale du sujet est de visualiser des graphes sous forme RDF et
GraphML. Un module dsir est de faire lanalyse grammaticale des syntaxes XML. Le graphe
est visualis par deux types : Graphe simple et Spider-graphe. Graph simple est un graph dont un
nud dobjet a des nuds attributs autour connects par des relations. Spider-graphe est un
graph dont le nud contient des nuds dattributs lintrieur.
Ce sujet sintresse aussi au module lanalyse du rseau social (Social Network Analysis-SNA).
SNA fournit des algorithmes de graphes pour caractriser la structure des rseaux sociaux, des
positions stratgiques dans ces rseaux, des sous-rseaux et les dcompositions de personnes et
d'activits.

Lapplication

collaborative maintenant

capture des

aspects

plus physiques et

plus de rseaux sociaux et les interactions humaines de manire de-centralit. Les deux
coefficients sont calculs au dessous :
-

La centralit proximit (Closeness centrality): L'inverse de courtes distances chacun des


autres ressources. Elle reprsente la capacit d'accs une ressource.

La

centralit d'intermdiarit

des intermdiarits partielle

(Betweenness

d'un nud

entre

chaque

centrality)
paire de

: La

somme

nuds d'autres. Elle

reprsente la capacit d'un nud qui peut devenir un intermdiaire dans l'ensemble du rseau.
2. OBJETIFS
Dans le cadre du sujet, nous voulons rsoudre compltement la conception dun langage visuel
de requtes sur des graphes. Il faut trouver une solution qui assure deux proprits : Une
interface interactive dun langage visuel de requtes pour utilisateur non expert et un algorithme
de la recherche le chemin plus court avec lheuristique acceptable pour rduire la complexit.
Les travaux concrets sont suivants :
-

Faire un tat de lart des langages visuels et des outils existants,

Spcifier les diffrents symboles permettant le dessin des diffrents types de requtes
mentionns.

- 11 -

Implmenter une interface dinterrogation de type drag and drop permettant la


visualisation des graphes existants interroger, le dessin des requtes et laffichage des
rponses sous forme dun (ou dun ensemble de) graphe(s),

Dtecter partir dune requte visuelle un patron de requte (requte simple, de mise jour
ou danalyse),

Transformer le patron de requte en une requte SPARQL ou XPATH [7] (rgles de


correspondance),

Extraire le (ou les) sous-graphe(s) correspondant(s),

Apprendre de nouveaux patrons pour la recommandation de requtes.

3. CONTRIBUTION
Dans le cadre de ce sujet pendant 6 mois, en mme temps avec ladaptation de la vie en France,
jai ralis des tches suivantes :
Les travaux thoriques :
-

En faisant ltat de lart sur le system visuel de requte et le langage visuel, jai propos un
model du langage visuel qui contient des diffrents symboles permettant le dessin plusieurs
types de requtes. Des symboles sont convenables avec des rgles proposes dextraction des
patrons.

Etudier des facteurs danalyse rseaux sociaux.

Etudier des rgles de transformation des patrons en requte SPARQL.

Les travaux pratiques :


-

A partir des travaux thoriques, jai fabriqu une application complte qui permet de
visualiser des spider-graphes et des graphes simples, dextraire des patrons et dexcuter des
requtes SPARQL.

Tester la visualisation avec la taille des graphes. Tester la performance du system avec des
plusieurs types de requte.

Evaluer les facteurs de centralit et de de-centralit de lanalyse des rseaux sociaux. Jai fait
aussi dvaluation de la complexit du system.

Le travail dtaill est suivant :

- 12 -

Le premier mois :
-

Faire ltat de lart sur langages visuels.

Faire ltat de lart sur system de visualisation des graphes et sur des API de visualisation.

Le deuxime mois :
-

Proposer des symboles, des rgles de transformation des symboles au patron de requte.

Proposer une amlioration pour lalgorithme de la recherche du plus court chemin sur graphe.

Conception du system de visualisation et de requtage des graphes.

Le troisime et quatrime mois :


-

Dvelopper le logiciel.

Le cinquime mois :
-

Tester le logiciel.

Ajouter des facteurs danalyse des rseaux sociaux.

Ajouter le module de visualisation pour le spider graphes.

Intgrer le module de requtage au spider graphes.

Le dernier mois :
-

Ecrire le rapport final.

Evaluer la performance du system.

4. ENVIRONNEMENT DU STAGE
Ce sujet se situe dans le contexte du projet ARSA (Analyse de Rseaux Sociaux pour les
Administrations). Les diffrentes partenaires de ce projet sont SAP, lEcole Centrale Paris et
Euclyde. Le rle de lECP (laboratoire MAS) est de concevoir des algorithmes innovants
danalyse et de requtage de graphes. Mes travaux ont t raliss au laboratoire MAS avec :
-

Marie Aude AUFAURE : chef de lquipe BI, directrice du sujet.

Rania SOUSSI : Doctorante MAS.

- 13 -

CHAPITRE II ETAT DE LART


1. RESEAU SOCIAL
1.1 Dfinition
Un rseau social est un ensemble d'identits sociales telles que des individus ou encore
des organisations relies entre elles par des liens crs lors des interactions sociales. Il se
reprsente par une structure ou une forme dynamique d'un groupement social. Un rseau social
reprsente une structure sociale dynamique se modlisant par des sommets et des artes. Les
sommets dsignent gnralement des gens et/ou des organisations et sont relies entre elles par
des interactions sociales.
Aujourdhui, rseau social deviens un symbole de rvolutions technologiques et techniques. La
thorie des rseaux sociaux qui est bas sur thorie des graphes, conoit les relations sociales en
termes de nuds et de liens. La thorie des graphes qui est une thorie informatique et
mathmatique, est utilise comme une mthode principale pour visualiser, analyser des rseaux
sociaux. Les objets de cette thorie ont de nombreuses applications dans tous les domaines lis
la notion de rseau (rseau social, rseau informatique, Tlcom).
1.2 Mthode et mtrique danalyse
Lanalyse des rseaux sociaux permet de mieux comprendre le comportement des acteurs et des
communauts : quelle est la place de lacteur au sein de lensemble ? Est-il central ? Priphrique
? Fait-il le lien entre diffrentes communauts ? Comment est organise la communaut ? En
plusieurs groupes ? Est-elle homogne ? Dense ?
Cette analyse permet de comprendre en profondeur le fonctionnement des communauts en ligne.
Cest une mthode danalyse quantitative puissante qui complte lempirisme avec lequel
les gestionnaires animent leurs communauts. Elle permet de faire apparaitre des dynamique
aprs coup ou lanalyse des rseaux sociaux se fait en trois temps distincts : la rcupration des
donnes, leur analyse et leur visualisation. Chaque temps a ses outils propres mme si certains
outils combinent plusieurs temps.
La visualisation des rseaux sociaux est une premire tape importante pour lanalyse ces
rseaux. Elle donne une vue intuitive lutilisateur. Il existe de nombreuses applications qui

- 14 -

permettent de visualisation des rseaux de faon interactive telles que Gephi, Prefuse,
GraphVizetc
Ltape de la rcupration des donnes rsout le problme de stockage des rseaux sociaux. Le
rseau simple est enregistr sous forme dune matrice ou une liste. Le rseau assez complexe
peut stockage en forme du fichier avec la structure de donnes simple tels que GraphML,
GMLPour les gros rseaux avec millions des nuds, on peut utiliser la reprsentation de
donnes RDF ou RDFS.
Lanalyse des rseaux est le but la fin et le plus importante parce quon trouver des
informations utiles sur ces rseaux. On peut donc grer efficacement les rseaux sociaux. Les
fonctions de lanalyse des rseaux sont la recherche des chemins dans ces rseaux, faire de
requtage pour trouver des informations, calculer des facteurs de centralit ou de-centralit [8]
2. SYSTEME DE REQUETE VISUEL
2.1 Prsentation
Dans cette partie, je vais prsenter la structure dun systme de requtage visuel en gnral :

Figure 2: Systme en gnral


Un systme de requtage visuel a trois parties principales :

- 15 -

Interface de lutilisateur : Cette interface contient deux components importants.


Premirement, le component de dessiner des requtes qui permettent aux utilisateurs de
dcrire des requtes graphiques en utilisant des symboles, des icnes ou des facettes.
Deuximement, cest la fonction de la visualisation des rsultats de requte ou des graphes de
donnes.

Langage visuel de requte : Un langage visuel provient de langage de programmation


visuelle. Il exprime un objet abstrait ou non-abstrait dans une reprsentation visuelle afin
damliorer linteraction homme-machine. Il a des rgles et des formulaires qui expliquent la
smantique des symboles, des icnes ou des facettes. Des langages visuels existants tels que
RDF-GL, QGraphUn langage visuel est bas sur un langage de requte textuelle qui
permet dexcuter des requtes en texte partir dune base de donnes. Par exemple SQL,
SPARQL, nRQL, N3

Gestion de base de donnes : En fait, dans ce systme, ce module est la gestion de donnes
telles que SQL serveur, Gestion dontologie serveur

2.2 EXEMPLE DE LANGAGES VISUELS


2.2.1 SEWASIE
SEWASIE [9] a une interface dutilisateur intelligente dont le but est de donner lutilisateur des
supports de la formulation dune requte prcise. SEWASIE utilise le langage de requte SQL
pour excuter des requtes. Les utilisateurs mettent en place une requte en choisissant le
domaine prcis. Ensuite, on peut grer la requte et le modifier pour trouver des rsultats
convenables.

- 16 -

Figure 3: L'interface de SEWASIE

2.2.2 GrOWL Query


GrOWL-Query [10] est un outil dont linterface a des icnes afin de dessiner des diffrents types
de nud (Class, Objet, proprit, individuel) ainsi que des constructions de langage visuel tels
que la ngation, lunionetc. La fonction de visualisation permet de visualiser des graphes sous
forme OWL ontologies. Le langage Description Logique (DL) est utilis. Il est une famille de
langages de reprsentation de connaissance terminologique d'un domaine d'application d'une
manire formelle et structure. Le nom de logique de description se rapporte, d'une part la
description de concepts utilise pour dcrire un domaine et d'autre part la smantique base sur
la logique qui peut tre donne par une transcription en logique des prdicats du premier ordre.
La logique de description dveloppe est une extension des frames et des rseaux smantiques,
qui ne possdaient pas de smantique formelle base sur la logique. Une requte contient des
atomes x:C et (x, y) : R o x et y sont les variables ou les individuels. C est des concepts et R est
des rgles. Par exemple dune requte visuelle :

- 17 -

Figure 4-a : Requte visuel avec GrOWL

Figure 5 : Requte en forme du langage DLs


Des lettres ? , - sont utiliss. ?x signifie que SELECT le variables x. - a la
smantique ngative.

- 18 -

Figure 6 : GrOWL interface


Les rgles correspondantes sont dans le tableau suivant :
Dfinition logique

Utilisation de nud

Nud operateur

Nom dobjet, class,


Intersection
Union
Compltement
Enumration
Restriction existante
Toutes les restrictions
Au minimum
Au maximum
Restriction de value
Table 1 : Des symboles utiliss et leurs smantiques

- 19 -

2.2.3 GRQL
GRQL [11] fournit la reprsentation graphique en forme darbre. Il permet aux utilisateurs de
naviguer travers un modle RDF ou RDFS. Les classes dobjets et leurs proprits sont listes
dans un arbre. Lutilisateur peut choisir une classe ou une proprit pour commencer sa requte.
GRQL ne visualise pas le graphe de donnes mais il supporte des symboles simples pour des
requtes visuels. Le cercle et le flche sont utiliss pour dessiner une requte simple. Les cercles
sont tiquets par le nom de la classe, les flches sont tiquetes par le nom de la relation. Par
exemple : On a deux classes dans la requte : Artist et Artifact. Artifact est une sous-classe
dArtist avec relation Creates. La smantique de la requte est de slectionner tous les
domaines qui concernent lArtifact et qui sont cr par des artistes.
Requte

Rql requte
Select x2 from {x1} creates {x2}

chemin
Artist creates Artifact

Table 2 : Un exemple de requte simple de GRQL


Les proprits de la classes sont lies avec une classe par les flches ==>. Par exemple, on
ajoute une proprit Painting pour la classe Artifact
Requte

Rql requte
Select x2 from {x1} creates
{x2 ;Paiting}

Chemin
Artist creates Painting

Table 3 : Un exemple de requte avec la proprit


2.2.4 GRAPHITE
GRAPHITE est un systme de requtage visuel sur grands graphes. Le systme permet aux
utilisateurs de crer et excuter une requte ainsi que la visualisation du rsultat correspondant
qui est similaire ou presque exacte. Un avantage de GRAPHITE est la visualisation des rsultats
obtenus avec linterface conviviale qui utilise des cercles en couleur pour reprsenter des nuds.
Le cercle peut reprsenter un sujet ou un objet. Les cercles se connectent par des arcs sans
tiquete.

- 20 -

Le grand avantage du systme est le temps de rponse plus rapide. Le systme rponde aux
requtes trs vite, car il utilise lAPI JUNG pour visualiser des graphes et les algorithmes
programms en MATLAB. GRAPHITE utilise RemoteMATLAB logiciel bibliothque qui peut
appeler des fonctions de MATLAB. GRAPHITE extrait des patrons partir de requtes visuels.
Ces patrons seront les entres des algorithmes MATLAB.

Figure 7 : Linterface de GRAPHITE


Comparaison parmi les systmes de requtage visuel :
Des caractristiques principales des systmes prsents au dessus sont compares dans le tableau
suivant. On utilise six caractristiques pour les observer : (1) La fonction de visualisation des
graphes entrs, (2) utiliser le langage de requte SPARQL, (3) supporter des filtres dans la
requte, (4) supporter des agrgations dans la requte, (5) avoir le requte du chemin, (6)
supporter la recommandation.
Systme
SEWASIE
GrOWLQuery

Visualisation SPARQL Filtre

Yes

Agrgation Requte de chemin recommandation

Yes
Yes

- 21 -

Yes
-

GRQL
GRAPHITE

Yes
Yes
Yes
Table 4 : la comparaison entre des systmes de requtage visuel

Yes
Yes

2.3 LANGAGE VISUEL POUR RDF


Dans la rcupration de donnes partir de RDF, le langage de requte est des structures
trs complexes telles que RQL, SPARQL, N3 et nRQL. Les rgles rendront l'utilisateur
normal trs

droutant. Pour

aider

simplifier

le

processus de

requte,

les langages

visuels (graphiques) sont dvelopps qui ont d'abord t introduite dans [12]. En fait, les
langages visuels reprsentent des objets abstraits et non abstraite dans une reprsentation
visuelle afin d'amliorer l'interaction homme-machine. Ces langages utilisent des symboles qui
permettent aux utilisateurs de construire une requte simple dans la forme graphique. Ces
langages dfinissent les rgles spcifiques pour transformer facilement la requte graphique en
requte textuelle. Dans ce rapport, je passerai en revue certains langages de requtes,
qui supportent les requtes de donnes sur RDF tels que DERI, GLOO, RDF-GL
2.3.1 DERI
DERI [13], le langage visuel utilise la notation 3 - N3 [14] pour spcifier la requte textuelle. La
notion essentielle d'une requte est un modle de triple RDF. Un triple est en forme : <sujet,
prdicat, objet> o le sujet, prdicat, objet peut tre une variable. Une requte N3 se compose
d'une syntaxe ql: where avec un ou plusieurs triples prcisant les critres de slection, et une
syntaxe ql:selection qui spcifie le format d'un rsultat de requte.
Les symboles utiliss sont deux types : facette et multiple facette. Le premier type est une seule
facette qui contient le mot cl. Par exemple, rechercher tous les ressources avec le prdicat
dc:titre qui contient le mot cl computer :

Le deuxime type est les multiples facettes pour que les utilisateurs aient besoin de facilit de
restreindre lensemble du rsultat sur les multiples dimensions. En termes d'une requte,
les multiples facettes montent des conditions pour spcifier la position du sujet. En fait, les
multiples facettes sont des facettes relies. Par exemple, l'utilisateur veut chercher de toutes les

- 22 -

ressources de base de donnes avec le titre RDF et le nom du sujet Query formulation, la
requte graphique est :

Une facette se compose deux parties. La partie gauche est

le prdicat dun triple. La

partie droit est la value dobjet. Un exemple de requte graphique :


DERI requte visuelle

Notation 3 requte en texte

Table 5 : Une requte visuelle de DERI


2.3.2 GLOO
GLOO [15] est un langage visuel qui utilise le langage nRQL [16] pour spcifier la requte
textuelle. GLOO permet aux utilisateurs de dessiner des symboles pour formuler une requte. Il
utilise des cercles qui signifient les operateurs logiques tels que ET, OU. Les ovales reprsentent
des sujets. Lautre symbole est la flche qui dcrit les options et les relations. La description en
dtaill est dans le tableau suivant:
Symboles

Correspondance Description
<concept>

Dclarer les concepts tels que le sujet, lobjet, le genre


de personnes. Par exemple : personne, homme, femme,
voiture

<individual>

Dclarer lindividuel prcis.

<role>

Dfinition de la relation parmi les concepts. Les


flches permettent de connecter deux concepts ou entre
un concept et un oprateur.

- 23 -

<operator>

Les cercles dfinissent les oprateurs logiques.

<conceptnegated>

La ngation du concept. La ngation NOT permet de


slectionner des instances qui nappartiennent pas ce
concept.

<conceptCe symbole utilise NOT KNOWN TO BE pour


complemented> choisir les instances qui nappartiennent pas ce
concept complet. Par exemple : NOT KNOW TO BE
personne signifie que lon ne choisit pas lhomme, la
femme
<role-negated>

Pour choisir les instances qui nont pas cette relation

<rolePour choisir les instances qui nont pas cette relation


complemented> complte.
Table 6 : Les symboles et leurs smantiques
Le langage de requte nRQL est utilis pour transformer les requtes graphiques en requtes
textuelles. Les symboles sont correspondus avec les syntaxes de nRQL par des rgles prcises.
nRQL comprend deux parties : La tte et le corps. La tte commence par le mot ans(

) qui signifie la requte SELECT. Le corps est dfini de faon inductive par syntaxe
body( ,

). Dans ce cas

suivante : Ans (

Requte visuelle

, .,

sont les noms dobjet. En gnral, la formule est

) body( ,.,

nRQL requte

Ans(human) (has_child(human))V(has_child(human))

Table 7 : Une requte de GLOO et nRQL requte en texte


2.3.3 EROS
EROS [17] est un langage visuel qui se basse sur deux approches graphiques : Larbre approche
et graphe. La structure darbre est simple reprsenter les donnes et le graphe reprsente des

- 24 -

relations de donnes. EROS est donc un outil trs fort explorer/parcourir des donnes sous
forme RDFS. Ce langage nutilise pas plusieurs symboles parce quil utilise deux arbres pour
reprsenter les donnes RDFS. Larbre gauche et larbre droit reprsentent les mmes
donnes. Par exemple :

Figure 8 : Exemple de requte visuel avec EROS


Les flches signifient que FROM et TO dans une requte WHERE. Pour extraire requte
textuelle, ce langage sest bas sur le langage de requte RQL. Les syntaxes de RQL sont
similaires avec SPARQL. RQL fournissent pleinement des syntaxes pour dfinir compltement
une requte avec SELECT, WHERE, FROM et les oprateurs tels que MINUS, UNION, AND,
OR, et LIKEToutes les variables sont dfinies dernire @ or $. Dans le figure dessus, la
requte textuelle est suivant : SELECT PHOTO FROM {PHOTO}depictsTheme{THEME: Universe},
takenWithSettings{PHOTO: Medium}, usingTechnique{PHOTO: technique} WHERE THEME like
Paris falls and COUNTRY like F*.

2.3.4 RDF-GL
RDF-GL [5] est un langage visuel graphique trs puissant basant sur SPARQL. Ce langage aide
lutilisateur dessiner une requte graphique en utilisant des symboles. Il y a trois groups des
symboles principaux : Les botes, les cercles, les flches. La smantique des symboles dpend de
la forme et des couleurs.

- 25 -

Figure 9 : Un exemple de requte de RDF-GL


Les constructions de requte graphique sont spares en trois groupes de symboles. Les botes
sont en orange, rose ou vert. Chaque couleur signifie des smantiques diffrentes. La bote peut
tre un enfant dun autre lment ou un parent dun autre.
Des botes :
Nom

Cl

Couleur

Symbole

Description

Bote rsultat

BR

Orange

Elle contient les informations de requte


dexcution

Bote de filtre BFSO


sujet, objet

Vert

Permettre de filtrer des sujets ou des objets.

Bote
sujet/objet

BSO

Rose

Signifier un sujet ou un objet.

Nom

Cl

Couleur

Union Cercle

CU

Bleu

Ce symbole dfinit loperateur UNION qui


lie deux sous-requtes.

Cercle
optionnel

CO

Pourpre

Ce symbole se rfre des options dans la


requte SPARQL.

Des cercles :
Symbole

Description

- 26 -

de AP

noir

Cette flche dcrit une relation parmi des


lments. Elle peut relier les deux botes
BSO et BFSO.

AO

Gris

Cette flche explique la relation entre deux


cercles ou entre cercle CO et la flche AP.

Flche dUnion AU1

jaune

Flche dUnion AU2

Rouge

Les flches AU1 et AU2 peut combiner


seulement avec le cercle CU.

Flche
proprit
Flche
doption

Table 8 : Les symboles et leurs smantiques de RDF-GL


Les positions des options dans chaque symbole sont suivantes :

Figure 10 : Les positions des options dans un symbole


Dans la figure B1, B2, B3, B4, B5, C1, A1 sont des options :
Position

Nom

Symbole

Haut-Gauche

B1

Afficher tous les rsultats ou non.

Haut-Droit

B2

Ajouter loprateur DISTINCT.

Bas-Droit

B3

Bas-Gauche

B4

Afficher les rsultats avec LIMIT {from, to}

Centre

B5

Reprsentation du nom dobjet.

Centre

C1

Nom doption

Centre

A1

Nom de relation.

Description

Ranger les rsultats en ordre.

Table 9 : Les positions des options dans une symbole RDF-GL


Dans RDF-GL, uniquement les requtes SELECT sont utilises avec les options telles que
DISTINCT, OPTIONAL, UNION, WHERE. En outre, les oprateurs ORDRE BY, LIMIT,
OFFSET sont aussi utiliss. RDF-GL support compltement les types de requtes SPARQL. Par
exemple :

- 27 -

Table 10 : Un exemple de requte RDF-GL transforme au SPARQL


Les rgles sont construites pour valider des relations parmi des sujets/objets. Par exemple le BSO
et BFSO peuvent tre seulement les parents des autres BSO ou BFSO. The CU, CO peuvent tre
seulement les parents des autres CU, CO or AP. Pour le but de transformer les requtes
graphiques en requtes SPARQL, les 86 rgles sont dfinies dans [5].
Nom

RDF-GL

SPARQL

SELECT

FILTER

TRIPLE

UNION

- 28 -

OPTION

Table 11 : Rgles de combinaison des symboles de RDF-GL


Comparaison entre les langages visuels :
Tous les cinq langages permettent de construire des requtes graphiques de faon diffrentes.
Mais Ils ne supportent pas encore la recommandation qui est une fonction importante aidant
lutilisateur dessiner facilement des requtes. Il existe seulement le langage RDF-GL qui utilise
le langage de requte SPARQL. Cest un langage norme for RDF/RDFS. La comparaison sest
fait comme le tableau suivant :
Langage
Type de
visuel des requte
requtes
visuelle

la Supporte des types Langage de requte


de requte

Data langage

DERI

Facette

Slection

N3

RDF/RDFS

GLOO

Larbre

Slection

nRQL

OWL
ontologies

EROS

Larbre

Slection

RQL

RDF/RDFS

RDF-GL

Graphe couleur Slection avec les SPARQL


agrgations
Table 12 : La comparaison des langages visuels

- 29 -

RDF/RDFS

CHAPITRE III SYSTEME DE VISUALISATION ET DE REQUETAGE DES


GRAPHES
1. DESCIRPTION DE LA SOLUTION PROPOSEE
Le but du sujet est de construire un systme de visualisation des graphes et de surdinterroger
ces graphes. Le systme architectural en gnral est appliqu. Dans ce chapitre, la reprsentation
dtaille du systme est focalise surtout des components et la structure dans lesquels il y a des
fonctions et leurs interrelations, les entres, et des sorties. Larchitecture gnrale du systme et
les fonctions de base sont prsents.
1.1 ARCHITECTURE DU SYSTEME

Figure 11 : Architecture du systme


Le systme a cinq fonctions principales :
-

Fonction de la visualisation : Il y a deux parties. La premire partieLe systme permet aux


utilisateurs de dessiner des requtes permet aux utilisateurs de visualiser des requtes. La
deuxime partieet de visualise les des graphes de donnes.

Fonction de lextraction des patrons : Extraire des patrons partir des graphe de requtes
dessines. Un graphe deUne requte est un graphe G telque en forme mathmatique G= (V,
E) o V est un ensemble de nuds, E est un ensemble darcs.

- 30 -

UnLe patron est dfini comme par P (O, A, R, C, UO) o :

+ O est un ensemble dobjets dfinis.


+ A est un ensemble dagrgations.
+ R est un ensemble de relations.
+ C est un ensemble de conditions.
+ UO est un ensemble dobjet inconnu.
-

Fonction de la transformation de patron en SPARQL requtes : Elle permet de transformer


les patrons extraits en SPARQL requtes.

Fonction de lexcution des requtes danalyse : Les requtes danalyse sont des requtes du
chemin ou des agrgations.

Fonction de lexcution des requtes de slection : Les requtes sont excutes par lAPI
Jena.

2. LANGAGE VISUEL PROPOSE


2.1 SYMBOLES UTILISES
Des Les symboles permettent aux utilisateurs de dessiner facilement des requtes. Puisque une
requte est un graphe G (V, E), les symboles sont diviss en deux groups : le groupe des nuds
reprsentant des objets ou des attributs et le groupe des arcs reprsentant des relations. La
smantique de chaque symbole est dcrite dans le tableau suivant :
Symbole

Nom (Type)

Description

Objet dfini

Le Ce symbole est utilis pour dessiner un objet dfini en


gnral dont le type est connu. Par exemple : Employe.
Cet objet devient une instance sil a un ou plusieurs
attributs, par exemple Employe a le nom Bryan

Objet inconnu

Quand on ne connait pas dele types et attributs dobjet est


inconnu, le ce symbole sera utilis.

Attribut dfini

Un attribut dfini a une valeur spcifie.La valeur dun


attribut

Attribut
inconnu

Un attribut inconnu sans valeurs

Oprateur
dagrgation

Pour spcifier lagrgation utilise telles que COUNT,


SUM, MIN, MAX qui seront appliqus sur un objet ou un
attribut

- 31 -

Oprateur de Pour spcifier la une condition utilise telles que


condition
DIFFERENT, GREAT THAN, LESS THAN, EQUAL.
Oprateur
dintersection

Pour spcifier la relation entre deux sous-requtes

Oprateur
dunion

Pour spcifier la relation entre deux sous-requtes

Table 13 : Les symboles proposs de nudpar le systme pour les noeuds

Symbole

Nom (Type)

Description

Lien
dagrgation

Le lien relie un oprateur du type dagrgation et un objet


ou un attribut.

Lien dattribut

Le lien entre un nud du type dattribut et un nud du type


dobjet

Lien
de Le lien entre un nud du type de condition et un nud du
Condition
type dobjet ou attribut.
Lien
chemin

de Le lien spcifie le type de la requte du chemin. Ce lien


relie deux nuds du type dobjets.

Lien
relation

de Le lien spcifie la relation entre deux nuds du type


dobjets.

Table 14 : Les symboles proposs pour les relations d'arc


2.2 REGLES Fonction deDE TRANSFORMATION DES REQUETES EN PATRONS
Une requte graphique est un graphe G (V, E) o V est un ensemble de nuds et E est un
ensemble des arcs. Dans cette partietape le systme transforme la requte en un patron en
utilisant un ensemble de, les rgles sont dfinies clairement pour transformer des requtes en
patrons :

G (V, E) P (O, A, R, C, UO)

Par exemple :

- 32 -

Table 15 : Exemple de requte visuelle et de patron extrait de cette requte.


Rgle 1 :
Un nud du type dattribut dfini
V,

corresponds un attribut a (type, valeur) :

(type= attribut, valeur= " ") a(t, " ")

Rgle 2 :
Un nud du type dattribut inconnu
V,

corresponds un attribut a (type, ?) :

(type= attribut, valeur=

) ua(t, ?)

Rgle 3 :
Un nud du type dobjet dfini

V qui a un ensemble de nuds du type dattribut dfini

et un ensemble de nuds du type dattribut inconnu

corresponds un objet dfini o

(type, ( , ), ua(t, ? )) :
V,

(type,

) o(type, ( , ), ua(t, ? )), oO ;

Rgle 4 :
Un nud du type dobjet inconnu
dfini

V qui a un ensemble de nuds du type dattribut

et un ensemble de nuds du type dattribut inconnu

corresponds un objet inconnu

uo (type, ( , ), ua(t, ? )) :
V,

(type,

) uo(type, ( , ), ua(t, ? )), uo UO ;

Rgle 5 :
Un nud du type de condition

sur attribut inconnu

dun objet

V corresponds une condition c C :

, oprateur, valeur) c(ua(t, ? ), oprateur, valeur) c C.


, oprateur, valeur) c(ua(t, ? ), oprateur, valeur) c C.

- 33 -

V ou

Les agrgations sont divises en deux groupes. Le premier groupe est COUNT et SUM, ils sont
appliqus seulement sur des objets. Le deuxime groupe est MIN, MAX, AVG qui sont
appliqus sur des attributs dun objet.
Rgle 6 :
Un nud du type dagrgation

appliqu sur un objet

V corresponds une

agrgation a A :
V,

, oprateur) a(o O, oprateur) a A.

Un nud du type dagrgation


ou

appliqu sur lattribut inconnu

dun objet

corresponds une agrgation a A :

V,

V,

, oprateur) a(ua(t, ? ),o O, oprateur) a A.


, oprateur) a(ua(t, ? ),uo UO, oprateur) a A.

Le lien entre deux objets a la capacit de spcifier leur relation dans le graphe ou bien dans le
rseau social par exemple, la relation entre deux personnes, entre telque entre employe et le
projetManager
la Dans ce qui suit, les rgles pour transformer des symboles du type de lien est suivantesont
dtaills :
Rgle 7 :
Larc e E entre deux nuds du type dobjet
e E, e( ,

et

) r( , ) o r R,

est correspond la relation r R :


O|

UO et

O|

UO

Des nuds du type doprateur sont utiliss pour construire des requtes complexes. Il y a deux
oprateurs qui sont utiliss, ce sont : UNION et INTERSECTION. ils relient les deux sousrequtes. Les nuds du type doprateur deux sous-graphes qui sont correspondus avec deux
sous-requtes. Une requte contient uniquement un oprateur. La transformation suit la rgle
suivante :
Rgle 8 :
Un nud du type doprateur
V et

qui relie deux sous-graphes

E:
- 34 -

( , ) et

( ,

) o ,

( , )

( ,

( ,

) P=

G (V, E) =

( ,

) UNION

G (V, E) =

( ,

) INTERSECTION

( ,

UNION

) P=

INTERSECTION

o FONCTION DEXTRACTION DES PATRONS


2.2.1 Requte de slection
Requte de slection permet aux utilisateurs de retrouver des nuds (objets) existants dans le
graphe de donnes. Des requtes de slection ne contiennent pas des agrgations sur objet et la
relation de requte du chemin. Une requte de slection en texte se compose de mots SELECT,
WHERE et des options GROUPBY, ORDRE BY, LIMITetc. Requte visuelle de slection
utilise des symboles du type de condition, type dagrgation sur attribut pour grer des rsultats
obtenus. Par exemple :
Requte dessine

Requte en texte
SELECT des projets qui sont grs par le manager WHERE le nom de
manager est Alain .

SELECT des noms des employes qui travaillent dans projet WHERE le
nom du projet est diffrent X

SELECT tous les noms de la voiture en ordre diminu.

- 35 -

SELECT toutes les personnes dont le nom contient An

Table 16 : Les smantiques de requte de slection des exemples


2.2.2 Requte danalyse
Requte danalyse permet aux utilisateurs dextraire des informations utiles dans le graphe de
donnes. En utilisant des nuds du type dagrgation sur objets ou des liens du type de requte
chemin. Par exemple :
Requte visuelle

Description
Recherche un chemin entre deux voitures WHERE lId de la
premire voiture est Toyota49 et lId de la deuxime voiture
est Ford77

Compter le nombre de voitures qui sont utiliss dans un projet

Table 17 : Les smantiques de requte d'analyse des exemples


3. SOLUTION PROPOSEE POUR AMELIORATION DE LA RECHERCHE CHEMIN
Un rseau social est un grand graphe avec million des nuds et des relations. Pour connatre des
relations et des types dobjet dans ce un graphe (telque un graphe de rseau sociale), le schma
du graphe est utilis. Le schma ou autre mot cest lontologie du graphe. Un schma dcrit
toutes les smantiques dun graphe. Par exemple :

- 36 -

Figure 12 : Un schma dun petit graphe


Dans lexample de la figure 18, Oon peut voir dans le schma les quatre relations diffrentes. Les
relations relient trois types dobjet qui sont personne , ville et runion . Dans plusieurs
cas, la relation entre deux types dobjet dpend de scnarios actuelle, par exemple une personne
et une ville peut avoir des types de relations : habiter et n . La relation entre des
nuds est htrogne. On a de diffrents types dobjet, de diffrents types de relations, donc,
une tche importante est dvaluer le poids de chaque type. Quel type dobjet/de relation est plus
importe que les autres. Cette valuation combine avec les caractristiques du graphe telles que le
dgre, le nombre de relations entres et le nombre de relations sorties pour produire un
coefficient. Ce coefficient est la fonction dvaluer dans les algorithmes de la recherche du
chemin tels que Dijkstra [18], parcours en profondeur, parcours en largeur et surtout des
algorithmes utilisant la fonction heuristique tels que A-toile, Best First Search, IDA-toile qui
sont dcrits en dtaills dans [19]. Dans la fonction de la recherche du chemin, jai utilis
lalgorithme A-toile parce quil est optimal et plus simple.
3.1 ALGORITHME A_ETOILE ET FONCTION HEURISTIQUE PROPOSEE
3.1.1 Evaluation du poids dun nud
Puisque lordinateur ne connait pas la smantique de la relation, on utilise la probabilit pour
mesurer la relation. Soit le nud A est reli au nud B par une relation et B a une relation avec
nud C. On va calculer la probabilit pour de A reli C par une relation. La probabilit est
appele la transitivit entre des nuds. La transitivit [20] du nud i est calcule par la formule
suivante :

- 37 -

O :
-

est le dgre du nud i

est le nombre de liens parmi

voisins.

devient le coefficient-clustering du graphe. Quand

est plus grand que le seuil

, nud i

devient important, donc les relations entre ce nud avec les autres peuvent utiliser pour la
fonction de la recherche.
3.1.2 Evaluation des types dobjet.
Dans [20], dfinit aussi un coefficient est dfini qui est appel le nombre moyen de voisins du
type dobjets. Il est calcul par la formule suivante :
=
O :
-

: est un type dobjet, par exemple personne

( )=

( ) : est le nombre moyen de la connectivit du type .


( ) : est la connectivit topologique du nud i.

( ) : est le nombre de voisins du type

est le nombre du type dobjet que des nuds du type dobjet peuvent connecter. Par

de nud i. le type du nud i est .

exemple dans le schma de la figure 18. Des nuds du type dobjet personne peuvent
connecter avec deux autres.
La dispersion du type dobjet est calcule par la formule :

=
O :

(i) : est la variance du nombre de la connectivit du type dobjet.

3.1.3 Evaluation du type de relation.


Dans [20], les auteurs ont dfini la disparit du type de relation en comptant le nombre des
relations du type prcise et le nombre des relations du type prcise qui relie deux nuds prcis.
A partir de la disparit on peut calculer le facteur R() et la dispersion
de chaque type de

- 38 -

relation. Si R() est grand, le type dobjet relie avec le petit nombre de lautre type dobjet. Mais
les voisins du type sont grands. Par exemple, le type personne peuvent connecte avec deux
autres types, mais un nud Alice de ce type peut avoir plusieurs voisins.
3.1.4 Fonction heuristique
Lalgorithme A-toile formule la fonction dvaluation F(n) qui est suivante :
F(n) = d(n) + h(n)
O :
-

d(n) est la distance partir de nud n nud racine.


H(n) est la fonction heuristique.

A partir des cinq facteurs ci-dessus, on peut construire la formule de la fonction heuristique h(n)
suivante :
h(n) = f (

O : nud n appartient type .

- 39 -

,R(),

CHAPITRE IV IMPLEMENTATION ET EVALUATION


1. IMPLEMENTATION
1.1 INTERFACE DINTERROGATION
Le JUNG API [21] est utilis pour crer un outil de dessin des requtes visuelles. JUNG aide des
utilisateurs non-expert tirer facilement des symboles en utilisant les fonctions Drag et
Drop.

Figure 13 : Diagramme de fonction de dessiner des requtes.

Figure 14 : Linterface dinterrogation

- 40 -

1.2 INTERFACE DE VISUALISATION


Prefuse [22] est un API qui aide le dveloppeur crer des applications interactives de
visualisation des graphes en utilisant le langage de programmation JAVA. Prefuse simplifie
considrablement le processus de reprsentation et grer des donnes de manire efficace.

Figure 15 : Diagramme de la fonction de visualisation


1.2.1 Visualisation du graph simple

Figure 16 : Linterface de visualisation du graphe de donnes

- 41 -

Figure 17 : Linterface de visualisation du graphe de rsultat


1.2.2 Visualisation du spider graphe

Figure 18 : Visualisation du spider graphe

- 42 -

Un nud dans spider graphe :

Figure 19 : Exemple dune visualisation deux nuds du spider graphe

1.3 FONCTION DEXTRACTION DES PATRONS

Figure 20 : Diagramme de la fonction dextraction des patrons


Lalgorithme implment ci-dessous sest bas sur 9 rgles dans la section 2.2 du chapitre III. Il
permet dextraire un patron partir dun graphe de requte visuelle.

Entre: G (V, E) : Graphe de requte.


Sortie: P (O, A, R, C, UO) : Patron de requte
Nom de la fonction: extractionPattern( g: Graphe)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.

// Type du patron
if(G.constainObjectPath) then p.type = ANALYSE
else p.type = SELECT
//lments du patron
Foreach nud v in V do {
o est un objet du patron;
v est transform en o; /
Foreach nud in liste nuds qui connecte avec v do {
if( .type = attribut and .isDefined=true) then
o .definedAttribute(v1);
else o.unknowAttribute( );
}
if(v.type=object) then {
if(v.isDefined = true) then O.add(o);
else UO.add(o);
}
}
Foreach arc e in E do {

- 43 -

19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.

switch(e.type) {
case relation:
r est une relation;
e est transform en r;
R.add(r);
case agrgation:
a est une agrgation;
e est transform en a;
A.add(a);
case condition:
c est une condition;
e est transform en c;
C.add(c);
}
}
return p;

Table 18 : L'algorithme d'extraction des patrons


1.4 TRANSFORMATION DES PATRONS EN REQUETE SPARQL

Figure 21 : Lentre et les sorties de la fonction de transformation des patrons en SPARQL

Entre:
Sortie:
Nom de la fonction:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.

p(O,A,R,C,UO): patron de requte


Q : requte SPARQL
transformationSparql(p: pattern query)

SparqlQuery query;
query.prefixes = prefixes;
// transforme pattern of type SELECT to sparql query
if(p.type = SELECT){
Foreach relation r in R do {
query.triples +=triples(r.Subject,r.Predicate,r.Object);
}
Foreach object in O do {
query.vars += varialbles(o.unknowAttributes);
query.triples += triples(o.Subject,o.Predicate,o.Object);
}
Foreach unknown-object uo in UO do {
query.vars += variables(uo.unknowAttriubutes);
query.vars += variables(uo.name);
query.triples +=triples(uo.Subject,uo.Predicate,uo.Object);
}
Foreach condition c in C do {
if(c.type=operator) then
query.filters += filter(c.attributes,c.operator,c.values);
if(c.type=function) then

- 44 -

21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.

query.filters += filter(c.attributes,c.function,c.values);
}
Foreach aggregation a in A do {
if(a.operator=COUNT) then query.agg += count(a.vars,a.distinct);
if(a.operator=SUM)
then query.agg += sum(a.vars);
if(a.operator=MIN) then query.agg += min(a.vars);
if(a.operator=MAX)
then query.agg += max(a.vars);
if(a.operator=AVG)
then query.agg += avg(a.vars);
}
}
Query executeQuery = QueryFactory.create(query.toString(),Syntax.syntaxARQ);
return executeQuery;

Table 19 : L'algorithme de transformation une requte visuelle en SPARQL

1.5 FONCTION DEXECUTION DES REQUETES

Figure 22 : Lentre et sortie de la fonction dexcution des requtes SPARQL


Jai utilis JENA [23] pour excuter des requtes. Il est un API en Java qui est utilis pour crer
et manipuler RDF graphes. JENA a des classes dobjets pour reprsenter des graphes, des
ressources et des littraux. Dans JENA, un graphe est appel un modle et reprsent par
linterface du modle. ARQ [24] est une implmentation du langage de requte SPARQL dans
JENA. Elle permet dexcuter des requtes SPARQL avec les extensions telles que des
agrgations, des filtres. ARQ implmente des expressions telles que GROUP BY,
HAVINGetc.
1.6 ALGORITHME DE LA RECHERCHE DU CHEMIN
Lalgorithme ci-dessous permet de construire un patron de requte chemin partir dune requte
visuelle :

Entre: G(V,E) : graphe de requte visuelle


Sortie: p(O,A,R,C,UO) : patron de requte
Nom de la fonction: pathPattern( g: Graphe)
1. if(G.constainObjectPath) then {
2.
// pattern type
3.
p.type = PATH;
4.
// get the sub-left graph of graph G(V,E).
5.
left_graph = g.left;
6.
// get the sub-right graph of this graph G(V,E)
7.
right_graph = g.right;

- 45 -

8.
// extract the left pattern of path query
9.
p.left_pattern = extractionPattern(left_graph); [*]
10.
// extract the right pattern of path query
11.
p.right_pattern = extractionPattern(right_graph); [*]
12. }
13. return p;

[*] Voir la fonction extractPattern() dans la section 1.3.


Table 20 : Fonction de transformation d'une requte chemin en patron
Lalgorithme ci-dessous permet de transformer un patron de requte chemin en SPARQL et
retrouver le chemin :

Entre:
Sortie:

Pattern p(O,A,R,C,UO,OP): pattern query


Path Graph

Nom de la fonction: searchingPathOnGraph()


1. if(p.type = PATH) then {
2.
3.
SparqlQuery q_left = transformationSparql(p.left_pattern); [*]
4.
SparqlQuery q_right = transformationSparql(p.right_pattern); [*]
5.
// get start node of path
6.
RDFNode start_node = executeQuery(q_left);
7.
// get end node of path
8.
RDFNode end_node = executeQuery(q_right);
9.
// get the graph of input data
10.
GraphRDFNode graph = Jena.model.getGraph();
11.
// retrieve the path with start node and end node.
12.
GraphRDFNode path = retrievePath(graph,start_node,end_node); [**]
13.
Return path;
14. }
[*]
[**]

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.

Voir la fonction transformationSparql() in the section 1.4


Function retrievePath(GraphRDFNode g, RDFNode start, RDFNode end){
Queue queue = new Queue();
List list_visited_nodes;
queue.push(start);
// starting task
while(!queue.isEmpty()){
RDFNode node = queue.pop();
list_expanded_nodes = expand(node);
if(list_nodes_expanded.constain(end)) break;
queue.push(list_expanded_nodes);
// update the weight of node by using F(n) = d(n) + h(n);
updateWeightFunction(queue);
list_visited_nodes(list_expanded_nodes);
}
// get back the found path.
GraphRDFNode path = traceBack(list_visited_nodes,start,end);
return path;
}

- 46 -

Table 21 : L'algorithme de lexecution des requtes chemins.

2. EVALUATION
2.1 GRAPHE DE DONNEES POUR LEVALUTION
2.1.1 Schma

Figure 23 : Le schma du graphe


2.1.2 Nombre des nuds
Le schma du graphe est une partie dans la base de donnes relle. A partir du schma, jai
construit une fonction qui permet de gnrer un graphe avec le nombre des nuds dpendant de
lentre. Pour tester la capacit du systme on va augmenter le nombre du graphe.

- 47 -

Figure 24 : Graphe des 6000 nuds


2.2 EVALUATION DALGORITHME DE LA RECHERCHE DU CHEMINE
Number of
nodes
6000

Time for
loading Graph
data
420 ms

12000

1733 ms

30000

7312 ms

50000

63763 ms

Type of objects for


testing

Time for
searching the
path

Depth of result

Project-Project
Car Car
Manager-Manager

569
1136
120

33

Project-Project
Car Car
Manager-Manager
Project - Project
Car Car
Manager - Manager
Project - Project
Car-Car

870
818
235
1228
4243
4833
5840
21292

65
29
28
30
37
21
21

- 48 -

24
26

55

70000

297968 ms

Manager - Manager
Project - Project
Car Car
Manager - Manager

7349

12312
17281
14175

15
37
34
15

Table 22 : Rsultats obtenus des requtes chemin


Table :
25000
20000
15000

project-project
car-car

10000

manager-manager
5000
0
600

12000

30000

50000

70000

Figure 25 : Diagramme du temps de rponse et nombre de nuds


2.3 EVALUATION DE LA FONCTION DE VISUALISATION
Graph query

Pattern

SPARQL query

Pattern SELECTION P{
object1:(Employee,
Employee)
object1.name(?);
object2:(Project,
Project)
object2.name(DIFF(X));
relation1(Work
on):
Employee => Project}

SELECT ?name
WHERE {
?x employee :name ?name
?x employee :work_on ?y
?y probject :name ?z
FILTER ?z != ITC
}

Rsultats :

- 49 -

Pattern SELECTION P{
object1:(Employee,
Employee)
object1.name(Bryan
Eddie);
object2:(Project,
Project)
object2.name(?);
relation1(Work_on):
Employee => Project}

SELECT ?name
WHERE {
?x employee :name ?name
?x employee :work_on ?y
?y probject :name ?z
FILTER ?name = Bryan
Eddie
}

Rsultat :

Table 23 : Rsultats obtenus des requtes de slection

- 50 -

CHAPITRE V CONCLUSION ET PERSPECTIVE

Au cours de ce travail, un langage dinterrogation visuel a t propos. Ce langage


permet aux utilisateurs non-experts de dessiner leurs requtes en utilisant des symboles
simples. Par la suite, les requtes sont transformes en patrons puis rechercher dans le
graphe. La transformation sest base sur des rgles proposes. Linterface du langage
permet aux utilisateurs de visualiser des graphes de faon interactive,

visualiser le

rsultat obtenu sous forme de graphe, la recommandation pour construire facilement et


correctement des requtes visuel. Lapplication accepte les graphes stocks en RDF ou en
GraphML et peut transformer un GraphML en RDF et vice versa.
Lapplication visualise non seulement des graphes simples mais encore des spidergraphes. En plus, elle permet aux utilisateurs faire de requtage sur spider-graphe en
utilisant des algorithmes de la recherche des patrons qui sont proposes par autre stagiaire
dans mon quipe. Des algorithmes danalyse des rseaux sociaux ont t galement
implments. Les quatre facteurs implments sont Closeness centrality, Betwenness
centrality, Degree et Density.
Lapplication donne des utilisateurs rels plusieurs fonctions utiles. Cependant, il existe
encore des limites dans le systme construit. Premirement, linterface du systme nest
pas assez professionnel parce quil est bas sur Swing. Deuximement, le temps de la
fonction de visualisation est un peu long quand on visualise des grands graphes avec
million de nuds. Troisimement, le temps de la recherche du chemin est assez long
quand le graphe est un peu grand et la longueur du chemin actuel est plus long.
Finalement, il manque des testes sur plusieurs types complte de requte. Les types de
requte slection peut combiner avec des agrgations, UNION, INTERSECTION et des
filtres. Une requte devient plus complte et difficile grer.
A partir des limites, il existe des travaux faire pour que le systme puisse devenir un
bon outil daide au fait de requtage dans une utilisation actuelle :
-

On peut amliorer linterface graphique en utilisant des dcorations professionnelles.

- 51 -

On peut amliorer le temps de rponse des requtes en choisissant des coefficients


efficaces pour lvaluation des relations.

Des donnes de rseaux sociaux trs connus telles que Facebook, Twitter, Google+
sont utilises pour tester des fonctions du systme et les amliorer, sadapter avec des
requtes complexes.

- 52 -

REFERENCES
[1] La dfinition en gnral du rseau social : http://fr.wikipedia.org/wiki/R%C3%A9seau_social, le 3
oct. 2011.
[2] La dfinition en gnral du RDF : http://fr.wikipedia.org/wiki/Resource_Description_Framework le 3
oct. 2011.
[3] La description en dtaill du GraphML : http://graphml.graphdrawing.org/ , le 3 oct. 11
[4] SPARQL Query Language for RDF W3C Recommendation 15 January 2008:
http://www.w3.org/TR/rdf-sparql-query/
[5] Richard Chbeir, Youakim Badr, Ajith Abraham, Aboul-Ella Hassanien Emergent Web Intelligence:
Advanced Information Retrieval, Universit de Bourgogne, INRIA de Lyon, Norwegian University of
Science of Norway, 2010.
[6] Duen Horng Chau;

Faloutsos, C.;

Hanghang Tong;

Hong, J.I.; Gallagher, B. and Eliassi-Rad,

T.; GRAPHITE: A Visual Query System for Large Graphs, In Workshops Proceedings of the 8th IEEE
International Conference on Data Mining (IDM 2008), pp 963 966.
[7] XML Path Language (XPath) W3C recommendation 16 November 1999 :
http://www.w3.org/TR/xpath/
[8] La dfinition en gnral des facteurs Centrality et Decentrality :
http://en.wikipedia.org/wiki/Centrality , le 3 oct. 2011
[9] Les description en dtaill du SEWASIE : http://www.sewasie.org/ le 3 oct. 2011
[10] Serguei Krivov and Ferdinando Villa owards an Ontology Based Visual Query System Lecture
Notes in Computer Science, 2005, Volume 3615/2005.
[11] Nikos Athanasis, Vassilis Christophides and Dimitris Kotzinos Generating On the Fly Queries for
the Semantic Web: The ICS-FORTH Graphical RQL Interface (GRQL) 1 Institute of Computer Science,
Foundation for Research and Technology Hellas, 2001.
[12] T. Catarci, Santucci G., and M. Angelaccio. Fundamental graphical primitives for visual
query languages. Information Systems, 18(2):75{98, March 1993.
[13] Andreas Harth Sebastian Ryszard Kruk Stefan Decker:Graphical Representation of RDF Queries
Digital Enterprise Research Institute National University of Ireland, Galway, 2006.
[14] TimBerners-Lee.Notation3 (N3) A readable RDF syntax, 1998.
[15] Amineh Fadhil and Volker Haarslev GLOO: A Graphical Query Language for OWL Ontologies,
Concordia University, Montreal, Quebec, Canada, 2006.
[16] Volker Haarslev, Ralf Moller, and Michael Wessel, Querying the Semantic Web with
Racer+nRQL, Concordia University, Montreal and Technical University of Hamburg-Harburg, 2004.

- 53 -

[17] Richard Vdovjak, Peter Barna, Geert-Jan Houben EROS: Explorer for RDFS-based Ontologies,
Eindhoven University of Technology 2003.
[18] Dijkstra, E. W. (1959). A note on two problems inconnexion with graphs. Numerische
Mathematik,1:269-271
[19] Stuart J. Russell and Peter Norvig Artificial Intelligence A modern approach , pp 80-300 1995.
[20] Marc Barth lemy, Edmond Chow and Tina Eliassi-Rad Knowledge Representation Issues in
Semantic Graphs for Relationship Detection , 2005
[21] JUNG lAPI en JAVA pour visualiser des graphes : http://jung.sourceforge.net/doc/index.html , 1004-2011.
[22] Prefuse lAPI en JAVA pour visualiser des graphes : http://prefuse.org/ , 10-04-2011
[23] JENA description : http://jena.sourceforge.net/index.html, 10-04-2011
[24] ARQ description : http://jena.sourceforge.net/ARQ/arq-query-eval.html, 10-04-2011

- 54 -