Chartes-TNAH / theses

Positions des thèses de l’École des chartes
0 stars 2 forks source link

Modèle TeiHeader pour template #22

Open saroulle opened 6 years ago

saroulle commented 6 years ago

@architexte @MrGecko : Voici le modèle final du Teiheader à partir duquel nous voulons réaliser un template pour créer automatiquement des fichiers xml depuis les données du fichier csv des positions.

Les modifications apportées sont les suivantes :

Cela vous convient-il ?

 <teiHeader>
    <fileDesc>
        <titleStmt>
            <title type="main">L’abolition des capitulations et la suppression des tribunaux mixtes en Egypte (1937)</title>      
            <author ref="https://www.idref.fr/14974983X">Philippe Chevrant-Breton</author>
        </titleStmt>
        <editionStmt>
            <edition>École nationale des chartes</edition>
        </editionStmt>
        <publicationStmt>
            <publisher>École nationale des chartes</publisher>
            <date when="2018"/>
            <availability status="restricted">
                <licence target="http://creativecommons.org/licenses/by-nc-nd/3.0/fr/"/>
            </availability>
        </publicationStmt>
        <sourceDesc>
            <seriesStmt>
                <title>Positions des thèses</title>  
                <idno type="issn">0755-2076</idno>
                <idno type="URI">http://www.sudoc.fr/013565311</idno>                
                <biblScope unit="annee">2000</biblScope> <!-- csv file : promotion -->
            </seriesStmt>
            <relatedItem type="these">
                <bibl>
                     <title ref="http://www.sudoc.fr/149646607">L’abolition des capitulations et la suppression des tribunaux mixtes en Egypte (1937)</title> <!-- csv file: ppn_these et titre-->
                </bibl>
            </relatedItem>
        </sourceDesc>
        <revisionDesc>
            <change who="Aurelia Vasile" when="2018-01-03">creation du template teiHeader</change>
            <change who="Sabine Roulleau" when="2018-01-29">ajout d'élément au niveau du sourceDesc du template teiHeader</change>
        </revisionDesc>
    </fileDesc>
    <profileDesc>
        <creation>
            <date when="2000"/> <!-- csv file : promotion -->
        </creation>
        <langUsage>
            <language ident="fr"/>
        </langUsage>
    </profileDesc>
</teiHeader>
vasaura commented 6 years ago

