2.2 Documents semi-structur´es
2.2.2 La notion de structure
Comme nous l’avons vu dans le paragraphe pr´ec´edent, la structure des do- cuments est d´efinie par des balises encadrant les portions d’informations. Nous pr´esentons ici les notions de bases li´ees `a la structure, s’appliquant aussi bien `a des documents SGML que des documents XML.
Une balise (ou tag ou label ) est une suite de carat`eres encadr´es par ”<” et ”>”, comme par exemple <nombalise>. Un ´el´ement est une unit´e s´emantique identifi´ee, d´elimit´ee par des balises de d´ebut < b > et de fin < /b > [44], comme par exemple <mabalise> mon texte </mabalise>. Les ´el´ements peuvent ˆetre imbriqu´es :
<producteur>
<nom> Laurent Pinel </nom> <adresse>
<rue>Bd Jean Brunhes</rue> <ville>Toulouse</ville> </adresse>
</producteur>
Les attributs des balises sont sp´ecifi´es au d´ebut de l’´el´ement et apr`es le nom de la balise, en utilisant la syntaxe nomattribut=valeur. Par exemple,
<mabalise monattribut=mavaleur>texte </mabalise>.
La DTD (Document Type Definition) associ´ee au document contient l’en- semble des balises qu’il est possible d’inclure, ainsi que des relations de com- position entre ces balises.
Contrairement `a SGML, il n’est pas obligatoire d’associer une DTD `a un do- cument XML. Les documents XML doivent cependant ˆetre bien form´es, c’est `a dire qu’ils doivent respecter un certain nombre de r`egles lexicales et syn- taxiques concernant l’encodage, le pairage des balises de d´ebut et de fin, la
d´eclaration des attributs, les commentaires, etc. On trouvera un exemple de document XML bien form´e dans le tableau 2.1. Lorsque la grammaire d’un document est d´efinie dans une DTD et que le document respecte cette DTD, on parle de document valide. Le tableau 2.2 pr´esente une DTD correspondant au document de type article pr´esent´e dans le tableau 2.1. Notons enfin que l’on assiste aujourd’hui au d´eveloppement d’une nouvelle forme de grammaire, qui permet de d´efinir des ´el´ements plus complexes et poss`ede un typage des donn´ees plus riche, les XML-sch´emas [64].
<?xml version=”1.0” ?>
< !−−Exemple de fichier XML d´ecrivant un article scientifique −−> <article annee=”2003”>
<en-tete>
<titre>Recherche d’information sur le web : la grande r´evolution</titre> <auteur>Andr´e Dupont</auteur>
</en-tete> <corps>
<section>
<sous-titre>Histoire de l’hypertexte : des p`eres fondateurs au World Wide Web</sous-titre>
<par>Afin de maˆıtriser les enjeux des syst`emes hypertexte,
il convient, mˆeme si c’est une tˆache ardue, de d’essayer de les d´efinir... </par>
</section> <section>
<sous-titre>Moteurs de recherche</sous-titre>
<par>On distingue plusieurs types de moteurs de recherche...</par> <par>Les annuaires...</par>
<par>Les moteurs de recherche plein-texte...</par> <par>Les meta moteurs...</par>
</section> <section>
<sous-titre>L’analyse des liens</sous-titre> <par>...</par>
</section> </corps>
</article>
Tab. 2.1 – Exemple de fichier XML article.xml
Une classe de document poss`ede donc une structure g´en´erique d´efinie par la DTD (ou le sch´ema XML) alors qu’un document instance de cette classe poss`ede une structure sp´ecifique. Des documents peuvent aussi poss´eder des structures logiques similaires (repr´esentations hi´erarchiques et s´emantiques si- milaires) tout en ne suivant pas la mˆeme DTD. Par exemple, les deux docu-
<?xml version=”1.0” ?>
< !−−DTD pour l’exemple d’article −−> <!ELEMENT article (en-tete, corps)> <!ATTLIST article
annee CDATA #REQUIRED >
<!ELEMENT en-tete (auteur+, titre)> <!ELEMENT auteur (#PCDATA)> <!ELEMENT titre (#PCDATA)> <!ELEMENT corps (section+)> <!ELEMENT section (sous-titre, par)> <!ELEMENT sous-titre (#PCDATA)>
<!ELEMENT par (#PCDATA)>
Tab. 2.2 – Exemple de DTD correspondant `a article.xml
ments du tableau2.3ont des structures logiques similaires. Ces documents nous permettent aussi de constater que les balises d’un document ne sont malheu- reusement pas forc´ement porteuses de s´emantique.
<RESTAURANT ID=”1”> <NOM> Le RU 1 </> <GUIDES>
<PREMIER> Michelin <NOTE> ****</NOTE> <REF>2005, page 52</REF> </PREMIER>
<SECOND> Le Guide du Routard <NOTE>A</NOTE>
<REF>2002, page 126</REF> </SECOND> </RESTAURANT> <RESTAURANT ID=”2”> <NOM> Le RU 2 </> <GUIDES> <G id=”1”> Michelin <N> **</N> <M>2005, page 53</M> </G>
<G id=”2”> Le Guide du Routard <N>B</N>
<M>2002, page 127</M> </G>
</RESTAURANT>
Tab. 2.3 – Exemple de documents XML poss´edant des structures logiques similaires
Les formats SGML et XML permettent de produire des documents struc- tur´es ou semi-structur´es.
Les documents structur´es poss`edent une structure r´eguli`ere, ne contiennent pas d’´el´ements mixtes (c’est `a dire d’´el´ements contenant du texte ET d’autres ´el´ements) et l’ordre des diff´erents ´el´ements qu’ils contiennent est g´en´eralement non significatif.
Les documents semi-structur´es quant `a eux sont des documents qui poss`edent une structure flexible et des contenus h´et´erog`enes. La modification, l’ajout ou
la suppression d’une donn´ee entraˆıne une modification de la structure de l’en- semble. Abiteboul, dans [1], donne la d´efinition suivante :
Par semi-structur´e, nous signifions que mˆeme si les donn´ees poss`edent une structure, celle-ci n’est pas aussi rigide, aussi r´eguli`ere ou compl`ete que la structure requise par les syst`emes de gestion de bases de donn´ees traditionnels.
On trouve une autre d´efinition dans [139] :
Nous appelons [...] donn´ee semi-structur´ee la donn´ee qui n’est (d’un certain point de vue) ni une donn´ee brute ni une donn´ee strictement typ´ee .
Dans notre contexte, nous nous int´eressons plus particuli`erement `a la recherche d’information dans des documents semi-structur´es, les documents structur´es servant plutˆot `a conserver des donn´ees au sens bases de donn´ees. Par abus de langage, on parlera cependant de RI structur´ee. Le format XML nous permettra d’illustrer nos propos.