• Aucun résultat trouvé

Définition des équivalences sémantiques

3.3

Définition des équivalences sémantiques

3.3.1 Equivalence entre entités élémentaires

D’après l’hypothèse 2 sur l’existence d’une racine du graphe de données, nous pouvons en déduire le corollaire suivant :

Soit r la racine du graphe de données. Quelle que soit l’entité e du modèle d’ouvrage

différente de r, il existe une entité ei pointant vers e via un attribut.

En effet, cet attribut représente la sémantique de l’arête orientée pointant vers l’entité e, l’exis- tence de cette arête étant une conséquence directe de l’hypothèse 2.

Pour étudier l’équivalence entre entités élémentaires, nous avons donc choisi une approche orientée attribut d’entité : deux entités sont dites équivalentes ou non relativement à un attribut

d’entité. D’après les hypothèses 3 et 4, l’équivalence entre deux entités suppose donc qu’elles

soient comparables, c’est-à-dire, qu’elles instancient au moins une entité en commun. En effet, un attribut d’entité est typé, et si ce type est une entité du modèle de données, alors sa valeur doit être une entité du modèle d’ouvrage instanciant le type précédent. Par exemple, voici un modèle de données EXPRESS :

❊◆❚■❚❨ ❖❜❥❡❝t❀ ♥❛♠❡ ✿ ❙❚❘■◆●❀ ♣♦s✐t✐♦♥ ✿ P♦✐♥t❀ ❊◆❉❴❊◆❚■❚❨❀ ❊◆❚■❚❨ P♦✐♥t ❆❇❙❚❘❆❈❚ ❙❯P❊❘❚❨P❊ ❖❋ ✭❖◆❊❖❋✭❈❛rt❡s✐❛♥P♦✐♥t✱ ❙♣❤❡r✐❝P♦✐♥t✮✮❀ ❊◆❉❴❊◆❚■❚❨❀ ❊◆❚■❚❨ ❈❛rt❡s✐❛♥P♦✐♥t ❙❯❇❚❨P❊ ❖❋ ✭P♦✐♥t✮❀ ① ✿ ❘❊❆▲❀ ② ✿ ❘❊❆▲❀ ③ ✿ ❘❊❆▲❀ ❊◆❉❴❊◆❚■❚❨❀ ❊◆❚■❚❨ ❙♣❤❡r✐❝P♦✐♥t ❙❯❇❚❨P❊ ❖❋ ✭P♦✐♥t✮❀ r ✿ ❘❊❆▲❀ t❤❡t❛ ✿ ❘❊❆▲❀ ♣❤✐ ✿ ❘❊❆▲❀ ❊◆❉❴❊◆❚■❚❨❀

L’entité❖❜❥❡❝t possède un attribut ♣♦s✐t✐♦♥, de type P♦✐♥t. Or l’entité P♦✐♥t est une en- tité vide, mais les entités❈❛rt❡s✐❛♥P♦✐♥t et ❙♣❤❡r✐❝P♦✐♥t héritent de P♦✐♥t. Vis-à-vis de l’at- tribut ♣♦s✐t✐♦♥ de l’entité ❖❜❥❡❝t, deux instances des entités respectives ❈❛rt❡s✐❛♥P♦✐♥t et ❙♣❤❡r✐❝P♦✐♥t sont comparables et donc potentiellement équivalentes. Cependant, si l’attribut était de type❈❛rt❡s✐❛♥P♦✐♥t, alors les deux instances précédentes n’auraient pas pu être com-

parées car celle de❙♣❤❡r✐❝P♦✐♥t n’aurait pas pu être une valeur pour l’attribut ♣♦s✐t✐♦♥.

A partir du pré-requis précédent, il devient à présent possible de donner une définition de l’équivalence sémantique d’entités élémentaires :

Définition 14. Soit ei et ej deux entités du modèle d’ouvrage, et❛ttr un attribut de type T de

l’entité E du modèle de données. ei et ej sont dites équivalentes par rapport à l’attribut❛ttr si et

seulement si :

• eiet ej instancient tous les deux T .

• Il existe une relation d’équivalence ≡T dans l’ensemble des entités qui instancient T . • ei≡T ej.

