Un modèle de graphe pour la recherche d'information multilingue

[SOWA84] auquel a été ajoutée au support, la notion de vocabulaire et au ...... de gestion des thesaurus sémantiques, un module d'indexation manuelle de ...
148KB taille 6 téléchargements 137 vues
Un modèle de graphe pour la recherche d'information multilingue Catherine ROUSSEY LISI INSA de Lyon 20 avenue A. Einstein 69621 VILLEURBANNE Cedex Email: [email protected], Tel: 04.72.43.62.97, Fax: 04.72.43.87.13

Résumé: dans cet article nous proposons un modèle de graphe permettant d'améliorer la description sémantique des documents dans un contexte multilingue. Ce modèle est une extension du modèle des graphes conceptuels de Sowa [SOWA84] auquel a été ajoutée au support, la notion de vocabulaire et au graphe, la notion de label. Nous nous sommes basés sur des travaux récents, pour proposer un nouvel opérateur de comparaison de graphes tenant compte des besoins de la recherche d'information. Cet opérateur est à la base de la fonction de comparaison de notre système documentaire multilingue de type logique, intitulé SyDoM. Notre proposition se base sur le modèle générique proposé dans [GENE00] en considérant les graphes sous forme normale. Cette heuristique, justifiée par nos observations sur la structure générale des index, nous a permis de proposer un algorithme efficace de recherche. L'ensemble de notre proposition est validé dans notre système documentaire SyDoM implémenté en java à partir de Microsoft Access. Une première évaluation à partir d'une base de documents anglais présente des résultats encourageants. Mots-clés: modèle logique, système documentaire multilingue, graphe conceptuel.

Abstract: In this paper, we propose a model of graph used to describe the semantic of document in a multilingual context. This model is an extension of the model of Sowa conceptual graphs [SOWA84] where two new notions are added: vocabulary and label. Starting from recent works [GENE00], we propose a new comparison operator between graphs taking account of the specific information retrieval needs. This operator is the core of the comparison function used in our multilingual documentary system, called SyDoM. Our proposal is based on the generic model suggested in [GENE00] by considering the graphs in normal form. This choice, justified by some observations about the general structure of index, enables us to propose a new search algorithm. Our proposition is validate in the logical information retrieval system SyDoM. SyDoM is implemented in Java using Microsoft Access. A first evaluation on English documents give encouraging results. Keywords: Logical information retrieval system, multilingual information retrieval system, Conceptual Graph.

1. Introduction L'émergence de l'Internet a profondément transformé les moyens de communication, notamment en facilitant les échanges de documents entre les pays. Dès lors, les collections de documents se sont enrichies par des documents écrits dans différentes langues. Les bibliothèques ont du s'adapter à cette révolution technique pour devenir des bibliothèques virtuelles ou numériques, capables de gérer des collections multilingues de documents. Pour faciliter l'accès à ces documents et en particulier, pour considérer leur aspect multilingue, il est nécessaire d'améliorer la représentation du contenu des documents. En effet, les mots présents dans les documents lorsqu'ils sont considérés individuellement, ne sont pas toujours suffisants pour exprimer la signification du document. Il faut donc travailler sur des éléments plus porteurs 1 de sens que les mots, à savoir les "concepts" . Une autre forme d'amélioration des représentations des documents consiste à ajouter des relations liant les concepts présents dans le document. Les concepts et les relations permettent d'enrichir les connaissances sur le document et favorisent la création de requêtes plus pertinentes. Par conséquent, la recherche d'information doit s'accompagner d'une fonction de comparaison adaptée, qui tienne compte des connaissances implicites et explicites introduites dans ces nouvelles représentations. Pour les documents et les requêtes, ces représentations seront qualifiées de descriptions sémantiques. Dans la littérature, Van Rijsbergen a introduit un nouveau modèle de recherche d'information, le modèle logique capable de gérer ce genre de représentation complexe. Ainsi, il modélise l'incertitude relative à la pertinence d'un document vis-à-vis d'une requête grâce à une implication logique. Comme Van Rijsbergen ne précise pas quelle logique utilisée pour implémenter un système de recherche d'information de type logique, plusieurs travaux ont proposé d'utiliser la logique du premier ordre en se basant sur le modèle des graphes conceptuels de Sowa [SOWA84]. Un bref état de l'art des travaux les plus récents est présenté dans le paragraphe suivant. En nous appuyant sur ces travaux, nous proposons dans le paragraphe 3 de cet article, un nouveau modèle basé sur les graphes conceptuels de Sowa qui permet d'améliorer la description sémantique des documents dans un contexte multilingue. Le paragraphe 4 présente les algorithmes implémentant notre fonction de comparaison entre graphes, suivi, dans le paragraphe 5, de la présentation de l'évaluation de notre système documentaire multilingue.

2. Etat de l'art En 1986, Van Rijsbergen [RIJS86] a modélisé la pertinence d'un document par rapport à une requête au moyen d'un principe d'incertitude logique. Soit deux formules logiques d et q (les représentations du document et de la requête), une fonction de comparaison entre d et q mesure l'incertitude qui existe dans l'implication d à q relative à un ensemble de données Ks. En réalité, cette fonction détermine l'extension minimale à apporter à Ks pour établir la preuve de d à q. Dans son article, Van Rijsbergen suggère un modèle logique général, sans lui fixer un cadre précis. Par exemple, Van Rijsbergen ne précise pas la logique à utiliser, ce qui a donné lieu à différentes applications de son modèle. En effet, [CRES95] a développé, à partir de la logique modale, une interprétation du principe d'incertitude basé sur la théorie des mondes possibles. De 1

Un concept représente une unité sémantique [ROUS99]. C'est l'élément de base identifiant une notion permettant de donner du sens.

plus, comme aucune précision dans l'énoncé n'est donnée sur l'ensemble Ks, le principe d'incertitude logique peut être interprété différemment suivant si Ks se réfère à d, à q ou à un autre ensemble d'information. Différentes interprétations du principe d'incertitude sont décrites dans [NIE90]. Chaque interprétation donne lieu à un nouveau principe d'incertitude. 1. Dans le premier principe d'incertitude, Ks est un ensemble d'informations extérieur à q et d. Par exemple, Ks représente des connaissances dans le domaine d'intérêt de q et de d. Dans ce cas, une mesure de l'incertitude de d à q relativement à Ks est déterminée par la transformation minimale à apporter à Ks pour établir la preuve que d à q. 2. Dans le deuxième principe, l'ensemble Ks porte sur d. Pour ce principe, une mesure d'incertitude est déterminée par la transformation minimale nécessaire de d en d' pour établir la preuve que d' à q. 3. Pour le troisième principe d'incertitude, l'ensemble Ks porte sur q. Une mesure d'incertitude de ce troisième principe est déterminée par la transformation minimale nécessaire de q en q' pour établir la preuve que d à q'. Ce modèle améliore sensiblement l'utilisation des connaissances dans les systèmes de recherche d'information, car il permet de manipuler des descripteurs plus expressifs que les termes et donc de tenir compte de la sémantique des documents. Ainsi, tous les modèles qui disposent d'un processus équivalent à une implication logique, peuvent utiliser cette approche pour améliorer leurs performances. En particulier, des travaux récents ont montré que le modèle des graphes de Sowa permettait d'implémenter un système de recherche d'information logique [OUNI98]. Les graphes conceptuels tels que les a proposés Sowa [SOWA84] sont constitués de sommets qui peuvent représenter soit des concepts soit des relations conceptuelles et des arcs qui lient un concept et une relation. Plus précisément, un concept est caractérisé par un type et éventuellement un marqueur : le type décrit la classe sémantique à laquelle appartient un objet, le marqueur permet de nommer et distinguer les différents objets d'une classe. [HOMME : Jean] est un concept dont le type est HOMME et son marqueur est Jean. De la même manière, une relation est caractérisée par un type. Une relation de spécialisation, notée ≤, définit une hiérarchie entre les différents types (concepts ou relations), un type générique étant relié à un type plus spécifique. Dès lors, la signature d'un type de relation sera constituée par les types de concepts les plus génériques utilisables comme argument de cette relation. Pour la recherche d'information, la relation de spécialisation présente un intérêt majeur car elle contribue à la comparaison de graphes. En effet, pour les comparer, Sowa a proposé un opérateur de projection qui s'appuie sur l'existence d'une relation de spécialisation entre deux graphes. Comme le montre la Figure 1, il existe une projection d'un graphe H dans un graphe G si le graphe G présente un sous-graphe dont tous les sommets sont des spécialisations du graphe H. Dans ce cas, G est dit une spécialisation de H, G ≤ H. 1

