Donnees Semi-Structurees Decouverte Maintenance Et
Donnees Semi-Structurees Decouverte Maintenance Et
Donnees Semi-Structurees Decouverte Maintenance Et
net/publication/220438956
CITATIONS READS
2 186
3 authors, including:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Pascal Poncelet on 01 February 2014.
1
LIRMM, 161 rue Ada, 34392 Montpellier cedex 5, France
{Laur, Teisseire}@lirmm.fr
2
EMA/LGI2P, Ecole des Mines d’Alès
Site EERIE, Parc Scientifique Georges Besse, 30035 Nîmes cedex 1, France
[email protected]
1. Introduction
2. Définitions et Problématiques
Comme les modèles de bases de données semi structurées tels que XML
[W3C03] et le modèle OEM [AbBu00], nous adoptons la classe d’arbres ordonnés et
étiquetés suivante. Un arbre est un graphe connecté acyclique et une forêt est un
graphe acyclique. Une forêt est donc une collection d’arbres où chaque arbre est un
composant connecté de la forêt. Un arbre enraciné est un arbre dans lequel un nœud
est différent des autres et est appelé la racine. Un arbre étiqueté est un arbre où
chaque nœud est associé avec une étiquette. Un arbre ordonné est un arbre enraciné
dans lequel les fils de chaque nœud sont ordonnés, i.e. si un nœud a k fils, nous
pouvons les désigner comme premier fils, second fils et ainsi de suite jusqu’au kième
fils. Etant données les types de jeux de données qui sont les plus classiques dans un
contexte de fouille de données, nous considérons deux types d’ordre. Les fils d’un
nœud de l’arbre sont soit ordonnés par ordre lexicographique par rapport à leur
étiquette (« les fils d’un nœud sont alors vus comme un ensemble de fils »), soit
ordonnés en fonction de l’application (« les fils d’un nœud sont alors vus comme
une liste de fils »). Nous considérons dans la suite que les arbres manipulés sont
ordonnés, étiquetés et enracinés. En effet, ce type d’arbre s’applique à de nombreux
domaines comme par exemple l’analyse des pages d’un site Web1 ou l’analyse de
fichiers logs de transactions. Dans la suite de cette section, nous définissons de
manière plus formelle les concepts manipulés.
Ancètres et descendants Considérons un nœud x dans un arbre enraciné T de racine
r. Chaque nœud sur le chemin unique de r à x est appelé un ancètre de x et est noté
par y≤l x, où l est la longueur du chemin d’y à x. Si y est un ancètre de x alors x est
un descendant de y. Chaque nœud est à la fois un ancètre et un descendant de lui-
même. Si y≤1 x, i.e. y est un ancètre immédiat, alors y est appelé le parent de x. Nous
disons que deux nœuds x et y sont frères s’ils ont le même parent.
[Personne, 1, ⊕]
[Identité, 2, ⊕]
[Adresse, 3, ⊗]
[Nom, 7, ⊥] [Prénom, 8, ⊥]
1
. En fait, dans le cas de données issues du Web, il existe de nombreux cycles dans les
documents manipulés. Cependant, nous transformons ces graphes en graphes acycliques en
utilisant l’approche présentée dans [WaLi99].
4 RSTI - ISI. Volume 21 – n° X/2003
[Personne, 1, ⊕]
[Adresse, 1, ⊗]
[Identité, 2, ⊕] [Adresse, 3, ⊗]
[Numéro, 2, ⊥] [Rue, 3, ⊥] [Codepostal, 4, ⊥]
[Identité, 2, ⊕]
[Adresse, 3, ⊗]
[Nom, 6, ⊥]
[Numéro, 4, ⊥] [Codepostal, 5, ⊥]
Extraction
Nous notons δT(S) le nombre d’occurrences du sous arbre S dans un arbre T. A
partir de celui-ci, nous considérons que dT(S) =1 si δT(S)>0 et dT(S) = 0 si δT(S)=0.
Le support d’un sous arbre S dans la base de donnée DB est défini par
support(S)=ΣT∈DBdT(S), i.e. le nombre d’arbres dans DB qui contiennent au moins
une occurrence de S. Un sous arbre S est dit fréquent si son support est supérieur ou
égal à une valeur de support minimale (minSupp) spécifiée par l’utilisateur. Nous
notons Lk, l’ensemble de tous les sous arbres fréquents de taille k.
6 RSTI - ISI. Volume 21 – n° X/2003
Maintenance
Considérons à présent l’évolution des sources de données. Soit db la base de
données incrément où de nouvelles informations sont ajoutées ou supprimées. Soit
U=DB ∪ db, la base de données mise à jour contenant tous les arbres des bases DB
et db. Soit LDB, l’ensemble de tous les sous arbres fréquents dans DB. Le problème
Découverte, maintenance et analyse 7
Analyse de tendances
Le problème de l’analyse des tendances est complémentaire de celui de la
maintenance des connaissances extraites. Dans le cas de l’analyse de tendances,
nous devons maintenir, lors de chaque extraction de connaissances, la liste de tous
les sous arbres fréquents pour voir comment ceux-ci évoluent au cours du temps. La
problématique de l’analyse des tendances consiste donc à analyser au cours du
temps les comportements des résultats (croissant, décroissant, cyclique...).
Exemple : Considérons la base DB de la Figure 4. Nous avons vu dans l’exemple
précédent que le sous arbre Personne : {identite : {adresse : ⊥ , nom : ⊥ }} était
fréquent pour un support de 50%. L’analyse de tendances permet de savoir
comment cette structure évolue au cours du temps, i.e. par exemple si ce sous arbre
a tendance à apparaître de plus en plus dans la base de données ou si, au contraire,
à l’issue des mises à jour des données sources, ce sous arbre a plutôt tendance à
disparaître.
3. Extraction
Algorithm FindSubStructure
Input : un support minimal (minSupp), une forêt d’arbres
Output : l’ensemble L des structures fréquentes qui vérifient la contrainte de
support minimal et un graphe BN constituant la bordure négative
1 : DB=TreeToSequence (G)
2:k=1;
8 RSTI - ISI. Volume 21 – n° X/2003
qui sont appelés des candidats (C2). Un nouveau parcours sur la base permet de
retenir tous les éléments candidats de taille 2 dont le nombre d’occurrences est
supérieur au support minimal. Ensuite, l’algorithme continue de la manière
suivante : à chaque étape k, la base est parcourue pour compter le support des
candidats de Ck (algorithme VerifyCandidate). Tous les candidats dont le nombre
d’occurrences est supérieur au support minimal deviennent fréquents et sont ajoutés
à : Lk. A partir de cet ensemble, de nouveaux candidats, de taille k+1, peuvent être
construits (algorithme CandidateGeneration). Cet ensemble constituera l’ensemble
des candidats de l’étape suivante. L’algorithme s’arrête quand la procédure de
génération des candidats fournit un ensemble vide ou quand la procédure
VerifyCandidate retourne un ensemble vide de fréquents.
[Personne, 1, ⊕]
[Identité, 2, ⊕]
[Adresse, 3, ⊗] [Z, 6, ⊥]
différent. Dans le cas de la séquence S1 le père est (⊗Z3) alors que pour la séquence
S2, le père est (⊗Adresse3).
Pour éviter le problème décrit précédemment, la construction de la liste de
bitmaps est réalisée de la manière suivante. Lors du parcours d’une séquence de la
base, si l’élément ajouté existe déjà dans la liste des bitmaps, nous vérifions si le
père de cet élément est le même que celui de la liste. La liste étant créée au fur et à
mesure, le père de l’élément de la liste est le prédécesseur dans la liste. Dans le cas
où les éléments manipulés sont les mêmes, i.e. il s’agit de nœud de l’arbre possédant
un même père, nous mettons à jour le bitmap de la liste. Autrement, nous créons un
nouvel élément qui sera ajouté à la liste. Par souci d’efficacité, une table de hachage
est associée à ces éléments.
ID Num ⊕Personne1 ⊕Identite2 ⊗Adresse3 ⊥Numéro4 ⊗Z3 ⊥Numéro4
1 1 1 0 0 0 0 0
1 2 0 1 0 0 0 0
1 3 0 0 1 0 0 0
- - 0 0 0 1 0 0
2 1 1 0 0 0 0 0
2 2 0 1 0 0 0 0
- - 0 0 1 0 1 0
- - 0 0 0 0 0 1
3 1 1 0 0 0 0 0
3 2 0 1 0 0 0 0
- - 0 0 1 0 0 0
- - 0 0 0 1 0 0
…
nœud y est d’une profondeur supérieure au nœud x, i.e. prof(y)=prof(x)+1 alors nous
procédons à une extension de la séquence, notée S-extension, i.e. nous ajoutons un
nouvel élément y comme fils du père x. Pour cela, un nouveau vecteur de bits, B’(x),
est généré à partir de B(x) tel que les bits situés avant la deuxième position soient
positionnés à 0 et les autres à 1. La S-extension est alors réalisée via l’opérateur
logique AND entre ce vecteur de bits transformé B’ (x) et B (y). Autrement, si
prof(x) = prof(y) alors deux cas sont à considérer :
• Il s’agit de nœuds terminaux de l’arbre, i.e. leur identificateur d’ordre vaut
⊥, il est alors nécessaire de réaliser une S-extension et une I-extension. La I-
extension, l’extension d’un élément, est simplement réalisée à l’aide de
l’opérateur logique AND entre B(x) et B(y).
• Il ne s’agit pas de nœuds terminaux de l’arbre, i.e. leur identificateur
d’ordre ne vaut pas ⊥, et nous réalisons une S-extension.
⊕Personne1 T(⊕Personne1) ⊕Identite2 ⊕Personne1,
⊕Identite2
1 0 0 0
0 1 1 1
0 1 0 0
0 1 0 0
1 S-step 0 0 Résultat 0
0 Æ 1 & 1 Æ 1
0 1 0 0
0 1 0 0
1 0 0 0
0 1 1 1
0 1 0 0
0 1 0 0
Algorithm CandidateGeneration
Input : Un ensemble B de vecteurs de bits représentant la base de données et
triés par ordre, une profondeur k (k >1).
Output : B étendu d’un élément.
1 : Foreach n ∈ B1 do // B1 représente les éléments fréquents
2 : Foreach nadd ∈ B1 do
3: If prof(nadd)=prof(n) +1 then B+=(T(B(n)) AND B(nadd); endif
4: else If prof(nadd) = prof(n) then
5: If id(nadd) = id(n)= ⊥ then B+=(B(n) AND B(nadd); endif
6: B+=(T(B(n)) AND B(nadd);
12 RSTI - ISI. Volume 21 – n° X/2003
7: endif
8: enddo
9: enddo
L’algorithme VerifyCandidate consiste juste à compter, dans les nouveaux
vecteurs de bits créés lors de la phase de génération de candidats, le nombre de bits
positionnés à 1 et à vérifier si ce nombre est supérieur au support minimal.
Lors de la recherche de candidats nous générons également la bordure négative
[MaTo96] (algorithme GenerateBN) qui est composée de tous les sous arbres qui ne
sont pas fréquents à l’issue de la phase de vérification sur la base de données. Cette
bordure sera utilisée dans la phase suivante de prise en compte de l’évolution des
données sources.
Nous stockons dans un arbre noté, T F + BN, l’ensemble des arbres fréquents et les
éléments de la bordure négative avec les valeurs de supports associées. Cet arbre
admet deux types d’arcs : S-arc et I-arc correspondant respectivement aux S-
extensions possibles à partir d’un nœud et aux I-extensions. Chaque nœud de l’arbre
représente donc un sous arbre fréquent ou membre de la bordure négative. Soit x et y
deux nœuds de l’arbre, il existe un S-arc entre x et y si le nombre d’éléments
constituant le nœud x est égal au nombre d’éléments constituant la structure y moins
un et que y soit une S-extension de x. Un I-arc existe si la condition sur le nombre
d’éléments est respectée et que y soit une I-extension de x. Cette structure est utilisée
pour assurer la maintenance des structures extraites de la base de données comme
nous allons le voir dans la section suivante.
4. Maintenance
Algorithm DiffSource
Input : S l’ensemble des sources de données, ∆S l’historique des modifications.
Output : ∆S’ l’historique des modifications mis à jour.
1 : Foreach s ∈ S do
Découverte, maintenance et analyse 13
Algorithm Update
Input : TBN+F l’arbre contenant la bordure négative BN et les fréquents F, un
support minimal minSupp spécifié par l’utilisateur, S l’ensemble des sources de
données, ∆S l’historique des modifications.
Output : TBN+F ‘ l’arbre mise à jour.
1 : TBN+F ‘ = TBN+F;
2 : a_traiter = Ø;
3 : Foreach noeud e de T' do
4 : etat = etat(e) ; // 0 si e est un élément de F, 1 si e est un élément de BN
5 : Mettre à jour la valeur du support de e (supp(e)) à partir des données de ∆S;
6 : If etat = 0 then
7: If supp(e) < minSupp then a_traiter = a_traiter + {e}; endif
8 : Else If etat = 1 then
9: If supp(e) > minSupp then a_traiter = a_traiter + {e}; endif
10 : enddo
11 : Foreach élément e ∈ a_traiter do
12 : Détruire tous les successeurs de e dans T’;
14 RSTI - ISI. Volume 21 – n° X/2003
13 : ConstruitExtension(e);
14 : enddo
5. Analyse de Tendances
Comme nous l’avons précisé dans la section 2, l’analyse des tendances consiste à
rechercher quelles sont les évolutions des sous arbres fréquents au cours du temps.
L’un des problèmes associé à cette analyse est le stockage des données : comment
trouver une structure efficace pour maintenir les connaissances extraites au fur et à
mesure ? Etant donné le nombre de résultats intermédiaires, il est indispensable de
trouver une structure de représentation adaptée. Le second problème lié aux
tendances est de rechercher rapidement les mêmes structures afin de suivre leurs
évolutions au cours du temps et en fonction des desiderata de l’utilisateur (tendance
croissante, décroissante, cyclique, …).
Algorithm TrendAnalysis
Input : (LDBt1 + LDBt2 +… + LDBtn) = LDBt, l’ensemble des structures fréquentes
stockées à des dates t1 ..... tn avec leur support à ces dates.
Output : Hf, l’historique de chaque fréquent f sous la forme de couple (date,
support).
1 : Foreach different frequent f in LDBt do
2: Hf = ∅;
3: Foreach frequent e ∈ LDBt do
16 RSTI - ISI. Volume 21 – n° X/2003
6. Le système AUSMS
Les différents algorithmes précédents ont été intégrés dans le système AUSMS
(Automatic Update Schema Mining System), le but étant de proposer un
environnement de découverte et d’extraction de connaissances pour des données
semi structurées, depuis la récupération des informations jusqu'à la mise à jour des
connaissances extraites. Ces principes généraux illustrés par la figure 8 sont assez
similaires à ceux d’un processus classique d’extraction de connaissances.
Découverte, maintenance et analyse 17
7. Expérimentations
De manière à valider notre approche, nous avons utilisé le système AUSMS sur
de nombreux jeux de données. En ce qui concerne l’extraction, par manque de place,
nous ne nous intéressons qu’à deux jeux de données différents et présentons
principalement la méthodologie utilisée. Ensuite, nous présentons quelques
simulations effectuées pour valider l’approche de maintenance à l’aide de la bordure
négative. Enfin, nous illustrons des analyses de tendances.
7.1 Extraction
et en moyenne les arbres associés aux parcours avaient une profondeur de 5. Avec
un support de 5%, nous avons trouvé le parcours fréquent suivant : <(/default.asp)
(/Manage.asp) (/Paybox.asp) (/SecurePay.asp) (/SecurePayAtLeast.asp)
(/RedirectSite.asp) (/PayboxDelivery.asp) (/Account.asp)> indiquant qu’au moins
600 personnes avec des IP différentes sont allées après la page d’accueil
(default.asp) accéder à leur compte (Manage.asp) pour recharger leur crédit de
temps (Paybox.asp, SecurePay.asp, SecurePayAtLeast.asp, RedirectSite.asp,
PayboxDelivery.asp) et enfin verifier sur leur compte leur nouveau crédit temps
(Account.asp).
7.2 Maintenance
120
100
depuis zéro
80
Temps(s)
depuis 80%
60
depuis 75%
40
depuis 72%
20
0
0
90
80
75
70
65
60
10
Support
2
. http://daryl.chin.gc.ca:8001/basisbwdocs/sid/title1f.html
Découverte, maintenance et analyse 21
Nous constatons dans la figure 10 que les courbes représentant les calculs de
supports à partir d’un calcul existant (depuis 80%, depuis 75% et depuis 72%) sont
toujours au dessous ou tangente à la courbe représentant un calcul depuis zéro. Ce
qui signifie que, dans le pire des cas, l’algorithme de mise à jour est au moins aussi
rapide que celui d’extraction depuis zéro. Nous constatons que pour les calculs
effectués depuis 80%, les gains existent encore mais sont relativement faibles. En
effet, pour une valeur de 80% l’information contenue dans la bordure négative n’est
pas suffisante et nécessite de recalculer trop d’éléments, i.e. l’algorithme doit
effectuer des calculs proches de ceux de l’algorithme de recherche depuis zéro ce
qui explique une convergence des temps de calcul entre ces deux courbes. Il en est
de même pour le calcul effectué depuis 72%. Cependant, si comme pour 80%, le
nombre de point sur la courbe présentant des gains est similaire, le gain lui-même
est plus important (i.e. la distance avec la courbe depuis zéro plus grande). Dans le
cas de 75%, nous avons effectué une analyse plus fine (cf Figure 11).
70
60
50
Temps (s)
40 depuis zéro
30 depuis 75%
20
10
0
82 81 79 78 76 74 73 71 69 68
Support
Dans cette figure, nous constatons que pour des supports proches d’un calcul
initial, l’intérêt d’utiliser un tel algorithme est beaucoup plus conséquent car le gain
en temps sur cette plage de support représente 65%. Nous poursuivons les
expérimentations en ajoutant des transactions à notre base initiale.
L’ajout de transactions représente l’arrivée de nouvelles informations dans les
sources de données utilisées. Afin de tester notre algorithme et étant donné que cette
base de données est relativement statique nous avons coupé celle-ci en 5 bases de
données contenant respectivement 50%, 70%, 80 %, 90% et 100% de la base
initiale. Dans la figure 12, nous comparons les résultats pour différents supports
entre un calcul depuis zéro et l’utilisation de l’algorithme de mise à jour.
22 RSTI - ISI. Volume 21 – n° X/2003
70 70%
60 50->70 %
50 80%
Temps (s)
40 50->80 %
30 90%
20 50->90 %
10 100%
0 50->100 %
100% 95% 90% 85% 80% 75% 70% 65%
Support
Dans cette figure, la courbe 70%, 80%, 90%,100% représente le temps de calcul
pour les supports situés en abscisse à partir de zéro. Les courbes 50->70%, 50-
>80%,50->90% et 50->100% représentent les temps de calcul en utilisant
l’algorithme à partir d’une base de données contenant 50% des transactions initiales
à laquelle sont ajoutées respectivement : 20%, puis 30%, puis 40% et enfin 50% des
transactions restantes. Comme lors de l’expérimentation précédente, nous pouvons
constater que l’algorithme est, dans le pire des cas, aussi rapide que celui depuis
zéro (notamment pour les supports de 100%, 95% et 65%). Les courbes 50->70% et
50->80% ont des comportements similaires, signifiant que l’ajout, dans ce cas, de 20
ou 30 % de transactions de la base restant a des conséquences relativement similaire.
Par contre dans le cas de 50->90% et 50->100%, nous constatons de moins bonnes
performances à partir des supports allant de 80% à 65%. Globalement, l’utilisation
de l’algorithme est rentable quelle que soit le support. Nous obtenons des gains
allant de 38% (pour 50->80 %) à 53% (pour 50->70%). Nous poursuivons nos
expérimentations dans le cas de la suppression.
Afin de tester la suppression, nous avons utilisé un protocole similaire à celui de
l’ajout en découpant la base de données initiale (figure 13).
Découverte, maintenance et analyse 23
60
50 50%
40 100->50 %
Temps (s)
30 60%
20 100->60 %
70%
10
100->70 %
0
80%
0%
%
100->80 %
95
90
85
80
75
70
65
10
Support
De manière à analyser les tendances sur un site Web, nous décrivons une
expérience menée sur des jeux de données issus du serveur Web de l’association des
anciens élèves de l’Ecole Nationale Supérieure de Chimie de Montpellier et qui
concerne deux mois de connexion. Le fait d’obtenir de manière hebdomadaire les
informations des serveurs (fichier log) a permis de réaliser différentes expériences.
Nous considérons que le fichier nommé AAE (1) correspond, au fichier log
hebdomadaire alors que le fichier AAE (2) correspond au cumul des différentes
informations, i.e. au cumul de tous les fichiers AAE (1) sur la période. L’avantage
24 RSTI - ISI. Volume 21 – n° X/2003
de comparer un fichier cumulé à un fichier régulier est que, dans le cas d’un fichier
régulier, un comportement nouveau peut devenir fréquent alors qu’il risque d’être «
noyé » par les autres comportements dans le cas du fichier cumulé.
De manière à illustrer la différence entre les deux types de fichiers, considérons
la Figure 14. Cette figure illustre le comportement
<(/societes/pharma.htm,/images/menu02.gif) ,(/images/menu03x.gif)(/images/menu
91.gif)> qui représente le fait que des usagers ont parcouru en même temps, i.e. dans
une période de temps très courte, /societes/pharma.htm et /image/menu02.gif et
qu’ensuite ils sont allés sur la page /images/menu03x.gif et qu’enfin ils sont allés sur
l’url /images/menu91.gif.
(/societes/pharma.htm
/images/menu02.gif)(/images/menu03x.gif)(/ima
ges/menu91.gif)
6
Support
4 Semaine
2 Cumulée
0
1 2 3 4 5 6 7 8 9 10
Tem ps
8
6 Tendance 4
Support
4 Tendance 5
2 Tendance 6
0
1 2 3 4 5 6 7 8 9 10
Tem ps
Figure 15. Analyse de tendances par semaine sur les données AAE (1)
6
Tendance 4
Support
4
Tendance 5
2
Tendance 6
0
2 3 4 5 6 7 8 9 10
Temps
Figure 16. Analyse de tendances sur les données cumulées AAE (2)
8. Travaux antérieurs
3
. Une présentation détaillée des tendances dans des séries temporelles est proposée dans
[HaKa01].
28 RSTI - ISI. Volume 21 – n° X/2003
largement inspiré ce travail. Les auteurs proposent un système pour identifier des
tendances dans des documents textuels. Le principe utilisé est le suivant. Après un
prétraitement sur les données, ils utilisent un algorithme de recherche de motifs
séquentiels pour déterminer des phrases et conservent l’historique associé à chacun
des motifs extraits. Ensuite, ils recherchent les phrases qui correspondent à une
tendance à l’aide d’un langage de définition de formes. Les expérimentations
menées par les auteurs concernent l’analyse de tendances dans des bases de données
de brevets. Notre approche est une adaptation de ces travaux à la problématique de
l’analyse des tendances dans le cas de base de données de sous arbres.
9. Conclusion
Dans cet article, nous avons proposé une approche pour rechercher des
régularités dans des bases de données d’objets semi structurés. Ces objets sont
représentés sous la forme d’arbres dans lesquels nous recherchons les sous arbres les
plus fréquents, i.e. ceux qui apparaissent suffisamment fréquemment dans la base de
données. Pour cela, nous représentons ces arbres sous la forme de séquences et nous
utilisons un algorithme basé sur une structure de vecteurs de bits pour rechercher
efficacement les sous arbres fréquents. L’approche que nous proposons possède en
plus l’originalité d’intégrer différents composants : extraction, maintenance de la
connaissance extraite pour tenir compte des mises à jour des données sources et
enfin analyse de tendances. Les différentes expérimentations menées ont permis de
montrer la validité de l’approche. Les connaissances extraites doivent pouvoir être
utilisées, par exemple, pour faciliter la création d’index ou de vues sur les bases de
données analysées. Nos travaux de recherche actuels se poursuivent dans cette
direction.
10. Références
[AbBu00] S.Abiteboul, P. Buneman and D. Suciu, “Data on the Web”, Morgan Kaufmann,
San Francisco, CA, USA, 2000.
[AgIm93] R. Agrawal, T. Imielinski and A. Swami, “Mining Association Rules between Sets
of Items in Large Databases“, Proceedings of the International Conference on
Management of Data (SIGMOD’93), pp. 207-216, Washington DC, USA, May 1993.
[AgSr95] R. Agrawal and R. Srikant, “Mining Sequential Patterns”, Proceedings of the
International Conference on Data Engineering (ICDE'95), pp. 3-14, Tapei, Taiwan, March
1995.
[ArGe02] J. Ares, J. Gehrke, T. Yiu and J. Flannick, “Sequential Pattern Using Bitmap
Representation“, Proceedings of Principles and Practice of Knowledge Discovery in Data
(PKDD’02), Edmonton, Canada, July 2002.
Découverte, maintenance et analyse 29
[MaTo96] H. Mannila and H. Toivonen. “On an Algorithm for Finding all Interesting
Sequences “. In Proceedings of the 13th European Meeting on Cybernetics and Systems
Research, Vienna, Austria, April 1996.
[PaZa99] S. Parthasarathy and M. J. Zaki, “Incremental and Interactive Sequence Mining”,
Proceedings of the Conference on Information and Knowledge Management (CIKM’99),
pp. 251-258, Kansas City, USA, November 1999.
[WaLi97] K. Wang and H. Liu, “Schema Discovery for Semi-structured Data”, Proceedings
of the International Conference on Knowledge Discovery and Data Mining (KDD’97), pp.
271-274., Newport Beach, USA, August 1997.
[WaLi99] K. Wang and H. Liu, “Discovering Structural Association of Semistructured Data”,
In IEEE Transactions on Knowledge and Data Engineering, pp. 353-371, January 1999.
[WaSh96] J.TL. Wang, B.A. Shapiro, D. Shasha, K. Zhang and C.Y Chang, “Automated
Discovery Structures”, In Proceedings of the International Conference on Knowledge
Discovery and Data Mining (KDD’96), pp. 70-75, 1996.
[W3C03] W3C, Extensible Markup Language (XML), http://www.w3.org/XML, June 2003.
[Zaki98] M. Zaki, “Scalable Data Mining for rules”, PHD Dissertation, University of
Rochester-NewYork, 1998.
[Zaki02] M. Zaki, “Efficiently Mining Frequent Trees in a Forest “, Proceedings of the
International Conference on Knowledge Discovery and Data Mining (SIGKDD’02),
Edmonton, Canada, July 2002.
[ZhXu02] Q. Zheng, K. Xu, S. Ma and W. Lu, “The Algorithms of Updating Sequential
Patterns”, Proceedings of the International Conference on Data Mining (ICDM’02),
Washington DC, USA, April 2002.