Nous remarquons que cette définition fait surtout intervenir le type T plutôt que l’attribut en tant que tel. C’est pourquoi il est facile d’enrichir le moteur de comparaison structurelle sans modifier en profondeur son fonctionnement : le constructeur d’application doit définir les relations d’équivalence pour établir des équivalences sémantiques. En référence au modèle de données précédent, cela revient à définir une relation d’équivalence par rapport à l’entitéP♦✐♥t. Pour cela, une solution consisterait à convertir les deux points en coordonnées cartésiennes (si le point est une instance de CartesianPoint, le travail est déjà fait) et à comparer les valeurs obtenues. Contrairement aux solutions existantes basées sur des transformations de modèles [Katranuschkov06], la définition de relations d’équivalences permet de ne pas avoir à effectuer un mapping sur la totalité du modèle. Le moteur de comparaison utilise alors les relations d’équi- valences définies par le constructeur d’applications, au lieu de la comparaison des attributs deux à deux si l’entité possède un type géré par ces relations.

L’équivalence sémantique peut aussi porter sur des types simples au lieu d’entités. il suffit alors de remplacer les relations d’équivalence usuelles par la relation choisie. Par exemple, la comparaison de chaînes de caractères sans prendre en compte la casse : ’viaduc’, ’Viaduc’ et ’VIADUC’ seraient donc équivalents. Autre exemple, la comparaison de valeurs réels jusqu’à n décimales : 1.239, 1.234 et 1.231 sont équivalents si n = 2.

Lors de notre réflexion autour des équivalents sémantiques, nous avons remarqué que ce procédé se révèle incompatible avec les méthodes de hachage. En effet, lorsque les attributs d’une entité non identifiable sont remontés à l’entité identifiable parente, le hachage permet de remonter toute l’entité en transformant tous les attributs à remonter en un seul nombre entier. Or, deux hachages sont égaux seulement si l’ensemble des attributs sont deux à deux égaux (l’unicité du hachage est assuré de manière probabiliste). Si l’on introduit des équivalences sé- mantiques, il se peut que des attributs soient différents deux à deux. Donc le hachage sera différent malgré l’équivalence sémantique. C’est pourquoi, au prochain chapitre, nous verrons comment conserver des méthodes de hachage avec des équivalents sémantiques.

Spécifier et traiter les équivalences sémantiques permet d’enrichir la comparaison struc- turelle, c’est-à-dire de l’adapter à des modèles de données spécifiques pour lesquels il existe plusieurs manières de définir une même information. Cependant, dans certaines situations, en

3.3. Définition des équivalences sémantiques 97

particulier dans le domaine de la construction, se trouvent des équivalences qui ne possèdent pas toutes les propriétés requises pour une relation d’équivalence (au sens des mathématiques). C’est le cas des relations d’égalité avec tolérance.

3.3.2 Tolérance et correction du modèle d’ouvrage

La notion de tolérance permet de supposer équivalentes deux valeurs, en principe numé- riques, qui ne sont pas égales. Par exemple, avec une tolérance de 0.01, on a 2.569 ≈ 2.574 car 2.574 − 2.569 = 0.005. Il s’agit d’une relation réflexive : a ≈ a, symétrique : a ≈ b ⇒ b ≈ a. Elle n’est cependant pas transitive : 2.569 ≈ 2.574 et 2.574 ≈ 2.581 mais 2.569 6= 2.581.

La notion de tolérance étant utilisée de manière intensive dans le monde de la construc- tion, il convient d’adapter le travail de la partie précédente à des relations non transitives. La principale conséquence de l’utilisation d’une telle relation, pour la comparaison structurelle, est de rendre cette dernière incohérente en fonction des données entrées. Lors de l’énoncé de l’hypothèse 3, à la section 2.2.1 du deuxième chapitre, ce problème a été en effet soulevé : les résultats de comparaison peuvent varier en fonction des différents cheminements de concep- tion, pour un même ouvrage. Reprenons l’exemple précédent : 2.569 ≈ 2.574 et 2.574 ≈ 2.581 mais 2.569 6= 2.581. Cela signifie que l’algorithme n’aurait pas détecté de changement ni entre la première et la deuxième version d’un modèle d’ouvrage, ni entre la deuxième et la troisième version de ce modèle d’ouvrage. Il aurait cependant détecté un changement si la première et la troisième version avaient été comparées directement. Il y a donc une incohérence.