H

2 But

développement

carburant Relation de spécialisation

G 2

1 développement

But

1

2 diesel

Composant

Figure 1 : un exemple de projection

Moteur mono cylindre

De plus, Sowa a défini un opérateur φ qui permet de transformer un graphe conceptuel en formule logique du premier ordre et il a montré que l'existence d'une projection d'un graphe H dans un graphe G était conditionnée par l'implication de leurs formules logiques associées : G ≤ H Þ φ(G)à φ(H). Cette implication fait des graphes de Sowa un modèle adapté pour construire des systèmes de recherche d'information tel que l'a préconisé Van Rijsbergen. En effet, s'il existe une projection d'un graphe H dans un graphe G représentant respectivement une requête et l'index d'un document, elle se traduira par l'implication φ(G)à φ(H) qui rend le document pertinent pour la requête. Parmi les systèmes qui ont utilisé le modèle des graphes de Sowa, nous nous sommes intéressés à deux approches différentes par leur interprétation du principe logique décrit dans la partie précédente. [OUNI98] ont implémenté dans le système RELIEF le premier principe d'incertitude. RELIEF utilise différentes propriétés sur les relations pour modifier l'ensemble des connaissances du domaine Ks et établir l'implication dàq, par le biais de l'opérateur de projection. Un autre aspect intéressant de ces travaux est de proposer un algorithme rapide et efficace de recherche de projection entre graphes. Actuellement, l'inconvénient majeur de l'utilisation de l'opérateur de projection comme fonction de comparaison entre document et requête réside dans le fait que les algorithmes de projection sont coûteux en temps de traitement. En effet, la recherche d'une projection est un problème NP-complet [CHEI92]. C'est pourquoi, le mécanisme de recherche proposé par Ounis effectue une série de pré-traitements au moment de l'indexation. Un fichier inverse et une série de tables d'accélération sont générés, à l'indexation, pour enregistrer toutes les spécialisations de sous-graphes requêtes possibles. Au moment de la recherche, il suffit d'identifier les sous graphes composant la requête pour retrouver tous les index spécialisant la requête. [GENE00] s'est surtout intéressé à la réduction du silence produit lors de la phase de projection. En effet, une comparaison basée sur la projection est généralement binaire (la projection existe ou n'existe pas). De plus, le graphe conceptuel indexant un document doit être une spécialisation du graphe représentant la requête pour que le document soit jugé pertinent pour la requête. Malheureusement en recherche d'information, l'exactitude ou la précision n'est pas le critère unique d'un bon système de recherche d'information et s'oppose à un autre critère important le rappel, d'où l'intérêt de proposer un mécanisme pour que des documents "proches" d'une requête (par exemple un document générique par rapport à la requête) soient aussi jugés pertinents. Pour améliorer les résultats de la recherche, il a choisi de mettre en œuvre le deuxième principe d'incertitude. Il propose un ensemble de transformations sur les graphes conceptuels indexant les documents ainsi qu'un mécanisme d'ordonnancement des séquences de transformations de graphes. Le mécanisme de recherche détermine une séquence de transformations nécessaires à apporter aux graphes index pour qu'il existe une projection du graphe requête sur le graphe index. Les séquences de transformations étant ordonnées, ont obtient une liste des documents résultats ordonnée. Notre propre approche tiendra compte de ces améliorations en proposant un modèle de graphe permettant d'améliorer la description des documents dans un contexte multilingue. Notre modèle se base sur certaines observations des caractéristiques des index.

3. Proposition d'un nouveau modèle de graphe. Habituellement, lorsqu'un document est indexé, son contenu est décrit par un ensemble de termes significatifs, les mots clés, qui vont constituer l'index du document. Pour améliorer les

possibilités de description, des relations ont pu être introduites dans les langages documentaires mais elles ont directement contribué à augmenter le nombre d'index possibles pour un même document. Cet effet appelé "paraphrase" diminue les performances d'un système de recherche. Suivant cette constatation, nous proposons de transformer le formalisme des graphes conceptuels afin qu'il soit plus proche des langages documentaires. En particulier, nous limiterons les concepts à la notion de concepts génériques, c'est-à-dire sans marqueur. En effet, les marqueurs sont utilisés pour identifier un objet du domaine. Dans notre cas, le contenu des documents est représenté par des notions et non par des individus ou des objets particuliers. C'est pourquoi dans un premier temps, nous avons préféré simplifier le formalisme des graphes conceptuels en éliminant les marqueurs, et mettre l'accent sur une nouvelle notion : les vocabulaires. Un vocabulaire défini pour une langue donnée les labels des notions génériques décrites dans le support. Nous intitulons le support et son ensemble de vocabulaires un thesaurus sémantique. De plus, nous ne travaillerons que sur la forme normale d'un graphe : un concept ne pourra apparaître qu'une seule fois dans le graphe, ce qui limite le nombre d'index possibles pour un même document.

3.1

Thesaurus sémantique

Comme les bases de connaissances terminologiques [SEGU97], un thesaurus sémantique différencie deux niveaux de connaissance : 1. Le niveau conceptuel modélise le domaine d'étude formé de concepts et de relations conceptuelles. Dans notre cas, il s'agit d'une conceptualisation du domaine ou support résultant d'un consensus entre les différents acteurs de l'indexation dans un domaine particulier. 2. Le niveau terminologique est composé de l'ensemble des termes. Le terme est défini comme la manifestation linguistique d'un concept repéré dans un texte, dont il peut être considéré comme le label. "Le terme est donc un signe linguistique qui se distingue du mot de la langue par sa fonction de référence à une notion du domaine" [SEGU, 1997]. L'ensemble des termes d'une langue LJ constitue un vocabulaire du domaine soit Lj. Si la conceptualisation du domaine ne pourra être modifiée que par les acteurs de l'indexation, les vocabulaires, eux, évolueront en fonction de la terminologie utilisée dans les documents du corpus. 3.1.1

