ASMADE : Automated Schema MApping for Documents Exchange

Transcription

ASMADE : Automated Schema MApping for Documents Exchange
Equipe 22IIS
S du LIRIS
Amghar Youssef (responsable d'équipe)
Benharkat Aïcha-Nabila
Boukhebouze Mohamed
Rifaieh Rami
Sellami Sana
ASMADE : Automated Schema MApping for Documents Exchange
La couche Matching de la plateforme: EXSMAL
P
Prroojjeett pprréésseennttéé ppaarr :: A
A..N
NB
Beennhhaarrkkaatt
1. La plateforme ASMADE:
ASMADE [1] se veut une plateforme qui vise à enchainer les processus de matching et de mapping
pour favoriser une traduction automatique des documents XML. Elle est structurée en quatre couches:
le matching, le filtrage, le mapping et la traduction. Seule la première couche de découverte des
correspondances entre schémas XML est présentée dans la suite de ce rapport.
2. Le problème de la traduction des messages dans les systèmes EDI
L’échange de données informatisées (EDI) est une technologie relativement mûre qui promeut
l’informatisation des échanges inter entreprises. Cependant, la traduction des messages entre les
différentes normes de l’EDI est critique pour les entreprises qui communiquent avec plusieurs
fournisseurs et clients. A titre d’exemple, les messages VCOM (virement commercial) d’EDIFACT1
(tel que Payext, Paymul, Payord) et de SWIFT2 (tel que MT103, MT102) contiennent des données
similaires utilisées de façon complémentaire. En général, les messages EDI utilisent des diagrammes
de branchement qui définissent les composants de messages, leurs imbrications et leurs significations.
Réaliser la traduction entre plusieurs messages EDI revient alors, en premier lieu, à identifier les
similarités entre les éléments des messages en se basant sur ces diagrammes de branchement. Ensuite
il s’agit d’exprimer l’ensemble des mappages qui peuvent exister entre les éléments similaires.
Actuellement, ce travail est réalisé à travers des programmes spécifiques qui permettent à l’expert de
définir les similarités entre les éléments des messages. A notre connaissance, il n’existe pas de modèle
pour exprimer les expressions utilisées par le mappage entre les éléments similaires. Ainsi, ces
expressions sont-elles laissées à l’expérience et à l’expertise du développeur qui se charge de
développer le programme ad-hoc de mappage.
L’arrivée de nouvelles technologies, comme XML, a rendu l’EDI plus facile à utiliser et plus
compétitive. On peut penser que la coexistence de l’EDI et XML (EDI/XML et eb/XML) va prendre
l’assaut du marché des plates formes d’échange de données de l’entreprise.
1
EDIFACT web site
2
SWIFT web site
Nous proposons donc dans ce qui suit le format XML comme format pivot de traduction des
messages. En effet, le format XML peut représenter non seulement les messages en cours mais aussi
les messages futurs. L’utilisation de XML donne accès à une palette d’outils pour valider les messages
transmis par rapport a leur structure. Il nous permet, également, d’utiliser un des langages associés à
XML pour effectuer les traductions tels que XSLT, XPath, XQuery, etc. De plus, ce format est un
standard ouvert qui devient un avantage et un atout certain par rapport aux formats propriétaires.
3. Matching vs Mappping
Il nous semble important de faire la distinction entre le matching (découverte des correspondances) et
la découverte d’expression de mappage. En effet, ce sont deux processus complémentaires. Le
matching est une opération qui prend par exemple deux schémas de données en entrée et retourne les
valeurs de similarité sémantique entre les éléments des schémas en entrée (ex : name firstName =
0.6 ; name lastName = 0.6) . Quant à la découverte d’expression de mappage, c’est un processus
qui se déroule chronologiquement après le matching et qui consiste à trouver une expression (logique,
mathématique, opération sur les chaînes de caractères, …) permettant d’associer un ensemble
d’éléments du schéma source pour obtenir un élément du schéma cible en appliquant le modèle
d’expressions de mappage (ex : name = firstName CONCAT lastName) .
A noter que la partie expression de mappage [5] [6][7] n'est pas présentée dans ce document.
4. Algorithme de matching entre les schémas EDI XML (EXSMAL)
Le matching entre les messages commerciaux se fait actuellement à l’aide de différentes applications
graphiques qui demandent non seulement un grand effort humain mais aussi une expertise sur les
outils utilisés. EXSMAL (EDI/XML semi-automatic Schema Matching ALgorithm) vise à automatiser
ce processus de matching, en ayant pour objectif principal de découvrir la correspondance sémantique
entre les éléments de deux schémas à comparer.
La compatibilité entre deux messages de deux standards différents repose sur la sémantique de ces
deux messages. En effet, les différents standards partagent les mêmes principes tels que: chaque
message est associé à un guide d’utilisation qui explique de façon textuelle le rôle des différents
éléments composants du message (ex : DTM, UNB, UNH, M23B, M71A, …). Ces derniers ne sont
pas significatifs pour les lecteurs humains. Ce guide indique également le type de données (chaîne de
caractère, numérique, date formatée, …) ainsi que des éventuelles contraintes associées (ex : si
UNB/@007 = 5 alors SIRET). Chaque message respecte une structuration qui est aussi spécifiée dans
le guide. Cette structuration est réalisée en organisant les éléments de messages en les séparant par les
délimiteurs de champs (ex : +, :, ‘, ~, @, …).
Nous proposons une solution dont certains éléments ont été publiés dans [2] et [4]. Cette solution
repose sur la similarité de base entre les éléments individuels, et s’appuie, d’une part sur les
descriptions textuelles et les types de données des éléments des guides d’utilisations, spécifiées à
l’aide des schémas XML, et d’autre part sur la similarité de structure des éléments en comparant les
voisinages structurels des éléments de messages en entrée. Les deux similarités sont utilisées pour
calculer la similarité finale entre chaque paire d’éléments. Cette dernière est enfin filtrée afin d’obtenir
le résultat final du matching.
Etant donné notre choix pour le schéma XML (sans élément partagé) comme structure de données
interne, notre algorithme travaillera avec une structure arborescente. Cet algorithme se déroulera en
trois étapes qui sont décrites dans Figure.1.
Algorithme :
Entrée : S1, S2 : deux schémas XML
Sortie : Ensemble de triplets < E1i, E2j, Vsim>
Avec E1i : élément de schéma S1
E2j : élément de schéma S2
Vsim : la valeur de similarité entre E1i et E2j ∈ [0, 1]
Matching (S1, S2) {
-
Calculer la similarité de base entre E1i ∈ S1 et E2j ∈ S2
-
Calculer la similarité structurelle entre E1i ∈ S1 et E2j ∈ S2
Pour chaque paire <E1i, E2j> calculer Vsim en fonction de leurs
similarité de base et similarité structurelle trouvées
Sélectionner les paires de correspondance <E1i, E2j> qui sont les
plus plausibles
}
Figure.1 Description brève de l’algorithme
Etant donnés deux schémas S1 et S2, les entrées dans le processus de matching.
Soient e1 ∈ S1et e2 ∈ S2, une paire d’éléments dont la valeur de similarité est à trouver.
Soit sim_base(e1, e2), la similarité de base entre e1 et e2 ∈ [0, 1]
Soit sim_struct(e1, e2), la similarité structurelle entre e1 et e2 ∈ [0, 1]
La similarité entre e1 et e2 est une somme pondérée entre sim_base(e1, e2) et sim_struct(e1, e2) en
respectant la formule suivante:
sim(e1, e2) = coeff_base*sim_base(e1, e2) + coeff_struct* sim_struct(e1, e2) ;
Avec
0 ≤ coeff_base ≤ 1: le coefficient de similarité de base
0 ≤ coeff_struct ≤ 1: le coefficient de similarité de structure
Et
coeff_base + coeff_struct =1
La similarité de base : La similarité de base est la partie la plus importante dans notre algorithme.
Elle tient compte des données qu’un élément de schéma possède individuellement, soit la description
textuelle et le type de donnée. Pour le calcul de similarité entre deux descriptions, on a utilisé une
technique de recherche d’information basée sur le calcul du cosinus des vecteurs des termes décrivant
les éléments (modèle vectoriel) associé à un calcul de score prenant en compte l'ordre des termes dans
le vecteurCe choix est basé sur le fait que cette technique est bien adaptée dans le processus de
classification des documents dans un corpus. En effet, les descriptions textuelles de chaque élément
sont données sous la forme d’un petit texte ; et notre objectif est de découvrir la similarité entre ces
textes. La similarité des types de données intervient aussi dans le calcul de similarité de base dans le
but de raffiner cette dernière.
Soit sim_desc(e1, e2), la similarité de description textuelle entre e1 et e2 ∈ [0, 1]
Soit sim_type(e1, e2), la similarité de type de données entre e1 et e2 ∈ [0, 1]
Alors, la similarité de base entre e1 et e2 est une somme pondérée entre sim_desc(e1, e2) et sim_type(e1,
e2) en respectant la formule suivante :
sim_base(e1, e2) = coeff_desc*sim_desc(e1, e2) + coeff_type* sim_type(e1, e2) ;
Avec
0 ≤coeff_desc ≤ 1 : le coefficient de similarité de description textuelle
0 ≤coeff_type ≤ 1: le coefficient de similarité de type de données
Et
coeff_desc + coeff_type=1
La similarité structurelle : Le calcul de la similarité structurelle entre deux éléments se base sur le
calcul de leurs voisinages et le calcul de similarité de base de chaque élément dans les deux schémas.
Le calcul de voisinage d’un élément consiste à trouver les informations indispensables liées à cet
élément qui permettent de déterminer sa position dans le message. Le voisinage d’un élément e est un
quadruplet constitué de 4 items <anc(e), fr(e), fimm(e), feuille(e)>.
Item 1 : anc(e) : ensemble de nœuds ancêtres depuis la racine jusqu’à élément e
Item 2 : fr(e) : ensemble de nœuds frères qui partagent le même nœud parent que e
Item 3 : fimm(e) : ensemble de nœuds fils immédiats qui sont les descendants directs de e
Item 4 :feuille(e) : ensemble de nœuds feuilles qui sont les feuilles de sous arbre enraciné en e
La similarité structurelle entre deux éléments dépend donc de la similarité de leurs éléments dans le
voisinage. La similarité structurelle entre deux éléments e1 ∈ S1 et e2 ∈ S2 (S1 et S2 les schémas à
comparer) est la somme pondérée de 4 similarités : similarité des nœuds ancêtres, similarité des nœuds
frères, similarité des nœuds fils immédiats et similarité des nœuds feuilles.
Soient : <anc(e1), fr(e1), fimm(e1), feuille(e1)> : le voisinage de l’élément e1 représenté par C(e1)
<anc(e2),fr(e2), fimm(e2), feuille(e2)> : le voisinage de l’élément e2 représenté par C(e2)
C(e1).Item[1] = anc(e1) ; C(e1).Item[2] = fr(e1) ; C(e1).Item[3] = fimm(e1); C(e1).Item[4] = feuille(e1)
C(e2).Item[1] = anc(e2) ; C(e2).Item[2] = fr(e2) ; C(e2).Item[3] = fimm(e2); C(e2).Item[4] = feuille(e2)
Nous définissons ensuite une fonction d’agrégation qui prend en entrée deux valeurs, une matrice M
qui contient les valeurs de la similarité de base trouvées entre les éléments de C(e1).Item[i] et ceux de
C(e2).Item[i] (avec i ∈ [1, 4]) et une valeur de seuil thr entre 0 et 100. Cette fonction retourne une
valeur qui est la valeur agrégée de celles qui sont dans la matrice en entrée. Cette fonction dépend du
calcul de la moyenne arithmétique et de l’écart type (dans la probabilité descriptive) et peut être
décrite brièvement dans la Figure.2.
Soit M une matrice vide
Soit thr la valeur de seuil à appliquer dans la fonction agg
Pour ancE1i ∈
anc(e1) {
Pour ancE2j ∈ anc(e2) {
M[ancE1i][ancE2j] = sim_base(ancE1i, ancE2j);
}
}
sim_anc(e1, e2) = agg(M, thr);
Figure.2 Exemple d’agrégation pour la similarité des ancêtres
Finalement, la similarité structurelle sim_struct entre deux éléments e1 et e2 est calculée en respectant
la formule suivante :
sim_struct(e1, e2) =
coeff_anc*sim_anc(e1, e2) + coeff_fr*sim_frere(e1, e2) +
coeff_fimm*sim_fimm(e1, e2) + coeff_feuille*sim_feuille(e1, e2) ;
Avec : coeff_anc + coeff_fr + coeff_fimm + coeff_feuille = 1
Tous les coefficients utilisés dans cet algorithme sont modifiables par l’utilisateur pour les optimiser
dans un cas d’utilisation donné.
Filtrage des paires d’éléments en correspondance : Cette phase est la dernière à effectuer dans notre
processus de matching de deux schémas. Nous avons opté pour un filtrage simple en utilisant une
valeur de seuil thraccept située entre 0 et 1 dans ce cas. Après le calcul de similarité entre chaque paire
d’éléments provenant de deux schémas en entrée, on a une liste contenant ces valeurs de similarité. Le
filtrage consiste à éliminer les paires d’éléments dont la valeur de similarité est inférieure à thraccept.
Selon la valeur de thraccept, la cardinalité du matching peut varier de 1-1, 1-n à n-m.
5. Suppression de matchings non pertinents:
Deux calculs supplémentaires (au niveau structurel) permettant de supprimer des matchings non
pertinents ont été présentés dans [3]: la similarité des chemins et la similarité interne. Ces deux
derniers calculs permettent d'éliminer certaines relations 1-1 produites automatiquement par
EXSMAL.
6. Algorithme de tuning
Les limites de l'algorithme énoncées dans nos publications antérieures sont en cours de traitement.
Notamment le fait d’avoir plusieurs valeurs de coefficients permettant de réaliser les différents types
de similarité peut poser quelques difficultés aux utilisateurs finaux.
La présentation de l'algorithme EXSMAL a été complétée par la proposition d'une méthode de tuning
des coefficients utilisés dans les outils de matching[8] .
7. Conclusion:
Notre algorithme contribue à enrichir les algorithmes déjà existants qui travaillent avec les schémas
de données et est classé parmi les approches hybrides puisqu’il combine la structure et la description.
Les particularités de notre solution sont les suivantes :
• Le traitement des descriptions textuelles des éléments : ce traitement rend notre algorithme
beaucoup plus riche par rapport aux autres algorithmes de matching travaillant avec les schémas
de données. Cette particularité est effectivement liée à la nature des schémas de message EDI.
Nous avons opté pour une technique de recherche d’information pour calculer la similarité entre
deux descriptions textuelles.
• Le traitement de la structure est complet et tient compte de tous les éléments nécessaires pour
définir la position des éléments dans les schémas. En revanche, quelques cas particuliers sont à
étudier pour que l’algorithme soit bien adaptable à la plupart des formes des schémas à comparer.
En dépit de ces particularités, notre algorithme possède également quelques limites telles que :
•
•
Comme tous les autres algorithmes existants optant pour le filtrage à base d’une valeur de seuil, la
cardinalité du matching est variable par rapport à la valeur choisie.
Une extension traitant les autres contenus des guides d’utilisation des messages EDI comme : les
contraintes, les statuts et les cardinalités associés aux éléments doit être effectuée.
8. References:
[1] A.N Benharkat, R. Rifaieh, K. Herzi, Y. Amghar. " ASMADE: Automated Schema MApping for
Documents Exchange."In
15th International Conference on Software Engineering and Data
Engineering (SEDE-2006) Los Angeles, California July 6-8,2006.)
[2] U.Chukmol, R. Rifaieh, A. Benharkat.
EXSMAL: EDI/XML semi-automatic Schema Matching
Algorithm In 7th International IEEE Conference on E-Commerce Technology 2005.
[3] R. Rifaieh, U.CHUKMOL, A. Benharkat. " A Matching Algorithm for Electronic Data Exchange."
In
6th VLDB Workshop on Technologies for E-Services (TES-05) , Trondheim, Norway . LNCS series
of the Springer-Verlag . 2005.
[4] K. Herzi, A. Benharkat, Y. Amghar. "Refinement of correspondences in EXSMAL for XML Document
transformation ".
In 17th International Conference on Database and Expert Systems Applications
(DEXA 2006), Web Based Collaboration, Krakow, Poland, September 4-8 2006.
[5] R.Rifaieh, N.Benharkat, A Mapping Framework for EDI Message Translation, In the proceedings of
ACS/IEEE conference AICCSA’03, Tunisia, July 2003, IEEE Press, Piscataway, NJ, USA, 2003,
ISBN:0-7803-7983-7, pp.87.
[6] R. Rifaieh, A. N. Benharkat, A Mapping Expression Model used for a Meta-data Driven ETL Tool, In
K.Yétongnon and M.Amin (Eds.), Proc. of the 2nd IEEE ISSPIT, Marrakech, Morocco, December
2002, IEEE Publisher, ISBN 0-9727186-0-5, pp.288-293.
[7] R.Rifaieh, N.Benharkat, An Analysis of EDI’s Message Translation and Integration Problems, In
N.Debnath, G.Montejano, and D.Riesco, proceedings of the International Conference on Computer
Science,
Software
Engineering,
Information
Technology,
e-Business,
and
Applications
(CSITeA’03), June 5-7, 2003, Rio de Janeiro, Brazil, ISBN:0-9742059-0-7, pp.254-260.
[8] M.Boukhebouze " Benchmark et automatisation du tuning des algorithmes de matching de schémas
XML ", rapport de MASTER, Juin 2006, MASTRIA LIRIS.

Documents pareils