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> dont la valeur doit être un nom identifiant le producteur de la base, cela peut être un nom de domaine ou un identifiant universel (voir URI 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
  • un nombre illimité d'éléments <attr> qui définissent des valeurs d'attributs ; les attributs sont un moyen d'étendre le format ScrutariData pour des usages particuliers (voir ci-dessous)

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 :

  • 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 <geoloc> facultatif permettant d'associer des coordonnées géographiques à la fiche (afin de la géolocaliser), cet élément comprend lui-même un élément <lat> (la latitude sous forme décimale) et un élément <lon> (la longitude sous forme décimale)
  • un élément <fiche-icon> facultatif qui permet d'indiquer un icone propre à la fiche (en remplacement de l'icone de la base)
  • un nombre illimité d'éléments <attr> qui définissent des valeurs d'attributs ; les attributs sont un moyen d'étendre le format ScrutariData pour des usages particuliers ; la différence entre attributs et champs complémentaires la manière dont est utilisé un attribut dépend de la configuration du serveur Scrutari

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 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>

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 au niveau des méta-données de la base et au niveau des fiches.

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

  • Les attributs possèdent une clé, ce qui permet de retrouver facilement leurs valeurs
  • Les champs complémentaires sont définis au niveau du corpus, ils seront utilisés quelque soit le serveur Scrutari alors que l'utilisation de tel ou tel attribut dépend de la configuration du serveur
  • Un attribut peut avoir plusieurs valeurs
scrutaridata/xml.txt · Dernière modification: 2017/01/17 18:51 par vincent
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0