Une solution consiste à effectuer une comparaison qui modifie le modèle d’ouvrage. En effet, d’après [Pazlar06] et [Amor06], un modèle d’ouvrage subit des altérations lors de conversions et d’éditions successives. Ces altérations restent minimes : par exemple, les altérations des valeurs numériques restent inférieures aux tolérances usuelles : 1.25 peut devenir 1.249998. La gestion de la tolérance par correction du modèle permet ainsi de rectifier ce bruit qui pourrait altérer de manière visible le modèle d’ouvrage. Non seulement la comparaison structurelle détecte qu’il s’agit en réalité de la même valeur (tolérance), mais elle élimine aussi le bruit généré par la conversion (correction du modèle d’ouvrage).

A cette fin, nous supposons que, lors de la comparaison de deux instances (originale et modifiée), l’instance originale possède la valeur correcte, et l’instance modifiée possède la va- leur susceptible d’être bruitée. C’est pourquoi, la correction du modèle d’ouvrage s’effectue sur l’instance modifiée. Ce procédé permet de rétablir la cohérence de la comparaison structurelle, comme l’illustre la figure 3.6.

On a ainsi 2.569 ≈ 2.574. Sur l’instance modifiée, 2.574 est remplacée par 2.569. A la deuxième comparaison, on a alors 2.569 6= 2.581 au lieu de 2.574 ≈ 2.581. L’utilisation de la tolérance suppose donc qu’aucun changement de conception ne modifie de valeurs dans l’in- tervalle fixé par la tolérance. En effet, cette modification serait prise pour une altération de données et donc corrigée à l’ancienne valeur. En utilisant ce procédé, l’utilisation de relations de tolérance ne se différencie pas des relations d’équivalence, par conséquent les conclusions de la

... 2,569 ... ... 2,581 ... ... 2,574 ... ... 2,569 ... ... 2,581 ... ... 2,581 ... ... 2,574 ... ... 2,569 ... ... 2,569 ...

CHANGÉ

OK

OK

OK

CHANGÉ

correction

(a)

(b)

(c)

FIGURE3.6 :Comparaison de valeurs avec tolérance. En (a), les deux valeurs sont différentes, même avec

une tolérance de 0.01. En (b), via un modèle d’ouvrage intermédiaire, le système ne détecte pas de changement entre le modèle initial et le modèle final. Il y a donc incohérence avec le scénario (a). En (c), lorsque le système ne détecte pas de changement selon la tolérance, la valeur est corrigée à sa valeur initiale. La deuxième comparaison aboutit à un changement. Ce résultat est cohérent avec le scénario (a).

section précédente s’appliquent aussi maintenant à ces relations non transitives.

Cependant, la correction de l’instance modifiée en cours de comparaison influe sur le dé- roulement de cette dernière. En effet, si une entité de l’instance modifiée est comparée avec plusieurs entités de l’instance originale qui ont chacune des valeurs d’attributs différentes, alors comment corriger l’entité de l’instance modifiée ? En particulier, si ces différences sont infé- rieures à l’intervalle de tolérance, comme l’illustre la figure 3.7. Nous avons choisi dans ce cas de ne pas corriger la valeur de l’entité de l’instance modifiée, et de détecter à chaque fois un changement lors de la comparaison. La tolérance n’est pas pris en compte dans ce cas.

Instance modifiée Instance originale ... 2,581 ... ... 2,574 ... ... 2,569 ... ... 2,570 ... Comparaison correction ...??? ...

FIGURE3.7 :Comparaison d’une entité de l’instance modifiée avec plusieurs entités de l’instance origi-

nale. L’application d’une relation de tolérance dans ce cas pose problème.

Cette partie clôt l’approche théorique de l’analyse sémantique. Nous supposons en effet que, grâce à des méthodes d’extraction d’information et à la définition d’équivalents sémantiques, la méthode de comparaison structurelle, enrichie de cette analyse, répond aux besoins des