Table des matières

Description du format ScrutariData

De manière générale, s'il n'est pas indiqué qu'une information est sous la forme de l'attribut d'un élément, elle est sous la forme <balise>valeur</balise>. C'est cette dernière forme qui est privilégiée dans le format Scrutari sauf pour les informations de langue du contenu (l'attribut @xml:lang) et pour les informations d'identification.

Dans les cas des attibuts (noms ou identifiants), il est hautement recommandé de se limiter aux minuscules non accentuées, aux chiffres et aux tirets ([a-z][0-9]_-). Ce n'est pas obligatoire mais il vaut mieux éviter d'introduire d'autres caractères que ceux indiqués.

Les valeurs de la forme <balise>valeur</balise> sont toujours du texte brut. Il n'y a pas possibilité d'introduire du HTML. En particulier, on fera attention au fait que les entités de type &nbsp;, &eacute;, etc. sont des entités HTML non reconnues par le XML (les seules entités standards du XML sont &gt;, &lt;, &zmp;, &apos; et &quot;). Pour l'espace insécable, on utilisera plutôt la référence UTF-8 &#x00A0;.

Des exemples d'implémentation du format ScrutariData sont disponibles sur la page Exemples.

Structure globale

Un fichier au format ScrutariData est un fichier xml avec comme racine l'élément <base>. Cet élément doit contenir :

Ce qui donne le format suivant :

<?xml version='1.0' encoding='UTF-8'?>
<base>
   <base-metadata>...</base-metadata>
   <corpus>...</corpus>
   <corpus>...</corpus>
   <corpus>...</corpus>
   ...
   <thesaurus>...</thesaurus>
   <thesaurus>...</thesaurus>
   <thesaurus>...</thesaurus>
   ...
   <indexation-group>...</indexation-group>
   <indexation-group>...</indexation-group>
   <indexation-group>...</indexation-group>
   ...
</base>

L'élément <base-metadata> doit être placé au début, l'ordre des autres éléments est quelconque (l'ordre donné dans l'exemple : <corpus>, <thesaurus> puis <indexation-group> est simplement l'ordre « traditionnel », il peut ne pas être respecté si cela simplifie l'extraction).

Le codage de caractères par défaut du XML est l'UTF-8, il est toujours possible d'indiquer un autre codage via l'attribut @encoding de la déclaration initiale <?xml version='1.0' encoding='…'?>

<base-metadata>

L’élément <base-metadata> comprend différentes informations sur la base que décrit le fichier :

Les éléments <intitule-short> et <intitule-long> ne comprennent pas directement du texte mais des éléments <lib> dotés de l’attribut @xml:lang qui précisent l’intitulé dans une langue donnée. Le nombre d’éléments <lib> est illimité (pas plus d’un par langue, évidemment) et le premier élément <lib> est considéré comme la langue par défaut.

Un élément <langs-ui> contient une série d’éléments <lang> contenant les codes ISO des langues disponibles pour les URL. Celles-ci en effet peuvent contenir la chaîne $LANGUI qui sera remplacées dynamiquement par la langue d’interface demandée.

Les éléments <lib> et la question de la langue d'interface sont détaillés dans la question du multilinguisme.

Exemple

<base-metadata>
   <authority>e17a05b0-c45e-11d8-9669-0800200c9a66</authority>
   <base-name>gouvafrique</base-name>
   <intitule-short>
      <lib xml:lang='fr'>Gouvernance afrique</lib>
      <lib xml:lang='en'>Africa Governance</lib>
      ...
   </intitule-short>
   <intitule-long>
      <lib xml:lang='fr'>Base de l&apos;Alliance pour refonder la gouvernance en Afrique</lib>
      <lib xml:lang='en'>Alliance to lay new foundations for governance in Africa Database</lib>
      ...
   </intitule-long>
   <langs-ui>
      <lang>fr</lang>
      <lang>en</lang>
   </langs-ui>
   <base-icon>http://www.afrique-gouvernance.net/images/icone.png</base-icon>
</base-metadata>

<corpus>

L’élément <corpus> regroupe tous les entêtes des fiches d’un même format (par exemple, toutes les fiches d’expérience, toutes les fiches annuaires). Il doit posséder comme attribut @corpus-name qui donne le nom du corpus qui le distingue des autres corpus de la base. L’élément <corpus> doit obligatoirement contenir comme premier élément un élement <corpus-metadata> et contient ensuite un nombre illimité d’élements <fiche>.

Exemple

<corpus corpus-name="suivi">
   <corpus-metadata>...</corpus-metadata>
   <fiche>...</fiche>
   <fiche>...</fiche>
   <fiche>...</fiche>
   ...
</corpus>

<corpus-metadata>

L’élément <corpus-metadata> comprend :

Comme pour les intitulés de la base, les intitulés sont précisés à l'aide d'éléments <lib> avec l'attribut @lang:xml pour indiquer la langue. Les éléments <complement-metadata> comprennent également des éléments <lib> indiquant l’intitulé du champ complémentaire.

L'ordre des éventuels éléments <complement-metadata> est important car il dictera l'ordre des compléments au sein de l'élément <fiche>.

Exemple

Dans l’exemple suivant, il y a deux champs complémentaires : la liste des participants et à qui la fiche doit être diffusée. On voit également que l'intitulé du corpus est une forme au pluriel et l'intitulé de la fiche est une forme qui permet d'accoler immédiatement après l'intitulé le numéro de la fiche en question.

<corpus-metadata>
   <corpus-type>EXP</corpus-type>
   <intitule-corpus>
      <lib xml:lang=’fr’>Fiches de suivi</lib>
      ...
   </intitule-corpus>
   <intitule-fiche>
      <lib xml:lang=’fr’>Fiche de suivi n°</lib>
      ...
   </intitule-fiche>
   <href-parent>...</href-parent>
   <corpus-icon>...</corpus-icon>
   <complement-metadata>
      <lib xml:lang="fr">Participants</lib>
      ...
   </complement-metadata>
   <complement-metadata>
      <lib xml:lang="fr">Diffusion</lib>
      ...
   </complement-metadata>
   ...
</corpus-metadata>

<fiche>

L’élément <fiche> constitue le matériau de base du format ScrutariData puisque c’est lui qui comprend les principales informations permettant d’accéder à une fiche. L’élément <fiche> ne reprend pas le texte intégral de la fiche initiale mais seulement les méta-données.

L’élément <fiche> possède l’attribut obligatoire @fiche-id dont la valeur est l'identifiant qui la distingue des autres fiches du corpus : sa valeur doit être unique au sein de ce corpus mais deux fiches de corpus différents peuvent avoir la même valeur de @fiche-id. L'identifiant n'est pas forcément un nombre même si c'est le cas le plus courant.

L’élément <fiche> comprend :

Exemple

Dans cet exemple, les auteurs sont gérés par un attribut et le premier champ complémentaire correspond à l'organisme auteur de la fiche.

<fiche fiche-id="5">
   <titre>Instructions de traduction de l’interface d’OutilCarto</titre>
   <soustitre>Tout est (presque) prêt pour traduire l’outil en plusieurs langues</soustitre>
   <date>2005-10-17</date>
   <lang>fr</lang>
   <href>http://www.mapeadores.net/dev-omic/developpement-5.html</href>
   <geoloc>
      <lat>48.34</lat>
      <lon>-80.86</lon>
   </geoloc>
   <complement>Exemole</complement>
   <attr ns="sct" key="authors">
     <val>Vincent Calame</val>
     <val>Karine Goasmat</val>
   </attr>
</fiche>

<thesaurus>

L’élément <thesaurus> regroupe tous les mots-clés d’un même type (par exemple, les mots-clés géographiques, les mots-clés thématiques). Il doit posséder comme attribut @thesaurus-name qui correspond au nom du thésaurus et qui le distingue des autres thésaurus de la base. L’élément <thesaurus> doit obligatoirement contenir comme premier élément un élement <thesaurus-metadata> et contient ensuite un nombre illimité d’élements <motcle>.

Exemple

<thesaurus thesaurus-name="geo">
   <thesaurus-metadata>...</thesaurus-metadata>
   <motcle>...</motcle>
   <motcle>...</motcle>
   <motcle>...</motcle>
   ...
</thesaurus>

<thesaurus-metadata>

L’élément <thesaurus-metadata> comprend :

Exemple

<thesaurus-metadata>
   <intitule-thesaurus>
      <lib xml:lang="fr">Mots-clés thématiques</lib>
      ...
   </intitule-thesaurus>
</thesaurus-metadata>

<motcle>

L’élément <motcle> possède un attribut obligatoire @motcle-id qui est l’identifiant du mot-clé au sein du thésaurus (des mots-clés dans des thésaurus différents peuvent avoir la même valeur de @motcle-id). Il comprend :

Exemple

<motcle motcle-id="607">
   <lib xml:lang="fr">responsabilité des bailleurs de fonds</lib>
   ...
</motcle>

<indexation-group>

Dernier élément susceptible de se trouver dans le fichier au format ScrutariData, l’élément <indexation-group> regroupe les informations d’indexation entre des fiches d’un corpus donné et des mots-clés d’un thésaurus donné. L’élément <indexation-group> possède deux attributs obligatoires : @corpus-path qui indique le chemin du corpus (soit un URI complet, soit le nom du corpus dans la base) et @thesaurus-path qui indique le chemin du thésaurus (soit un URI complet, soit le nom du thésaurus dans la base).

Précision : l'utilisation d'un URI complet pour désigner un corpus ou un thésaurus spécifique n'est pas encore opérationnel dans le serveur Scrutari.

Un élément <indexation-group> comprend un nombre illimité d’éléments <indexation>. Un élément <indexation>représente le lien entre une fiche et un mot-clé. Il possède trois attributs : @fiche-id qui l’identifiant de la fiche dans le corpus, @motcle-id qui est l’identifiant du mot-clé dans le corpus et @poids qui est un attribut facultatif, qui doit être un entier strictement positif et qui indique le poids de l’indexation (i.e. : la force du lien entre le mot-clé et la fiche).

Exemple

<indexation-group corpus-path="suivi" thesaurus-path="geo">
   <indexation fiche-id="1" motcle-id="576"/>
   <indexation fiche-id="1" motcle-id="36" poids="3"/>
   ...
</indexation-group>

Les attributs

Les attributs sont un moyen d'étendre le format ScrutariData pour des usages particuliers. En effet, un attribut est caractérisé par sa clé qui est elle-même composé de deux éléments : un espace de noms et une clé locale. Ce qui se traduit au niveau XML par la présence de deux attributs pour l'élément <attr> : @ns (l'espace de noms) et @sct. L'utilisation d'un espace de noms permet de limiter les conflits entre clés d'attribut. L'espace de noms sct est réservé aux attributs gérés par défaut par le serveur Scrutari.

Un élément <attr> contient un ou plusieurs éléments <val> qui contiennet les valeurs de l'attribut.

Les attributs sont utilisables pour chaque élément : base, corpus, thésaurus, fiches et mots-clés.

En ce qui concerne les fiches, les différences entre champs complémentaires et attributs sont les suivantes :