Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

SDX Création de Base SDX

De AJLSM
Aller à la navigation Aller à la recherche

Introduction

Ce document à pour but d'expliquer de façons pratique (à travers des exemples) la création et l'exploitation de bases SDX documentaires dans Pleade.

À l'issue de ce document, l'utilisateur devra être capable de créer une nouvelle base documentaire dans Pleade, d'indexer des documents ; et d'établir sur cette nouvelle base les différents service qu'offre Pleade pour la base EAD (recherche, subset, navindex, suggest, etc.).

La création des bases dans Pleade est native ; elle se fait suivant un ensemble d'étapes bien déterminées. Ces dernières peuvent à leur tour être subdivisées en plusieurs autres étapes (exemple l'étape de publication d'un document dans la base EAD est subdivisé en quatorze sous étapes).

Ce document n'a pas pour but d'expliquer la création d'un système d'indexation aussi complexe que l'EAD dans Pleade, mais, il explique la gestion de l'indexation d'un forme de document simple (profondeur 1).

Pré-requis

Dans la suite de ce document nous allons supposé vouloir indexer une base KML dont un exemple de document à la structure suivante :

<?xml version="1.0" encoding="UTF-8"?>
<NOTICE>
<GFIELD>Registre matricule</GFIELD>
<COLLECTION>Registre matricule</COLLECTION>
<SUBDIVISION>bureau de Langres</SUBDIVISION>
<REF>00001</REF>
<PATRONYME>Terrasse</PATRONYME>
<PRENOMS>François Hippolyte</PRENOMS>
<SURNOM>non renseigné</SURNOM>
<SUPPLEANT>non renseigné</SUPPLEANT>
<ANNEE_NAISSANCE>1849</ANNEE_NAISSANCE>
<COMMUNE_NAISSANCE>Bugnières</COMMUNE_NAISSANCE>
<COMMUNE_DOMICILE>Bugnières</COMMUNE_DOMICILE>
<INTITULE_DOCUMENT>Registre matricule, bureau de Langres</INTITULE_DOCUMENT>
<COTE>R 741/01</COTE>
<IDENTIFIANT_PREMIERE_IMAGE>FRAD052_R0757_01_001.jpg</IDENTIFIANT_PREMIERE_IMAGE>
</NOTICE>

Déclaration de la nouvelle base dans Pleade

Cette première phase consiste à indiquer à Pleade le nom de la nouvelle base ainsi que les configurations nécessaires pour l'indexation (identifiant de la base, champs à index, structure des index, etc.). C'est dans cette étapes aussi qu'on défini les entrepôts OAI pour cette base.

Déclaration de la base

La première chose à faire est de déclarer la base dans le fichier <app>/module-eadeac/conf/application.xconf. Ci-dessous, un exemple de déclaration dans un Pleade fraichement installé :

<!--+ | Configuration de l'application SDX Pleade
 +--><application    xmlns="http://www.culture.gouv.fr/ns/sdx/sdx"  indexation-logging-level="1"  id=""  xml:lang="fr"  sessionObjectLimit="20">
    <!-- Catalog  file  for  EAD  -->
    <catalogs>
        <catalog  src="dtd/catalog"/>
    </catalogs>
    <admin  groupId="admins"  userId="admin"  userPassword="Pleade3"  />
    <!-- Inclure  la  liste  des  champs  Lucene  -->
    <fieldLists>
        <xi:include  href="cocoon:/conf/ead-fieldlist.xconf" '' xmlns:xi="http://www.w3.org/2001/XInclude"  />
        <xi:include  href="cocoon:/conf/eac-fieldlist.xconf"  xmlns:xi="http://www.w3.org/2001/XInclude"  />
    </fieldLists>
    <!--  Les  bases  de  documents  -->
    <documentBases>
        <xi:include  href="cocoon:/conf/ead-documentbase.xconf"  xmlns:xi="http://www.w3.org/2001/XInclude"  />
        <xi:include  href="cocoon:/conf/eac-documentbase.xconf"  xmlns:xi="http://www.w3.org/2001/XInclude"  />
        <!-- déclaration  base  kml-->
        <xi:include  href="cocoon:/conf/kml-documentbase.xconf"  xmlns:xi="http://www.w3.org/2001/XInclude"  />
    </documentBases>
