Newer
Older
libconsulte / etc / Pub2TEI / Stylesheets / Nature_pour_bibistex.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns="http://www.tei-c.org/ns/1.0">
       
    <!--created by romain dot loth at inist.fr
                ISTEX-CNRS 2015-01-->
    <xsl:output encoding="UTF-8" method="xml" indent="yes"/>
    <xsl:strip-space elements="*"/>

    <!--
        CETTE TEMPLATE NE DEVRAIT PAS ETRE LANCEE DIRECTEMENT, 
        => PASSER PAR >> PUBLISHERS.XSL <<
        
        NB: entre autres défini en amont dans Publishers : param name="biblType" 
        bibl ou biblStruct selon la sortie voulue ("+ fidèle" vs "+ structurée") 
        
        
        =============================
        TODO dans les entrées Nature
        =============================
          RL:
           - rajouter le namespace TEI en haut
           - le header est minimaliste
           - le body n'est pas fait
           - en mode 'bibl', on ajoute des attributs @rend qui servent en
             préparation de l'entrainement de grobid
           
           £=> et une fois fini mettre un exemple de sortie dans Samples/TestOutputTEI
    -->

    <!--
        ****************
        SQUELETTE GLOBAL
        ****************
        IN: /. <<

        OUT:
        /TEI/teiHeader/fileDesc/titleStmt >>
        /TEI/teiHeader/fileDesc/sourceDesc/biblStruct >>
    /TEI/teiHeader/profileDesc/
    -->
    <xsl:template match="/article[starts-with(pubfm/cpg/cpn, 'Nature')]
                       | /article[starts-with(pubfm/cpg/cpn, 'Macmillan')]
                       | /headerx[starts-with(pubfm/cpg/cpn, 'Nature')]
                       | /headerx[starts-with(pubfm/cpg/cpn, 'Macmillan')]">
        <TEI>
            <teiHeader>
                <fileDesc>
                    <titleStmt>
                        <!-- reprise du titre principal avec son topic éventuel 
                             (copie sans dans sourceDesc) -->
                        <title>
                            <xsl:apply-templates select="fm/atl" mode="intitle"/>
                        </title>
                        <!-- proposition d'un "stamp" Pub2TEI -->
                        <respStmt>
                            <resp>Partial conversion from Nature (NPG) XML to TEI-conformant markup
                             <date><xsl:attribute name="when" select="format-date(current-date(), '[Y0001]-[M01]-[D01]')"/></date>
                            </resp>
                            <name>Pub2TEI XSLT [Nature_pour_bibistex.xsl]</name>
                        </respStmt>
                    </titleStmt>

                    <publicationStmt>
                        <p>this TEI version for ISTEX database (CNRS)</p>
                    </publicationStmt>

                    <!-- métadonnées décrivant l'original -->
                    <sourceDesc>
                        <biblStruct>
                            <analytic>
                                <!-- Titre article -->
                                <xsl:apply-templates select="fm/atl"/>

                                <!-- Auteurs article au+ avec leurs renvois <orf> vers l'affiliation -->
                                <xsl:apply-templates select="fm/aug"/>

                                <!-- Affiliations correspondantes
                                    /!\ interdites directement à la suite: pas conforme TEI (mais serait plus logique?)
                                        on les met plus bas dans une note type="affiliations" à la fin de ce biblStruct
                                -->

                                <!-- Identifiants article (DOI et 2 internes au groupe NPG) -->
                                <idno type="DOI"><xsl:value-of select="pubfm/doi"/></idno>
                                <idno type="npg-id"><xsl:value-of select="@id"/></idno>
                                <idno type="npg-idt"><xsl:value-of select="pubfm/idt"/></idno>
                                    <xsl:comment>source du DOI: Nature XML natif</xsl:comment>
                            </analytic>

                            <monogr>
                                <!-- Titre du périodique -->
                                <title level="j" type="full"><xsl:value-of select="pubfm/jtl"/></title>
                                
                                <!-- Identifiants journal (ISSN et eISSN) -->
                                <idno type="ISSN"><xsl:value-of select="pubfm/issn[@type='print']"/></idno>
                                <idno type="eISSN"><xsl:value-of select="pubfm/issn[@type='electronic']"/></idno>

                                <imprint>
                                    <!-- DATE -->
                                    <!-- RL: je prends l'année du copyright  -->
                                    <date type="year">
                                        <xsl:value-of select="pubfm/cpg/cpy"/>
                                    </date>
                                    
                                    <!-- VOLUME -->
                                    <biblScope unit="vol"><xsl:value-of select="pubfm/vol"/></biblScope>
                                    
                                    <!-- FASCICULE -->
                                    <biblScope unit="issue"><xsl:value-of select="pubfm/iss"/></biblScope>
                                    
                                    <!-- Pagination de l'article dans la monographie ou le fascicule -->
                                    <biblScope unit="pp">
                                        <xsl:attribute name="from" select="pubfm/pp/spn"/>
                                        <xsl:attribute name="to" select="pubfm/pp/epn"/>
                                    </biblScope>
                                </imprint>
                            </monogr>
                            
                            <!-- Adresse(s) d'affiliation: on ne peut pas les
                                mettre dans analytic à coté des auteurs alors
                                je les référence ici -->
                            <note type="affiliations" place="below">
                                <xsl:apply-templates select="fm/aug/aff | fm/aug/caff"/>
                            </note>
                        </biblStruct>
                    </sourceDesc>
                </fileDesc>


                <!-- métadonnées de profil (langue, thèmes, historique du doc) -->
                <profileDesc>
                    
                    <!-- Langue déclarée dans la balise racine -->
                    <langUsage>
                        <language>
                            <xsl:attribute name="ident" select="@language"/>
                        </language>
                    </langUsage>
                    
                    
                    <!-- mots-clefs à partir des thématiques éditoriales -->
                    <xsl:apply-templates mode="mon_kw" select="fm/atl/topic"/>
                    
                    
                    <!-- Plutot centré sur le type fonctionnel de document -->
                    <xsl:if test="pubfm/categ/categtxt | pubfm/subcateg/subcatxt">
                        <keywords scheme="npg editorial type">
                            <xsl:if test="pubfm/categ/categtxt">
                                <term><xsl:value-of select="pubfm/categ/categtxt"/></term>
                            </xsl:if>
                            <xsl:if test="pubfm/subcateg/subcatxt">
                                <term><xsl:value-of select="pubfm/subcateg/subcatxt"/></term>
                            </xsl:if>
                        </keywords>
                    </xsl:if>
                        
                    <!-- categ/@id et subcateg/@id forment aussi clairement une
                         nomenclature concernée par le type éditorial d'article
                        Ex: 'lt', 'af', 'tmln', 'rhighlts' 'forum', 'insight'... -->
                    <xsl:if test="categ/@id | subcateg/@id">
                        <textClass scheme="npg editorial type">
                            <xsl:if test="categ/@id">
                                <classCode><xsl:value-of select="fm/atl/topic"/></classCode>
                            </xsl:if>
                            <xsl:if test="subcateg/@id">
                                <classCode><xsl:value-of select="pubfm/categ/categtxt"/></classCode>
                            </xsl:if>
                        </textClass>
                    </xsl:if>                    
                </profileDesc>

                <!-- TODO ici <encodingDesc> ? -->

            </teiHeader>
            <text>
                <front>
                    <!-- résumé +/- abstract présent 1 fois sur 3 -->
                    <xsl:if test="body/fp">
                        <p>
                            <xsl:value-of select="."/>
                        </p>
                    </xsl:if>
                </front>
                <body>
                    <!-- reprise directe simpliste du body via ses sous-sous-éléments
                         TODO reprendre cette partie entièrement
                        -->
                    <xsl:for-each select="bdy/*/*">
                        <!-- BODY MASQUÉ -->
                        <p>
                            <xsl:comment>BODY MASQUÉ (/(article|headerx)/bdy/*/*)</xsl:comment>
                        </p>

                        <!-- pour afficher les fragments du body -->
                        <!--<p><xsl:value-of select='.'/></p>-->
                    </xsl:for-each>
                </body>
                <back>
                    <!-- Références bibs -->
                    <xsl:apply-templates select="/article/bm/bibl"/>
                    
                    
                    <!-- TODO bm/objects 
                              (Tables et Figures jointes à l'article)
                     -->
                    <!-- TODO Notes de bas de page ? -->
                    
                </back>
            </text>
        </TEI>
    </xsl:template>


    <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        première partie de l'input :
                      ===========================
        <pubfm>   ==    PUBLICATION FRONT-MATTER 
                      ===========================
        
        Cette zone comprend les métadonnées de la publi:
          - nom de la revue et (e)ISSN
          - infos volume, fascicule
          - identifiant article
          - pagination début, fin , range
          - DOI
          - copyright (date <cpy> et owner <cpn>)
          - enfin il y a aussi des <categ> et <subcateg> 
          
          TODO => recenser les valeurs possibles pour ces categ et subcateg 
          
          ==> pas de templates car les infos sont atomiques, faciles à
              extraire en amont avec un simple value-of select="moninfo"
    -->
    
    
    

    <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        deuxième partie de l'input
                ==============
        <fm> ==  FRONT-MATTER  
                ==============
        Comprend les données traditionnelles : auteur, titre
    -->

    <!-- TITRE DE L'ARTICLE ***********************
        IN: /article/fm/atl <<
        OUT: teiHeader/fileDesc/sourceDesc/biblStruct/analytic
             >> title
       
       TODO : balises de style internes: <i> <b> <super> <sup>
       
       NB: peut aussi contenir un <topic> (cf. ex2) qu'on va reprendre en ajoutant ':'
       
       ex1: <atl>Pathways in T4 morphogenesis</atl>
       ex2: <atl><topic>Astronomy</topic>Eyes wide shut</atl>
    -->
    
    <!-- topic : fournies avec le titre quand les articles 
                 sont semi-journalistiques => 2 templates 
        
        Exemples : <atl><topic>Chemistry</topic>Much binding in the lab</atl>
                               =========
              <atl><topic>Planetary science</topic>Sodium at Io</atl>
                           ===============-->
    
    <!-- Lorsqu'on l'intègre dans un titre >> on le fait suivre par un ':'  -->
    <xsl:template match="fm/atl/topic" mode="intitle"><xsl:value-of select="."/>: </xsl:template>
    
    <!-- Lorsqu'on l'utilise comme mot-clé  -->
    <xsl:template match="fm/atl/topic" mode="mon_kw">
        <keywords scheme="npg editorial theme">
            <term><xsl:value-of select="."/></term>
        </keywords>
    </xsl:template>

    <!-- FIN TITRE ARTICLE*********************** -->



    <!-- AUTEURS ***************************************
        
        Templates uniquement pour les auteurs de l'entête <fm>
        /article/header/author-group/* 
        /article/back/references//(journal-ref|book-ref|conf-ref|misc-ref)/authors
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        
        IN: /article/fm/aug/* 
        OUT: /TEI/teiHeader//sourceDesc/biblStruct  
            >> analytic/author+/*
    -->
    
    <!-- aug (groupe d'auteurs) -->
    <xsl:template match="fm/aug">
        <xsl:apply-templates select="au | cau | auname"/>
    </xsl:template>


    <!-- au
         IN: fm/aug/(au|cau)
        OUT: author/persName

    -->
    <xsl:template match="aug/au | aug/cau | aug/auname">
        <author>
            <xsl:if test="orf/@rid">
                <!-- un dièse pour corresp (renvoie ainsi à l'ID de l'affiliation) -->
                <xsl:attribute name="corresp">#<xsl:value-of select="orf/@rid"/></xsl:attribute>
            </xsl:if>
            <xsl:if test="corf/@rid">
                <!-- idem pour variante corf -->
                <xsl:attribute name="corresp">#<xsl:value-of select="corf/@rid"/></xsl:attribute>
            </xsl:if>
            
            <persName>
                <!-- ne préjuge pas de l'ordre -->
                <xsl:apply-templates select="fnm | snm | inits"/>
            </persName>
        </author>
    </xsl:template>
    

    <!-- sous-éléments AUTEURS *************
        NB: utilisables pour les <au> du front-matter <fm> 
            et pour les <refau> des refbibs du back-matter <bm>
           ++++++++++++++++++++++++++++++++++++++++++++++++++++
        IN: << /article/fm/aug/au/*
            << /article/bm/bibl/bib/reftxt/refau/*
    -->

    <!-- nom de famille -->
    <xsl:template match="snm">
        <surname>
            <xsl:if test="../../refau">
                <xsl:attribute name="rend">DEL</xsl:attribute>
            </xsl:if>
            <xsl:value-of select="."/>
        </surname>
    </xsl:template>
    
    <!-- prénoms -->
    <xsl:template match="fnm">
        <forename>
            <xsl:if test="../../refau">
                <xsl:attribute name="rend">DEL</xsl:attribute>
            </xsl:if>
            <xsl:value-of select="."/>
        </forename>
    </xsl:template>
    
    <!-- initiales -->
    <xsl:template match="inits">
        <xsl:if test="../../refau">
            <xsl:attribute name="rend">DEL</xsl:attribute>
        </xsl:if>
        <forename full="init">
            <xsl:value-of select="."/>
        </forename>
    </xsl:template>

    <!-- suff: 'junior' etc -->
    <xsl:template match="suff">
        <genName>
            <xsl:if test="../../refau">
                <xsl:attribute name="rend">DEL</xsl:attribute>
            </xsl:if>
            <xsl:value-of select="."/>
        </genName>
    </xsl:template>

    <!-- 
        ?? pas d'équivalent tei:nameLink comme 'de', 'van der' etc 
    -->

    <!-- FIN AUTEURS *********************** -->

    <!-- ADRESSES ***********************
        IN: /article/fm/aug/(aff|caff)  <<
        OUT: /TEI/teiHeader/fileDesc/sourceDesc/biblStruct/note/.
    -->
    <xsl:template match="aug/aff | aug/caff">
        <affiliation>
            <!--Sous-éléments ID (sans contenus) >> attribut xml:id-->
            <xsl:if test="oid/@id">
                <!-- l'identifiant par affiliation (avec un corresp chez les auteurs) -->
                <xsl:attribute name="xml:id" select="oid/@id"/>
            </xsl:if>
            <xsl:if test="coid/@id">
                <!-- idem pour variante coid -->
                <xsl:attribute name="xml:id" select="coid/@id"/>
            </xsl:if>
            <address>
                <addrLine>
                    <!-- les sous-éléments avec contenus seront : org, cny (pays), cty (ville), email, etc. -->
                    <xsl:apply-templates/>
                </addrLine>
            </address>
        </affiliation>
    </xsl:template>
    
    <!--org
        OUT: <orgName>
        Ex: "Cold Spring Harbour Laboratory"
    -->
    <xsl:template match="aff/org | caff/org">
        <orgName>
            <xsl:if test="@id">
                <!--identifiant parfois observé sur les org-->
                <xsl:attribute name="xml:id" select="@id"/>
            </xsl:if>
            <!--contenu-->
            <xsl:value-of select="."/>
        </orgName>
    </xsl:template>

    <!--st
        OUT: <state>
        Ex: "Belgium"
    -->
    <xsl:template match="aff/st | caff/st">
        <state>
            <xsl:value-of select="."/>
        </state>
    </xsl:template>
    
    <!--cty
        OUT: <city>
        Ex: "Paris"
    -->
    <xsl:template match="aff/cty | caff/cty">
        <settlement>
            <xsl:value-of select="."/>
        </settlement>
    </xsl:template>
    
    <!--zip
        OUT: <postCode>
        Ex: "Belgium"
    -->
    <xsl:template match="aff/zip | caff/zip">
        <postCode>
            <xsl:value-of select="."/>
        </postCode>
    </xsl:template>
    
    <!--cny
        OUT: <country>
        Ex: "Belgium"
    -->
    <xsl:template match="aff/cny | caff/cny">
        <country>
            <xsl:value-of select="."/>
        </country>
    </xsl:template>
    
    <!-- email -->
    <xsl:template match="aff/email | caff/email">
        <email>
            <xsl:apply-templates/>
        </email>
    </xsl:template>
    
    <!--
    TODO
    Autres éléments observés :
      - cty    : ville
      - zip    : CP
      - st     : état/région
      - street : rue
    -->
    
    <!-- FIN ADDR *********************** -->
    
    
    <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        coeur de l'input
                 ======
        <bdy> ==  BODY  
                 ======
        IN: 
            << fp               (front)
            << p                (p)
            << sectitle         (titres sections)
            << sec              (sections)
            << figr             (figures)
            << bibr, bibrinl    (renvois citations)
            << super, sub, i    (styles)
            
        TODO : le body n'a pas **du tout** été abordé dans cette version 
        (chaque sous-sous-element est seulement juste repris directement dans des <p>)
        
        OUT >> /TEI/text/body
        NB sous la forme: */*/BODY MASQUÉ
    -->
    <!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        dernière partie de l'input :
        
                =============
        <bm> ==  BACK-MATTER  
                =============
        
        << bibl
        << objects
        
    -->

   
    <!--           ^^^^^^^^^^^^^^^^^
         <bibl> == références biblio
                   ^^^^^^^^^^^^^^^^^
        
        Remarque: Les refbibs balisées <reftxt> forment une ligne éditée
          (RL)    (donc avec ponctuation et ordre canonique selon un style 
                   de citation connu).
                  Elles se pretent bien à un entrainement de baliseur:
                  Comme c'est mon besoin je les convertis actuellement 
                  en <tei:bibl> et non pas en <tei:biblStruct> pour cette tache.                  
        
        
        IN <<  /article/bm/bibl
        
        OUT: TEI/text/back/div[@id="references]/listBibl
             >> tei:bibl+
                
        TODO 
          - actuellement sortie en <bibl> => passer en biblStruct ?
    -->
    
    <!-- conteneur section -->
    <xsl:template match="/article/bm/bibl">
        <div type="references">
            <listBibl>
                <xsl:apply-templates select="bib"/>
            </listBibl>
        </div>
    </xsl:template>
        
    <!-- <bib> == références structurées
                  ++++++++++++++++++++++
         IN:  /article/bm/bibl/bib
             << reftxt
        
        +++++++++++++++++++
        OUT: tei:bibl+/*
        +++++++++++++++++++
    
    Format visé en sortie: tei training bibl for grobid-train
                           => tel qu'il est décrit dans l'arbre ci-dessous
    
    Arbre tagstats du format training sur 354 fichiers, 4011 citations:
    cf. exemples sur https://github.com/kermitt2/grobid/tree/master/grobid-trainer/resources/dataset/citation/corpus    -->
    
    <!-- bib << >> tei:bibl
        
        TODO + tard pour biblStruct:
        Aiguillage possible selon les types de refbib via des tests comme :
          reftxt[jtl|vid]  ==> article de périodique
          reftxt[btl]  ==> livre ou chapitre de livre
    -->
    <xsl:template match="bib">
        <bibl type="grobid-trainerlike">
            <xsl:apply-templates/>
        </bibl>
    </xsl:template>
        
     
    <!--refbib entière dans sa forme textuelle éditée-->
    <xsl:template match="reftxt">
        <xsl:apply-templates/>
    </xsl:template>
    
    <!--sauts de lignes originels de la refbib-->
    <xsl:template match="newline">
        <lb rend="LB"/>
    </xsl:template>
    
    <!-- éléments stylistiques non utiles pour grobid-trainerlike -->
    <xsl:template match="i | b | sub | super | sc">
        <xsl:apply-templates/>
    </xsl:template>
    
    <!-- titres -->
    <xsl:template match="atl|btl|jtl">
        <title>
            <xsl:attribute name="level">
                <xsl:choose>
                    <!-- atl = article-title-->
                    <xsl:when test="name() = 'atl'">a</xsl:when>
                    
                    <!-- btl = book-title-->
                    <xsl:when test="name() = 'btl'">m</xsl:when>
                    
                    <!-- jtl = journal-title-->
                    <xsl:when test="name() = 'jtl'">j</xsl:when>
                </xsl:choose>
            </xsl:attribute>
            <xsl:apply-templates mode="intitle"/>
        </title>
    </xsl:template>
    
    <!-- cd = année -->
    <xsl:template match="cd">
        <date>        
            <xsl:apply-templates/>
        </date>
    </xsl:template>
    
    <!-- vid volume -->
    <xsl:template match="vid">
        <biblScope unit="vol">
            <xsl:apply-templates/>
        </biblScope>
    </xsl:template>
    
    <!-- iid = issue -->
    <xsl:template match="iid">
        <biblScope unit="issue">
            <xsl:apply-templates/>
        </biblScope>
    </xsl:template>
    
    <!-- refdoi = DOI -->
    <xsl:template match="refdoi">
        <idno>
            <xsl:apply-templates/>
        </idno>
    </xsl:template>
    
    <!-- url = ptr quand "titre" -->
    <xsl:template match="url">
        <ptr type="web">
            <xsl:value-of select="."/>
        </ptr>
    </xsl:template>
    
    <!-- weblink = ptr -->
    <xsl:template match="weblink">
        <ptr type="web">
            <xsl:choose>
                <!-- parfois meme valeur -->
                <xsl:when test="@url = .">
                    <xsl:value-of select="@url"/>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="."/> <xsl:value-of select="@url"/>
                </xsl:otherwise>
            </xsl:choose>
        </ptr>
    </xsl:template>
    
    <!-- natlink = ???
        ex: <natlink extrefid="00000"/><!- - 387908a0 - ->
        
        je passe ces refs mystérieuses toutes à 0 mais avec commentaire variable
    -->
    <xsl:template match="natlink"/>    
    
    <!-- refau = auteur <<<<<<<<<<<<<<<<<<<<<<  -->
    <xsl:template match="refau">
        <author rend="GRP">
            <!-- On distingue prénom (fnm) et nom (snm) mais l'entraînement 
                 bako.grobid-trainerlike() les **enlèvera** s'il travaille 
                 sur les modèles de type 'citations'.
            -->
            <xsl:apply-templates select="snm|fnm|suff"/>
        </author>
    </xsl:template>

    <!-- pagination   /!\ 2 éléments temportaires pour grobid-train et non pas tout dans
        des attributs @to et @from comme habituellement en TEI...
        En effet, dans l'entrainement, ils devront être groupés par leur tiret réel
        mais impossible en XSL de prendre spécifiquement le tiret hors balise
    -->
    
    <!-- page ppf -->
    <xsl:template match="ppf">
        <biblScope unit="pp" rend="FROM">
            <xsl:value-of select="."/>
        </biblScope>
    </xsl:template>
    
    <!-- page ppl -->
    <xsl:template match="ppl">
        <biblScope unit="pp" rend="PGTO">
            <xsl:value-of select="."/>
        </biblScope>
    </xsl:template>
    <!--
    ======== tei pre-training bibl ========  (convertissable par bako.py en trainers)

            └── bibl 4011
      X         ├── note[@rend="LB"]
                ├── lb[@rend="LB"] 326       (sauts de lignes de l'exemplaire réel) 
                ├── author[@rend="GRP"] 3551
                │   ├── surname[@rend="DEL"]
                │   ├── forename[@rend="DEL"]
                │   └── genName[@rend="DEL"]
      X         ├── editor[@rend="GRP"] 121 
                │   └─(Nature: editeurs indistincts)
                │     (ils mettent tout sous refau ou l'ignorent)
      X         ├── orgName 85
                │    └─(Nature: pas trouvé d'exemple...)
                ├── date 3994
                ├── biblScope[@unit="pp"][@rend="FROM"] 3401
                ├── biblScope[@unit="pp"][@rend="TO"] 2955
                ├── biblScope[@unit="vol"] 3076
                ├── biblScope[@unit="issue"] 323
                ├── biblScope[@unit="chapter"] 4
      X         ├── pubPlace 554 
      X         ├── publisher 302
                │    └─(Nature: publisher et pubPlace jamais annotés)
                │       (grep "\<btl\>" pour le voir)
      X         ├── note 107 
      X         ├── note[@type="report"] 76 
                │    └─(Nature: les notes **ne sont pas** annotées)
                ├── ptr[@type="web"] 13 
                ├── idno 18         
                ├── title[@level="a"] 3316
                ├── title[@level="j"] 3049
                ├── title[@level="j"][@type="short"] 2  
                ├── title[@level="m"] 662
                └── title[@level="s"] 1
    ^^^^
    non produits
    par cette feuille
    
    
    Pour obtenir un format trainers sans aucun ragréage 
    c'est possible grace au produit de cette feuille pour 2 modèles
     => pour le modèle citations
         - supprimer tous les sauts de ligne interne
         - supprimer @rend='LB et LABEL'
         - supprimer @rend='DEL'
         - grouper @rend='GRP'
         - grouper les pages ET leur délimiteur non parsé
         - remplacer @unit par @type dans les biblScope
     => pour le modèle authornames
         - ne garder que chaque groupe auteur ou éditeur
         - garder les DEL
     
     NB pour le modèle refseg ce serait aussi envisageable
         - juste LABELS si présents, et tout le reste groupé sauf rend=LB
         - mais actuellement pas alignable sur tokens...  

   ===================================
    -->


    <!-- FIN REFERENCES *********************** -->



    <!-- OBJECTS ***********************
        IN: /article/... <<
        
        OUT: /TEI/text/back
        >> div[@type="objects"]
        
        Reste à faire
    -->
    
    <!-- objects -->
    <xsl:template match="objects">
        <xsl:comment>TODO: objets liés (figures, tables)</xsl:comment>
        <div type="objects"/>
    </xsl:template>


    <!-- FIN OBJECTS *********************** -->

</xsl:stylesheet>