Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
serveurscrutari:config:sources [2009/07/05 23:01]
vincent créée
serveurscrutari:config:sources [2022/09/11 11:53] (Version actuelle)
vincent
Ligne 1: Ligne 1:
 ====== Fichier sources.xml : définir les sources de données ====== ====== Fichier sources.xml : définir les sources de données ======
  
-Le fichier de configuration //​sources.xml//​ est un fichier essentiel puisque c'est lui qui liste les sources de données du serveur ​Scrutari. L'​absence de ce fichier n'entrainera ​d'​erreur,​ simplement le serveur Scrutari sera vide !+Le fichier de configuration //​sources.xml//​ est un fichier essentiel puisque c'est lui qui liste les sources de données du moteur ​Scrutari. L'​absence de ce fichier n'entraine pas d'​erreur,​ simplement le moteur tourne à vide ! 
 + 
 +La tâche qui incombe aux sources de données est de les fournir au format ScrutariData. Pour cela, elles doivent mettre à disposition une URL où télécharger ces données au format ScrutariData (sur le même principe que les URL de syndication). Il y a deux manières de mettre à disposition ces données : 
 + 
 +  * soit en indiquant directement l'URL de téléchargement (voir ci-dessous l'​élément !!<​scrutaridata-url>​!!) 
 +  * soit en indiquant l'URL d'un fichier appelé « fiche d'​information » qui sert d'​intermédiaire,​ notamment en indiquant le ou les URLs nécessaires pour construire les données au format ScrutariData (voir son [[serveurscrutari:​config:​scrutariinfo|format exact]] et ci dessous l'​élément !!<​info-url>​!!) 
 + 
 +Le choix entre ces deux manières dépend de la source. Un fichier d'​information est particulièrement utile quand les données sont importantes et que leur génération peut prendre du temps. 
 + 
 +Au niveau du fichier de configuration //​sources.xml//,​ une source de données est identifiée par un nom unique et peut combiner plusieurs URLs (fichiers au format ScrutariData ou fichiers d'​information) comme le montre l'​exemple ci-dessous : 
  
-Le contenu de ce fichier de configuration est très simple : il contient uniquement les adresses des fichiers d'​information des sites sur lequel le serveur Scrutari va faire des recherches. Un fichier d'​information accompagne un fichier au format ScrutariData et sert à indiquer la dernière date de mise à jour (voir la page sur les [[serveurscrutari:​config:​scrutariinfo|fichiers d'​information]]). 
  
-Une précision : le serveur Scrutari utilise en interne l'URL du fichier d'​information comme identifiant de la source de données, il vaut mieux éviter d'​avoir des URLs de plus de cent caractères ; en outre, pour construire l'​identifiant,​ le serveur Scrutari remplace tout caractère spécial par un trait de soulignement « _ », il s'​ensuit que le serveur va considérer comme identique les deux URLs suivantes : http://​www.mon-site.com/​sct.php?​fichier=info et  http://​www.mon.site.com/​sct.php?​fichier_info). La probabilité d'​avoir de tels URLs considérées comme identiques par le serveur Scrutari est évidemment très faible. 
  
 ===== Structure du format XML ===== ===== Structure du format XML =====
  
-L'​élément racine est l'​élément !!<​sources>​!! qui contient un seul type d'​élément : l'​élément !!info-url!! qui, lui aussi, n'a pas d'attribut ​et dont la valeur ​doit être une URL valide.+L'​élément racine est l'​élément !!<​sources>​!! qui contient un seul type d'​élément : l'​élément !!<​source>​!!. Celui-ci a un attribut obligatoire,​ !!@name!!, qui est le nom identifiant la source (il doit être unique et n'être composé que des minuscules (sans accent), des chiffres ou le tiret bas //_//). 
 + 
 +L'élément //<​source>//​ contient des éléments !!<​info-url>​!! ​et des éléments !!<​scrutaridata-url>​!! ; ces deux éléments doivent avoir comme valeur une URL valide ​et un élément //<​scrutaridata-url>//​ peut posséder un attribut !!@freq!! qui indique la fréquence de mise à jour en nombre de jours (la valeur par défaut est « 1 » ce qui signifie que le fichier sera vérifié tous les jours). 
 + 
 +L'​élément //<​source>//​ peut également posséder un élément !!<​uri>​!! (indiquant l'URI de la base à utiliser en lieu et place de l'URI indiqué par le fichier au format ScrutariData) ou plusieurs éléments !!<​alias>​!! (permettant d'​indiquer des anciens URI équivalents à l'URI actuel). Voir les exemples et ci-dessous. 
  
 ==== Exemple ==== ==== Exemple ====
  
-L'​exemple suivant est le fichier ​de configuration de la Coredem en juillet ​2009+L'​exemple suivant est extrait ​de la configuration de la Coredem en juillet ​2017
  
 <code xml> <code xml>
 <?xml version="​1.0"​ encoding="​UTF-8"?>​ <?xml version="​1.0"​ encoding="​UTF-8"?>​
 <​sources>​ <​sources>​
- <​info-url>​http://​bases.basedefiches.net/​irenees/​pub/​scrutari/​coredem.scrutari-info.xml</​info-url>​ +    <source name="​irenees">​ 
- <​info-url>​http://​base.d-p-h.info/xml/scrutari/public.scrutari-info.xml</​info-url>​ +        ​<​info-url>​http://​bases.basedefiches.net/​irenees/​pub/​scrutari/​coredem.scrutari-info.xml</​info-url>​ 
- <info-url>http://base.fph.ch/xml/scrutari/​coredem.scrutari-info.xml</info-url+    </​source>​ 
- <​info-url>​http://​bases.basedefiches.net/​irg/​pub/​scrutari/​public.scrutari-info.xml</​info-url>​ +    <source name="​rsp">​ 
- <​info-url>​http://​base.fph.ch/​xml/​scrutari/eclm.scrutari-info.xml</​info-url>​ +        ​<​info-url>​http://​bases.basedefiches.net/rsp/pub/scrutari/coredem.scrutari-info.xml</​info-url>​ 
- <info-url>http://​www.rinoceros.org/​entete.xml</info-url+ <alias>base:/e17a05b0-c45e-11d8-9669-0800200c9a66/rsp</alias> 
- <info-url>http://​base.china-europa-forum.net/​xml/​scrutari/coredem.scrutari-info.xml</info-url+    </source>​ 
- <info-url>http://www.terre-citoyenne.org/fileadmin/​scrutari/​scrutari-entete.xml</info-url+    ​<source name="​agter"​
- <info-url>http://​scrutari.coredem.info/​infos/​xml/​sitecoredem.scrutari-info.xml</​info-url> +        <​info-url>​http://​bases.basedefiches.net/​agter/​pub/​scrutari/​coredem.scrutari-info.xml</​info-url>​ 
- <info-url>​http:​//​scrutari.coredem.info/​infos/​php/​info.php?​base=fngm</info-url+        <​info-url>​http://​www.agter.asso.fr/spip.php?​page=scrutari_entete&​amp;​id_exportscrutari=2</​info-url>​ 
- <info-url>​http://​scrutari.coredem.info/​infos/​php/​info.php?base=coredem_fr</info-url> +    </source> 
- <​info-url>​http://​bases.basedefiches.net/gouvafrique/​pub/scrutari/coredem.scrutari-info.xml</​info-url>​ +    ​<source name="​coredem"​
- <info-url>​http:​//​www.cafolis.org/​cgi-bin/​scrutari/​HEAD</​info-url+ <uri>base:/​coredem.info/core</uri
- <info-url>​http://​bases.basedefiches.net/​rsp/​pub/​scrutari/​coredem.scrutari-info.xml</​info-url+ <alias>base:/7121aba0-5232-11e1-b86c-0800200c9a66/passerelles</alias
- <info-url>​http://​bases.basedefiches.net/​premiermai/​pub/scrutari/coredem.scrutari-info.xml</info-url> + <alias>base:/e17a05b0-c45e-11d8-9669-0800200c9a66/sitecoredem</alias
- <info-url>​http:​//​bases.basedefiches.net/​libreassociation/​pub/​scrutari/​coredem.scrutari-info.xml</​info-url>+ <scrutaridata-url freq="​1"​>http://www.coredem.info/​spip.php?page=scrutaridata_passerelles</scrutaridata-url> 
 + <​info-url>​http://​docs.fichotheque.net/coredem/scrutari/sitecoredem.scrutari-info.xml</​info-url>​ 
 +    </source
 +    <source name="​comedie"​
 +        <scrutaridata-url freq="​1"​>http://www.comedie.org/scrutari/comedie.scrutari-data.php</scrutaridata-url> 
 +    </source>
 </​sources>​ </​sources>​
 </​code>​ </​code>​
 +
 +
 +===== Plusieurs URL =====
 +
 +Comme indiqué ci-dessous, les éléments !!<​info-url>​!! et les éléments !!<​scrutaridata-url>​!! peuvent exister en plusieurs exemplaires. C'est utile si la source est elle même composée de plusieurs sources différentes. Ces sources différentes doivent être elles-mêmes être des sources valides et elles doivent comporter des corpus et des thésaurus avec des noms différents.
 +
 +Les métadonnées de la base (URI, intitulés, langues d'​interface,​ icones) sont déterminées à partir du premier fichier de sources indiqué.
 +
 +Voici l'​exemple pour le site Agter qui est composé de deux parties (http://​www.agter.org et http://​www.agter.asso.fr) régies par des logiciels différents.
 +
 +<code xml>
 +  <source name="​agter">​
 +        <​info-url>​http://​bases.basedefiches.net/​agter/​pub/​scrutari/​coredem.scrutari-info.xml</​info-url>​
 +        <​info-url>​http://​www.agter.asso.fr/​spip.php?​page=scrutari_entete&​amp;​id_exportscrutari=2</​info-url>​
 +  </​source>​
 +</​code>​
 +
 +et l'​exemple de la Coredem avec l'​utilisation des deux éléments à la fois :
 +
 +<code xml>
 +<source name="​coredem">​
 + <​scrutaridata-url freq="​1">​http://​www.coredem.info/​spip.php?​page=scrutaridata_passerelles</​scrutaridata-url>​
 + <​info-url>​http://​docs.fichotheque.net/​coredem/​scrutari/​sitecoredem.scrutari-info.xml</​info-url>​
 +</​source>​
 +</​code>​
 +
 +===== URI et alias =====
 +
 +Les fichiers ScrutariData provenant de sources diverses, il peut arriver que celles-ci modifient l'URI de la base alors que le contenu lui-même ne change pas. Cette modification d'URI « casse » l'​historique du moteur car le contenu apparait comme du nouveau contenu. Il peut également provoquer des dysfonctionnements dans des filtres basés sur l'URI. Pour éviter ce type de problème, deux mécanismes sont proposés à l'​administrateur du moteur afin de mieux contrôler l'URI de la base :
 +
 +  * fixer l'URI un élément !!<​uri>​!!,​ la valeur indiquée supplantant celle fournie par le fichier ScrutariData
 +  * indiquer des alias via un ou plusieurs éléments !!<​alias>​!!,​ ces alias seront convertis dans la bonne valeur de l'URI aussi bien dans l'​historique que dans les filtres.
 +
 +//<​uri>//​ et //<​alias>//​ ont la même syntaxe : leur texte doit être un URI de base valide (l'​indication du protocole base: n'est pas obligatoire).
 +
 +Voici ci-dessous l'​exemple de la source Coredem qui fusionne les listes des revues Passerelles et la liste des sites membres de la Coredem. Initialement,​ ces deux données étaient gérées comme deux sources différentes avec des URI de bases distinctes. Le nouvel URI est //​base:/​coredem.info/​core//​.
 +
 +<code xml>
 +<source name="​coredem">​
 +    <​uri>​base:/​coredem.info/​core</​uri>​
 +    <​alias>​base:/​7121aba0-5232-11e1-b86c-0800200c9a66/​passerelles</​alias>​
 +    <​alias>​base:/​e17a05b0-c45e-11d8-9669-0800200c9a66/​sitecoredem</​alias>​
 +    <​scrutaridata-url freq="​1">​http://​www.coredem.info/​spip.php?​page=scrutaridata_passerelles</​scrutaridata-url>​
 +    <​info-url>​http://​docs.fichotheque.net/​coredem/​scrutari/​sitecoredem.scrutari-info.xml</​info-url>​
 +</​source>​
 +</​code>​
 + 
  
 ===== DTD ===== ===== DTD =====
  
 <code xml> <code xml>
-<​!ELEMENT sources (info-url*)>​+<​!ELEMENT sources ​(source*)>​ 
 + 
 +<​!ELEMENT source ​(info-url?​|scrutaridata-url?​|uri?​|alias*)
 +   <​!ATTLIST source name NMTOKEN #REQUIRED>
  
 <​!ELEMENT info-url (#​PCDATA)>​ <​!ELEMENT info-url (#​PCDATA)>​
 +
 +<​!ELEMENT scrutaridata-url (#​PCDATA)>​
 +   <​!ATTLIST scrutaridata-url freq NMTOKEN '​1'>​
  
 </​code>​ </​code>​
  
- +===== Améliorer et remplacer les méta-données de la source =====
  
 +Il arrive que les méta-données d'une source sont peu remplies et pourraient être enrichies. Il est possible d'​indiquer dans la configuration du moteur des méta-données destinées à compléter voire remplacer celles d'une source.
 +
 +Pour cela, il faut créer un répertoire //​base-metadata//​ dans le répertoire //conf// et placer dedans des fichiers au format XML portant le nom de la source suivi de //.xml//. Le format XML attendu est celui de l'​élément !!<​base-metadata>​!! du format ScrutariData.
 +
 +L'​exemple suivant montre le contenu du fichier //​base-metadata/​ritimo.xml//​ indiquant l'​icone à utiliser pour la source de nom « ritimo ».
 +
 +<code xml>
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +<​base-metadata>​
 + <​base-icon>​http://​scrutari.coredem.info/​ritimo.png</​base-icon>​
 +</​base-metadata>​
 +</​code>​
  
serveurscrutari/config/sources.1246827718.txt.gz · Dernière modification: 2009/12/17 11:26 (modification externe)
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0