</application>

L'attribut href indique le chemin vers le fichier qui décrit réellement la base (identifiant et compagnie), les index de recherche ainsi que les base OAI.

La prochaine étape consiste donc à décrire le fichier <app>/module-eadeac/conf/kml-documentbase.xconf.

Voici ci dessous un exemple de configuration :

<documentBase id="kml" type="lucene" keepOriginalDocuments="false">

<!--L'entrepôt pour les documents-->

<repositories>

<repository type="FS" id="kml-docs" baseDirectory="docs/kml" depth="2" extent="50" default="true" />

</repositories>

<!-- Déclaration de la liste des champs Lucene (d'indéxation) -->

<fieldList id="kml-fieldlist" analyzerConf="analysis/fr.xml" xml:lang="fr">

<field name="REF" type="field" />

<field name="PATRONYME" type="field" brief="true"/>

<field name="PRENOMS" type="field" brief="true"/>

<field name="SURNOM" type="field" />

<field name="ANNEE_NAISSANCE" type="field" brief="true"/>

<field name="COMMUNE_NAISSANCE" type="unindexed" brief="true"/>

<field name="COMMUNE_DOMICILE" type="unindexed" brief="true"/>

<field name="COLLECTION" type="field" />

<field name="SUBDIVISION" type="field" />

<field name="COTE" type="field" />

<!-- Champs Pleade -->

<field name="searchable" type="field"/>

<field name="fulltext" type="word"/>

<field name="base" type="unindexed" brief="true" />

</fieldList>

<!-- Les étapes de transformation des documents au moment de la publication. -->

<index>

<pipeline id="index-bdkml">

<!-- Remplissage des champs -->

<transformation id="fields" type="SAXONXSLT"

src="../xsl/publication/kml/kml-fields.xsl"/>

</pipeline>

</index>

<!-- Entrepôt OAI&nbsp;: NB : les champs vides seront remplies par le parametres.xconf -->

<oai-repository name="" ''baseURL="" ''adminEmail="" ''noPerResponse="" ''id="kml-oai"

default="true">

<!-- Le subset sera rempli en fonction du paramètre records -->

<oai-subset>

</oai-subset>

<!-- Format OAI-DC --> <oai-format

name="OAI Dublin core"

metadataPrefix="oai_dc"

namespace="http://www.openarchives.org/OAI/2.0/oai_dc/"

schemaUrl="http://www.openarchives.org/OAI/2.0/oai_dc.xsd">

<pipeline id="to-oaidc">

<transformation id="oai-dc" type="XSLT" src="oai-repository/ead/qdc/oai-dc.xsl" />

</pipeline>

</oai-format>

</oai-repository>

<tt></documentBase></tt>


Externalisation de la liste des champs

Pour plus de clarté, les champs d'indéxations peuvent être déclarer dans un fichier kml-fieldlist-base.xconf. Dans ce cas, il faudra adapter le contenu du fichier application.xconf :

Exemple :

   <fieldLists>
       <xi:include href="cocoon:/conf/ead-fieldlist.xconf" xmlns:xi="http://www.w3.org/2001/XInclude" />
       <xi:include href="cocoon:/conf/eac-fieldlist.xconf" xmlns:xi="http://www.w3.org/2001/XInclude" />
       <xi:include href="cocoon:/conf/kml-fieldlist.xconf" xmlns:xi="http://www.w3.org/2001/XInclude" />

</fieldLists>

La fichier kml-fieldlist-base.xconf est ensuite renseigné à l'image du fichier ead-fieldlistlist-base.xconf


Plusieurs points sont à noter concernant le document kml-documentbase.xconf :

Il apparait clairement ici qu'un travail de fond est nécessaire pour pouvoir définir les diférent champs relatifs à ce document. Pour la création et la configuration des champs se référer à la documentation de Pleade correspondante.

Chaque document à indéxer doit posséder une référence unique qui va lui servir d'identifiant dans la base. Cette référence peut être soit fournie par le document (dans notre cas le champs REF ou le champs eadid dans le cas d'un document EAD) ; soit générer automatiquement durant l'indéxation (voire suite du document).

