<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2000-2010  Ministere de la culture et de la communication (France), AJLSM
See LICENCE file
-->
<!DOCTYPE webpage PUBLIC "-//Norman Walsh//DTD Website V2.1b1//EN" "../../../dtd/website.dtd" [
  <!ENTITY actions_localisation SYSTEM "actions_localisation.xml" NDATA XML>
  <!ENTITY actions_requetes SYSTEM "actions_requetes.xml" NDATA XML>
	<!ENTITY actions_amender SYSTEM "actions_amender.xml" NDATA XML>
]>

<webpage id="actions_thesaurus">

  <head>
  <title lang="fr"><emphasis role="italic">Thesaurus</emphasis></title>
  <titleabbrev lang="fr"><emphasis role="italic">Thesaurus</emphasis></titleabbrev>
  <author lang="fr"><firstname>Malo</firstname><surname>Pichot</surname><affiliation><orgname>AJLSM</orgname></affiliation></author><revhistory>
    <revision lang="fr">
    <revnumber>1.0</revnumber><date>2003-07-09</date>
    </revision>
  </revhistory>
  </head>

  <itemizedlist>
  <title>Liste des actions décrites dans cette page : </title>
  <listitem>
    <para><ulink url="#sdx_thesaurus"><sgmltag class="element">sdx:thesaurus</sgmltag></ulink>.</para>
  </listitem>
  </itemizedlist>
  <section id="concepts" lang="fr">
  <title>Concepts clés</title>
  <para>SDX-2 introduit l'utilisation de <emphasis role="italic">thesauri</emphasis> dans ses applications. Cela renforce le cadre de recherche offert par SDX, un <emphasis role="italic">thesaurus</emphasis> permettant d'étendre une requête à des termes équivalents, proches, spécifiques, etc.</para>
  <para>L'emploi d'un <emphasis role="italic">thesaurus</emphasis> dans une application SDX-2 est relativement simple. Un <emphasis role="italic">thesaurus</emphasis> se présente physiquement sous la forme d'un fichier XML (voir le fichier <filename>dico.xml</filename> fourni avec l'application SDXTest). Pour SDX, un <emphasis role="italic">thesaurus</emphasis> est une base de documents à part entière. Elle est déclarée dans le fichier <filename>application.xconf</filename> comme une autre base. Son fichier XML sera indexé ; il devient donc cherchable. Autrement dit, l'utilisation d'un <emphasis role="italic">thesaurus</emphasis> dans une requête revient à effectuer une recherche dans (au moins) deux bases de documents.</para>
  <para>On pourra se reporter au fichier
    <ulink url="../../../../samples/application.xconf"><filename>application.xconf</filename></ulink> de démonstration fourni avec cette documentation pour connaître la syntaxe de déclaration d'un <emphasis role="italic">thesaurus</emphasis>.</para>
	<para>
		On se reportera à la documentation de l'élément <olink
		localinfo="sdx_expandquery" targetdocent="actions_amender"><sgmltag
		class="element">sdx:expandQuery</sgmltag></olink> qui permet d'utiliser un
		<emphasis role="italic">thesaurus</emphasis> pour étendre une recherche.
	</para>
  </section>
  <section lang="fr" id="sdx_thesaurus">
  <title><sgmltag class="element">sdx:thesaurus</sgmltag></title>
  <informaltable lang="fr">
    <tgroup cols="2"><colspec colnum="1" colname="col1" colwidth="1.00*"/><colspec colnum="2" colname="col2" colwidth="3.30*"/><tbody>
      <row><entry colname="col1">Code implémentant cette action</entry><entry colname="col2"><filename>sdx-parameters.xsl</filename></entry>
      </row>
      <row><entry colname="col1">Contexte d'utilisation</entry><entry colname="col2"><sgmltag class="element">sdx:thesaurus</sgmltag> ou ses attributs spécifiques peuvent être employés avec
        <olink localinfo="sdx_expandquery" targetdocent="actions_amender"><sgmltag class="element">sdx:expandQuery</sgmltag></olink>. Ce dernier étant utilisable avec l'ensemble des actions de recherche ; cela signifie que l'on peut employer un <emphasis role="italic">thesaurus</emphasis> avec l'ensemble des
        <olink targetdocent="actions_requetes"><sgmltag class="element">sdx:*Query</sgmltag></olink>.</entry>
      </row>
      <row><entry colname="col1">Contenu éventuel</entry><entry colname="col2"><olink localinfo="sdx_app" targetdocent="actions_localisation"><sgmltag class="element">sdx:app</sgmltag></olink></entry>
      </row></tbody>
    </tgroup>
  </informaltable><table lang="fr" id="sdx_thesaurus_param">
  <title>Paramètres spécifiques</title>
  <tgroup cols="3"><colspec colnum="1" colname="col1" colwidth="1.13*"/><colspec colnum="2" colname="col2" colwidth="4.26*"/><colspec colname="col3" colnum="3" colwidth="1.00*"/><thead>
    <row><entry colname="col1">Nom</entry><entry colname="col2">Description</entry><entry colname="col3"></entry>
    </row></thead><tbody>
    <row><entry colname="col1"><sgmltag class="attribute">th</sgmltag></entry><entry colname="col2">Identifiant du <emphasis role="italic">thesaurus</emphasis>.</entry><entry colname="col3">Obligatoire</entry>
    </row>
    <row><entry colname="col1"><sgmltag class="attribute">depth</sgmltag></entry><entry colname="col2">Indique la profondeur de recherche autorisée au sein du <emphasis role="italic">thesaurus</emphasis>. Par défaut, SDX utilise les valeurs déclarées dans le fichier <filename>application.xconf</filename></entry><entry colname="col3">Facultatif</entry>
    </row>
    <row><entry colname="col1"><sgmltag class="attribute">relation</sgmltag></entry><entry colname="col2">Précise le type de relation autorisé. Par défaut, SDX utilise les valeurs déclarées dans le fichier <filename>application.xconf</filename></entry><entry colname="col3">Facultatif</entry>
    </row>
    <row><entry colname="col1"><sgmltag class="attribute">lang</sgmltag></entry><entry colname="col2">Indique la langue du terme recherché. Par défaut, il s'agit de la langue courante. (FIXME)</entry><entry colname="col3">Facultatif</entry>
    </row>
    </tbody>
  </tgroup></table><table id="sdx_thesaurus_param_comm">
  <title>Paramètres communs</title>
  <tgroup cols="4"><colspec colnum="1" colname="col1" colwidth="*"/><colspec colnum="2" colname="col2" colwidth="*"/><colspec colnum="3" colname="col3" colwidth="*"/><colspec colnum="4" colname="col4" colwidth="*"/><thead>
    <row><entry colname="col1">Nom</entry><entry colname="col2">Description</entry><entry colname="col3">Elément correspondant</entry><entry colname="col4"></entry>
    </row></thead><tbody>
    <row><entry colname="col1"><sgmltag class="attribute">app</sgmltag></entry><entry colname="col2">Identifiant de l'application. Par défaut, il s'agit de l'application courante.</entry><entry colname="col3"><olink localinfo="sdx_locations"><sgmltag class="element">sdx:locations</sgmltag></olink></entry><entry colname="col4">Facultatif</entry>
    </row>
    <row><entry colname="col1"><sgmltag class="attribute">appByPath</sgmltag></entry><entry colname="col2">Indique la partie de l'URL qui suit "<literal>sdx/</literal>" dans une installation standard, par exemple "<literal>sdxtest</literal>".</entry><entry colname="col3"><olink localinfo="sdx_locations"><sgmltag class="element">sdx:locations</sgmltag></olink></entry><entry colname="col4">Facultatif</entry>
    </row>
    <row><entry colname="col1"><sgmltag class="attribute">base</sgmltag></entry><entry colname="col2">Identifiant de la base de documents. Par défaut, il s'agit de la base courante.</entry><entry colname="col3"><olink localinfo="sdx_locations"><sgmltag class="element">sdx:locations</sgmltag></olink></entry><entry colname="col4">Facultatif</entry>
    </row></tbody>
  </tgroup></table>
  <para>On trouvera un exemple de l'utilisation d'un <emphasis role="italic">thesaurus</emphasis> dans une requête avec la description de l'action
    <olink localinfo="exemple_sdx_expandquery_01" targetdocent="actions_requetes"><sgmltag class="element">sdx:expandQuery</sgmltag></olink>.</para>
  <example id="exemple_sdx_thesaruus_01">
    <title>Déclaration d'un <emphasis role="italic">thesaurus</emphasis></title>
    <para>Le code suivant est extrait du fichier <filename>application.xconf</filename> de l'application SDXTest. Il présente un exemple de déclaration de <emphasis role="italic">thesaurus</emphasis>. On voit bien ici que les relations entre les termes sont définis dans ce document. Cela signifie que l'on peut en ajouter (il n'y a pas de relation d'opposition dans l'exemple ci-dessous) ou en retirer.</para>
    <programlisting>
&lt;sdx:thesauri&gt;
 &lt;sdx:thesaurus id="dico" type="lucene" src="dico.xml"&gt;

 &lt;!--Les valeurs par défaut--&gt;
  &lt;sdx:depth&gt;0&lt;/sdx:depth&gt;
  &lt;sdx:relations&gt;
   &lt;sdx:relation&gt;et&lt;/sdx:relation&gt;
  &lt;/sdx:relations&gt;

 &lt;!--Déclaration des champs pour l'indexation du thesaurus "dico.xml"--&gt;
 &lt;sdx:fieldList xml:lang="fr-FR" variant=""
   analyzerConf="/sdx/resources/conf/analysis/fr.xml"&gt;

   &lt;!--Le champ de recherche par défaut
       (i.e. le champ dans lequel SDX effectue la recherche
       lorsqu'aucun n'est précisé
   --&gt;
   &lt;sdx:field name="term" type="word" brief="true" default="true"&gt;
    &lt;sdx:name xml:lang="fr-FR"&gt;Term&lt;/sdx:name&gt;
   &lt;/sdx:field&gt;
   &lt;sdx:field name="fterm" type="field" brief="true"&gt;
    &lt;sdx:name xml:lang="fr-FR"&gt;Term TYPE Field&lt;/sdx:name&gt;
   &lt;/sdx:field&gt;
   &lt;sdx:field name="bts" type="field" brief="true"&gt;
    &lt;sdx:name xml:lang="fr-FR"&gt;Broader TermS&lt;/sdx:name&gt;
   &lt;/sdx:field&gt;
   &lt;sdx:field name="bt" type="field" brief="true"&gt;
    &lt;sdx:name xml:lang="fr-FR"&gt;Broader Term&lt;/sdx:name&gt;
   &lt;/sdx:field&gt;
   &lt;sdx:field name="nt" type="field" brief="true"&gt;
    &lt;sdx:name xml:lang="fr-FR"&gt;Narrower Term&lt;/sdx:name&gt;
   &lt;/sdx:field&gt;
   &lt;sdx:field name="et" type="field" brief="true"&gt;
    &lt;sdx:name xml:lang="fr-FR"&gt;Equivalent Term&lt;/sdx:name&gt;
   &lt;/sdx:field&gt;
   &lt;sdx:field name="pe" type="field" brief="true"&gt;
    &lt;sdx:name xml:lang="fr-FR"&gt;Partial Equivalence&lt;/sdx:name&gt;
   &lt;/sdx:field&gt;
   &lt;sdx:field name="use" type="field" brief="true"&gt;
    &lt;sdx:name xml:lang="fr-FR"&gt;Use&lt;/sdx:name&gt;
   &lt;/sdx:field&gt;
   &lt;sdx:field name="uf" type="word" brief="true"&gt;
    &lt;sdx:name xml:lang="fr-FR"&gt;Used For&lt;/sdx:name&gt;
   &lt;/sdx:field&gt;
   &lt;sdx:field name="fuf" type="field" brief="true"&gt;
    &lt;sdx:name xml:lang="fr-FR"&gt;Used For TYPE Field&lt;/sdx:name&gt;
   &lt;/sdx:field&gt;
   &lt;sdx:field name="sn" type="word" brief="true"&gt;
    &lt;sdx:name xml:lang="fr-FR"&gt;Scope note&lt;/sdx:name&gt;
   &lt;/sdx:field&gt;
  &lt;/sdx:fieldList&gt;

 &lt;/sdx:thesaurus&gt;
&lt;/sdx:thesauri&gt;
</programlisting>
  </example>
  <example id="exemple_sdx_thesaurus_02">
    <title><emphasis role="italic">Thesaurus</emphasis> d'équivalence français/anglais</title>
    <para>Le code suivant est extrait du <emphasis role="italic">thesaurus</emphasis> utilisé dans l'application de démonstration SDXTest <filename>dico.xml</filename>. Il présente la similarité entre le mot français "actualités" et son pendant "news" dans la langue anglaise. Chaque terme est traduit par un <sgmltag class="element">concept</sgmltag> acceptant la description de relations portant un type et la référence au concept cible. On notera qu'il n'y a qu'une relation pour chacun des termes décrit ici. On aurait pu donner, par exemple, les termes proches mais pas équivalent.</para>
    <programlisting>
&lt;thesaurus xmlns="http://sdx.culture.fr/thesaurus/1.0" id="dico"&gt;
 &lt;concept id="f16" xml:lang="fr"&gt;
  &lt;term&gt;actualites&lt;/term&gt;
  &lt;relations&gt;
   &lt;relation type="ET" ref="e16"/&gt;
  &lt;/relations&gt;
 &lt;/concept&gt;
 &lt;concept id="e16" xml:lang="en"&gt;
  &lt;term&gt;news&lt;/term&gt;
  &lt;relations&gt;
   &lt;relation type="ET" ref="f16"/&gt;
  &lt;/relations&gt;
 &lt;/concept&gt;
 ...
&lt;/thesaurus&gt;
</programlisting>
  </example>
  </section>

</webpage>
