• Aucun résultat trouvé

3.4 Traitement de la sémantique dans MULUS

3.4.2 Codage sémantique

Dans cette section, nous définissons la structure de l’ontologie du domaine proposée. Ensuite, nous expliquons notre méthode d’indexation de cette ontologie pour le routage sémantique sur DHT. Enfin, nous expliquons le processus de mise à jour de cette ontologie proposé pour l’ajout de nouveaux concepts.

3.4.2.1 Définition de l’ontologie de domaine

Pour répondre au besoin d’expressivité, nous définissons une ontologie de domaine qui couvre tout le domaine de l’application à gérer (application multimédia par exemple) pour inclure la définition des concepts primordiaux d’une large taxonomie (voir Figure3.3). Nous concevons cette ontologie de domaine de façon que les classes soient structurées selon une relation d’héritage équivalente à celle utilisée dans la Programmation Orientée Objet. Ainsi, nous obtenons une taxonomie sous forme d’arbre dont la racine présente le concept le plus général qui décrit le domaine de l’application. En descendant vers les fils, nous trouvons les concepts les plus spécifiques qui héritent du concept père. Le GTLM du HBE est responsable de maintenir cette ontologie de domaine.

Dans le contexte du multimédia par exemple, la racine de l’arbre représente la classe Multimédia comme étant la classe la plus générique dans le domaine. En descendant vers les feuilles, nous trouvons les classes des sujets qui sont plus spécifiques. Ainsi, quand un utilisateur est intéressé par le sujet Video (à titre d’exemple) et un producteur publie un évènement lié au sujet Film, cette structure d’arbre permet de détecter que le Film est une Video et par la suite le/les souscrits à ce sujet seront notifiés. De cette manière, les nœuds DHT qui sont responsables des sujets des classes primaires (child topic) doivent connaître et

Chapitre 3

! "

# $

!

Figure 3.3 – Branche de l’ontologie du domaine multimédia

3.4.2.2 Indexation de l’ontologie de domaine avec les nombres premiers

Nous définissons une méthode d’indexation de l’ontologie de domaine fondée sur les nombres premiers. Cette méthode permet d’attribuer un nombre premier ou une multiplica-tion de nombres premiers comme identifiant sémantique pour chaque classe de l’ontologie. Cet identifiant permet de reconnaître les classes ayant une relation sémantique d’équivalence ou d’héritage par le calcul des diviseurs de l’identifiant qui sont des nombres premiers. Il est décrit dans la partie propriété qui caractérise la classe correspondante en OWL. Il est utilisé par chaque GTDM pour reconnaître les GTDM qui sont sémantiquement plus généraux du point de vue sujet.

Comme montré par la Figure 3.4, nous commençons par attribuer le premier nombre

pre-mier (2) à la racine. En descendant dans le niveau suivant, nous multiplions l’identifiant de la classe mère par le nombre premier suivant pour avoir l’identifiant de chaque classe. Ainsi, la recherche des nombres premiers diviseurs de l’identifiant d’une classe permet de déterminer les relations d’héritage avec les autres classes [70]. Par exemple, pour la classe d’identifiant 30, nous cherchons les nombres premiers diviseurs qui sont 2, 3 et 5. La classe mère est alors d’identifiant 2*3=6 déterminé par la multiplication de tous ses diviseurs sauf le plus grand.

Chapitre 3 ! " # $ % & ) ' ' ' * ' ' ' ( - ' ' '

Figure 3.4 – Codage sémantique de l’ontologie de domaine

3.4.2.3 Mise à jour des index de l’ontologie de domaine

La définition d’une ontologie de domaine permet de couvrir tous les concepts d’un do-maine donné. L’apparition de nouveaux concepts est rare mais possible. Si ces concepts paraissent pertinents et souvent utilisés alors ils doivent être ajoutés à notre ontologie de domaine.

Le processus de mise à jour de l’ontologie de domaine est un peu délicat. D’une part, l’emplacement du nouveau concept dans l’ontologie de domaine influence la fonction de base de notre RS (répondre aux besoins exacts des utilisateurs). D’autre part, nous devons mettre à jour toutes les copies chez les GTLM des différents pairs pour leur synchronisation. Pour l’ajout d’un nouveau concept, nous avons deux cas possibles :

– ajout de concept fils : le nouveau concept s’ajoute comme un fils (feuille) dans l’arbre de l’ontologie de domaine. L’indexation se fait en respectant les identifiants du nœud père et des nœuds voisins attachés au même père. Il prend l’identifiant du père et le multiplie par le nombre premier qui le suit et qui n’est pas encore utilisé par les voisins. Ceci est montré par la Figure3.5(a). Pour les concepts N et O, ils se rattachent au père L (d’identifiant 2*7*17) qui n’a pas de fils, alors ils prennent les identifiants 2*7*17*19 et 2*7*17*23, respectivement. Pour le concept P, il se rattache au père A et il prend l’identifiant de A multiplié par le nombre premier suivant non utilisé par les voisins B, C et D.

– ajout de concept parent : le nouveau concept peut être plus générique que les autres concepts alors il s’ajoute entre un père et un fils de l’arbre de l’ontologie de domaine en respectant toujours la relation d’héritage. Il prend alors l’identifiant de son père

Chapitre 3

multiplié par le nombre premier suivant et engendre la modification des identifiants de tous ses fils. Ceci est montré par la Figure 3.5(b). Pour le concept Z, il se rattache entre le père A et le fils D d’identifiant 2*7 auparavant. Il prend alors l’identifiant de son fils (2*7). En descendant dans le niveau, le reste de ses concepts fils (D, J, K, L et M) prend l’identifiant de Z multiplié par les nombres premiers suivants avec le même principe que notre méthode d’indexation expliquée dans la section 4.9.

! "# $ #! % & "' ! # $

( %

' $) %

* ! # + #,

(a) Ajout de concepts fils ! " #

$ !

# % !

& ' (

)

(b) Ajout de concept parent

Figure 3.5 – Mise à jour de l’ontologie de domaine

Dans la section suivante, nous utilisons l’indexation de l’ontologie de domaine pour dé-tailler la communication entre les différents pairs (HBE) de notre plateforme MULUS.