Easy-DOR : un système de gestion des besoins web au sein d'un groupe d'utilisateurs
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Easy-DOR : un système de gestion des besoins web au sein d’un
groupe d’utilisateurs
Max CHEVALIER, Christine JULIEN, Claude CHRISMENT
Campus Univ. Paul Sabatier
IRIT / SIG
118, Route de Narbonne
F - 31062 Toulouse Cedex 04
{chevalie, julien, chrisme}@irit.fr
Tél : +33 (0)5.61.55.63.22
Fax : +33 (0)5.61.55.63.23
Résumé : De plus en plus d’utilisateurs recherchent de l’information via les réseaux, et plus précisément sur
le World Wide Web. Pour arriver à leurs fins ils utilisent soit la navigation, soit des outils de recherche ou de filtrage
d’informations. Ces outils sont tout à fait adaptés pour une utilisation individuelle mais ne le sont plus lorsque l’on
considère non plus un individu mais un groupe d’individus. Cet article décrit Easy-DOR, un système permettant aux
utilisateurs de partager automatiquement des informations au sein d’un groupe. Il prend en compte à la fois les
besoins individuels et les besoins collectifs des utilisateurs.
Mots-clés : World Wide Web, Système de Recherche d’Information, Système de Filtrage d’Informations,
bookmark, profil utilisateur, partage de connaissances.
Abstract : Today, more and more users are gleaning information via networks (e.g. Internet and in particular
the World Wide Web). To perform this task they use either browsing, searching or filtering tools. These tools are
useful for the needs of a single user but are not adapted to a group of users having any information needs. This paper
introduces Easy-DOR, a system which enables users to automatically share information within a community. It
takes into account individual user’s information needs like collective point of interests.
Key-words : World Wide Web, Information Retrieval System, Information Filtering System, bookmark, user
profile, knowledge sharing.1 Introduction
Retrouver des informations répondant à nos besoins devient de plus en plus difficile. En
effet, les informations électroniques tendent à croître de façon exponentielle et le problème n’est
pas trop l’existence des informations mais bel et bien le moyen de les localiser. Ce problème est
d’autant plus important sur le world wide web (web) que la masse d’informations disponible est
énorme (d’après diverses études le web indexable1 représenterait plusieurs téra-octets
d’informations textuelles [LAWR99]).
D’autre part, dans la plupart des cas, lorsqu’un internaute consulte ou recherche des
informations sur le web il effectue une tâche individuelle. Lorsque cet utilisateur fait partie d’un
groupe cet aspect est d’autant plus dommageable qu’il garde, en général, l’information pour lui
seul.
Pour pallier cet état de fait, nous proposons, à un stade prospectif, un système (Easy-DOR)
ayant pour but de permettre à des utilisateurs faisant partie d’un groupe2 (équipe au sein d’un
laboratoire de recherche, d’une société…) d’utiliser les connaissances de chacun pour faire
évoluer à la fois les connaissances individuelles des utilisateurs ainsi que celles du groupe.
La section suivante (§2) présente les outils traditionnels permettant d’obtenir des
informations pertinentes sur le web, tandis que le §3 souligne l’émergence des applications
permettant un partage des connaissances au travers de la présentation de travaux existants.
Le système Easy-DOR que nous avons conçu est introduit dans le §4. Les fonctionnalités
offertes par ce système sont ensuite détaillées (§5) pour enfin présenter l’architecture à
proprement dite du système (§6).
2 Trouver des informations pertinentes sur le web
Pour identifier les informations pertinentes au sein d’une masse documentaire importante,
divers outils ont été développés. Il existe deux grands types d’outils : les outils basés sur une
approche PULL et ceux basés sur une approche PUSH. Ces deux approches se différencient par
la manière d'obtenir les informations.
2.1 Le principe PULL
L’utilisation des outils basés sur le principe de PULL nécessite de l’utilisateur une
« recherche active ». Ainsi, l’utilisateur doit, dès qu’il souhaite trouver ou mettre à jour des
informations pertinentes, ré-interroger le système en reformulant sa requête. Ces systèmes sont
appelés Systèmes de Recherche d'Information (SRI) et sont également appelés Moteurs de
Recherche [REVE98] lorsque ceux-ci sont appliqués au web.
De par son aspect actif, la navigation est assimilée aux outils basés sur le principe PULL.
1
Le web indexable correspond aux pages web effectivement indexées (répertoriées) par les outils de recherche sur
le web.
2
Un groupe est un ensemble d’individus quelle que soit leur localisation géographique.
PAGENBPAGES2.2 Le principe PUSH
A l’inverse, les utilisateurs emploient des outils basés sur le principe PUSH effectuent une
« recherche passive ». L’utilisateur ne formule qu’une seule fois ses besoins au système, qui, dès
qu’une information pertinente apparaît (par rapport aux besoins formulés) la lui propose. Ces
systèmes sont communément appelés Systèmes de Filtrage d’Informations (SFI).
La grande différence entre ces deux catégories d’outils (basés sur le principe PUSH ou
PULL) est la façon dont l’information est présentée à l’utilisateur. Avec le principe PULL,
l’utilisateur va aux devants de l’information (synchrone) tandis qu’avec le principe PUSH
l’information vient automatiquement aux devants de l’utilisateur (asynchrone).
Nous ne traitons pas des agents intelligents ([CAGL98]) car ils peuvent rentrer soit dans la
catégorie d’outils PULL (méta-moteurs…) soit dans la catégorie d’outils PUSH (outils de
veille..).
3 Emergence des systèmes de partage de connaissances
Les principes de PULL et PUSH sont des outils destinés généralement à un utilisateur
unique. Ces outils sont peu adaptés à un groupe d’utilisateurs possédant à la fois des besoins
propres et des besoins communs. Malgré tout, divers projets existent permettant de prendre en
compte cet aspect collectif du filtrage/recherche d’information. On peut citer entre autres,
l’interface VR-Vibe, l’outil IronWeb, le service en ligne OneView ainsi que l’outil Pharos que
nous décrivons sommairement ci-après.
3.1 VR-Vibe
VR-Vibe [BENF95] est une interface visuelle pour la recherche d’information (une liste
des projets concernant ce type d’interface peut être consultée à l’URL
http://www.pitt.edu/~korfhage/viri_bib.htm). Cette interface permet de visualiser tous les
résultats de recherche d’information de tous les utilisateurs dans, entre autre, un environnement
en trois dimensions (3D). Dans cet espace, chaque utilisateur peut annoter et juger les différents
documents retrouvés pour ainsi partager son opinion avec les autres utilisateurs.
3.2 IronWeb
Cet outil [DUSS00] permet de créer collectivement une base de connaissances sur le Web.
Cette base est construite à partir des bookmarks de personnes jugées expertes du domaine. Dans
le cadre universitaire, par exemple, on peut considérer que les professeurs possèdent des
bookmarks pertinents quant à leur domaine de recherche. Cet outil permet de centraliser les
bookmarks sur un serveur permettant un accès à ceux-ci via le web. Un assistant pour la
recherche d’information basé sur l’expérience de navigation des utilisateurs a également été
introduit ainsi qu’une interface d’interrogation de la base de connaissances.
3.3 OneView
OneView [ONEV99] est un « service en ligne de gestion de favoris (bookmarks) ». Il
permet d’avoir un accès à son répertoire de favoris internet à partir de n’importe quel micro-
ordinateur au travers d’Internet. Ce service se veut basé sur l’échange de favoris d’utilisateurs à
utilisateurs. Il permet également aux utilisateurs de se fédérer en une communauté afin de
PAGENBPAGESconstruire, ensemble, un répertoire de favoris sur le(s) thème(s) qui les intéresse(nt). Un outil de
recherche est également disponible pour effectuer des recherches dans la base de favoris.
L’outil effectue également une vérification des « liens morts » (pages non trouvées « erreur
404 »).
3.4 Pharos
Pharos [BOUT99], projet de l’INRIA permet à un groupe d’utilisateurs d’annoter et de juger
les pages web qu’ils visitent par rapport à leurs centres d’intérêts (channel). Chaque fois qu’un
utilisateur visite une page, les annotations et jugements associés lui sont automatiquement
présentés. Un module de recherche dans les annotations, urls et titres est également disponible.
Ces travaux prennent tous en compte le partage de connaissances en considérant les
documents intéressants par rapport à des besoins collectifs. Le projet Easy-DOR que nous allons
présenter s’inscrit dans la même optique mais propose outre la gestion des besoins individuels au
sein d’un groupe d’utilisateurs, celle des besoins collectifs.
4 Easy-DOR : un système de gestion des besoins sur le Web
Easy-DOR (« Easy Document Retrieval ») est un système considérant les utilisateurs
comme des individus et comme partie d’un groupe d’individus travaillant ensemble, dans un but
commun.
On peut constater que lorsqu’un utilisateur utilise le web (que ce soit pour rechercher ou
consulter de l’information), il effectue en général une tâche individuelle. Ceci est d’autant plus
préjudiciable au sein d’une organisation (société, laboratoire de recherche…) que les problèmes
de rétention d’informations sont importants.
Filtrage
Web
Profil collectif
(Besoins d’un Profil
groupe) utilisateur
(Besoins d’un
utilisateur)
Entrepôt de Intranet
documents d’un
groupe
Figure 1 - Architecture générale du système
La prise en compte de la connaissance collective ainsi que la connaissance individuelle est
donc essentielle au sein d’un groupe d’utilisateurs. Elle est obtenue (Figure 1) par un outil de
PAGENBPAGESfiltrage sur les résultats de recherche d’information. Les besoins individuels sont utilisés pour
créer un profil collectif permettant de générer un entrepôt de documents à partir duquel peut être
construit un intranet lié aux connaissances d’un groupe d’utilisateurs.
Cette section présente, de façon prospective, le système Easy-DOR selon un aspect gestion
des besoins individuels (§4.1) et un aspect gestion des besoins collectifs (§4.2) au sein d’un
groupe. Les fonctionnalités proposées par ce système sont détaillées dans la section 5.
4.1 Prise en compte des besoins individuels
Communément, les outils permettant de trouver de l’information sont destinés aux besoins
individuels. D’après le Petit Robert, un besoin peut être définit par :
« 2° Loc. verb. Avoir besoin de… (qqun, qqch.). (Subjectif) Ressentir la nécessité de…,
vouloir comme nécessaire, utile. V. Désirer, envie (avoir envie de), exiger, réclamer, vouloir… ».
Un besoin est matérialisé par les informations susceptibles d’intéresser l’utilisateur. Ces
informations peuvent être extraites de documents jugés pertinents par l’utilisateur par rapport à
ses centres d’intérêts.
Pour matérialiser les besoins d’un utilisateur, un profil utilisateur est construit. Ce profil est
une représentation interne des besoins de l’utilisateur afin qu’ils soient interprétables par le
système.
Un profil utilisateur peut être [KORF97] :
- simple : représente les besoins persistants sous forme, par exemple, d’une liste de mots-
clés caractérisant ces besoins,
- étendu : introduit, en plus des besoins, des informations plus difficiles à cerner (niveau
d’éducation, familiarité avec le domaine, habitudes de lecture, préférences spécifiques
de l’utilisateur).
La limite de la génération des profils simples à partir de documents est qu’elle ne considère
que les documents pertinents (profil positif) et en aucun cas les documents jugés non pertinents.
Divers travaux s’orientent, aujourd’hui, vers la construction d’un profil négatif prenant en
compte ces documents jugés non pertinents [ABCH00][BOUG01][WIDY99]. Ces profils se
construisent de la même manière que les profils positifs sauf qu'ils sont générés à partir des
documents non pertinents pour l'utilisateur. Pour évaluer si un document est pertinent pour un
utilisateur [BOUG01] :
- on calcule la distance du document par rapport à chacun des profils respectivement dp, dn
pour le profil positif et le profil négatif,
- on vérifie si dp > αdn (avec α = 1.2).
Le domaine d’application de notre projet Easy-DOR étant le Web, les documents jugés
pertinents par l’utilisateur sont déduits des bookmarks3. En effet, lorsqu’il trouve un document
intéressant, correspondant à ses besoins, un utilisateur peut sauvegarder son adresse (URL) au
sein de ses bookmarks sous la forme d’un signet pour permettre un accès ultérieur rapide. Ces
3
Un bookmark (ou signet) est un raccourci vers une URL (adresse web). Les bookmarks correspondent aux liens
« favoris » de l’utilisateur.
PAGENBPAGESbookmarks représentent donc les pages web ayant un intérêt certain pour l’utilisateur ; intérêt
pouvant être double du fait que ces pages web font l’objet :
- d’un accès fréquent (moteurs de recherches, sites d’actualités…),
- d’une grande pertinence concernant les centres d’intérêts de l’utilisateur (site web d’un
chercheur dans le même domaine…).
De plus, ces bookmarks étant organisés sous la forme d’une arborescence, les besoins
généraux se trouvent à la racine et les besoins spécifiques au niveau des feuilles. Cette
arborescence peut donc être interprétée comme un ensemble hiérarchique de besoins,
l’arborescence étant utilisée telle quelle dans notre système.
Dans notre projet Easy-DOR, le profil utilisateur est, dans une première démarche, un profil
simple formé par une arborescence de sous-profils (un sous-profil étant une spécialisation du
profil racine). Un sous-profil aura comme équivalence un répertoire dans la hiérarchie de
bookmarks (Figure 2).
La génération de ce profil utilisateur (passage des bookmarks au profil utilisateur) est
détaillée dans le paragraphe suivant.
Racine
Recherche
Racine
Recherche Page3.htm Filtrage
Page0.htm d’informations
Recherche d’informations
Page1.htm
Page1.htm
Page2.htm
Filtrage d’informations Page0.htm
Page1.htm
Page2.htm Recherche
Page3.htm
d’informations
Hiérarchie de Profil Utilisateur
Bookmarks (chaque cercle représente un sous-profil)
Figure 2 - Correspondance hiérarchie de bookmarks - Profil utilisateur
4.1.1 Génération du profil utilisateur
Les besoins de l’utilisateur sont représentés au sein du système par un profil utilisateur qui, de
façon générale, est généré à partir d’une caractérisation des besoins basée sur une étude
statistique du contenu des documents.
Création d’un compte utilisateur
Pour identifier les différents besoins d’un utilisateur et permettre une gestion individualisée de
ceux-ci, il est nécessaire de créer un compte pour chaque individu. Ce compte permet à chaque
utilisateur de s’identifier auprès du système et d’accéder aux informations le concernant.
PAGENBPAGESLes besoins d’un utilisateur n’étant pas liés à l’endroit où l’accès a été effectué, il est nécessaire
de proposer un accès nomade aux bookmarks. C’est ainsi que tous les bookmarks des utilisateurs
sont centralisés sur une machine accessible du web par le biais d’une applet Java4.
Lors de la création d’un compte, si l’utilisateur possède déjà des bookmarks ceux-ci sont
utilisés pour générer les bookmarks centralisés ainsi que le profil utilisateur. L’utilisateur pourra
ainsi utiliser, modifier ses bookmarks au travers de l’applet.
Dans le cas ou celui-ci ne possède pas de bookmarks lors de l’initialisation, le profil sera vide.
Dans ce cas on peut donner la possibilité à l’utilisateur de saisir un ensemble de mots-clés
représentatifs de ses besoins pour initialiser son profil.
De plus, le système permet à l’utilisateur de sélectionner les informations qui seront utilisées
par le système. En effet, l’utilisateur peut souhaiter de ne pas rendre public tout ou partie de
l’arborescence de ses bookmarks dans le cadre collectif.
Il lui est également possible, s’il le souhaite, de définir un Seuil d’Intégrité (SDI), pour un
répertoire lui permettant de fixer la finesse du filtrage à partir du sous-profil correspondant. Ainsi
un SDI élevé provoquera un filtrage très fin (peu de documents sélectionnés mais très pertinents)
alors qu’un SDI faible provoquera un filtrage grossier (beaucoup de documents sélectionnés
mais pouvant être peu pertinents).
Les bookmarks de tous les répertoires autorisés sont utilisés pour réaliser une première tâche de
filtrage, identique à celle présentée dans le §4.1.3.
La génération prise en exemple est réalisée sur des documents textuels, dans un premier temps,
mais peut s’étendre à tous types de document.
Etude statistique du contenu des documents
Pour permettre des temps de calculs rapides, la génération des profils utilisateurs est
généralement basée sur une caractérisation statistique des besoins, besoins représentés grâce au
très répandu modèle vectoriel [SALT83]. Cette caractérisation des besoins repose sur l’étude
statistique de l’apparition des termes ou « phrases » (ensemble ordonné de termes) caractérisant
au mieux un document au sein d’un corpus. Ces termes sont associés à un poids (importance du
terme dans le document et dans le corpus) basé sur la formule Tf.Idf bien connue en recherche
d’information.
De plus, en ce qui concerne les documents semi-structurés comme les pages web, il est possible
de prendre en compte la structure pour influer sur la précision de la pondération des termes. Une
étude de la structure à des fins de pondération des termes dans les documents semi-structurés est
détaillée dans [RIHA00].
Etude sémantique du contenu des documents
La génération des profils basée sur une étude statistique du contenu des documents permet une
génération rapide des profils ne prenant en compte que les termes apparaissant dans les
documents. De ce fait, deux documents sémantiquement similaires peuvent ne pas être
rapprochés par le système si le vocabulaire utilisé dans chacun de ces documents est différent.
Pour pallier cet inconvénient on peut coupler l’approche statistique avec l’utilisation d'un
thesaurus (relations de synonymie, généralisation/spécialisation des termes).
Une approche intermédiaire, entre l’étude statistique des mots-clés et l’utilisation d’un
thesaurus pour représenter un sous-profil (classe de pages web correspondant à un répertoire de
4
Une applet java est une application téléchargeable au travers du web et s’exécutant sur la machine cliente.
PAGENBPAGESla hiérarchie de bookmarks) peut être l’utilisation d’une méthode de classification telle que
« Classification par arbre de suffixes » ou « Suffix Tree Clustering » (STC) de Zamir [ZAMI97].
Cette méthode de classification est linéaire et se base sur l’identification de « phrases »
communes à plusieurs documents ; une phrase pouvant être une suite de un ou plusieurs mots
ordonnés.
Dans notre première démarche, nous utilisons, par soucis de simplicité, des profils utilisateurs
simples générés par étude statistique. Pour améliorer les résultats de la tâche de filtrage, le
système utilise les profils positifs et négatifs.
4.1.2 Génération statistique du profil utilisateur dans Easy-DOR
Les profils utilisés dans Easy-DOR correspondent aux informations extraites des documents et
susceptibles d’intéresser l’utilisateur. Ils sont baséssur une étude statistique du contenu des
documents textuels (pages web). Il est bien entendu que diverses autres méthodes pourront être
utilisées à la fois pour représenter le contenu des document que le profil lui-même.
A la création d'un compte, à un sous-profil correspond un vecteur vide lui-même lié à un
répertoire de la hiérarchie de bookmarks vide.
Description d’un sous-profil dans Easy-DOR
A chaque sous-profil dépend une liste de pages et de sous-répertoires contenus dans le
répertoire correspondant au sous-profil. Chacun des éléments contenus dans un répertoire est
représenté sous la forme d’un vecteur descripteur contenant des couples terme-poids (selon le
modèle vectoriel) :
- les pages web sont analysées statistiquement afin d’en extraire le vecteur descripteur des
termes significatifs avec leur poids ,
- les sous-répertoires sont représentés par un sous-profil dont le vecteur descripteur évolue au
fur et à mesure des modifications que l’utilisateur applique à ses bookmarks.
Le calcul d’un sous-profil (relatif à un répertoire contenant d’autres répertoires) s’effectue de la
même manière considérant un répertoire comme un document (leur descripteur étant de la même
structure). Le calcul de l'arborescence des bookmarks se fait en cascade : si le sous-profil d’un
sous-répertoire est mis à jour, le sous-profil du répertoire « parent » est mis à jour etc… et ce
jusqu’à à arriver à la racine de l’arborescence.
Les termes issus des noms de répertoires qui sont, normalement, représentatifs du contenu de
ces répertoires sont également pris en compte pour la description d’un sous-profil.
Analyse statistique du contenu des pages web
Le contenu de chaque page web correspondant à un bookmark du répertoire, est analysé :
recherche des termes les plus caractéristiques du contenu de cette page.
Pour cela la page sera considérée comme étant un vecteur Di = (w1, w2, w3,…, wn) où wj est le
poids du terme j dans la page i. Ce poids dépend généralement de la fréquence du terme (tf), de
la fréquence inverse du terme (idf) dans le corpus (ensemble des pages déjà analysées et ce pour
n’importe quel utilisateur) ainsi que de la longueur de la page.
PAGENBPAGESPour la première page insérée sous forme de bookmark la fréquence inverse du terme étant
inconnue. Par conséquent le poids d’un terme sera calculé par tfi/tfmax où tfi est la fréquence du
terme dans le document et tfmax la fréquence maximum pour ce document.
Pour réduire la dimension de ce vecteur, les mots vides ainsi que les mots communs sont
supprimés. Les termes restants sont quant à eux radicalisés. De plus, après classement par poids
décroissant seuls les k premiers termes sont conservés dans le profil afin de permettre des
traitements plus rapides. En effet, pour un échantillon de 20 pages web le nombre de termes
représentatifs de cet ensemble est souvent supérieur à 5.000 termes [PAZZ97].
Implication de l’utilisateur dans la génération des profils
Afin d’éviter le tout automatique, l’utilisateur, s’il le souhaite, a la possibilité de modifier le
poids des différents termes d’un profil. Il peut ainsi supprimer les termes qui lui semble non
pertinents (ils seront alors automatiquement ajoutés au profil négatif) ou les réorganiser
(augmenter ou diminuer l’importance d’un terme) voire même en ajouter. Le poids alloué à ces
termes ajoutés ou déplacés est fonction de la position où l’utilisateur insère effectivement les
termes dans le vecteur.
Le paragraphe suivant détaille l’utilisation de ces profils utilisateurs dans la phase de filtrage
d’informations pour permettre implicitement à un utilisateur d’acquérir les informations
collectées par les autres individus afin d’enrichir sa propre connaissance. Contrairement au
système IronWeb, dans lequel les utilisateurs ne s’enrichissent que par l’intermédiaire de la base
de connaissances, l’enrichissement individuel, dans Easy-DOR, se réalise par la présentation
automatique et immédiate des pages susceptibles d’intéresser l’utilisateur.
4.1.3 Processus de filtrage des pages web
Pour ré-utiliser les pages web d’un utilisateur afin de les proposer éventuellement à un autre, il
est nécessaire de réaliser une tâche de filtrage. Pour cela nous allons prendre en compte la
recherche d’information réalisée par tous les utilisateurs grâce à un espion de connexions web :
le « sniffer ». Cette tâche de filtrage repose sur les connexions web des utilisateurs ainsi que sur
le contenu des documents liés à de nouveaux bookmarks insérés par les utilisateurs.
Confidentialité des informations lors de la tâche de filtrage
Pour permettre à l’utilisateur de ne pas utiliser ses pages personnelles (e-mail, comptes
bancaires en ligne…) lors de la tâche de filtrage le système de filtrage peut être désactivé et
réactivé à tout moment. Cette fonction est disponible au travers du frontal.
L’espion de connexions web : le « sniffer »
Ce composant réalise la tâche d’un proxy [MIGN00] sans toutefois réaliser l’activité de cache
d’informations. Ce composant est construit selon l’architecture d’un proxy permettant de faire le
lien entre le navigateur web et les pages web. La spécificité de ce sniffer est qu’il permet de
détecter certains types de contenu pour en faire une copie afin que ces contenus puissent être
exploités par un processus annexe. Les types de contenu reposent sur le paramètre « Content-
Type » présent dans la réponse du serveur web lors de la visite d'une page web. Ce paramètre
respecte les types MIME définis (Multipurpose Internet Mail Extension) [MIME].
PAGENBPAGESL’administrateur du système a la possibilité de choisir parmi ceux-ci, les types qu’il souhaite
utiliser dans la phase de filtrage. Par défaut les types textuels (text/html, text/plain..) sont utilisés.
L’utilisation d’une architecture proxy peut être justifiée par l’étude d’un proxy réel. Par
exemple l'étude d’une journée (18/12/2000) au sein de notre laboratoire (345 postes clients) nous
montre que le proxy a géré 142.374 connexions. Ces connexions se répartissent selon le type de
leur contenu :
- Images 92823 connexions (65,2 %)
- HTML 4487 connexions (3 %)
- Directory 3282 connexions (2,3 %)
- SHTML 306 connexions (0,21 %)
- Bundle 201 connexions (0,15 %)
- Text 112 connexions (0,08 %)
- Movie 59 connexions (0,05 %)
- Audio 12 connexions (0,01 %).
- Autres 41092 connexions (29 %)
Ainsi si l’on ne considère que les documents textuels (HTML, SHTML, text) l’application ne
détecte que 4% des connexions effectives (soit 4905 connexions) par jour ; connexions prises en
compte lors de la phase de filtrage.
Le contenu de toutes les connexions détectées par le sniffer (connexions correspondant aux
types MIME souhaités) est ensuite exploité à des fins de filtrage d’informations (Figure 3).
Sniffer
Navigateur Web
Web û
ü
ü Connexions détectées
Filtrage
Figure 3 - Fonctionnement du Sniffer
Exploitation du contenu des connexions détectées
L’exploitation des connexions détectées est basée sur une indexation correspondant aux types
de contenus. Chaque contenu textuel est représenté de la même manière que dans le §4.1.1 via le
vecteur descripteur Di=(w1, w2, …, wn). Pour vérifier si un document (contenu correspondant à
une connexion) est susceptible d’intéresser un utilisateur du système, un rapprochement entre le
vecteur Di et les différents profils de l'utilisateur est effectué. Pour cela, nous utilisons une valeur
de similarité communément utilisée : la distance cosinus. Cette valeur de similarité est définie
par :
(mesure de cosinus) cosinus (Dx, Dy) = (Dx l Dy) / ||Dx|| ||Dy||,
où l représente le produit scalaire et ||D|| la norme du vecteur D.
PAGENBPAGESElle est calculée à partir des vecteurs centroïdes des sous-profils et des documents détectés par
le sniffer.
Pour chacun des sous-profils, le SID permet d’indiquer le seuil minimum de similarité accepté.
Ainsi, un SID de 0.8 pour un sous-profil, indique que seuls les documents dont la valeur de
similarité est supérieure ou égale à 0.8 seront présentés à l’utilisateur.
Il résulte de cette phase un ensemble de couples (sous-profil, document) indiquant que le
document Di a été accepté par le sous-profil Sj. Ces documents sont automatiquement et
immédiatement présentés aux utilisateurs au travers de leur hiérarchie de bookmarks.
Pour chacun des sous-profils, un nouveau répertoire nommé « nouveaux documents détectés »
est créé (s’il n’existe pas déjà) dans la hiérarchie de bookmarks. Ce répertoire n’influera pas sur
le sous-profil car il est exclu de tout traitement. Dans ce répertoire un bookmark correspondant à
l’url du document est créé (Figure 4).
Afin d’éviter que ce répertoire ne contienne trop de bookmarks, une politique de suppression
est mise en place. Ainsi une Durée de Vie des Documents (DVD) est introduite indiquant que les
documents seront supprimés du répertoire « nouveaux documents détectés » si aucune action de
la part de l’utilisateur n’a été réalisée pendant cette DVD.
Racine
Recherche
Page0.htm
Recherche d’informations
Page1.htm
Page2.htm
Filtrage d’informations
Page1.htm Page4.htm
Nouveaux documents Supprimer
Page4.htm Insérer comme bookmark
Page3.htm Déplacer ce signet vers un autre
répertoire
Figure 4 - Document présenté à l'utilisateur au travers de ses bookmarks
Evolution des profils utilisateurs
Soit U = {Tp1, Tn1, …, Tpm, Tnm} l’ensemble des sous-profils positifs Tpm et négatifs Tnm
correspondant chacun à un thème ou un sous-thème (répertoire de la hiérarchie de bookmarks),
chaque Tm étant un vecteur de poids.
Dans une première approche, l’évolution des profils s’effectue implicitement de la même
manière que celle décrite dans [BALA98], c’est à dire en fonction des réactions de l’utilisateur
face à un bookmark.
Dans les formules utilisées ci-dessous, afin de garder les poids d’un profil normalisés entre
1
[0, 1], nous utilisons une fonction ϕ(x, y) sigmoïde de la forme − ( x −θ )
*y.
1+ e T
PAGENBPAGESPour un bookmark donné, le document qui s’y rapporte est caractérisé par le vecteur descripteur
d et di correspond au ième terme de ce vecteur. L’utilisateur a plusieurs options possibles quant
aux actions qu’il peut réaliser sur l’arborescence des bookmarks :
- ignorer un nouveau bookmark proposé par le système : l’utilisateur ne prête aucune
attention au nouveau bookmark présenté par le système et le laisse dans le répertoire
« nouveaux documents détectés ». Celui-ci sera supprimé automatiquement dès que sa
DVD sera dépassée. Si tel est le cas les poids des termes du sous-profil positif Tn seront
modifiés selon Tpn=(Tpn+ϕ(IGNORE,di))/2 ∀ di ∈ d. Par contre aucun jugement de
pertinence ne sera fait tant que le document apparaîtra dans le répertoire des nouveaux
documents,
- supprimer un bookmark d’un répertoire : l’utilisateur supprime le bookmark du répertoire
où il se trouve. Pour cela il doit indiquer la raison de cette suppression. Les possibilités
peuvent être :
- Dans le cas où il s’agit d’un bookmark présenté par le système (« feedback ») :
- le document associé au bookmark n’est pas pertinent pour ce répertoire. Le
document est pris en compte dans le profil négatif qui sera modifié selon
Tnn=(Tnn+ϕ(SUPPRIME,di))/2 ∀ di ∈ d,
- le document est pertinent mais pas suffisamment pour vouloir le garder dans ses
bookmarks. Le document est pris en compte dans le profil positif qui sera modifié
selon Tpn=(Tpn+ϕ(PERTINENT,di))/2 ∀ di ∈ d,
- Dans le cas où il s’agit d’un bookmark propre à l’utilisateur :
- le document associé au bookmark n’existe plus. Il n’y aura aucune incidence sur le
profil,
- le document n’est plus pertinent à cause d’une modification par exemple. Le
nouveau contenu du document est pris en compte dans le profil négatif qui sera
modifié selon Tnn=(Tnn+ϕ(MODIFICATION,di))/2 ∀ di ∈ d,
- insérer une page comme bookmark : l’utilisateur juge que le document associé au
bookmark vaut la peine d’être sauvegardé sous la forme d’un bookmark. Cette insertion
peut se faire à n’importe quel niveau de l’arborescence. Le document est pris en compte
dans le profil positif qui sera modifié selon Tpn=(Tpn+ϕ(AJOUT,di))/2 ∀ di ∈ d,
- déplacer un bookmark vers un autre répertoire : cette action revient à supprimer le
bookmark du répertoire et à l’insérer comme bookmark dans un autre.
- fonction de pertinence d’un document pour un profil : A l’inverse de [BALA98] qui
permet à l’utilisateur explicitement de préciser les documents qui font référence dans un
domaine donné, nous utilisons (implicitement) le nombre de connexions à un document via
un bookmark comme fonction de pertinence d’un document. Ainsi plus le contenu d’un
document est visité au travers d’un bookmark plus ce document devient une référence pour
le profil. Un compteur d’accès est donc introduit pour permettre la mise à jour du sous-
profil en fonction du nombre d’accès réalisés. Le résultat de cette évolution correspond à la
formule : Tpn=Tpn+(1-Tpn)*ϕ(δ(Cpt),1) où Cpt correspond au nombre de fois que
l’utilisateur a visualisé le document au travers du bookmark et δ(Cpt) une fonction
permettant de minimiser l’évolution des poids dans le profil (ex : δ(x) = log(x) – λ avec
λ>0). La valeur de λ devra être choisie selon l’évolution que l’on souhaite voir appliquer au
profil (Figure 5). Afin de limiter les mises à jour des profils en cascade, la mise à jour
PAGENBPAGEScausée par le nombre de visites s’effectuera par paliers. On choisira par exemple de ne
mettre à jour le profil que lorsque le nombre de visites d’un bookmark est un multiple de 5.
1
0,8
0,6
ϕ(δ(Cpt))
0,4
0,2 100000
100
0 Nbre de visites (x)
1
1
5
10
20
Valeurs de λ
Figure 5 – Valeurs de ϕ(δ(Cpt),1) selon le nombre de visites et le paramètre lambda
A chaque modification du profil, un reclassement des termes est réalisé selon l’ordre inverse
des poids afin de ne limiter le vecteur qu’aux k premiers termes.
Les valeurs IGNORE, SUPPRIME, PERTINENT, MODIFICATION, et AJOUT sont à fixer
expérimentalement.
En plus de ces actions réalisables sur les bookmarks, l’utilisateur peut gérer son arborescence
en créant ou en supprimant des répertoires. La suppression d’un répertoire implique la mise à
jour du sous-profil du répertoire parent du répertoire supprimé (processus identique à la
suppression d’un bookmark).
Ces actions sont réalisables par l’intermédiaire d’un menu contextuel (Figure 4). Dans cette
figure le bookmark associé au document Page4.htm est présenté dans le répertoire « filtrage
d’informations ».
Grâce à ce système chacun des utilisateurs profite automatiquement des informations visitées
sur le web par les autres utilisateurs. Ce système est intéressant, car il permet de prendre en
compte tous les besoins des utilisateurs même ceux qui ne correspondent pas aux besoins
collectifs. En effet, un utilisateur qui utilise le web ne connaît pas tous les centres d’intérêts des
autres utilisateurs de son groupe. De même, un utilisateur peut visiter des pages (lors de la
navigation notamment) qui ne l’intéressent pas forcément mais qui peuvent être pertinentes pour
un autre utilisateur.
Outre la gestion des besoins individuels on gère les besoins collectifs d’un groupe d’utilisateurs.
Les centres d’intérêts collectifs vont permettre de construire une « mémoire » de groupe.
PAGENBPAGES4.2 Prise en compte des besoins d’un groupe d’utilisateurs
Au sein d’une organisation, l’idée de groupe d’utilisateurs est un point important à prendre
en considération. En effet, chaque utilisateur travaillant au sein d’un même groupe possède ses
propres centres d’intérêts mais partage également une optique de travail commune au groupe. Il
est donc intéressant de prendre en compte les besoins d’un groupe d’utilisateurs pour générer un
entrepôt de documents. Celui-ci sert à rendre les documents accessibles de manière permanente
et à éventuellement générer un serveur intranet associé à cet entrepôt. Cet intranet permet à
quiconque de naviguer dans ces pages d’intérêts communs.
Les besoins d’un groupe passent nécessairement par une exploitation et un recoupement
des besoins de chacun des individus composant ce groupe. En effet, les documents ayant un
intérêt pour un groupe sont des documents qui sont pertinents pour une grande majorité
d’individus.
4.2.1 Génération du profil collectif
Un groupe, au sens où nous le considérons, est un ensemble défini d’individus ayant leurs
propres centres d’intérêts ainsi que des centres d’intérêts communs. A un groupe nous associons
un profil de groupe. En réalité ce profil de groupe correspond à l’ensemble des documents
pertinents pour le groupe. Cette pertinence est calculée par rapport aux actions réalisées par les
utilisateurs sur les bookmarks présentés par la tâche de filtrage ainsi que par rapport aux
documents insérés dans la hiérarchie de bookmarks par l’utilisateur lui-même.
Nous qualifions un document de pertinent pour le groupe si le nombre d’utilisateurs ayant jugé
ce document comme pertinent est supérieur au Seuil de Communauté (SC). Ainsi si SC est fixé
par l’administrateur à 0.6 (entre 0.0 et 1.0), cela signifie que pour qu’un document soit pertinent
pour le groupe il est nécessaire que 60% des utilisateurs du groupe l’aient jugé pertinent.
Si un document n’a pas été proposé par la phase de filtrage à un utilisateur, c'est qu'i a été jugé
non pertinent pour cet utilisateur.
De plus, afin de définir un classement entre les documents pertinents, pour chacun d’entre eux
nous affectons un degré de pertinence de groupe. Ce degré de pertinence est calculé en fonction
du nombre d’accès à un document que les utilisateurs ont réalisé au travers d’un bookmark s et
du nombre d’utilisateur du groupe qui possèdent ce bookmark.
Ainsi on calcule, pour chaque bookmark correspondant à un document pertinent pour le groupe,
N 1 N
le degré de pertinence de groupe Pg = θ( å Cpt ) où N correspond au nombre
NB N 1
d’utilisateurs possédant ce bookmark, NB le nombre d’utilisateurs dans le groupe et Cpt le
nombre d’accès que l’utilisateur a réalisé au document au travers du bookmark. La fonction θ est
une fonction normalisée entre [0, 1]. L’administrateur pourra ainsi fixer un seuil de pertinence
minimale pour les documents à insérer dans l’entrepôt.
4.2.2 Génération d’un entrepôt de pages web dédié à un groupe
Afin d’éviter que les documents pertinents pour le groupe ne deviennent « instables »
(suppression, déplacement, modification des pages web…) et pour constituer automatiquement
une base de connaissances, à chaque groupe est associé un entrepôt de documents. Cet entrepôt a
pour but de rendre les informations accessibles de façon permanente et de permettre par exemple
des processus de découverte de connaissances ou toute autre analyse (recherche d'information,
data mining…). L'entrepôt est approvisionné avec les documents jugés pertinents pour le groupe
PAGENBPAGES(via Pg). Un exemple de génération d’entrepôt pour les documents semi-structurés a été
présentée dans [RIHA00]. Dans cette approche, le document semi-structuré (page web) est traité
par rapport aux différents éléments de structures qui le composent (balises Hi, P…).
Autour de cet entrepôt, divers modules ont été conçus.
4.2.3 Génération d’un « intranet » à partir des entrepôts de groupe
Les entrepôts, générés à partir des documents les plus pertinents pour les groupes d’utilisateurs,
permettent de générer un « intranet » afin que tout utilisateur puisse accéder aux documents
contenus dans les entrepôts. L’accès aux documents s’effectue selon deux méthodes :
- un accès à partir d’une arborescence générée par une classification hiérarchique des
documents au sein de chaque entrepôt,
- un formulaire de requête qui permet d’interroger le contenu de l’ensemble des entrepôts ou
d’un entrepôt spécifique.
En ce qui concerne l’interrogation d’un entrepôt, la pertinence des documents retrouvés pourra
tenir compte en plus de l’appariement requête - document, de la pertinence de groupe Pg pour
reclasser les documents par exemple.
La construction de l’intranet peut également reposer sur une génération automatique ou semi-
automatique (« ré-écriture ») de pages web à partir du contenu des documents des entrepôts.
4.2.4 Interface de visualisation des résultats d’une recherche dans les entrepôts
L’interrogation des entrepôts pouvant procurer un nombre de résultats important, il est
primordial d’intégrer des interfaces de visualisation de ces résultats de recherche. Ces interfaces
tendent à pallier les limites des listes de résultats lorsque le nombre de documents retrouvés est
important [HEAR95], permettant ainsi à l’utilisateur d’identifier au mieux les documents
pertinents. ISIDORView [CHEV01] propose, par exemple, une visualisation globale des
résultats en trois dimensions basée sur une répartition spatiale ainsi qu’une utilisation des
couleurs spécifiques.
La gestion des besoins d’un groupe passe par une sauvegarde persistante des documents
pertinents. Ces entrepôts peuvent servir, dans un cadre pédagogique, comme point de départ de
toute étude. En effet si l’on considère un doctorant débutant sa thèse, il est intéressant de lui
donner les moyens de la débuter à partir de pointeurs pertinents (sauvegardés dans l’entrepôt)
plutôt qu’à partir de zéro. Cette possibilité n’est, certes, envisageable que si l’on considère divers
types de fichiers (PDF, PS..) (et non plus que les documents textuels) puisqu’une grande partie
des documents utilisés dans le cadre de la Recherche est aujourd’hui accessible via le web.
5 Fonctionnalités escomptées
Pour permettre à l’utilisateur et à l’administrateur une meilleure utilisation d’Easy-DOR,
nous avons identifié diverses fonctionnalités intéressantes à mettre en œuvre.
5.1 Classification de tout ou partie des bookmarks
Permet à l’utilisateur d’obtenir une nouvelle hiérarchie de bookmarks. L’utilisateur peut
souhaiter :
PAGENBPAGES- réaliser une hiérarchie type (contenant des documents exemples) à partir de laquelle le
système ventile tous les bookmarks,
- abandonner la hiérarchie existante et demander au système de créer une nouvelle
arborescence à partir des bookmarks existants (via une classification hiérarchique par
exemple) tout en ayant la possibilité de préciser la profondeur maximale de celle-ci.
5.2 Mise à jour et vérification des bookmarks
Easy-DOR permet de vérifier périodiquement et automatiquement la persistance des
documents associés aux bookmarks. Cette tâche correspond à télécharger le contenu des
documents pointés par les bookmarks et comparer le descripteur de cette nouvelle version du
document avec celui déjà existant. Pour cela on utilise un calcul de similarité entre les deux
descripteurs. Trois événements peuvent alors se produire :
- le contenu du nouveau document diffère du contenu existant : la description du document
est mise à jour. Les utilisateurs possédant un bookmark pointant vers ce document sont
avisés (par une icône par exemple),
- le lien n'existe plus : on le supprime de la base et on avise les utilisateurs possédant un
bookmark pointant vers ce document;
- le document a changé d'URL : on met à jour la base et on avise les utilisateurs possédant un
bookmark pointant vers ce document.
5.3 Recherche automatique de nouvelles pages web
Des systèmes comme WebCluster [HARP99] permettent à partir d’une classe de
documents de générer une requête afin d’interroger un moteur de recherche pour retrouver de
nouveaux documents pertinents pour cette classe. Ainsi une telle méthode étendue à chaque
sous-profil (qui n’est en fait qu’une classe de documents) permet d’obtenir de nouveaux
documents susceptibles d’intéresser l’utilisateur.
Toutes ces fonctionnalités reposent sur l’architecture du système présentée dans la section
suivante.
6 Architecture d’Easy-DOR
Easy-DOR repose sur une architecture d’application client-serveur et sur l’utilisation d’une
base de données (Figure 6 et Figure 7).
6.1 Application client-serveur
En ce qui concerne le frontal, il s’agit d’une applet (notamment pour l’accès nomade aux
bookmarks). Le dialogue s’effectue par le biais du protocole http dans le sens frontal à serveur
et RMI ou CORBA dans le sens serveur à frontal.
Concernant la phase d’authentification de l’utilisateur (via un login/password) le système
utilise les cookies [COOK].
PAGENBPAGES6.2 Base de données
La Figure 7 présente en détail le schéma de base de données pour des profils générés par une
méthode statistique.
6.2.1 Entité « répertoire »
Cette entité représente un répertoire de la hiérarchie de bookmarks. Les associations « fils »
et « contient » permettent de reconstituer la hiérarchie des bookmarks en respectant l’ordre des
éléments dans la hiérarchie (« N°ordre »). La propriété « Cpt » correspond au nombre d’accès au
document à travers le bookmark contenu dans ce répertoire.
Client Serveur
Sniffer
HTTP HTTP
Activation ?
Navigateur Web
HTTP û HTTP
ü
Applet ü Connexions détectées
(Frontal)
Si
Alors
Cosinus(Di,Dj) ≥ SDI
HTTP Ajout de
bookmarks
Indexation
Profils
RMI/CORBA utilisateurs
Documents
Tâche de filtrage
Détection de
connexions
Bookmarks Entrepôts
Figure 6 - Architecture générale d'Easy-DOR
PAGENBPAGESUtilisateur Groupe Entrepôt
0,n Fait partie 1,n
User_ID Groupe_ID possède Entrepot_ID
Nom Seuil Communauté Nom
Prénom
Login 1,n IP
Password Adresse_IP
0,n Date
Filtrage_Actif ? Date 0,n
0,n
Est composé
Racine Est
0,n
connecté
0,n
Présentation
0,n Action
Répertoire
ID_Noeud
Nom
Fils 0,n
Utilisé ?
N°ordre Est décrit par*
SDI
1,1 poids
Est décrit par
1,n
1,n poids
0,n
1,n 0,n
Termes radicalisés
Radical_ID Document
radical Document_ID
Taille_Document
Type_Document
Document_Date
Document_URL
Contient 0,n
N°ordre
Cpt
Nom Bookmark
* : il y a en réalité 2 associations « est décrit par » entre « Répertoire » et « Termes
radicalisés » représentant l’une le profil positif, l’autre le profil négatif.
Figure 7 - Schéma de base de données du système
6.2.2 Entité « document »
Cette entité représente un document avec toutes ses caractéristiques. Le paramètre
« Document_Date » est la date d’insertion du document dans la base. On retrouve le vecteur
descripteur Di pour un document via l’association « Est décrit par » avec les termes radicalisés.
L’élément « Représentation du contenu » représente un sous-schéma de la base de données
permettant de stocker le contenu d’un document à des fins de recherche d’information (cf.
[RIHA00] concernant les documents semi-structurés).
Via l’association « Présentation », on sauvegarde tous les documents qui ont été présentés
pour un répertoire (sous-profil) donné. Pour chaque présentation on sauvegarde la date pour
calculer la DVD et l’action que l’utilisateur a engendré pour ce document. Ces actions sont celles
répertoriées dans le §4.1.3.
6.2.3 Gestion de la base de données
Une fonctionnalité importante du système est la possibilité de gérer la taille de la base de
données sur laquelle Easy-DOR repose.
PAGENBPAGESVous pouvez aussi lire