Les mécanismes de gestion avancés des champs et index pour l'EAD (champs aggrégées, champs multuvaliés, ....). ne sont pas disponibles par défaut. Il faut les implémenter indépendant dans la section suivante, nous détaillerons un exemple d'implémentations de champs agrégées pour la base kml.

Dans le fichier kml-documentbase.xconf, la section documentBase/index/pipeline indique les fichiers qui permette de modifier succéssivement (mécanisme map:transform de cocoon) le document final à indéxer par le SDX. Dans le plus simple des cas, nous avons uniquement besoin d'un transformateur (kml-fields.xsl) qui va s'occuper de remplir les différents champs déclarés.

Dans cette configuration, toute les données d'indéxation sont stockées en base de donnée type syst'éme de fichier. Dans la section paramétrage avancé, nous allons présenté une configuration supplémentaires pour stocker les données d'indéxation dans un SGBD relationnel.

Mise en place de l'indéxation

Dans cette section, nous allons présenté les différents mécanisme à mettre en place pour pouvoir indéxer un document de type kml. Ces mécanismes consistes essentiellement à la mise en place de pipelines. Ces derniers seront à placer dans le fichier local.xmap.

Remarque:Plus plus de clarter, les fichiers sources (.xsl, .xsp, etc.) des pipelines de cette section seront présentés dans la section Annexe.

Les mécanismes d'authentifications seront présentés dans la section paramétrage avancés


Formulaire de publication

Mise en place d'un formulaire de publication simple dans Pleade <map:match pattern="edit/kml\-publish\-form\.(xsp|debug)" id="main-kml-edit-publish-form" type="regexp">

 <map:aggregate element="aggregate">
   <map:part       src="module-eadeac/xsp/kml-publish-form.xhtml"
      element="template"  />
   <map:part       src="cocoon://edit/functions/edit-publish/kml-documents.xml"  />
   <map:part       src="cocoon:/edit/functions/edit-publish/get-properties-publication.xml"  />
   <map:part       src="cocoon:/edit/functions/edit-publish/get-properties-display.xml"  />
   <map:part       src="cocoon:/edit/functions/list-search-forms.xml"  element="search-forms"  />
   <map:part       src="cocoon:/edit/functions/edit-publish/frag-method.xml"  />
   <map:part       src="cocoon:/edit/functions/edit-publish/toc-method.xml"  />
   <map:part       src="cocoon:/edit/functions/edit-publish/notsearchable-method.xml"  />
   <map:part       src="cocoon:/edit/functions/edit-publish/title-method.xml"  />
   <map:part       src="cocoon:/edit/functions/edit-publish/index-global.xml"  />
   <map:part       src="cocoon:/edit/functions/edit-publish/inheritance.xml"  />
   <map:part       src="cocoon:/edit/functions/edit-publish/index-local.xml"  />
   <map:part       src="cocoon://functions/get-subset-hierarchy.xml"  element="subsets"  />
 </map:aggregate>  <map:select type="simple">
   <map:parameter name="value"  value="{1}"  />
   <map:when test="xsp">
     <map:transform type="xslt2"
        src="module-eadeac/xsl/kml-publish-form.xsl">
     <map:parameter name="locale"  value="{request-attr:locale}"/>
     <map:parameter name="theme"
        value="{baselink:sitemapBaseLink}../"/>
     <map:parameter name="tmpdir"
        value="{contextpath:${Pleade.csv-tmp-dir}}"/>
     </map:transform>      <map:act type="locale">
       <map:transform type="i18n">
       <map:parameter name="locale"  value="{locale}"/>
       <map:parameter name="default-catalogue-id"  value="module-eadeac-edit"/>
       </map:transform>      </map:act>      <map:serialize type="xhtml"  />
   </map:when>    <map:otherwise>      <map:serialize type="xml"  />
   </map:otherwise>  </map:select></map:match>

Dans paramétrage avancé mettre.

Base de donnée sdx-csv-repositry

Authentification dans les pipelines d'indéxation