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.