Open saroulle opened 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?
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.
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>
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()
@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>
@vasaura le problème avec le bibl a l'explication très simple: il y a 2 balises fermantes
@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>
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
@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
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.
@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 ?