Ceci est une ancienne révision du document !


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 :

  • un et un seul élement <base-metadata> (qui contient les détails sur la base),
  • un ou plusieurs éléments <corpus> (qui contiennent les informations sur les fiches),
  • zéro ou plusieurs éléments <thesaurus> (qui contiennent les informations sur les mots-clés),
  • zéro ou plusieurs éléments <indexation-group> (qui contiennent les informations sur les liens entre fiches et mots-clés).

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 :

  • un élément <authority-uuid> dont la valeur doit être un identifiant universel propre au producteur de la base (voir la politique de l'identifiant unique pour plus de détails) ;
  • un élément <base-name> dont la valeur est le nom technique (chaine de caractères en minuscules, sans accent,ni espace) de la base et qui permet de la distinguer des autres produites par le même producteur ;
  • un élément <intitule-short> qui donne un intitulé court de la base ;
  • un élément <intitule-long> qui donne un intitulé long de la base ;
  • un élément <langs-ui> facultatif qui liste les différentes langues disponibles pour les URL des fiches et des mots-clés.
  • un élément <base-icon> facultatif qui donne l’URL de l’icone de 16 pixels sur 16 à utiliser pour différencier les fiches de la base de celles des autres bases

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-uuid>e17a05b0-c45e-11d8-9669-0800200c9a66</authority-uuid>
   <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 :

  • un élément <corpus-type> facultatif qui indique le type des fiches (est-ce des fiches d’expérience, d’analyse, de concepts), cet élément n'est ni normalisé ni exploité pour le moment, on peut l'ignorer pour l'instant,
  • un élément <intitule-corpus> qui indique les intitulé du corpus dans différentes langues,
  • un élément <intitule-fiche> qui indique les intitulé à utiliser dans différentes langues pour désigner une fiche du corpus,
  • un élément facultatif <href-parent>, la présence de cet élément permet d'indiquer les URLs des fiches de façon relative et donc de diminuer la taille du fichier final,
  • un élément facultatif <corpus-icon>, qui permet d'indiquer une icône différente pour le corpus,
  • zéro ou plusieurs éléments <complement-metadata> qui indiquent la présence de champs complémentaires dans les méta-données (en plus du titre et du sous-titre).

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 :

  • un élément <titre> obligatoire qui indique le titre de la fiche,
  • un élément <soustitre> facultatif,
  • un élément <lang> facultatif mais hautement recommandé indiquant la langue de la fiche (format ISO),
  • un élément <date> facultatif mais hautement recommandé indiquant la date de la fiche : la date est au format ISO (année-mois-jour ou aaaa-mm-jj) sans indication d'heures, il est accepté de ne mettre que l'année ou que l'année et le mois (sous la forme aaaa-mm,
  • un élément <href> obligatoire indiquant la localisation de la fiche complète sur la Toile
  • autant d’éléments <complement> que d'éléments <complement-metadata> présents dans <corpus-metadata> (s’il y a moins d’éléments <complement> que prévu, cela signifie que les champs complémentaires non indiqués sont vides)
  • un élément <type> facultatif indiquant que la fiche est d’un type différent que le type indiqué pour le corpus (note: les types ne sont ni utilisés ni normalisés pour le moment)
  • un élément <fiche-icon> facultatif qui permet d'indiquer un icone propre à la fiche (en remplacement de l'icone de la base)

Exemple

Dans cet exemple, le premier champ complémentaire correspond à l'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>
   <complement>Vincent Calame</complement>
</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 un seul élément <intitule-thesaurus> qui indique l’intitulé du thésaurus. Comme les autres intitulé, cet élément est composé d’élément <lib>.

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 des éléments <lib> similaires à ceux des intitulés de thesaurus, de corpus ou de base puisqu’un mot-clé peut-être multilingue.

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>
scrutaridata/xml.1265809162.txt.gz · Dernière modification: 2010/02/10 14:39 par vincent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0