• Aucun résultat trouvé

gages de requˆetes

L’interrogation des corpus de documents XML peut se faire selon deux types de requˆetes :

– requˆetes portant sur le contenu seul des unit´es d’information :

terminologie d’INEX5. Elles sont compos´ees de simple mots-cl´es, et im- posent au SRI de d´ecider la granularit´e de l’information `a retourner. Ces requˆetes sont utilis´ees lorsque les utilisateurs n’ont pas d’id´ee pr´ecise de ce qu’ils recherchent ou n’ont pas de connaissance concernant la structure des documents.

– requˆetes portant sur la structure et le contenu des unit´es d’in-

formation : ces requˆetes sont aussi appel´ees requˆetes CO+S (Content

Only and Structure) dans la terminologie d’INEX. Dans ce type de requˆete,

l’utilisateur peut sp´ecifier des conditions de structure pour pr´eciser son besoin, et peut indiquer quel est le type des ´el´ements qu’il d´esire voir ren- voyer. Ce type de requˆete n´ecessite au moins une connaissance partielle de la structure de la collection `a interroger.

Dans ce qui suit, nous pr´esentons les diff´erents langages de requˆetes adapt´es `a XML.

2.6.1

Historique des langages de requˆetes

La majorit´e des langages de requˆetes propos´es dans la litt´erature sont is- sus de la communaut´e des bases de donn´ees. Le langage le plus ancien et le plus utilis´e pour interroger un ensemble de donn´ees est SQL (Structured

Query Langage). Ce dernier est d´edi´e `a l’interrogation de bases de donn´ees et

non de documents structur´es. Avant l’apparition d’XML, lorsque le formalisme SGML ´etait utilis´e, de nombreux langages ont r´epondu plus particuli`erement aux probl´ematiques de la RI structur´ee tout en rassemblant `a SQL par le for-

mat et les fonctionnalit´es. Parmi eux on peut citer UnQL [53] et Lorel [17].

L’arriv´e en 1997 du langage XML, tr`es vite pressenti comme un standard im- portant pour le stockage et l’´echange de donn´ees, engendre un essor des re- cherches sur le sujet. Celles-ci sont `a l’origine de nombreux nouveaux langages

de requˆetes notamment XML-QL [162], XQL [129], Yalt [69] et Quilt [60].

En 2001, le W3C propose XQuery [40], qui tire tr`es fortement ses constructions

et ses caract´eristiques de Quilt, lui mˆeme d´eriv´e de XPath, XQL, XML-QL, Lo- rel et Yatl.

XQuery peut ˆetre per¸cu comme un surensemble de SQL. Les fonctionnalit´es de SQL sur les tables (collections de tuples) sont ´etendues pour supporter des op´erations similaires sur les forˆets (collections d’arbres). Ces extensions ont conduit `a int´egrer les fonctions suivantes : projection d’arbres sur des sous- arbres, s´election d’arbres et de sous-arbres en utilisant des pr´edicats sur les valeurs des feuilles, utilisation de variables dans les requˆetes pour m´emoriser un arbre ou pour it´erer sur des collections d’arbres, combinaison des arbres extraits de collection en utilisant des jointures d’arbres, r´eordonnancement des

arbres, imbrication des requˆetes, calculs d’agr´egats, et utilisation possible de fonctions utilisateur. XQuery supporte certaines fonctions orient´ees RI : en particulier, un pr´edicat contains est int´egr´e pour la recherche par mots-cl´es. Il ne permet cependant pas de trier les r´esultats. Pour faciliter la recherche dans des structures mal connues, Xquery permet enfin d’exprimer des chemins ind´etermin´es ou partiellement connus, tout comme Xpath.

La figure 2.5 montre l’´evolution des langages d’interrogation des documents

semi-structur´es. 2001 W3C-XQuery Quilt 2000 XPath 1999 XQL-99 XML-QL Xpointer XSL- Patterns OQL YATL 1998 XQL 1997 1996 UnQL 1995 LOREL 1970 SQL

Figure 2.5 – Evolution des langages d’interrogation XML

Beaucoup de ces langages sont en g´en´eral extrˆemement complexes, ceci est

dˆu au nombre important de fonctionnalit´es disponibles. Par cons´equent, des

aides graphiques `a la construction d’une requˆete ont ´et´e propos´ees [57] [241].

D’autres langages plus simplifi´es, bas´es uniquement sur l’aspect recherche d’in-

formation sont aussi propos´es tels que [55], [238], [270], [271]. Dans ce qui suit,

nous d´etaillons le langage NEXI (Narrowed Extended XPath I ) [270] [271] qui

est propos´ee pour r´epondre aux besoins de la campagne d’´evaluation INEX

2.6.2

Le langage NEXI

Dans la campagne d’´evaluation INEX, d´etaill´ee dans la section 2.8, les

requˆetes ont tout d’abord ´et´e formul´ees en XML (en 2002). Au vu du manque de puissance de cette syntaxe, le langage XPath a ´et´e choisi en 2003. Cepen- dant, la complexit´e d’utilisation de XPath (63% des requˆetes propos´ees par les participants contenaient des erreurs de syntaxe), a abouti `a une nouvelle proposition en 2004 : le langage NEXI. Grˆace `a ce nouveau formalisme, le taux d’erreur a ´et´e diminu´e `a 12%.