Je vais reprendre la cRefPattern qu'a crée Anastasiia ici #21 et je vais mettre à jour ce doc. En revanche, je dois faire une précision. Le fait d'écrire l'attribut key de cette manière (key="Chevrant-Breton, Philippe (1972-...)") nous oblige à rajouter cette key à la main dans chaque fichier, car c'est une forme normalisée (avec l'année de naissance, etc) et la simple concaténation des colonnes csv ne suffit pas. Sommes-nous d'accord pour continuer sur cette voie?

saroulle commented 6 years ago

Tu as raison Aurelia, pour la key de l'auteur, il faut juste faire une concaténation du nom et du prénom. Tant pis pour la forme retenue normalisée du SUDOC, on ne va pas les récupérer toutes dans les notices IDRef. Je n'avais pas pensé à cela.

vasaura commented 6 years ago

Voici la version template du fichier teiHeader à partir duquel on a créé automatiquement les fichiers teiHeader pour chaque position de 2000 à 2015

<?xml version="1.0" encoding="UTF-8"?>
<?oxygen RNGSchema="../theses.rng" type="xml"?>
<TEI xml:lang="fr" xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader>
    <fileDesc>
        <titleStmt>
            <title type="main">$titre$</title>      
            <author ref="https://www.idref.fr/$ref$">$author$</author>
        </titleStmt>
        <editionStmt>
            <edition>École nationale des chartes</edition>
        </editionStmt>
        <publicationStmt>
            <publisher>École nationale des chartes</publisher>
            <date when="2018"/>
            <availability status="restricted">
                <licence target="http://creativecommons.org/licenses/by-nc-nd/3.0/fr/"/>
            </availability>
        </publicationStmt>
        <sourceDesc>
            <seriesStmt>
                <title>Positions des thèses</title>  
                <idno type="issn">0755-2076</idno>
                <idno type="URI">http://www.sudoc.fr/013565311</idno>                
                <biblScope unit="annee">$promotion$</biblScope> 
            </seriesStmt>
            <relatedItem type="these">
                <bibl>
                     <title ref="http://www.sudoc.fr/$ppnThese$">$titre$</title> 
                </bibl>
            </relatedItem>
        </sourceDesc>
        <revisionDesc>
            <change who="Aurelia Vasile" when="2018-01-03">creation du template teiHeader</change>
            <change who="Sabine Roulleau" when="2018-01-29">ajout d'élément au niveau du sourceDesc du template teiHeader</change>
            <change who="Ekaterina Batova" when="2018-02-03">creation d'arborescence des fichiers</change>
            <change who="Sybille Clochet" when="2018-02-10">creation du teiBody</change>
            <change who="Anastasiia Zadykhina" when="2018-02-10">ajout d'élément au niveau du encodingdesc</change>
        </revisionDesc>
    </fileDesc>
    <encodingdesc>
    <refsDecl n="CTS">
      <cRefPattern n="chapter"
        matchPattern="(\w+).(\w+)"
        replacementPattern="#xpath(/tei:TEI/tei:text/tei:body/tei:div[@n='$1']/tei:div[@n='$2'])">
        <p>This pointer pattern extracts part and chapter</p>
      </cRefPattern>
      <cRefPattern n="part"
        matchPattern="(\w+)"
        replacementPattern="#xpath(/tei:TEI/tei:text/tei:body/tei:div[@n='$1'])">
        <p>This pointer pattern extracts introduction, sources, part, conclusion and appendix</p>
      </cRefPattern>
    </refsDecl>
  </encodingdesc>
    <profileDesc>
        <creation>
            <date when="$promotion$"/> 
        </creation>
        <langUsage>
            <language ident="fr"/>
        </langUsage>
    </profileDesc>
</teiHeader>
vasaura commented 6 years ago

Voici le code qui nous a permis d'injecter les données du fichier csv dans le teiHeader pour chaque auteur

def teiHeader (templateTei="/url/teiHeader_template.xml", fichierCSV="/url/theses/theses.csv"):
  with open (templateTei) as fichier:
    template=fichier.read()
  import csv
  with open (fichierCSV) as fichier:
    reader=csv.DictReader(fichier)   
    for ligne in reader:
      if int(ligne["promotion"])>1999:
        fichierAuteur=template.replace("$titre$", ligne["titre"]).replace("$ref$", ligne["authorRef"]).replace("$author$", ligne["prenom"]+" "+ligne["nom"]).replace("$promotion$", ligne["promotion"]).replace("$ppnThese$", ligne["ppn_these"])
        with open ('url/theses/data/pos'+ligne["promotion"]+'/pos'+ligne["id"]+"/"+ligne["nom"]+"_teiHeader"+'.xml', 'w') as teiComplet:  
          teiComplet.write(fichierAuteur)
teiHeader()  
vasaura commented 6 years ago

@MrGecko @architexte Après avoir lancé le teste travis, le fichier teiHeader a plusieurs erreurs de configuration. Nous avons essayé de les corriger avec @saroulle. Malheureusement, nous n'avons pas pu garder l'information concernant les thèses qui sont à l'origine des positions (surtout que nous avons trouvé les identifiants de chaque thèse à partir de SUDOC). J'ai lancé encore travis et il reste encore deux types d'erreurs: les balises de mise en forme des titres (abbr, sup, i) et un problème avec la balise bibl. Voici le message

The element type "bibl" must be terminated by the matching end-tag "".

Voici aussi le nouveau template teiHeader. Si vous voyez où est l'erreur faites-nous signe

<?xml version="1.0" encoding="UTF-8"?>
<?oxygen RNGSchema="../theses.rng" type="xml"?>
<TEI xml:lang="fr" xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader>
    <fileDesc>
        <titleStmt>
            <title type="main">$titre$</title>      
            <author ref="https://www.idref.fr/$ref$">$author$</author>
        </titleStmt>
        <editionStmt>
            <edition>École nationale des chartes</edition>
        </editionStmt>
        <publicationStmt>
            <publisher>École nationale des chartes</publisher>
            <date when="2018"/>
            <availability status="restricted">
                <licence target="http://creativecommons.org/licenses/by-nc-nd/3.0/fr/"/>
            </availability>
        </publicationStmt>
        <seriesStmt>
                <title>Positions des thèses</title>  
                <idno type="issn">0755-2076</idno>
                <idno type="URI">http://www.sudoc.fr/013565311</idno>                
        </seriesStmt>
        <sourceDesc>
            <bibl>
                    <title>Positions des thèses soutenues par les élèves de la promotion de $promotion$ pour obtenir le diplôme d’archiviste paléographe</title>, <pubPlace>Paris</pubPlace>,<publisher>École nationale des chartes</publisher><biblScope unit="annee">$promotion$</biblScope> </title>  
            </bibl>     
        </sourceDesc>
        <revisionDesc>
            <change who="Aurelia Vasile" when="2018-01-03">creation du template teiHeader</change>
            <change who="Sabine Roulleau" when="2018-01-29">ajout d'éléments au niveau du sourceDesc du template teiHeader</change>
            <change who="Ekaterina Batova" when="2018-02-03">creation d'arborescence des fichiers</change>
            <change who="Sybille Clochet" when="2018-02-10">creation du teiBody</change>
            <change who="Anastasiia Zadykhina" when="2018-02-10">ajout d'éléments au niveau du encodingdesc</change>
        </revisionDesc>
    </fileDesc>
    <encodingDesc>
    <refsDecl n="CTS">
      <cRefPattern n="chapter"
        matchPattern="(\w+).(\w+)"
        replacementPattern="#xpath(/tei:TEI/tei:text/tei:body/tei:div[@n='$1']/tei:div[@n='$2'])">
        <p>This pointer pattern extracts part and chapter</p>
      </cRefPattern>
      <cRefPattern n="part"
        matchPattern="(\w+)"
        replacementPattern="#xpath(/tei:TEI/tei:text/tei:body/tei:div[@n='$1'])">
        <p>This pointer pattern extracts introduction, sources, part, conclusion and appendix</p>
      </cRefPattern>
    </refsDecl>
  </encodingDesc>
    <profileDesc>
        <langUsage>
            <language ident="fr"/>
        </langUsage>
    </profileDesc>
</teiHeader>
AnZadykhina commented 6 years ago

@vasaura le problème avec le bibl a l'explication très simple: il y a 2 balises fermantes Positions des thèses soutenues par les élèves de la promotion de $promotion$ pour obtenir le diplôme d’archiviste paléographe <strong>, Paris,École nationale des chartes$promotion$ .

saroulle commented 6 years ago

@AnZadykhina Tu as raison, il y a deux balises fermantes title dans la balise bibl. J'ai corrigé et vérifié avec un TBE validation service et ça fonctionne, même en rajoutant relatedItem dans la balise bibl.

Voici la version valide :

<?xml version="1.0" encoding="UTF-8"?>
<?oxygen RNGSchema="../theses.rng" type="xml"?>
<TEI xml:lang="fr" xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader>
    <fileDesc>
        <titleStmt>
            <title type="main">$titre$</title>      
            <author ref="https://www.idref.fr/$ref$">$author$</author>
        </titleStmt>
        <editionStmt>
            <edition>École nationale des chartes</edition>
        </editionStmt>
        <publicationStmt>
            <publisher>École nationale des chartes</publisher>
            <date when="2018"/>
            <availability status="restricted">
                <licence target="http://creativecommons.org/licenses/by-nc-nd/3.0/fr/"/>
            </availability>
        </publicationStmt>
        <seriesStmt>
                <title>Positions des thèses</title>  
                <idno type="issn">0755-2076</idno>
                <idno type="URI">http://www.sudoc.fr/013565311</idno>                
        </seriesStmt>
        <sourceDesc>
            <bibl>
                    <title>Positions des thèses soutenues par les élèves de la promotion de $promotion$ pour obtenir le diplôme d’archiviste paléographe, <pubPlace>Paris</pubPlace>,<publisher>École nationale des chartes</publisher><biblScope unit="annee">$promotion$</biblScope></title>
            <relatedItem type="these">
                <bibl>
                     <title ref="http://www.sudoc.fr/$ppnThese$">$titre$</title> 
                </bibl>
            </relatedItem>
            </bibl>     
        </sourceDesc>
    </fileDesc>
    <encodingDesc>
    <refsDecl n="CTS">
      <cRefPattern n="chapter"
        matchPattern="(\w+).(\w+)"
        replacementPattern="#xpath(/tei:TEI/tei:text/tei:body/tei:div[@n='$1']/tei:div[@n='$2'])">
        <p>This pointer pattern extracts part and chapter</p>
      </cRefPattern>
      <cRefPattern n="part"
        matchPattern="(\w+)"
        replacementPattern="#xpath(/tei:TEI/tei:text/tei:body/tei:div[@n='$1'])">
        <p>This pointer pattern extracts introduction, sources, part, conclusion and appendix</p>
      </cRefPattern>
    </refsDecl>
  </encodingDesc>
    <profileDesc>
        <langUsage>
            <language ident="fr"/>
        </langUsage>
    </profileDesc>
    <revisionDesc>
            <change who="Aurelia Vasile" when="2018-01-03">creation du template teiHeader</change>
            <change who="Sabine Roulleau" when="2018-01-29">ajout d'éléments au niveau du sourceDesc du template teiHeader</change>
            <change who="Ekaterina Batova" when="2018-02-03">creation d'arborescence des fichiers</change>
            <change who="Sybille Clochet" when="2018-02-10">creation du teiBody</change>
            <change who="Anastasiia Zadykhina" when="2018-02-10">ajout d'éléments au niveau du encodingdesc</change>
        </revisionDesc>
</teiHeader>
vasaura commented 6 years ago

Super. merci pour ce travail. Hier soir je n'arrivais plus à voir clair. Donc, maintenant, les theses sont back in business 👍

...en fait, on a toujours des erreurs (à voir aussi sur http://teibyexample.org/xquery/TBEvalidator.xq les balises pubPlace, publisher biblScope du title + les balises de mise en forme du titre que j'ai évoquées plus haut Il y avait aussi revisionDesc, mais je l'ai corrigé dans la version ci-dessus

AnZadykhina commented 6 years ago

@vasaura On a des problèmes avec bibl et title parce que TEI ne permet pas ces balises dans le title, mais je ne sais pas qu'est-ce qu'on peut faire avec des balises de mise en forme. Je vais t'envoyer le fichier avec le body et header valides par essayer de lancer le test encore une fois

vasaura commented 6 years ago

oui, je sais pour bibl et le title, mais nous avions des consignes de garder ces balises. En revanche, toute autre erreur doit être évitée. Je pense que le Header est bon à ce stade.