La conceptualisation du domaine ou Support

La conceptualisation est le résultat d'une modélisation du domaine correspond à l'explicitation 2 d'un point de vue. On rejoint donc les ontologies au sens de l'intelligence artificielle. Un support S est un triplet S = (TC, TR, σ ) tel que : − TC, est l'ensemble des types de concepts. Il est partiellement ordonné par la relation de spécialisation/généralisation, notée ≤ et il admet un plus grand élément, noté T. − TR, est l'ensemble des types de relations. Il est partitionné en ensembles de types de relations 3 de même arité : TR = TR1 ∪ TR2 ∪ …∪ TRj ∪ … ∪ TRn, où TRj est l'ensemble des types de

2 3 "Une ontologie est une spécification explicite d'une conceptualisation."[GRUB93]

Dans le cas général, un type de relation peut avoir une arité quelconque, mais dans la suite de cet article, nous simplifierons les exemples en limitant TR aux types de relation d'arité 2.

relation d'arité j (j≠0). Tout TRj est ordonnée par une relation de spécialisation/généralisation, notée ≤ et il admet un plus grand élément, noté T2. − σ, associe à tout type de relation, le type de concept le plus générique utilisable comme argument de la relation. C'est plus précisément une application qui, à tout tr ∈ TRj, associe un j-uplet σ (tr ) ∈ (TC) j, et vérifie que, pour tout élément de tr1, tr2 ∈ TR j, si tr1 ≤ tr2 alors σ(tr1) ≤ σ(tr2). L'ordre considéré sur les signatures est l'ordre produit sur (TC) j. Autrement dit, le type associé au kième argument de tr1 est plus spécifique que le type associé au kième argument de tr2. On notera σi(tr) le ième argument de σ(tr). La Figure 2 présente deux exemples de signatures vérifiant les conditions précédentes. TC: ensemble des types de concepts

T2

T

tc2

tc1 (Entité)

(Processus)

tc1.1 (Substance)

TR: ensemble des types de relation

tr1 (Composant) σ(tr1) = (T,T)

tc2.1 (Processus physique)

tr1.1 (Patient)

tc1.1.1

tc2.1.1

(Carburant)

(Combustion)

tc1.1.1.1

σ(tr1.1) = (tc2, tc1 )

Relation de spécialisation

(Diesel)

Figure 2 : Un exemple d'ensembles de types de concepts et de types de relations partiellement ordonnés par une relation de spécialisation.

3.1.2

Le thesaurus sémantique

Le thesaurus sémantique se compose donc d'une conceptualisation du domaine S et d'un ensemble de vocabulaires V. La conceptualisation formelle S est lisible par un être humain en remplaçant ses entités formelles par des termes issus du vocabulaire d'une langue. Cette conceptualisation pourra donc être présentée à l'utilisateur dans le vocabulaire de la langue de son choix. Un thesaurus sémantique (composé de P langues) est un quadruplet M = ( S, V, λC, λR) disposant de : − S, un support composé d'un ensemble de types de concept TC, d'un ensemble de types de relation TR, d'une application σ qui, à chaque type de relations, fait correspondre sa signature. − V, un ensemble des vocabulaires, partitionné en ensembles de termes appartenant à la même langue (un vocabulaire). V = V L1 ∪ V L2 ∪ …∪ V L j ∪ … ∪ VLP où VLj est l'ensemble des termes appartenant à la langue Lj.

− λC = { λC VL1,…, λC VLj,…, λC VLP }, un ensemble de P d'applications telles que λCVLj : TC → VLj est une application qui, à chaque type de concept tc ∈ TC, fait correspondre un terme dans la langue Lj, λC VLj (tc) ∈ VLj. On note λC(tc), le terme associé à tc lorsque aucune langue spécifique n'est indiquée. − λR = { λR VL1, … ,λR VL j, … , λR VLP } est un ensemble de P applications telles que λR VL j : TR → VL j est une application qui à chaque type de relation, tr ∈ TR , fait correspondre un terme dans la langue Lj, λR VLj (tr) ∈ VLj. On note λR(tr) le terme associé à tr lorsque aucune langue n'est indiquée.

V

Tc

T

λV eng(tc2.1) tc1

V eng lubricant

tc2 oil

tc1.1

tc2.1

λV eng(tc2.1.1) λV fr(tc2.1)

tc1.1.1

V fr lubrifiant

tc2.1.1

λV fr(tc2.1.1)

huile

tc1.1.1.1

Figure 3 : Exemple de thesaurus sémantique. La Figure 3 présente un exemple d'application λC. Dans cet exemple, V se compose de deux vocabulaires, un vocabulaire anglais Veng et un vocabulaire français Vfr. Pour tout type de concept, correspond un terme de chaque vocabulaire. Par exemple, pour le type tc2.1 ∈ TC, λC Veng (tc2.1)="lubricant" et λC Vfr (tc2.1)="lubrifiant". En conclusion, dans un thesaurus sémantique les connaissances du domaine constituent le langage pivot, utilisé pour l'indexation, et les connaissances terminologiques contiennent les labels possibles, dans plusieurs langues, des connaissances du domaine. Ainsi, un graphe sémantique adapte sa présentation des connaissances en fonction d'une langue donnée. Donc nos index écrits à partir des connaissances du domaine, pourront être lisibles dans plusieurs langues à l'aide des connaissances terminologiques.

3.2

Graphe sémantique

Un graphe sémantique est un ensemble de sommets concepts reliés entre eux ou non. La formalisation, que nous proposons, a pour but de mettre l'accent sur les couples de concepts reliés par une relation. Cela justifie que nous définissons la notion d'arc comme un couple de concepts étiqueté par un type de relation. Un graphe sémantique Gs= (C, A, µ, labelC, ν, labelR) défini sur un thesaurus sémantique M, est un multigraphe, non nécessairement connexe, où : 4

