Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
scrutaridata:impl:spip [2009/06/02 15:39] vincentscrutaridata:impl:spip [2016/07/06 18:33] (Version actuelle) – [Exemple d'un squelette Spip d'exportation au format ScrutariData] vincent
Ligne 1: Ligne 1:
 ====== ScrutariData et Spip ====== ====== ScrutariData et Spip ======
  
-Dans le cadre de la Coredem, deux sites sous Spip exportent leurs méta-données au format ScrutariData : [[http://www.rinoceros.org|Rinoceros]] et le [[http://www.world-governance.org|forum pour une nouvelle gouvernance mondiale]]. Les squelettes de Spip peuvent effectivement être utilisés pour créer du code XML plutôt que du HTML (les flux RSS créés par Spip sont aussi gérés par des boucles).+Dans le cadre de la Coredem, plusieurs sous Spip exportent leurs méta-données au format ScrutariData : par exemple, [[http://www.rinoceros.org|Rinoceros]] et le [[http://www.world-governance.org|forum pour une nouvelle gouvernance mondiale]]. Les squelettes de Spip peuvent effectivement être utilisés pour créer du code XML plutôt que du HTML (les flux RSS créés par Spip sont aussi gérés par des boucles).
  
-Le seul problème rencontré pour le moment est l'impossibilité de transmettre les libellés multilingues des mots-clés (cas du site du Forum pour une nouvelle gouvernance mondiale).+L'exemple ci-dessous est du site [[http://eau.d-p-h.info/|Ressources pour une gestion durable de l'eau]] et a été réalisé par Thierry Eraud. Ces boucles doivent être adaptées à chaque site.
  
-**Avis aux spipeurs insérer ici un exemple de boucle**+En effet, il est rare d'inclure tous les articles d'un site Spip dans l'export au format Scrutari (par exemple, on n'exporte pas la page Contacts) seules les articles correspondant à des ressources sont à exporter. La façon dont ces articles sont distingués des autres articles dépend de l'organisation du site. Cela peut-être par un mot-clé ou une rubrique. Dans le site donné en exemple, c'est la rubrique avec l'identifiant 1 qui sert à regrouper tous les articles correspondant à une ressource. 
 + 
 +Pour les mots-clés, le problème est le même : tous les mots-clés utilisés par un site Spip ne sont pas pertinents (on peut par exemple utiliser des mots-clés dans un but technique de sélection de telle ou telle page). Dans ce cas-là, la solution est de répartir les mots-clés dans des groupes et de ne garder que les groupes concernés. Dans le cas de l'exemple, tous les mots-clés sont exportés sauf ceux du groupe « reserve ». 
 + 
 +===== Exemple d'un squelette Spip d'exportation au format ScrutariData ===== 
 + 
 +Ce squelette Spip est enregistré dans le dossier squelettes/ et sera appelé comme n'importe quel autre squelette. Par exemple, s'il est enregistré sous le nom ''scrutari.html'', il sera appelé via ''spip.php?page=scrutari''
 + 
 +<code xml> 
 +[(#HTTP_HEADER{Content-type: text/xml; charset=UTF-8})]<?xml version="1.0" encoding="UTF-8"?> 
 +<base> 
 + <base-metadata> 
 + [(#REM) 
 + authority permet d'identifier le producteur de la base, il peut s'agir d'un nom de domaine ou, comme ici, d'identifiant universel 
 + base-name est le nom technique de la base (en minuscules sans accent ni espace) 
 +
 + <authority>15f2bd12-f4d0-8314-0800200c9a66</authority> 
 + <base-name>ressouces_eau</base-name> 
 + 
 + [(#REM) 
 + Les sites ressources sont multilingues, mais il n'y a pas de secteurs propres a chaques langues. 
 + Les articles de la rubrique ressources peuvent etre dans n'importe quelle langue. 
 + On definit dans un premier temps un tableau des langues utilisees dans la rubrique ressources. 
 + ]  
 + #SET{tab_lang, #ARRAY{''}} 
 + [(#SET{tab_lang, [(#GET{tab_lang}|push{#LANG})]})]  
 + <BOUCLE_langues(ARTICLES){id_rubrique=1}{lang != #LANG}> 
 + [(#SET{tab_lang, [(#GET{tab_lang}|push{#LANG})]})] 
 + </BOUCLE_langues> 
 + [(#SET{tab_lang,[(#GET{tab_lang}|array_unique)]})] 
 +  
 + [(#REM) 
 + Definition des intitules courts et des intitules longs dans les differentes langues. 
 + Le titre ainsi que le descriptif du site peuvent etre renseignes dans les differents langues  
 + grace aux balises multi 
 +
 + <intitule-short> 
 + <BOUCLE_intitule_short(ARTICLES){id_rubrique=1}{lang IN #GET{tab_lang}}> 
 + [(#LANG|unique{short}|?{' ',''}) 
 + [<lib xml:lang='#LANG'>(#NOM_SITE_SPIP|texte_backend)</lib>
 +
 + </BOUCLE_intitule_short> 
 + </intitule-short> 
 + <intitule-long> 
 + <BOUCLE_intitule_long(ARTICLES){id_rubrique=1}{lang IN #GET{tab_lang}}> 
 + [(#LANG|unique{court}|?{' ',''}) 
 + [<lib xml:lang='#LANG'>(#DESCRIPTIF_SITE_SPIP|supprimer_tags|texte_backend)</lib>
 +
 + </BOUCLE_intitule_long> 
 + </intitule-long> 
 + <lang-ui> 
 + <BOUCLE_lang_ui(ARTICLES){id_rubrique=1}{lang IN #GET{tab_lang}}> 
 + [<lang>(#LANG|unique{langue_ui})</lang>
 + </BOUCLE_lang_ui> 
 + </lang-ui> 
 + [<base-icon>#URL_SITE_SPIP/(#ENV*{favicon} 
 + |sinon{#CHEMIN{favicon.ico}} 
 + |sinon{#LOGO_SITE_SPIP} 
 + |image_passe_partout{16,16} 
 + |image_recadre{16,16,center} 
 + |image_format{ico}|extraire_attribut{src}) 
 + </base-icon>
 + </base-metadata> 
 +  
 + [(#REM) 
 + Dans le cas des sites ressources, les articles devant etre indexes par Scrutari sont uniquement 
 + dans la rubrique ressources. Ici la rubrique ressources est la rubrique 1 
 +
 +<BOUCLE_ressources(RUBRIQUES){id_rubrique=1}> 
 + <corpus corpus-name="ressources"> 
 + <corpus-metadata> 
 + <intitule-corpus> 
 + <lib xml:lang='fr'>Ressources</lib> 
 + </intitule-corpus> 
 + <intitule-fiche> 
 + <lib xml:lang='fr'>Ressource</lib> 
 + </intitule-fiche> 
 + </corpus-metadata> 
 + [(#REM) 
 + On recupere tous les articles de la rubrique et sous-rubriques 
 +
 + <BOUCLE_fiches(ARTICLES){branche}> 
 + <fiche fiche-id="#ID_ARTICLE"> 
 + <titre>[(#TITRE|supprimer_numero|texte_backend)]</titre> 
 + [<soustitre>(#SOUSTITRE|texte_backend)</soustitre>
 + <date>[(#DATE|affdate{'Y-m-d'})]</date> 
 + <lang>#LANG</lang> 
 + <href>#URL_SITE_SPIP/#URL_ARTICLE</href> 
 + </fiche> 
 + </BOUCLE_fiches> 
 + </corpus> 
 + 
 + [(#REM) 
 + On parcourt tous les mots cles sauf ceux des groupes de mot reserve utilises 
 + a autre chose 
 +
 +<BOUCLE_groupe_mots(GROUPES_MOTS){titre != reserve}>  
 + <thesaurus thesaurus-name="groupe_[(#ID_GROUPE)]"> 
 + <thesaurus-metadata> 
 + <intitule-thesaurus> 
 + <BOUCLE_titre_groupe(ARTICLES){id_rubrique=1}{lang IN #GET{tab_lang}}> 
 + [(#LANG|unique{titre_groupe#_groupe_mots:ID_GROUPE}|?{' ',''}) 
 + [<lib xml:lang='#LANG'>(#_groupe_mots:TITRE|texte_backend)</lib>
 +
 + </BOUCLE_titre_groupe> 
 + </intitule-thesaurus> 
 + </thesaurus-metadata> 
 + <BOUCLE_mots_cles(MOTS){id_groupe}> 
 + <motcle motcle-id="#ID_MOT"> 
 + <BOUCLE_titre_mot(ARTICLES){id_rubrique=1}{lang IN #GET{tab_lang}}> 
 + [(#LANG|unique{titre_mot#_mots_cles:ID_MOT}|?{' ',''}) 
 + [<lib xml:lang='#LANG'>(#_mots_cles:TITRE|texte_backend)</lib>
 +
 + </BOUCLE_titre_mot> 
 + </motcle>  
 + </BOUCLE_mots_cles> 
 + </thesaurus> 
 +</BOUCLE_groupe_mots>  
 + 
 +[(#REM) 
 + On fait le lien entre les articles et les mots cles 
 +
 + 
 +<BOUCLE_themes_indexation(GROUPES_MOTS){titre != reserve}>  
 + <indexation-group corpus-path="ressources" thesaurus-path="groupe_[(#ID_GROUPE)]"> 
 + <BOUCLE_sous_themes_indexation(MOTS){id_groupe}> 
 + <BOUCLE_articles_lies_sous_themes(ARTICLES){id_mot}{branche}><indexation fiche-id='#ID_ARTICLE' motcle-id='#ID_MOT'/></BOUCLE_articles_lies_sous_themes>  
 + </BOUCLE_sous_themes_indexation> 
 + </indexation-group> 
 +</BOUCLE_themes_indexation> 
 + 
 +</BOUCLE_ressources> 
 +</base> 
 + 
 +</code> 
 + 
 +===== Exemple de fichier d'information ===== 
 + 
 +Comme il est indiqué à la page sur les [[serveurscrutari:config:scrutariinfo|fichiers d'information]], le serveur Scrutari ne charge pas directement le fichier au format ScrutariData. Il passe par un intermédiaire qui est un fichier de très petite taille qui indique si une mise à jour à eu lieu depuis le dernier passage du robot du serveur Scrutari. 
 + 
 +L'exemple suivant, toujours tiré du même site, est un squelette très simple permettant de générer le fichier d'information. 
 + 
 +<code xml> 
 +[(#HTTP_HEADER{Content-type: text/xml; charset=UTF-8})]<?xml version="1.0" encoding="UTF-8"?> 
 +<header> 
 + [(#REM) 
 + Seuls les articles de la rubrique ressources sont pris en compte. 
 + On recupere la date du dernier article de la rubrique. 
 +
 + <BOUCLE_date(RUBRIQUES){id_rubrique=1}> 
 + <date>[(#DATE|affdate{'Y-m-d'})]</date> 
 + </BOUCLE_date> 
 + <path>spip.php?page=scrutari</path> 
 +</header> 
 +</code>
  
scrutaridata/impl/spip.1243949955.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