• Aucun résultat trouvé

Recherche de documents multistructurés

Chapitre IV – Document multistructuré : de l’intégration à la restitution

III. Recherche et restitution de documents

III.1. Recherche de documents multistructurés

Nous décrivons, dans cette section, les techniques de recherche de documents ou de fragments de documents dans une collection de documents multistructurés. Cette recherche consiste à retrouver des fragments de documents en se basant sur les différentes structures. Selon le modèle « MVDM », ces fragments sont représentés au travers des nœuds spécifiques. La structure générique est le point de départ facilitant l‘accès aux nœuds spécifiques. Afin d‘affiner le résultat, des contraintes peuvent être définies sur les nœuds génériques.

III.1.1. Démarche de recherche de documents multistructurés

Afin de rechercher de documents ou des fragments de documents en se basant sur les différentes vues relatives à une structure générique, nous proposons une démarche d‘interrogation basée d‘une part sur la génération de requêtes SQL et d‘autre part sur l‘ajustement des résultats de ces requêtes via une gestion des chevauchements.

La recherche de fragments de documents nécessite la construction de requêtes complexes. La complexité de ces requêtes est double. D‘une part, elle est due aux calculs de profondeurs de chacun des nœuds utilisés dans la requête. D‘autre part, elle est due aux jointures nécessaires pour remonter dans l‘arborescence. Ainsi, afin de déterminer le nombre de jointures à utiliser dans sa requête, le système doit chercher à chaque fois le niveau de chaque nœud dans l‘arborescence et la vue générique utilisée pour remonter dans cette arborescence.

Séquence

Musique Parole Bruit

Thème

* * *

*

Séquence

Musique Parole Bruit

Locuteur

* * *

*

Vue générique : thème Structure générique : séquence audio

Vue générique : locuteur

NomL Sexe NomT Nature

Elément Attribut

Langue Langue

Figure IV.16. Démarche de recherche de documents multistructurés.

Le processus proposé pour rechercher de fragments de documents multistructurés peut-être schématisé comme l‘indique la Figure IV.16. Ce processus se déroule en cinq phases :

❶ Sélections des composants : la première étape doit permettre à l‘utilisateur de choisir les composantes de sa requête. Ces composantes consistent en un ensemble de nœuds qui appartient à différentes vues relatives à une même structure générique.

❷ Filtrage : la deuxième étape, celle de filtrage, doit permettre à l‘utilisateur de spécifier des valeurs précises afin de composer sa requête. Nous proposons deux types de filtre. Lorsque la valeur de la composante sélectionnée est sous forme numérique, nous proposons un filtrage qui permet de fixer des critères de sélection, en utilisant des opérateurs classiques de comparaison arithmétique (<, >, =, <>, <=, >=). Pour les valeurs textuelles, nous proposons d‘utiliser les techniques de filtrage par mots-clés éventuellement liés par les opérateurs logiques (+ : et, - : pas, | : ou) ;

❸ Génération de la requête : une fois que les composantes de la requête sont sélectionnées et les conditions de filtrages sont spécifiées, le système génère la requête en question. Il calcule le niveau de chaque nœud dans l‘arborescence et il détermine les jointures nécessaires ;

❹ Gestion de chevauchements : cette étape a pour objectif d‘ajuster des résultats à présenter à l‘utilisateur. Cet ajustement est possible lorsqu‘il existe deux nœuds définis sur un même contenu. En effet, le système sauvegarde au préalable une liste « NœGénChe » pour chaque structure générique. Cette liste représente la liste des nœuds génériques représentant des nœuds spécifiques dont le contenu est susceptible d‘être chevauché. Le calcul de chevauchement s‘effectue entre tous les nœuds de type élément qui appartiennent à une même ligne de la vue « Jointure » et qui figurent, eux ou un de leurs nœuds descendants, sur la liste « NœGénChe ». Les nœuds de type attribut seront pris en compte également dans le calcul de chevauchement. Ils seront représentés par leur nœud père.

❺ Visualisation des résultats : la dernière étape, celle de visualisation, consiste à afficher à l‘utilisateur le résultat de sa requête. Ces résultats sont des données factuelles et/ou des éléments.

Base de Documents ❸Génération de la requête Visualisation des résultats U ti li s a te u r Sy s m e Sélection des composantes Filtrage Gestion de chevauchements

III.1.2. Exemple

La démarche de recherche est illustrée ici au travers de la requête suivante : « rechercher tout les segments de paroles où « Julien Courbet » aborde les thèmes d‘« économie ». ».

Pour spécifier sa requête, l‘utilisateur doit sélectionner les nœuds « Parole », « NomL » et « NomT » en se basant sur la structure générique « Séquence Audio » (Cf. Figure IV.15). Ensuite, il doit définir ces règles de filtrage ; dans notre exemple « NomL = ‘Julien Courbet’ » et « NomT = ‘économie’ ». A partir de ces informations, le système génère la requête suivante :

SELECT n1.sondoc.numdoc, ref(n1), ref(n2), ref(n3)

From noeudspe n1, noeudspe n2, noeudspe n3, relationspe r1, relationspe r2, relationspe r3, relationspe r4

WHERE n1.herite.nomng='Parole'

AND n2.herite.nomng='NomT' AND n2.Valeur = 'économie'

AND n3.herite.nomng='NomL' AND n3.Valeur = 'Julien Courbet' AND n1.sondoc.appartient.nomsg='Sequence Audio'

AND n1.numns = r1.noeudpere.numns AND n1.numns = r2.noeudpere.numns AND r1.noeudfils.numns= r3.noeudpere.numns

AND r2.noeudfils.numns= r4.noeudpere.numns

AND n2.numns = r2.noeudfils.numns AND n3.numns = r4.noeudfils.numns AND r1.herite.savuegen.nomvg='Locuteur'

AND r2.herite.savuegen.nomvg='Thème' AND r3.herite.savuegen.nomvg='Locuteur' AND r4.herite.savuegen.nomvg='Thème';

La gestion de chevauchement s‘applique sur les résultats de cette requête. Dans la Figure IV.17, nous présentons un extrait des résultats de la requête avant et après la gestion de chevauchement. Nous montrons également le calcul de ce chevauchement pour la première ligne de la table résultat. Nous remarquons ainsi que le fragment parole qui répond à la requête se trouve exactement dans le segment audio qui débute à 89 secondes et finit à la 120 secondes (au lieu de 67_134).

Figure IV.17. Calcul du chevauchement dans le cas d’une recherche de fragments de documents.

Doc Parole NomT NomL

Débat05/09.xml 67_134 économie Julien Courbet Débat05/09.xml 220_251 économie Julien Courbet Débat07/09.xml 347_457 économie Julien Courbet Débat07/09.xml 18_121 économie Julien Courbet Débat07/09.xml 254_332 économie Julien Courbet

Contenu du nœud père 67_120 89_134 Contenudu nœud 67_134 économie Julien Courbet

89-120

Extrait de la table résultat avant le calcul de chevauchement

Résultat du calcul de chevauchement

Doc Parole Débat05/09.xml 89_120 Débat05/09.xml 225_240 Débat07/09.xml 376_432 Débat07/09.xml 85_115 Débat07/09.xml 294_312

Extrait de la table résultat après la gestion de chevauchement