− C est l'ensemble des sommets concepts de Gs. − A ⊂ C × C est l'ensemble des arcs de Gs. Pour tout a= (c, c') ∈ A, on notera ai le ième sommet concept de a : a1 = c et a2 = c'. − µ: C → TC est une application qui à tout concept, c ∈ C associe une étiquette µ(c)∈ TC, µ(c) est appelé le type de c. − labelC est un ensemble d'applications labelC = { labelCVL1 , … ,labelCVLj , … , labelCVLP} telles que labelCVLj: C → VLj, qui à tout concept c ∈ C, associe une étiquette correspondant à un terme d'une langue donnée Lj, labelC VLj (c) ∈ VLj. labelC VLj (c) est appelé le label de c pour la langue Lj. On note labelC (c) le label de c lorsque aucune indication sur la langue n'est donnée. − ν: A → TR est une application qui à tout arc a ∈ A, associe une étiquette ν(a) ∈ TR, de l'ensemble des relations. − labelR est un ensemble d'applications labelR = { labelRVL1 , … ,labelRVLj , … , labelRVLP } telles que labelR VLj: A → VLj qui à tout arc, a ∈ A associe une étiquette correspondant à un terme d'une langue donnée Lj. labelR (a) VL j ∈ VLj. labelR VLj (a) est appelé le label de a pour la langue Lj. On note labelR (a) le label de a sans indication sur la langue donnée. Les graphes sémantiques doivent répondre à un certain nombre de contraintes. 1. A obéit aux contraintes fixées par l'application σ définie dans le thésaurus sémantique. Pour tout a = (c, c') ∈ A , µ(ai) ≤ σi(ν(a)) donc µ(c) ≤ σ1(r) et µ(c') ≤ σ2(r). En prenant l'exemple du type de relation Patient, Patient a comme signature σ(Patient)=(Processus, Entité). D'après la contrainte que nous venons d'énoncer, toute relation typée par Patient, devra avoir comme premier argument un type de concept spécialisé par Processus et comme second argument un type de concept spécialisé par Entité. 2. LabelC est la conjonction des deux applications µ et λC. En effet, pour tout c ∈ C, labelC(c)= λC (µ(c)) =λC ° µ(c). 3. labelR est la conjonction des deux applications ν et λR. En effet, pour tout a ∈ A, labelR (a)= λR (ν (a)) =λR ° ν (a). D'après les définitions, il existe plusieurs représentations des graphes sémantiques. En effet, des étiquettes différentes sont proposées pour chaque composant du graphe. 1. La première représentation possible consiste à étiqueter les sommets concepts et les arcs d'un graphe sémantique par leur type. Donc comme nous le montre la Figure 4, pour un sommet c, son étiquette est µ(c). Cette représentation des graphes sémantiques est utilisée pour stocker les index de notre système documentaire multilingue. 4

Dans la suite de ce rapport, les termes "sommet concept" et "concept" seront considérés comme équivalents.

2

tr1.1.12

1

tc3

tc1.1.1.1

Figure 4 : Un exemple de graphe sémantique étiqueté par les types. 2. La seconde manière de représenter un graphe sémantique consiste à étiqueter tous ses sommets et ses arcs par leur label dans une langue donnée. Si la langue fixée est l'anglais, le vocabulaire employé est donc le vocabulaire anglais Veng (cf. Figure 3). Pour un sommet c, son étiquette est labelC Veng(c)= λC Veng (µ(c)) =λC Veng ° µ(c). Il existe autant de représentation d'un graphe sémantique sous cette forme, qu'il existe de vocabulaires disponibles dans le thesaurus sémantique. Par exemple, la Figure 5 présente deux représentations du même graphe sémantique. Dans la première, les étiquettes sont les labels français du graphe sémantique et dans la seconde, les labels sont anglais. 1

In stru m e n t

2

L u b rific a tio n

L u b rifia n t

1 L u b ric a tio n

In stru m e n t

2 L u b ric a n t

Figure 5 : Des exemples de graphes sémantiques étiquetés par des labels. Ainsi, nos index pourront être présentés aux utilisateurs de notre système documentaire multilingue dans la langue de leur choix. 3.2.1

Opération de pseudo-projection

L'opération de pseudo-projection est l'opération de base du modèle qui nous permet de rechercher un morphisme entre graphes. Cette opération sera utilisée comme fonction de comparaison entre les documents et les requêtes représentés sous forme de graphe sémantique. En effet, il existe une pseudo-projection d'un graphe H dans un graphe G si l'information représentée par H est voisine d'une partie de l'information représentée par G. H est dit comparable à G. Dans l'exemple de la Figure 6, le graphe H décrit un besoin d'information portant sur "le développement du diesel" et le graphe G représente le contenu d'un document traitant "du développement d'un nouveau carburant pour les moteurs monocylindres". Bien qu'il n'existe pas de projection de H dans G, H est comparable à G. L'existence de la pseudoprojection de H dans G prouve que le document indexé par G répond à la requête représentée par H.

1

H

But

2

développement

diesel

Π

1 développement

But

Relation de spécialisation

2 carburant

G

2

Composant

1

carburant

Moteur mono cylindre

Figure 6 : exemple de pseudo-projection de H dans G. Plus formellement, nous obtenons la définition suivante pour l'opération de pseudo-projection Définition (pseudo-projection) : Une pseudo-projection d'un graphe H = (CH , AH , µH , labelCH,νH , labelRH) dans un graphe G = (CG , AG , µG , labelCG , νG , labelRG) est un couple de fonctions Π= (f,g) où f: AH → AG établit la correspondance entre les arcs (relations) des deux graphes et g: CH → CG celle entre les sommets (concepts). Les propriétés de Π sont les suivantes : 1. Π conserve les arcs. Pour tout arc a = (c, c') de AH , f(a)=(g(c),g(c')) est un arc de AG. 2. Π peut restreindre les étiquettes des arcs. Pour toute étiquette d'arc νH (a), νG (f(a)) ≤ νH (a). 3. Π peut augmenter les étiquettes des arcs Pour toute étiquette d'arc νH (a), νH (a) ≤ νG(f(a)). 4. Π peut restreindre les étiquettes des sommets concepts. Pour tout sommet c de CH , µG (g(c)) ≤ µH (c). 5. Π peut augmenter les étiquettes des sommets concepts Pour tout sommet c de CH , µH (c) ≤ µG (g(c)). Remarque: L'exemple de la Figure 6, montre que la pseudo-projection ne conserve pas le nombre de sommets. Par conséquent, l'opération de pseudo-projection ne fait pas la différence entre un graphe contenant plusieurs sommets concepts ayant la même étiquette et un graphe ne contenant qu'un seul sommet concept par étiquette. Nous supposons donc que tous les graphes sont sous forme normale pour laquelle il n'existe qu'un seul sommet concept par étiquette. La perte d'information inhérente à cette restriction (graphe sous forme normale) nous paraît minime, car une notion n'apparaît généralement qu'une seule fois dans un index. La pseudo-projection permet de comparer un graphe dont la totalité de son information est sémantiquement voisine d'une partie de l'information contenue dans un autre graphe. Il est important de définir un mécanisme permettant de comparer les graphes, partie par partie. Cette nouvelle opération est intitulée pseudo-projection partielle. Dans l'exemple de la Figure 6, nous avons montré qu'il existe une pseudo-projection de H dans G, mais inversement il n'existe pas de

pseudo-projection de G dans H donc il ne sera pas possible de retrouver le document indexé par H avec une requête représentée par G. Définition (pseudo-projection partielle): Il existe une pseudo-projection partielle de H dans G si, par définition, il existe H', un graphe sémantique sous-graphe de H tel qu'une pseudoprojection de H' dans G pourra être trouvée. D'après l'exemple de la Figure 6, il existe une pseudo-projection partielle du graphe G dans le graphe H.

3.3

Fonctions de similarité

L'opération de pseudo-projection nous permet de découvrir si deux graphes sont comparables. Par contre, le résultat de cette comparaison entre graphes est booléen: la pseudo-projection entre les graphes existe ou n'existe pas. Pour utiliser cette opération comme fonction de comparaison dans un système de recherche d'information, il est préférable que l'opération de pseudoprojection retourne une valeur réelle permettant ainsi d'ordonner les résultats. Dans ce but, nous allons présenter les différentes fonctions de similarités utilisées pour obtenir la définition d'une fonction de similarité entre graphes. Chaque fonction de similarité (entre types, entre arcs, entre graphes) retourne une valeur normalisée comprise entre 0 et 1. En particulier, les relations de spécialisation et de généralisation introduites dans le thesaurus sémantique nous permettront de définir des fonctions de similarité entre types. 3.3.1