NEXI est un sous-ensemble extensible de XPath interpr´etable de mani`ere

vague. C’est un langage orient´e RI et non base de donn´ees. Il est d´efini comme le langage de requˆete le plus simple qui puisse jamais fonctionner. (”the simplest

query language that could possibly work ”) [199].

Ce langage permet de traiter les deux types de requˆetes CO et CO + S. La

figure 2.6 montre quelques exemples de requˆetes NEXI.

//article[about(., healthy diet)] //section[about(.,diet features)]

//*[about(., Bob Dylan)]

//section[about(.,paint works museum picasso)] //figure[about(.,paint works museum picasso)] •Sections à propos de “diet features” contenues dans des articles à propos de “healthy diet”

•N’importe quel élément à propos de “Bob Dylan”. •Des figures à propos de “paint works museum picasso” contenues dans des sections à propos de “paint works

museum picasso”.

Figure 2.6 – Exemples de requˆetes NEXI

Une requˆete NEXI poss`ede deux parties distinctes :

– la cible : l’´el´ement qui doit ˆetre retourn´e `a l’utilisateur, ainsi que les indications concernant son contenu (ce qui est gras dans les requˆetes

exemples de la figure2.6).

– le support : les autres contraintes structurelles et textuelles, permettant de mieux retrouver la cible.

Que ce soit pour la cible ou le support, l’´el´ement peut ˆetre de type ’*’, c’est `a dire de type indiff´erent.

NEXI est amen´e `a ´evoluer au fil des ann´ees pour s’adapter aux diff´erentes tˆaches d’INEX.

2.6.3

Le langage XFIRM

Le langage de requˆetes XFIRM [238] est une extension de XPath `a la re-

cherche textuelle. Ce langage propose `a l’utilisateur de formuler son besoin

selon quatre degr´es de pr´ecision (voir Figure 2.7) :

   !"#$ % &' ( )  *+ %,-.$% ' / 0 11.' + %* - 2 '.,* /11 * + %,-  /  311.' + %* -/11 *4 * + %,-  /1 15.'- 6 .5% + /

Figure 2.7 – Exemple de requˆetes XFIRM

– degr´e de pr´ecision P1 : l’utilisateur formule sa requˆete avec de simples

mots cl´es. Il recherche simplement de l’information ind´ependamment du type de l’unit´e d’information renvoy´ee. Ce type de requˆete constitue une forme de recherche habituelle dans les moteurs de recherche ”tradition-

nels”. La requˆete P 1 de la figure2.7illustre ce type de requˆetes, appel´ees

aussi requˆetes orient´ees contenu.

– degr´e de pr´ecision P2 : l’utilisateur exprime son besoin en donnant le

nom d’un ´el´ement, et ´eventuellement pr´eciser son besoin sur cet ´el´ement en ajoutant des conditions sur son contenu ou la valeur de ses attributs.

La requˆete P 2 de la figure 2.7 illustre ce type de requˆete : l’utilisateur

d´esire des ´el´ements de type section parlant de la ville rose.

– degr´e de pr´ecision P3 : ce type de requˆete permet d’ajouter la no-

tion de hi´erarchie entre les diff´erentes conditions de structures (requˆetes

de type P2), s´epar´ees par le signe ”//”. La requˆete P 3 de la figure 2.7

pr´esente un exemple : l’utilisateur d´esire des ´el´ements de type article par- lant de France ayant pour descendant un ´el´ement de type section parlant de Toulouse. Dans ce type de requˆetes, les nœuds retourn´es `a l’utilisateur sont par d´efaut ceux sp´ecifi´es dans la premi`ere requˆete de type P 2.

– degr´e de pr´ecision P4 : l’utilisateur a une id´ee plus pr´ecise de ce qu’il

recherche, pour cela, il pourra sp´ecifier l’unit´e d’information qu’il d´esire voir retourn´ee appel´ee ´el´ement cible. Cet ´el´ement cible est sp´ecifi´e grˆace au signe ”ec :” pr´ec´edant une requˆete de type P 2. La requˆete P 4 pr´esente un exemple : l’utilisateur souhaite obtenir un ´el´ement de type section par- lant de Toulouse, ayant pour ancˆetre un ´el´ement de type article et pour descendant un ´el´ement de type par parlant de Capitole.

Les requˆetes de type P2, P3 ou P4 sont aussi appel´ees requˆetes orient´ees

contenu et structure.

de l’unit´e d’information qu’il d´esire voir retourn´ee. De plus, ce langage per- met d’exprimer des chemins ind´etermin´es ou partiellement connus et permet de combiner de fa¸con bool´eenne les conditions de structure.