Fonction de similarité entre types

Une fonction de similarité entre types, notée sim, prend en entrée deux types et renvoie une valeur numérique. Cette fonction de similarité vérifie les propositions suivantes. Nous illustrerons ces propositions par des exemples de types de concepts issus du support présenté dans la Figure 2. − Si deux types ne sont pas comparables, c'est à dire qu'il n'existe aucune relation entre eux alors la fonction de similarité renvoie une valeur nulle.

∀ tc ∈ TC et ∀ tc' ∈ TC tels que tc et tc' ne sont pas comparables alors sim(tc , tc') = 0 . Par exemple, sim(tc1 , tc2) = 0. − Si deux types sont identiques alors la fonction de similarité renvoie la valeur 1.

∀ tc ∈ TC et ∀ tc' ∈ TC tels que tc =tc' alors sim(tc , tc') = 1. Par exemple, sim(tc1 , tc1) = 1. − Si un type de concept spécialise directement un autre type alors la fonction de similarité renvoie une valeur constante, fixée aléatoirement, notée VG.

∀ tc ∈ TC et ∀ tc' ∈ TC tels que tc ≤ tc' et il n'existe aucun tc'' tel que tc ≤ tc'' et tc'' ≤ tc' alors sim(tc , tc') = VG . Par exemple, sim(tc2.1 , tc2) = VG. −

Si un type généralise directement un autre type alors la fonction de similarité renvoie une valeur constante, fixée aléatoirement, notée VS.

∀ tc ∈ TC et ∀ tc' ∈ TC tel que tc' ≤ tc et il n'existe aucun tc'' tel que tc'' ≤ tc et tc' ≤ tc'' alors sim(tc , tc') = VS . Par exemple, sim(tc2 , tc2.1) = VS. −

Si un type est comparable à un autre type et qu'il ne le spécialise/généralise pas directement alors la fonction de similarité est le produit des fonctions de similarité entre eux et les types qu'ils généralisent ou spécialisent.

∀ tc ∈ TC et ∀ tc' ∈ TC tel que tc ≤ tc' et il existe au moins un tc'' ∈ TC tel que tc ≤ tc'' et tc'' ≤ tc alors sim(tc , tc') = sim(tc , tc'') × sim(tc'' , tc') . Par exemple, sim(tc1.1.1.1 , tc1) = VG×VG×VG. La fonction de similarité entre types précédemment présentée permet de définir la fonction de similarité entre arcs, notée SimA. 3.3.2

Fonctions de similarités entre arcs

La fonction de similarité entre deux arcs, notée SimA, est définie de la manière suivante: Soit un graphe H = (CH , AH , µH , labelCH,νH , labelRH) et un graphe G = (CG , AG , µG , labelCG , νG , labelRG) . Soit aH un arc de H / aH = (cH , cH') et ν(aH ) = trH et aG un arc de G / aG = (cG , cG') et ν(aG ) = trG.

Sim A (aH , aG ) =

sim(ν (aH ) , ν (aG )) + sim (µ (aH 1 ) , µ (aG1 )) + sim (µ (aH 2 ) , µ (aG 2 )) 3

ou Sim A (aH , aG ) =

sim(trH , trG ) + sim (µ (cH ) , µ (cG )) + sim (µ (c' H ) , µ (c'G )) 3

SimA équivaut à moyenner les similarités entre les composants des arcs pris 2 à 2. A partir des différentes fonctions de similarité, nous avons ainsi défini la manière d'évaluer l'opération de pseudo-projection. 3.3.3

Evaluation d'une pseudo-projection

S'il existe une pseudo-projection Π d'un graphe H = (CH , AH , µH , labelC H,νH , labelR H) dans un graphe G = (CG , AG , µG , labelCG , νG , labelRG), alors cette pseudo-projection est évaluée par une fonction réelle, notée val prenant en entrée deux graphes sémantiques comparables et renvoyant une valeur réelle comprise entre les valeurs 0 et 1. val (Π (H , G )) =

å

a ∈ AH

sim A (a ,

f (a )) + CH

å

c ∈ CH

+

Max(simC (µ H (c) , µG ( g (c )) )) AH

val équivaut à moyenner les similarités entre les arcs et les sommets concepts de H et leur image par Π dans G. Comme un sommet concept peut avoir plusieurs images par Π, on retient le maximum des similarités entre le concept et ses images. L'évaluation d'une pseudo-projection partielle est définie de la même manière. Ce qui nous permet d'introduire la définition d'une fonction de similarité entre graphes. 3.3.4

Fonction de similarité entre graphes

La fonction de similarité entre un graphe H = (CH , AH , µH , labelC H,νH , labelR H) et un graphe G = (CG , AG , µG , labelCG , νG , labelRG) est la fonction simG telle que simG (H, G) = max( val(∏(H,G))où ∏ est une pseudo-projection partielle de H dans G).

4. Algorithmes Le but des algorithmes de recherche est de trouver l'ensemble des documents indexés par un graphe sémantique comparable au graphe requête. Il s'agit donc d'évaluer toutes les pseudoprojections du graphe requête sur les graphes index stockés dans la base de données. Lors de l'indexation, nous avons mémorisé pour chaque graphe indexant un document tous les sousgraphes requêtes possibles comparables à son graphe index. Trouver les documents répondant à une requête revient à identifier les sous-graphes de la requête actuelle correspondant à un sousgraphe requête possible, stocké préalablement dans la base de données. Les graphes sémantiques étant composés d'arcs et de sommets concepts, ils constituent par conséquent les deux types d'entités d'indexation. Nous avons donc considéré que le contenu d'un document serait représenté par deux index différents: une liste d'arcs et une liste de concepts. A partir de ces deux index, le graphe sémantique indexant le document, aussi appelé graphe index, peut être reconstruit. Nos algorithmes, inspirés des travaux présentés dans [OUNI98], se basent sur l'association de fichiers inverses et de tables d'accélération. Les fichiers inverses associent, à chaque entité d'indexation (un arc ou un sommet concept), la liste des documents qu'elle indexe. Les tables d'accélération stockent, pour chaque entité d'indexation, la liste des entités qui leur sont comparables ainsi que le résultat de la fonction de similarité entre l'entité comparable et l'entité d'indexation. De cette manière, les tables d'accélération pré-calculent toutes les généralisations ou spécialisations possibles des entités d'indexation. Notre base de données composée des fichiers inverses et des tables d'accélérations, est formée de deux parties indépendantes: la partie où les entités d'indexations sont les arcs et celle où les entités d'indexation sont les concepts. − Dans la première partie de la base de données, seuls les arcs des graphes sémantiques sont pris en considération. Chaque document est indexé par les arcs contenus dans son graphe sémantique index (intitulé GraphIndex dans l'algorithme). Cette partie de la base de données se compose d'un fichier inverse noté InvertedFileArc et de plusieurs tables d'accélération intitulées FirstArgValue, SecondArgValue, RoleArgValue. − Dans la deuxième partie de la base de donnée, seuls les sommets concepts des graphes sémantiques sont considérés. Chaque document est indexé par la liste des sommets concepts contenu dans le graphe sémantique index, GraphIndex. Cette partie de la base de données se compose d'un fichier inverse noté InvertedFileConcept et d'une table d'accélération intitulée ConceptValue. Nous présentons, tout d'abord l'algorithme de recherche sur les arcs suivi par l'algorithme de recherche sur les concepts.

4.1

Algorithme de recherche sur les arcs DONNEE: GraphReq un graphe requête nbArc le nombre d'arcs contenus dans GraphReq nbSommet le nombre de sommets concepts contenus dans GraphReq.

RESULTAT: ListDocResult une liste de documents pondérés en fonction de la similarité entre leur index et le graphe requête.

ALGORITHME ListDocResult ß vide // recherche sur les arcs de la requête Pour chaque arc ArcReq de GraphReq faire ListArcIndex ß vide ListDocArc ß vide ListArcIndex ßTrouveArcComparable(ArcReq) Pour chaque(ArcIndex, PoidsArc) de ListArcIndex faire ListDoc ß vide ListDoc ß TrouveListDoc(ArcIndex) // Pour un arc de la requête, le poids affecté à un document est le maximum des similarités évaluées entre l'arc requête et les arcs de son index Pour chaque Doc de ListDoc faire Si ListDocArc.Appartient(Doc) Alors Poids ßListDocArc.RecherchePoids(Doc) NouveauPoids ß max(Poids, PoidsArc) ListDocArc.RemplacePoids(Doc, NouveauPoids) Sinon ListDocArc.Ajout(Doc, PoidsArc) FinSi FinPour FinPour // Mise à jour du poids du document final. Pour chaque (Doc, PoidsArc) de ListDocArc faire Si ListDocResult.Appartient(Doc) Alors Poids ß ListDocResult.RecherchePoids(Doc) NouveauPoids ß Poids + (PoidsArc / (nbArc + nbSommet)) ListDocResult.RemplacePoids(Doc, NouveauPoids) Sinon ListDocResult.Ajout(Doc, PoidsArc)

FinPour FinPour

TrouveArcComparable(ArcReq) est une fonction qui renvoie une liste d'arcs (ListArcIndex) composée d'arcs (ArcIndex comparables à ArcReq) pondérés par leur similarité avec ArcReq notée PoidsArc.

Pour illustrer le fonctionnement de cet algorithme, nous allons travailler sur l'exemple de graphe requête présenté dans la Figure 7. Pour permettre le calcul des différentes fonctions de 5 similarités, les constantes VG et VS sont initialisées. VG =0.7 et VS=0.9.

Les hiérarchies de types Ensemble des types de concepts

Ensemble des types de relations

T

T2

tc1

tc2

tc3

tr1

tr2

tc1.1

tc2.1

tc3.1

tr1.1

tr2.1

1

tr1.1

2

tc1.1 1

tr1

tc2.1

d1

tc2

d2

2

tc1

1 tc1

1 tc3

tr2

2 tc2

tr1

2 tc2.1

q

tc3

d3

Figure 7: exemples de graphes index (d1, d2, d3) et de graphe requête (q) avec leurs hiérarchies du support associé. Dans le fichier inverse (InvertedFileArc), les arcs syntaxiquement équivalents sont regroupés sous le même identifiant. Puis, à chaque identifiant est associée la liste des documents indexés par l'arc. Le Tableau 1 présente le fichier inverse dédié aux arcs, construit à partir des exemples de graphes représentant les documents (Figure 7). Comme tous les arcs sont différents, aucun regroupement n'est réalisé. InvertedFileArc Documents

5

Identifiant d'arc

Type de Type du premier Type du l'arc argument argument

Nous avons choisi les mêmes valeurs que celles utilisées dans [GENE97]

second

d1

a1

tr1.1

tc1.1

tc2.1

d2

a2

tr1

tc1

tc2

d3

a3

tr2

tc3

tc2

Tableau 1: le fichier inverse InvertedFileArc Ensuite, les lignes du fichier inverse sont analysées pour mettre à jour les différentes tables d'accélération. Il existe une table d'accélération par composant d'un arc: une table pour les types des arcs (RoleArgValue), une table pour les types des premiers arguments (FirstArgValue), une table pour les types des seconds arguments (SecondArgValue). Ces tables contiennent toutes les spécialisations ou généralisations possibles des composants des arcs et leur similarité avec le composant. Par exemple, la table d'accélération FirstArgValue du Tableau 2 contient les types comparables aux types des premiers arguments des arcs index. A chaque type de la première colonne, sont associés les arcs dont le type de leur premier argument leur est comparable. Ces arcs sont pondérés par la similarité entre les types considérés. Par exemple, pour le type tc1 est associé l'arc a1 pondéré par la similarité entre tc1 et tc1.1 (type du premier argument de a1) soit simC(tc1, tc1.1)= VS = 0.9. Mettre à jour cette table consiste, pour chaque type du premier argument d'un arc index, à rechercher dans la hiérarchie des types de concepts, tous les types qui lui sont comparables, et ensuite à calculer leur similarité. FirstArgValue

SecondArgValue

RoleArgValue

Type

Liste d'arc

Type

Liste d'arc

Type

Liste d'arc

T

{(0.81, a1), (0.9, a2), (0.9, a3)}

T

{(0.81, a1), (0.9, a2), (0.9, a3)}

Tr

{(0.81, a1), (0.9, a2), (0.9, a3)}

tc1

{(0.9,a1), (1, a2)}

tc2

{(0.9, a1), (1, a2), (1, a3)}

tr1

{(0.9, a1), (1, a2)}

tc1.1

{(1, a1), (0.7, a2)}

tc2.1

{(1, a1), (0.7, a2), (0.7, a3)}

tr1.1

{(1, a1), (0.7, a2)}

tc3

{(1, a3)}

tr2

{(1, a3)}

tc3.1

{(0.7, a3)}

tr2.1

{(0.7, a3)}

Tableau 2: les tables d'accélération pour les arcs Considérons l'arc de la requête. Au début, on cherche les couples (similarité, arc) dans la table FirstArgValue qui présentent le même type en premier argument de la requête, soit tc1. On obtient {(0.9,a1), (1, a2)}. Dans la table SecondArgValue, on cherche les couples (similarité, arc) qui ont le même type que le second argument de l'arc requête, soit tc2.1. On obtient {(1, a1), (0.7, a2), (0.7, a3)}. De la même manière, on cherche la liste des couples (similarité, arc) dans la table RôleArgValue qui ont le même type que celui de l'arc requête, soit tr1. On obtient {(0.9, a1), (1, a2)}. On réalise l'intersection de ces listes pour ne conserver que les arcs qui apparaissent dans les trois listes, leur similarité est obtenue en moyennant leurs différentes valeurs. Ainsi, on obtient donc tous les arcs comparables avec l'arc requête et leur similarité entre l'arc requête et eux: {(0.93, a1), (0.9, a2)}. Enfin, pour chacun des arcs comparables, on recherche dans le fichier inverse les documents qu'il indexe. On obtient la liste (intitulée ListDoc dans l'algorithme), des documents. La pondération d'un document est égale à la similarité entre l'arc

requête et un de ses arcs index {(0.93, d1), (0.9, d2)}. On insère dans la liste ListDocResult chacun de ces documents en divisant leur poids par 4 (le nombre d'arcs + le nombre de sommets concepts de la requête). On obtient: {(0.2325, d1), (0.225, d2)}. La liste ListDocResult n'est pas définitive. En effet, il faut encore réaliser une recherche sur les sommets concepts.

4.2

Algorithme de recherche sur les concepts DONNEE: GraphReq un graphe requête nbArc le nombre d'arcs contenus dans GraphReq nbSommet le nombre de sommets concepts contenus dans GraphReq. Seuil le poids minimum d'un document pertinent

RESULTAT: ListDocResult une liste de documents pondérés en fonction de la similarité entre leur index et le graphe requête.

ALGORITHME // recherche sur les sommets concepts de la requête Pour chaque sommet concept isolé ConceptReq de GraphReq faire ListConceptIndex ß vide ListDocConcept ß vide ListConceptIndex ßTrouveConceptComparable(ConceptReq) Pour chaque(ConceptIndex, PoidsConcept) de ListConceptIndex faire ListDoc ß vide ListDoc ß TrouveListDoc(ConceptIndex) // Pour un concept de la requête, le poids affecté à un document est le maximum des similarités entre le concept de la requête et les concepts de son index Pour chaque Doc de ListDoc faire Si ListDocConcept.Appartient(Doc) Alors Poids ßListDocConcept.RecherchePoids(Doc) NouveauPoids ß max(Poids, PoidsConcept) ListDocConcept.RemplacePoids(Doc, PoidsConcept) Sinon ListDocConcept.Ajout(Doc, PoidsConcept) FinSi

FinPour FinPour // Mise a jour du poids du document final Pour chaque (Doc, PoidsConcept) de ListDocConcept faire Si ListDocResult.Appartient(Doc) Alors Poids ß ListDocResult.RecherchePoids(Doc) NouveauPoids ß Poids + (PoidsConcept / (nbArc + nbSommet)) ListDocResult.RemplacePoids(Doc, NouveauPoids) Sinon ListDocResult.Ajout(Doc, NouveauPoids) FinPour FinPour

// seuls les documents qui ont un poids supérieur au seuil sont affichés Pour chaque (Doc, Poids) de ListDocResult faire Si Poids < Seuil Alors ListDocResult.Effacer(Doc) FinPour

TrouveConceptComparable(ConceptReq) est une fonction qui renvoie une liste de concepts (ListConceptIndex) composée de concepts (ConceptIndex comparables à ConceptReq) pondérés par leur similarité avec ConceptReq notée PoidsConcept.

L'algorithme ci-dessus modifie la liste de document ListDocResult pour tenir compte des sommets concepts. Maintenant, nous reprenons l'exemple de la Figure 7 pour traiter la recherche des concepts. Dans le fichier inverse InvertedFileConcept, présenté dans le Tableau 3, les documents, sont ici indexés par les sommets concepts. A chaque sommet, est associé la liste des documents qu'il indexe. InvertedFileConcept Documents

Identifiant de concept

Type de concept

d1

c1

tc1.1

d2

c2

tc2.1

d3

c3

tc1

d2, d3

c4

tc2

d3

c5

tc3

Tableau 3 : le fichier inverse InvertedFileConcept La table d'accélération ConceptValue, présentée dans le Tableau 4 contient toutes les spécialisations et généralisations possibles des concepts stockés dans le fichier inverse. ConceptValue Type

Liste de concepts pondérés

T

{(0.81, c1), (0.81, c2), (0.9, c3), (0.9, c4), (0.9, c5)}

tc1

{(0.9, c1), (1, c3)}

tc1.1

{(1, c1), (0.7, c3)}

tc2

{(0.9, c2), (1, c4)}

tc2.1

{(1, c2), (0.7, c4)}

tc3

{(1, c5)}

tc3.1

{(0.7, c5)}

Tableau 4 : la table d'accélération ConceptValue Rappelons, que suite à l'algorithme sur la recherche sur les arcs nous avions obtenu comme résultat la liste de documents ListDocResult suivante : {(0.2325, d1), (0.225, d2)}. Considérons les sommets concepts de la requête. Pour chacun des sommets concepts de la requête, on recherche la liste des concepts qui leur sont comparables pondérés par leur similarité. Cette liste est appelée ListConceptIndex dans l'algorithme. C'est à dire que pour le sommet typé par tc1 ListConceptIndex={(0.9, c1), (1, c3)} ; pour tc2.1 ListConceptIndex={(1, c1), (0.7, c3)} et pour tc3, ListConceptIndex={(1, c5)}. Dans ces listes, on remplace les identifiants de concepts par les documents qu'ils indexent (contenu dans la liste ListDoc) pour construire ListDocConcept. On obtient, pour tc1, ListDocConcept ={(0.9, d1), (1, d2)} ; pour tc2.1, ListDocConcept ={(1, d1), (0.7, d2)} et pour tc3, ListDocConcept ={(1, d3)}. Pour chacun des documents des listes ListDocConcept, son poids dans ListDocResult est également divisé par quatre (nombre d'arcs + nombre de sommets concepts dans la requête). Si ce document existe déjà dans ListDocResult, on additionne son poids dans ListDocConcept à son poids dans ListDocResult ; sinon on ajoute ce document et son poids dans ListDocResult. On obtient : {( 0.2325+0.9/4 +1/4, d1), (0.225+ 1/4 +1/4, d2), (1/4, d3)}= {( 0.7075, d1), (0.725, d2), (0.25, d3)}. Si les poids des trois documents sont supérieurs au seuil fixé, ils sont jugés pertinents pour la requête.

5. Evaluation Notre système de recherche multilingue intitulé SyDoM (Système Documentaire Multilingue) [ROUS00] est un outil dédié aux bibliothèques virtuelles gérant des documents décrits en XML. Ce système est implémenté en java à partir de Microsoft Access. SyDoM comprend un module de gestion des thesaurus sémantiques, un module d'indexation manuelle de documents en XML et un module de recherche. Le thesaurus sémantique est au cœur du système. Son but est de

proposer au bibliothécaire, chargé de l'indexation, de conceptualiser sa représentation du domaine, dans la langue de son choix. Le thesaurus est ensuite enrichi par les différents vocabulaires contenus dans la base documentaire. Cette conceptualisation sera présentée par la suite aux différents utilisateurs, dans la langue de leur choix, à l'aide des vocabulaires associés. − Lors du processus d'indexation, le thesaurus est présenté au bibliothécaire pour construire les graphes sémantiques indexant les documents. − Lors de la demande d'information, l'utilisateur choisira de visualiser le thesaurus dans la langue de son choix pour composer son graphe sémantique requête. La Figure 8 présente l'interface d'interrogation de SyDoM. La requête composée correspond à une demande d'information sur les modèles de combustion. La bibliothèque Doc'INSA, associée à l'INSA de Lyon, nous a fourni une base de tests pour effectuer notre validation. Il s'agit d'une série d'articles écrits en anglais, appelés les pre-prints de la Society of Automotive Engineers (SAE) consacrés à la mécanique automobile. Dans un premier temps, il a fallu construire un thesaurus sémantique pour le domaine de la mécanique. Le thesaurus de la mécanique du centre technique des industries mécaniques nous a permis d'identifier des types de concepts. Pour les types de relation, nous avons utilisé la hiérarchie des rôles issue du Knowledge Book de Sowa [SOWA00]. Notre thesaurus se compose d'une centaine de types de concepts et de trente-cinq types de relation. Environ cinquante articles ont été indexés manuellement pour cette évaluation. Les index sont les représentations sous forme de graphes sémantiques des titres des documents. Dix requêtes ont été construites manuellement recouvrant les concepts généraux du corpus de tests. En moyenne, un graphe sémantique index se compose de quatre arcs, et un graphe requête de deux arcs.

Figure 8 : l'interface d'interrogation de SyDoM Pour évaluer notre système nous l'avons comparé au système de documentaire de Doc'INSA. Dans ce système, les documents et les requêtes sont représentés par une liste de mots clés. La fonction de similarité entre documents et requêtes évalue le nombre de mots clés communs. Pour

éviter les problèmes liés à la variabilité de l'indexation manuelle, les index ont été générés à partir des graphes sémantiques index de SyDoM. La figure suivante présente les résultats de SyDoM avec différents seuils (0.8, 0.6, 0.5, 0.4, et 0) La constante VG est initialisé à 0.7 et VS à 0.9. La précision moyenne a été calculée pour 10 intervalles de rappel (0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1).

évaluation de SyDoM 1,2

précision

1

0,8

0,8

0,6

0,6

0,5

0,4

0,4 0

0,2 0 0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

rappel

Figure 9: évaluation de SydoM suivant différents seuils La petite taille de notre collection peut expliquer l'allure générale des courbes. En effet, la plupart des requêtes ne concernent qu'un faible nombre de documents et comme ces documents sont retrouvés dans les premiers (avec un poids proche de 0.8), le taux de précision reste élevé quel que soit le taux de rappel. La figure suivante présente la comparaison entre SyDoM et le système documentaire de Doc'INSA. Notre système obtient de meilleurs résultats, car non seulement l'ajout de relations améliore la précision des index, mais les connaissances du thésaurus sont prises en compte au moment de la recherche.

comparaison SyDoM Doc'INSA SyDom seuil 0,5

Doc'INSA

1,2 précision

1 0,8 0,6 0,4 0,2 0 0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

rappel

Figure 10 : Comparaison entre SyDoM et le système documentaire de Doc'INSA.

Bien que, les résultats actuels nous semblent pertinents, notre évaluation n'a pas porté sur suffisamment de documents pour être définitivement concluante. La difficulté majeure reste l'indexation manuelle car il est difficile de trouver le temps et les personnes pour indexer un nombre suffisant de documents. La prochaine étape consistera à comparer notre système avec un système similaire basé sur les graphes conceptuels. En effet, il aurait été intéressant de comparer les temps de traitement et les résultats entre SyDoM et le système développé par David Genest qui utilise une approche similaire.

6. Conclusion Dans cet article, nous avons proposé un nouveau modèle de graphe pour prendre en compte l'aspect multilingue des documents. Ce modèle est une extension du modèle des graphes conceptuels [SOWA84] auquel a été ajoutée au support, la notion de vocabulaire et au graphe, la notion de label. Nous nous sommes basés sur les travaux de David Genest [GENE00], pour proposer un nouvel opérateur de comparaison de graphes tenant compte des besoins de la recherche d'information. En effet, notre opérateur de pseudo-projection recherche non seulement les spécialisations des éléments d'un graphe H dans un graphe G mais aussi les généralisations des éléments de H dans ceux de G. Cet opérateur est à la base de la fonction de comparaison de notre système documentaire multilingue, intitulé SyDoM. Notre proposition se base sur le modèle générique proposé dans [GENE00] pour étendre le modèle des graphes conceptuels, en considérant les graphes sous forme normale. Cette heuristique nous a permis de proposer un algorithme efficace de recherche. La suite de ces travaux se trouve naturellement dans les tests sur une collection de documents plus importante engagés en collaboration avec les documentalistes de la bibliothèque Doc'INSA. Une autre perspective concernant le thesaurus sémantique consiste à utiliser l'ensemble de ses connaissances sémantiques et terminologiques pour proposer une aide à l'indexation manuelle dans SyDoM. Cette perspective est plus détaillée dans [ROUS00].

7. Remerciements Nous tenons à remercier David Genest, Sylvie Calabretto et Bruno Tellez pour leurs remarques constructives lors de la rédaction de cet article. Un merci tout particulier, pour les développeurs de SyDoM, José Cuba et Thomas Nguyen.

8. Références [CRES95]

F. Crestani, C. J. van Rijsbergen. «Information Retrieval by Logical Imaging». Journal of Documentation, Vol 51, n°1, p 1-15,1995.

[CHEI92]

M. Chein, M-L. Mugnier. «Conceptual Graphs: Fundamental Notions». Revue d'Intelligence Artificielle, Vol 6, n°4, p 365-409,1992.

[GENE97]

D. Genest, M. Chein. « An experiment in Document Retrieval using Conceptual Graph ». Actes de la 5ème Conférence ICCS, Washington, USA, p 489-504, août 1997.

[GENE00]

D. Genest. « Extension du modèle des graphes conceptuels pour la recherche d'information ». Thèse de doctorat, Université de Montpellier, Montpellier, France 2000.

[GRUB93]

T. R. Gruber. « A Translation Approach to Portable Ontology Specifications.» Knowledge Acquisition, Vol 5, N°2, p199-220, 1993.

[NIE 90]

J.Y. Nie. « Un modèle logique général pour les systèmes de recherche d'informations. Application au prototype RIME ». Thèse de doctorat, Université Joseph Fourier Grenoble, France 1990.

[OUNI98]

I. Ounis, M. Pasça. « RELIEF: Combining expressiveness and rapidity into a single system ». Actes de la 18th Conférence SIGIR, 24 28 août 1998, Melbourne, Australie, p 266-274.

[RIJS86]

C.J. van Rijsbergen. « A new Theoritical Framework for Information Retrieval ». Actes de la Conférence ACM-SIGIR, Pisa, septembre 1986.

[ROUS99]

C. Roussey, S. Calabretto, J. M. Pinon « Etat de l'art en indexation et recherche d'information». Document numérique, éditeur Hermès, Vol 3 n°3-4, p 121-149, décembre 1999.

[ROUS00]

C. Roussey, S. Calabretto, J. M. Pinon « Un modèle d'indexation pour une collection multilingue de documents». Actes de la 3ème Conférence CIDE, Lyon, France, p 153-169, juillet 2000

[SEGU97]

P. Séguéla, N. Aussenac-Gilles. «Un modèle de base de connaissances terminologiques». Actes de la deuxième journée Terminologie et IA, Toulouse avril 1997, université de Toulouse le Mirail équipe ERSS.

[SOWA84]

J. Sowa. « Conceptual Structures: information processing in mind and machine ». The System Programming Series, éditeur Addison Wesley, 1984.

[SOWA00]

J. Sowa. « Knowledge Representation: Logical, Philosophical, and Computational Foundations ». Editeur Brooks Cole, Pacific Grove, CA., 2000.