ODD pour COLaF

Table of contents

1. Guide l'encodage du projet COLaF

1.1. Introduction

À travers le projet COLaF (Corpus et Outils pour les Langues de France), Inria a pour objectif de contribuer au développement de corpus et d’outils libres pour le français et les autres langues de France, en étroite collaboration avec des partenaires académiques et institutionnels.

Le périmètre de COLaF inclut à la fois :

  • les données textuelles (ALMAnaCH, Centre Inria de Paris),
  • les données de parole et de langue des signes (MULTISPEECH, Centre Inria de l’Université de Lorraine).

COLaF vise à couvrir la diversité du français et des langues de France :

  • il a pour ambition de couvrir un échantillon aussi divers que possible: français de France et d’ailleurs, langues régionales, créoles à base française (y compris hors de France), langues autochtones, langues d’immigration, langue des signes française;
  • l’ensemble des axes de variation seront étudiés, au-delà de l’état standard de la langue, et notamment les langues de spécialité, la diachronie, les états non standard (réseaux sociaux, langue d’apprenants, etc.).

Les travaux au sein du projet couvrent notamment l’acquisition et structuration de textes à partir de sources non textuelles (livres, enregistrements audio, etc.), la classification par langues et par variétés linguistiques de gros volumes de textes (en lien étroit avec le projet OSCAR), le développement de modèles d’annotation et de transformation (traduction, normalisation, synthèse vocale, génération de langue des signes) au service du développement de corpus et de l’exploitation des ressources nouvellement créées.

COLaF est un DEFI Inria porté par Benoît Sagot (responsable de l’équipe-projet ALMAnaCH) et Slim Ouni (membre de l’équipe-projet MULTISPEECH).

Ce guide d'encodage vise à uniformiser les encodages des documents produits dans le cadre du projet COLaF. A partir des guidelines TEI, deux éditeurs peuvent faire pour encoder un même document des choix complètement différents. Ce fichier permet de pallier à cela en fournissant une description détaillée des choix d'encodage réalisés dans le cadre du projet et une ODD permettant de vérifier si les encodages réalisés se calquent bien sur cette documentation. Dû à la nature du projet, plusieurs difficultés se sont présentées à nous: la variété des documents différents à encoder et la représentation détaillée de langues parfois non décrites par les normes. Pour remédier à cela, les structures décrites pour chaque type de documents traité sont assez simple et la customization de l'ODD se concentre sur la représentation de la langue dans les métadonnées et le texte, à plusieurs niveaux de granularité et avec la possibilité de fournir des informations sur les prédictions de modèles de détection de langue.

1.2. Règles de base

1.2.1. Identifiant de fichier et organisation de corpus

Le corpus COLaF est composé de Sous-corpus (ou collection) construits en fonction d'une provenance commune et/ou contenant des documents similaires. Il est possible de classer les fichiers d'une collection dans des dossiers thématiques (Par exemple, Molyé est organisé par genre littéraire car contenant des pièces de théâtre, de la prose et des poèmes.)

L'identifiant du fichier apparait dans un element <idno> dans les métadonnées et nomme le fichier. Il doit avoir pour structure "{NomCollection}_{Identifiant}". Le nom de la collection doit être une réduction en un ou deux mots du nom du sous corpus sans espace ni accent (Par exemple Molyé devient molye, forum Occitania ForumOccitania....). Dans le cas d'un document qui a déjà été édité et possédant un identifiant, on reprend cet identifiant pour la partie Identifiant. Dans le cas d'un élément provenant du web, on récupère l'identifiant associé (URI). Autrement, l'identifiant sera un numéro incrémenté.

<idno>PicConcours_01</idno>

1.2.2. Format des valeurs d'attributs et dates

Toute valeur d'attribut ne doit pas contenir d'espace ou d'accent.

Le format des dates est prédéfini et nécessite d'utiliser l'attribut when. Si on souhaite ajouter le temps en heure, dans le cas de contenu obtenu sur internet notamment, il est nécessaire de la formater sous la forme YYYY-MM-DDTHH:SS:00Z.

<date when="1890-03-16"/> <post when="2011-12-06T22:45:00Z"/> <post when="2012-03-28T03:12:00Z"/>

1.2.3. Représentation de la langue

La représentation de la langue est au coeur du travail du projet COLaF. Le but est de représenter la variation linguistique de chaque texte le mieux possible au niveau dialectal, géographique, chronologique et même social.

Pour ce faire, il faut décrire de la façon la plus précise possible les langues présentes dans les documents, via la balise <language> présente dans les métadonnées.Pour la langue, nous utilisons la norme Glottolog une base de données de langues et dialectes associant à chacun un identifiant unique et stable et développé par l'Institut Max Planck. Le script est décrit avec la norme ISO 15924, bien que sa valeur sera dans la plupart des cas "latn".

<language ident="stan1290usage="100">  <idno type="languexml:id="stan1290"/>  <idno type="scriptxml:id="latn"/>  <name>Français</name>  <date when="1860">1860</date>  <location>   <settlement>Paris</settlement>  </location> </language>

La langue de base des documents encodés est le français moderne de métropole. Sans contre-indication claire, toutes les métadonnées et le texte sont dans cette langue. Dans le cas où une autre langue est présente dans le document, il est nécessaire de l'indiquer avec l'attribut xml:lang sur la balise qui encode cet élément au niveau le plus haut. La valeur de cet attribut sera l'identifiant de la langue - valeur de ident de la balise <language>. Par exemple, un document en picard aura un titre et un texte en picard. Sur la balise décrivant le titre dans les métadonnées, comme il s'agit d'un titre en picard, faut ajouter cette information.Comme tout le texte est en picard, on ajoute cette information au niveau le plus haut dans sur la balise <text>.

<text xml:lang="stan1290"/> <title xml:lang="pica1241">Ch'viux bertcheux</title>

1.3. Le TEIHeader

Le TeiHeader contient les métadonnées du document. Il est divisé en quatre zones principales:

  • fileDesc: description électronique du fichier
  • encodingDesc: description de l'encodage
  • profileDesc: description de données non bibliographiques
  • revisionDesc: détail des modifications du fichier

1.3.1. Le FileDesc

1.3.1.1. Identification du document

Le TitleStmt doit permettre l'identification du fichier. Il donne le nom du fichier, ses auteurs et éditeurs. Tous ces éléments sont obligatoires.

  • <title>:Titre du document (type-main) et de la collection dont il est extrait (type-collection)
  • <author>: Auteur du texte encodé quand il y en a un.
  • <respStmt>: Responsables de l'édition TEI du document. <resp> indique le rôle que la personne a joué dans l'encodage de l'édition TEI. Il peut prendre les valeurs
    • Digitized by
    • Transcribed by
    • Encoded by
    <persName> contient le nom de la personne structuré sous la forme <surname>, <forename> et <idno> où idno correspond à l'orcid. Chaque <persName> a un xml:id qui est construit sous la forme "{InitialePrénom}{Nom}".
  • <principal>: Nom du chercheur qui est principalement responsable de la création d'un texte électronique. Ici Benoît. Se structure de la même façon que les personnes responsables avec <persName>.
  • <funder>: Nom de l'organisme financeur du projet. Ici l'Inria.
<titleStmt>  <title type="main">Lucignole</title>  <title type="collection">ELteC Collection</title>  <author>Mendès, Catulle (1841-1909)</author>  <respStmt>   <resp>Encoded by</resp>   <persName xml:id="JJANES">    <surName>Janès</surName>    <foreName>Juliette</foreName>    <idno type="orcid">0000-0002-8971-6173</idno>   </persName>  </respStmt>  <principal>   <persName xml:id="BSAGOT">    <surName>Sagot</surName>    <foreName>Benoît</foreName>    <idno type="orcid">0000-0001-8957-9503</idno>   </persName>  </principal>  <funder>Inria</funder> </titleStmt>

1.3.1.2. Informations de publication du document

Le <publicationStmt> détaille les informations associées à la publication du document XML-TEI.

  • <idno>: l'identifiant du fichier
  • <publisher>: Nom de l'éditeur scientifique de l'édition. Ici COLaF. Un attribut ref fait le lien avec le site internet du projet.
  • <date> date d'ajout du document dans COLaF
  • <licence> licence du document récupéré ou bien celle de COLaF
<publicationStmt>  <idno>PicConcours_001</idno>  <publisher ref="https://colaf.huma-num.fr/">Corpus et Outils    pour les Langues de France (COLaF)</publisher>  <date when="2023-11-24"/>  <availability>   <licence target="https://creativecommons.org/licenses/by/4.0/">CC      BY 4.0</licence>  </availability> </publicationStmt>

1.3.1.3. Bibliographie du texte encodé

Le <sourceDesc>:Informations bibliographiques sur le texte encodé. Les données bibliographiques sont contenues dans une balise <bibl>. En fonction du format dans lequel est récupéré le texte encodé, plusieurs <bibl> peuvent coexister avec des type différents. Si le document est une source imprimée de base, l'attribut type va avoir pour valeur "printSource". S'il a une version numérique, qu'il s'agisse d'un document nativement numérique ou déjà traité par la collection dont il est issu, le type aura pour valeur "digitalSource". L'idée est de récupérer le plus d'informations possibles, si elles sont déjà indiquées, en se référant aux balises pouvant être contenues dans la balise <bibl>. Dans tous les cas, il est nécessaire d'avoir, pour chaque <bibl>, au moins les balises suivantes:

  • <ptr>avec l'attribut target pointant vers le lien d'où le texte a été récupéré/la collection est issus.
  • <title>
  • <author>
  • <publisher>
  • <date> avec l'attribut when
<sourceDesc>  <bibl type="printSource">   <title>Lucignole</title>   <author>Mendès, Catulle (1841-1909)</author>   <pubPlace>Paris</pubPlace>   <publisher>E. Dentu</publisher>   <date when="1892"/>  </bibl>  <bibl type="digitalSource">   <ptr target="https://zenodo.org/communities/eltec/"/>   <title>Lucignole : édition ELTeC</title>   <author>Christof Schöch</author>   <author>BnF</author>   <publisher ref="https://distant-reading.net">COST Action      "Distant Reading for European Literary History"      (CA16204)</publisher>   <date when="2021-04-09"/>  </bibl> </sourceDesc>

1.3.1.4. Mesures du document

<extent> indique les dimensions du texte encodé sous la forme d'une balise <measure>. Plusieurs balises <measure> peuvent coexister les unes après les autres en fonction de ce qui est indiqué dans la collection extraite. Un attribut unit prend pour valeur l'unité décrite pouvant être tokens, words, sentences, pages. Une balise <measure> dont l'attribut unit a pour valeur token_colaf doit obligatoirement être présente.

Pour ajouter la valeur de token_colaf, une feuille XSLT/ un programme python est disponible dans le dépôt github des métadonnées du projet.

<extent>  <measure unit="words">29772</measure> </extent>

1.3.2. EncodingDesc - Applications employées

L'encodingDesc contient des informations sur les applications employées pour construire le fichier. Chaque application employée pour obtenir le fichier est rapporté dans une balise <application>. Elle doit contenir:

  • ident avec un identifiant pour s'y réferer si nécessaire.
  • version
  • source (optionnel): si l'application est dérivée d'une autre application déjà mentionnée.
  • <label>: le nom de l'application
  • <desc>:la description de l'application
    • Description non structurée si nécessaire
    • description avec information bibliographique courte avec la balise <bibl>

qui détaille le nom de l'application, sa version utilisée, son nom dans une balise <label> et un lien qui pointe vers l'appli avec la balise <ptr>.

<appInfo>  <application ident="forum_to_tei"   version="0.0.3">   <label>forum_to_tei.py</label>   <desc>    <bibl>     <title>Script python forum_to_tei.py</title>     <author>      <forename>Oriane</forename>      <surname>Nédey</surname>     </author>     <date when="2024"/>    </bibl>   </desc>   <ptr target="https://github.com/DEFI-COLaF/forum-occitania-scraping/blob/forum_to_tei/forum_to_tei.py"/>  </application>  <application ident="fasttext-lid218e"   version="1.0">   <label>FastText model LID218e released as part of the NLLB      project</label>   <desc>    <bibl type="article">     <title>No Language Left Behind: Scaling Human-Centered          Machine Translation</title>     <ptr target="http://arxiv.org/abs/2207.04672"/>     <author>NLLB Team</author>     <date when="2022"/>    </bibl>   </desc>   <ptr target="https://tinyurl.com/nllblid218e"/>  </application>  <application ident="fasttext-lid218e-post"   source="#forum_to_teiversion="0.0.3">   <label>forum_to_tei - predict_post_language</label>   <desc> Custom language identification wrapper for predicting the      language of a post based on FastText model LID218e.      Corresponds to function      forum_to_tei.lid.predict_post_language <ptr source="https://github.com/DEFI-COLaF/forum-occitania-scraping/blob/9a2202d87fb5ea0f9ee345c7b20f6407dc539a75/tei_converter/lid.py#L161"     target="#forum_to_tei"/> . The post is first      preprocessed by: - removing potential blockquotes, URLs and      emails that could harm the predictions quality - removing      all tags (by extracting the raw text from the HTML tree) The      function calls the FastText model for prediction of the top      5 labels. Because posts can be very small and FastText      predictions often returns wrong and improbable labels, after      a detailed analysis of the forum's posts, only the following      languages (available in the set of model labels) have been      set as plausible: Occitan, French, Catalan, English,      Spanish. A main post language is selected only if the top      label is Occitan or one of the plausible labels along with a      high confidence score (0.8 or 0.6 if the user speaks      Occitan). Occitan can be added as an alternative probable      language if it was not already selected as the main post      language, but is present in the set of predictions. Scores      corresponds to the FastText predictions scores (between 0      and 1). </desc>  </application> </appInfo>

1.3.3. ProfileDesc

Le ProfileDesc contient des informations complémentaires sur le fichier spécifique au projet. Dans le cas de COLaF il s'agit d'informations sur les langues présentes dans les documents, le type/genre du document et de façon optionnelle, les locuteurs présents dans le document.

1.3.3.1. Représentation des langues

Pour une description de la représentation des langues au niveau global du fichier, se réferer à la première partie. Pour satisfaire les besoins du projet, la balise <langue> est détaillée avec des informations sur son script, la période et le lieu.

La balise <language> contient:

  • ident: permet d'identifier la langue afin de la réutiliser dans le texte. Sa valeur correspond à l'identifiant glotto. Si une même langue est présente plusieurs fois dans le document avec des variations de lieu/temps, il est nécessaire de créer autant de balise <langue> que nécessaire. Alors cet identifiant sera adjoint d'un numéro à incrémenter: {IDGlotto}_001, {IDGlotto}_002....
  • usagetaux d'utilisation de la langue dans le texte du document. Si seule cette langue est employée, elle sera de 100, si une autre langue est employée autant de fois, de 50, si elle apparait de temps en temps mais reste fréquente 25, si elle apparait épisodiquement 10 et ainsi de suite. La somme des valeurs d'usage doit être de 100. Si le texte est traduit entièrement d'une autre langue, on peut ajouter cette langue et la décrire ici dans une balise <language> qui aurait pour valeur de l'attribut usage 0.
  • <idno>:
    • Avec une valeur "language" de type:code de langue, récupéré dans Glottolog, le plus proche possible de la variété traitée.
    • Avec une valeur "script" de type: code de script, récupéré dans ISO 15924
  • <date>: date du texte, qui peut différer de la date de publication. A indiquer dans un attribut when.
  • <location>:location de la rédaction du date, quand c'est possible. A détailler en des balises plus précises:
    • <settlement>: pour la ville
    • <region>
    • <country>
<langUsage>  <language ident="stan1290usage="100">   <idno type="languexml:id="stan1290"/>   <idno type="scriptxml:id="latn"/>   <name>Français</name>   <date when="1860">1860</date>   <location>    <settlement>Paris</settlement>    <region>Ile-de-France</region>    <country>France</country>   </location>  </language> </langUsage>

1.3.3.2. Représentation du genre textuel

Au vu de la quantité et de la variété de documents que le projet COLaF va traiter, il est nécessaire d'organiser le corpus en indiquant le type de document traité et le genre. Pour cela on utilise une série de mots clefs, issus d'un vocabulaire contrôlé en cours de construction et disponible ici.

Ce vocabulaire fonctionne sur plusieurs niveaux: Supergenre, genre et mots-clefs. Supergenre et genre sont des listes fermées tandis que mots-clefs acceptent l'ajout de nouveaux termes. Il faut combiner ces informations pour définir au mieux le document traité. Par exemple, un article de journal d'informatique sur internet sera décrit par les supergenres Nonfiction et Web, le genre Press et le mot-clef Technology computing engineering.

Ces informations se trouvent, à l'instar des langues, dans le <ProfileDesc>. En suivant l'exemple plus bas, chaque <term> correspond à un mot clef. L'attribut type renseigne sur le niveau de description du terme: "supergenre", "genre" ou "mot-clef". Le terme est à inscrire en toutes lettres entre les deux balises.

<textClass>  <keywords>   <term type="supergenrerend="nonfiction">Non Fiction</term>   <term type="supergenrerend="web">Web</term>   <term type="genre"    rend="nonfiction-press">Press</term>   <term type="motclef"    rend="nonfiction-press-technology-engineering">Technology computing engineering</term>  </keywords> </textClass>

1.3.3.3. Représentation des locuteurs -OPTIONNEL

Contrairement aux autres métadonnées, cette métadonnée est optionnelle et est employable uniquement dans des cas précis de locuteurs différents de l'auteur. C'est par exemple le cas pour des pièces de théâtre, de participants à un débat transcrit ou des discussions sur internet de type Forum ou commentaires. L'idée est de pouvoir présenter les informations que l'on a sur les différents personnages qui participent au texte.

Pour ce faire, on utilise une balise <ParticDesc> qui contient une liste de personnes <Listperson>.Chaque personne est décrite avec une balise <person> qui contient les diverses informations disponibles sur elle, qui peuvent être (la liste est exhaustive, il n'est pas nécessaire d'avoir tout mais cela permet cependant de récupérer les informations que l'on a):

  • Nom, prénom, pseudonym: dans la balise <persName>
  • Age: dans l'attribut age, à sélectionner entre les valeurs "child" (jusqu'à 12 ans), "teenager" (12-18 ans), "young-adult" (18-30 ans), "adult" (30-60) et "senior".
  • Gender: dans l'attribut optionnelgender, à sélectionner entre les valeurs "F" et "M".
  • Lieu et date de naissance:dans la balise <birth> et<placeName> (qui peut être détaillé). L'attribut when permet d'indiquer la date de naissance.
  • Lieu de vie: dans la balise <residence> qui peut être détaillée en fonction des nécessités en utilisant les différentes balises de lieux.
  • Niveau social: dans la balise <socecStatut> et l'attribut rend en sélectionnant dans la liste de valeurs suivantes:"high","middle" et "low".
  • Langues parlées: où l'attribut level indique le niveau du locuteur: "fluent", "intermediate" ou "basic" et "tag" indique la langue parlée, la valeur correspondant à "ident" de la langue correspondant.
<particDesc>  <listPerson>   <person xml:id="P-0001gender="F"    age="young-adult">    <persName>Juliette Janès</persName>    <langKnowledge>     <langKnown level="fluent"      tag="met-fra-std">Français</langKnown>     <langKnown level="basic"      tag="met-oïl-pic">Picard</langKnown>    </langKnowledge>    <birth when="1998">     <placeName>Amiens</placeName>     <placeName xml:lang="met-oïl-pic">Anmien</placeName>    </birth>    <residence>     <settlement>Asnières sur Seine</settlement>     <region type="departement">Hauts de Seine</region>     <region type="admin">Ile de France</region>     <country>France</country>    </residence>    <socecStatut rend="middle"/>   </person>  </listPerson> </particDesc>

Chaque personne a un identifiant choisi numériquement afin d'associer les textes qu'il a écrit à son auteur à l'aide d'un ref="#identifiant". Il s'agit d'un exemple à retravailler sur un premier corpus de forums afin de définir exactement quelles balises conserver.

On considère que les métadonnées sont en français standard. Ainsi, si une information géographique est dans une autre langue, il faudra uniquement indiquer cette langue là avec l'attribut xml:lang comme dans l'exemple.

1.3.4. RevisionDesc

Le <revisionDesc> permet de conserver les modifications effectuées sur le document XML. Pour chaque modification une balise <change> est créée. Elle indique la date de la modification avec l'attribut when, la personne qui l'a modifié avec who qui renvoie à l'identifiant du responsable créé dans le <respStmt> et donne une brève information de la modification

<revisionDesc>  <change when="2023-12-19who="#JJANES">Création du fichier    TEI</change> </revisionDesc>

1.4. Structuration du texte

Le texte est encodé dans une balise <text> et est encodé dans une balise <front> pour les pages de titre et les sommaires et dans une balise <body> pour le corps du texte.

1.4.1. Divisions

Les divisions principales du texte sont indiquées et structurées avec la balise <div> qui peut être typée. Actuellement, les différentes valeurs que peut prendre l'attribut type dans le cadre de la division de base sont:

  • part
  • chapter
  • act
  • scene
  • forum
  • topic
  • letter

Dans le cas d'une page de titre, au sein de la balise <front>, la balise <div> est typée avec la valeur titlepage, sous la forme:

<div type="titlepage">  <p>Titre du document sur la page principale</p> </div>

1.4.2. Définition de la langue

Les identifiants employés pour décrire les langues dans le corps du texte correspondent aux identifiants créés dans les métadonnées de langue (balise language, attribut ident). Pour les appeler dans le corps du texte on ajoute un dièse (#) devant cet identifiant.

La langue principale du document est indiquée dans la balise <text> avec l'attribut xml:lang. Dans le cas où la langue employée change dans le texte, on réutilise cet attribut avec la valeur qui correspond sur la balise qui encadre la langue. Par exemple, dans un texte en français, un paragraphe est en alsacien, on utilisera donc la balise <p> avec l'attribut xml:lang et la valeur #lang-02pour encadrer le paragraphe en alsacien. L'attribut xml:lang est autorisé sur toutes les balises.

Dans le cas d'un code switching au sein même d'une phrase, on utilise la balise <foreign> avec l'attribut xml:lang pour encadrer le ou les mots dans une langue différente.

Si on applique un modèle du type FastText sur le document afin de prédire les langues présentes dans le document et donc compléter l'attribut xml:lang, il est possible d'en indiquer les résultats avec la balise <certainty>.L'attribut match pointe vers l'élément que le modèle prédit et qui n'est donc pas sûr avec un XPATH (ici l'attribut xml:lang de la balise post). Locus indique que l'on prédit la valeur de cet attribut. Source donne une information sur le modèle qui a été utilisé pour prédire cette valeur et correspond au titre du modèle. degree donne le score de confidence de la valeur résultat. Si jamais on a plusieurs résultats, comme ici, on peut employer l'attribut assertedValue qui permet de d'indiquer le résultat précis décrit, ici la langue suivant les codes COLAF.

<post when="2008-04-30T7:58:00"  who="#P-024xml:id="post-t00662-05704"  xml:lang="met-occ">  <certainty match="@xml:lang"   source="model.binlocus="valuedegree="0.6"/>  <certainty match="@xml:lang"   source="model.binlocus="valuedegree="0.5"   assertedValue="all-fra"/>  <p>Texte en occitan</p> </post>

L'exemple est extrait de la structuration COLaF d'un forum Occitania spécialisé en occitan. Il a été décidé que dans le cas où le locuteur a donné de plus amples informations sur son dialecte, et si le modèle prédit comme résultat la langue la plus proche, d'indiquer comme langue du post, paragraphe, de la division décrit(e), le dialecte du locuteur. Ainsi, dans le cas où, pour un post de forum, le modèle prédit qu'il s'agit d'un texte en occitan et le locuteur a indiqué qu'il parlait de l'occitan limousin on indique comme suit: (où xml:lang prend la valeur met-occ-lim pour limousin et les balises certainty ont toutes deux un attribut assertedValue qui indique la langue prédite par le modèle.

<post when="2008-04-30T7:58:00"  who="#P-024xml:id="post-t00662-05704"  xml:lang="met-occ-lim">  <certainty match="@xml:lang"   source="model.binlocus="valuedegree="0.6"   assertedValue="met-occ"/>  <certainty match="@xml:lang"   source="model.binlocus="valuedegree="0.5"   assertedValue="all-fra"/>  <p>Texte en occitan</p> </post>

1.4.3. Encodage des éléments au niveau paragraphe

1.4.3.1. Texte en prose

L'encodage du texte en prose s'effectue avec la balise <p>.

<p>L'esprit vers le passé, je revois, au plus lointain de l'enfance, si loin, en un climat brumeux, mouillé, sous un ciel gris voilé comme de larmes, une ville, longues rues sans passants, toutes droites, et au milieu, isolée par sa hauteur, une très ancienne cathédrale.</p>

1.4.3.2. Texte en vers

Dans le cas où le texte n'est pas en prose mais en vers, on structure le texte avec les balises <lg> pour les strophes et <l> pour les vers.

<div>  <lg>   <l>Accoute un fos, mo ne pas bête,</l>   <l>Et ma me pèr’ lui touzours dit</l>   <l>Que mo ze l’avais dans me tête</l>   <l>Fort touzours, beaucoup de l’esprit.</l>   <l>Ah! io, io, io, ça y vrai, saite.</l>  </lg> </div>

1.4.3.3. Texte parlé

Dans le cas d'un texte parlé, par exemple dans une pièce de théâtre ou dans une transcription de monologue, on utilise la balise <sp> pour encadrer le texte parlé, le locuteur du texte et les informations complémentaires de type didascalies. Le texte parlé est encadré par des <p> si il s'agit de prose ou par des <l> s'il s'agit de vers. La personne qui parle est indiqué par la balise <speaker> et, si possible, par la valeur de l'attribut <who> qui renvoie à un identifiant défini dans les métadonnées au niveau du <particDesc> décrit dans les métadonnées. Les didascalies sont indiquées par la balise <stage>.

Tous les éléments indiqués ne pourront pas être forcément détaillés dans le fichier TEI, le plus important est de conserver la balise <stage>, <p> ou <l> et dans une moindre mesure <speaker> et <stage>.

<sp who="#FRELINGUE">  <speaker>FRELINGUE.</speaker>  <l>Elle a le mal de mer, elle a le mal de terre,</l>  <l>Elle a... Que sais-je enfin ? Elle n'est pas trop bien ;</l>  <l>Cent drogues qu'on lui fait, ne lui servent de rien.</l>  <l>Si l'on la peut sauver, la cure sera belle.</l>  <l>Taisons nous ; ces gens-là sont je crois de chez elle.</l> </sp>

1.4.3.4. Listes

Lorsque des listes sont présentes dans le fichier à encoder, il est nécessaire de les structurer de telle façon:

<list>  <head>ACTEURS</head>  <item>LA HOLLANDE.</item>  <item>BELINE, sa suivante.</item>  <item>MARILLE, servante de la Hollande.</item>  <item>GOULEMER, Matelot. </item>  <item>FRELINGUE, Hollandaise.</item> </list>

Les listes non ordonnées, numérotées ou non sont toutes concernées.

1.4.3.5. Entrées

Les entrées correspondent aux paragraphes structurés de type entrées de dictionnaires ou de catalogues, citations bibliographiques, etc... Il ne s'agit pas de phrases mais d'informations structurées dans un ordre précis qui en général se répètent.

Deux niveaux d'encodage sont acceptés pour traiter ces données. Soit on encode dans une division <div> typée avec entry et <p>, soit on détaille un peu plus l'information avec les balises dédiées ci-dessous:

<!--Exemple d'entrée non détaillée--><div type="entry">  <p>Diaconu, Luminita (dir.) Orient et Occident. Construction des    identités en Europe médiévale. EUB. colectia " Mediaevalia",    n°5/ 2014, 225 p.</p> </div> <entry>  <form>   <orth>poussin</orth>   <pron>[pusë]</pron>  </form>  <gramGrp>   <pos>n.</pos>   <gen>m.</gen>  </gramGrp>  <sense n="1">Jeune poulet, nouvellement sorti de l'oeuf, encore    couvert de duvet. La poule et ses poussins.</sense>  <sense n="2">Zool. Jeune oiseau (par rapport aux adultes, aux    parents). </sense>  <sense n="3"> (êtres humains) <def n="1">Fam. Terme d'affection      (enfant). </def>   <def n="2"> Sports. Catégorie d'âge (9 ans) qui précède      celle des benjamins.</def>   <def n="3">Elève de première année dans certaines écoles      (Air, Aéronautique).</def>  </sense> </entry>

Il s'agit d'une version détaillée au maximum. Il n'est pas obligé de décrire aussi profondément l'entrée la balise <form> pour l'élément décrit et la balise <sense> pour la définition peuvent suffire.

1.4.3.6. Posts de réseaux sociaux

Pour encoder les posts de réseaux sociaux et autres commentaires web de type forum, un parti pris a été choisi d'utiliser une balise <post>, en cours d'étude par le consortium TEI et pas encore ajouté au schéma actuelle de la TEI. En effet, cette balise nous semble la plus apte à indiquer toutes les informations nécessaires à chaque post à encoder.

<post who="#P-0002when="2010-12-27"  xml:id="post-t2208-22920">  <figure type="emoji">   <head>Poce Levat</head>   <graphic url="/users/2712/43/79/49/smiles/536853.gif"/>  </figure>  <p>   <lb/>E dab un chic de mèu mesclat a la pasta, cambias lo tot    en pancake (chic o mic), çò qu'es pas maishant per lo matin    !</p> </post>

Ici un exemple extrait d'un forum d'occitan traité par COLaF. La balise <post> indique donc qu'il s'agit d'un objet de type micro-blogging ou commentaire web. L'attribut who indique le rédacteur du commentaire en faisant référence à l'identifiant de la personne tel qu'il a été déterminé dans le ParticDesc (voir la documentation sur les participants). L'attribut when encode la date d'écriture du commentaire. L'attribut xml:id indique l'identifiant choisi pour le post ici sous la forme Identifiant du forum - identifiant du post dans le HTML. La balise peut contenir des paragraphes, listes, images...

Un type emoji a été ajouté à la liste des types de figure afin d'encoder les emojis, fréquents dans ce type de document. La balise head contient le head du HTML et on conserve également l'url de l'image.

1.4.4. Informations supplémentaires optionnelles

1.4.4.1. Pages et lignes

Dans le cas où les pages sont indiquées, il faut les reporter avec la balise autofermante <pb>. Si les retours à la ligne ou tout simplement les lignes sont indiquées, il faut les reporter avec la balise autofermante <lb> pour line beginning, donc au début de chaque ligne.

<p>  <lb/>L'esprit vers le passé, je revois au plus loin de l'enfance, si loin, en un climat brumeux, mouillé, <lb/>sous un ciel gris voilé comme de larmes, une ville, rues sans passants, toutes droites, et, au <pb n="2facs="page2.png"/>  <lb/>milieu, isolés par sa hauteur, une très ancienne cathédrale, lourd dôme rond, avec le triple <lb/>étirement, grêle dans l'air d'une croix où le blanc brouillard opaque, qui s'effiloque met les <lb/>lambaux d'une robe de martyre.... </p>

<pb> a pour attribut non obligatoire <n> qui indique le numéro de page et <facs> qui renvoie vers la page décrite dans la suite du document (en général un url).

1.4.4.2. Données liminaires

Les données liminaires correspondent aux informations qui ne font pas parties du texte principale. C'est le cas de la numérotation de page, des notes de bas de page, du titre courant, c'est à dire le titre du document/chapitre, le nom de l'auteur qui peuvent être répétés en haut ou bas d'une page....

Les titres de sections, livres et chapitres sont encodés avec une balise <head>. Les notes de bas de page ou de marge sont annotées avec une balise <note> à l'intérieur du paragraphe qu'elles décrivent, au niveau du mot qui a la note. Les numérotations de page sont encodées avec la balise <fw> typée avec la valeur numberin et les titres courant avec même balise mais typée runningTitle. Les informations complémentaires en marge non classables utilisent un typage quiremarks.

Pour ce qui est des éléments sémantiques, il est possible d'encoder un date avec la balise <dateline>, une signature avec une balise <signed> et une initiale avec la balise <hi> typée dropCapital

<head>LIVRE PREMIER</head> <note>informations complémentaires</note> <fw type="numbering">123</fw> <fw type="runningTitle">LUCIGNOLE</fw> <fw type="quiremarks"/> <dateline>Date</dateline> <signed>Signature</signed> <p>  <hi rend="dropCapital"/> </p>

1.4.4.3. Images et tableaux

Les images et tableaux sont tous décrits au sein d'une balise <figure> qui peut être typée en fonction de l'élément décrit:

  • Maths: pour les formules mathématiques séparées du reste du texte
  • Decoration: pour les éléments ornementaux
  • Stamp: pour les tampons, notamment de bibliothèques
  • Sticker: pour les stickers de bibliothèques
  • Table: pour les tableaux

Chaque figure peut être décrite par un titre avec la balise <head>, une brève description avec la balise <figdesc>, un lien vers l'image décrite avec la balise <graphic> et son attribut <facs>. La balise <figure>peut également contenir des balises <p> si du texte supplémentaire se trouve dans l'image.

<figure type="math">  <head>Légende si existante</head>  <graphic facs="page2.jpg"/>  <figdesc/>  <p>Si texte dans l'image, possible de l'ajouter</p> </figure>

1.4.4.4. Données d'annotation linguistique

Les données d'annotation linguistique sont représentées avec les balises <s> pour encoder une phrase, <w> pour un mot/token et <pc> pour de la ponctuation. Les attributs de base de description morphosyntaxiques y sont associés: pos pour le part of speech, lemma pour les lemmes, n...

<p>  <s>   <w pos="DETlemma="le">L'</w>   <w pos="NOUNlemma="esprit">esprit</w>   <w pos="ADPlemma="vers">vers</w>   <w pos="DETlemma="le">le</w>   <w pos="NOUNlemma="passé">passé</w>   <w pos="PUNCTlemma=",n="PUN">,</w>   <w pos="PRONlemma="je">je</w>   <w pos="VERBlemma="revoir">revois</w>   <w pos="PUNCTlemma=",n="PUN">,</w>   <w pos="ADPlemma="au">au</w>   <w pos="ADVlemma="plus">plus</w>   <w pos="ADJlemma="lointain">lointain</w>   <w pos="ADPlemma="de">de</w>   <w pos="DETlemma="le">l'</w>   <w pos="NOUNlemma="enfance">enfance</w>   <w pos="PUNCTlemma=",n="PUN">,</w> <!---....-->  </s> </p>

1.4.5. Exemples de structuration par typologie de document

1.4.5.1. Forum - espaces de discussions web

Le premier forum traité par COLAF est Forum Occitania. Les exemples ci-dessous ont été produits par Oriane Nedey et Juliette Janès.

  • Métadonnées utilisées en plus de celles de base: [FileDesc, SourceDesc...]
    • Description des locuteurs participants aux discussions (dans ListPerson):
      <person xml:id="P-289">  <persName>NOM ANONYME</persName>  <langKnowledge>   <langKnown tag="met-occ-lan">Occitan -      Languedocien </langKnown>  </langKnowledge>  <birth when="1979"/> </person>
    • Description du langage:
      <language ident="met-occ-lan">  <idno type="langue">met-occ-lan</idno>  <idno type="script">latin</idno>  <name> Occitan - Languedocien</name>  <name xml:lang="met-occ">Lengadocian</name>  <date from="2007to="2012"/>  <location/> </language>
    • Description du genre:
      <textClass>  <keywords>   <term rend="webtype="supergenre">Web</term>   <term rend="web-socialtype="genre">Social</term>   <term rend="web-social-forum"    type="motclef">Forum</term>  </keywords> </textClass>
  • Structuration du texte:

    Tout le forum est encodé dans le même document XML. Les forums sont structurés en sous forums eux même structurés en topics. Ainsi, une balise <div> typée forum indique cette première division et une deuxième balise <div> typée topic indique la deuxième. Des attributs n pour numéroter les divisions et facs pour lier la balise à la page qu'elle encode peuvent être employées mais ne sont pas obligatoires. Les titres des forums et topics sont indiqués dans des balises <head>.

    Chaque post est encodé par une balise <post> dont l'utilisation est décrite dans le 1.3.3.6. La langue, décrite dans l'attribut xml:lang de cette balise, est prédite par un modèle d'où la balise <certainty> intégrée dans la balise post (voir 1.3.2.). Les paragraphes sont structurés par des <p>, les listes par des <list> et <items>. Ici, les débuts de lignes sont indiqués avec <lb>. Les images et emojis sont indiqués par <figure> et typés (voir 1.3.4.3.). Les url sont encodés par la balise <ref>.

    <div facs="https://occitania.forumactif.com//f1-discari"  n="1type="forum">  <head>DISCARI</head>  <div facs="https://occitania.forumactif.com//t16-nadau"   type="topic">   <head>Nadau ...</head>   <post when="2007-03-03T21:23"    who="#P-001xml:id="post-t00016-00041"    xml:lang="met-occ">    <certainty degree="1.0locus="value"     match="@xml:idsource="lid218e.bin"/>    <p>     <lb/>Jo, qu'èi un chepicòt dab ua cançon de        Nadau. <lb/> Aquèra cançon s'apèra "La pòrta dab        lo pè". Aquèra, qu'es ua sòrta de "rap", mes ei        sustot l'impression qu'es ua parodia. Que pòdetz        escotar un tròç suu sití de Nadau, aicí :</p>    <p>     <lb/>     <ref target="http://perso.orange.fr/nadau/la%20porta.mp3">http://perso.orange.fr/nadau/la%20porta.mp3</ref>    </p>    <p>     <lb/>Mes çò que me truca mei, n'es pas tant la        parodia, mes las paraulas.</p>   </post>   <post when="2007-03-04T20:50"    who="#P-002xml:id="post-t00016-00043"    xml:lang="met-occ-lim">    <certainty assertedValue="met-occ"     degree="1.0locus="valuematch="@xml:id"     source="lid218e.bin"/>    <p>     <lb/>Ai pas las paraulas jos la man e me soveni        pas plan, nos porias rapelar de qué parla aquèla        chançon ?</p>   </post>   <post when="2007-03-04T20:57"    who="#P-001xml:id="post-t00016-00044"    xml:lang="met-occ">    <certainty degree="1.0locus="value"     match="@xml:idsource="lid218e.bin"/>    <p>     <lb/>Espèras un chic, qu'ei hicat las paraulas        au solèr ...</p>   </post>  </div> </div>

    Les réponses à un post, sous la forme d'une citation, typiques des forums, qui reprennent le post, sont encodés par un <quote> avec un attribut corresp qui pointe vers l'identifiant du post correspondant. Dans le cas où la citation n'est pas retrouvée dans la conversation, il n'y a pas d'attribut corresp et on ajoute une balise <label> qui encode l'élément Personne a écrit/dit.

    <post when="2009-07-04T10:19who="#P-024"  xml:id="post-t00037-14170xml:lang="met-occ-lim">  <certainty assertedValue="met-occ"   degree="0.9locus="valuematch="@xml:id"   source="lid218e.bin"/>  <quote corresp="#post-t00037-14169">   <p>    <lb/>Ben, mei qu'aquò : Miquèl volèva crompar      l'Ostal d'Occitània de Tolosa.</p>  </quote>  <p>   <lb/>e merda! Occitania auria 'gut 500 000 000 de    fans, minimum! <figure type="emoji">    <head> Content </head>    <graphic url="https://2img.net/i/fa/i/smiles/icon_razz.gif"/>   </figure>  </p> </post>

2. Tableau des attributs

Specification []

Module: tei
+ att.textCritical
+ model.rdgLike
+ model.rdgPart
+ att.linguistic
+ model.persNamePart
Module: namesdates
Module: corpus
Module: core
Module: figures
Module: analysis
Module: header
Module: transcr
Module: linking
Module: textstructure
Module: dictionaries
Module: certainty
Module: tagdocs
Module: cmc
<location>
@type
@when
<persName>
<alternate> <sequence preserveOrder="false"> <elementRef key="surnameminOccurs="0"/> <elementRef key="forenameminOccurs="0"/> <elementRef key="idnominOccurs="0"/> </sequence> <sequence> <textNode/> </sequence> </alternate>
@xml:id
<person>
<sequence preserveOrder="false"> <elementRef key="persNameminOccurs="0"/> <elementRef key="langKnowledge"  minOccurs="0"/> <elementRef key="birthminOccurs="0"/> <elementRef key="residenceminOccurs="0"/> <elementRef key="socecStatutminOccurs="0"/> </sequence>
@xml:id
@gender
F
M
@age
child
teenager
young-adult
adult
senior
<langKnown>
@level
intermediate
fluent
basic
@tag
<socecStatut>
@rend
high
middle
low
<p>
<sequence preserveOrder="false"> <textNode/> <elementRef key="lbminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="pbminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="datelineminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="signedminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="sminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="foreignminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="himinOccurs="0"  maxOccurs="unbounded"/> <elementRef key="wminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="refminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="figureminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="fwminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="noteminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="quoteminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="labelminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="codeminOccurs="0"  maxOccurs="unbounded"/> </sequence>
<quote>
<sequence preserveOrder="false"> <elementRef key="labelminOccurs="0"  maxOccurs="1"/> <elementRef key="pminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="quoteminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="codeminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="lgminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="refminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="listminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="figureminOccurs="0"  maxOccurs="unbounded"/> <textNode/> <elementRef key="lbminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="mediaminOccurs="0"  maxOccurs="unbounded"/> </sequence>
<name>
@when
@type
<date>
@type
@when
<ref>
@target
<list>
<sequence preserveOrder="false"> <elementRef key="headminOccurs="0"  maxOccurs="1"/> <elementRef key="itemminOccurs="1"  maxOccurs="unbounded"/> </sequence>
@type
@type
<head>
@type
<note>
@target
@type
manuscrit
<pb>
@type
@n
<lb>
@type
@n
<author>
@when
<resp>
@when
<title>
@level
@type
collection
main
@when
<lg>
<sequence preserveOrder="false"> <elementRef key="lminOccurs="1"  maxOccurs="unbounded"/> <elementRef key="pbminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="fwminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="lbminOccurs="0"  maxOccurs="unbounded"/> </sequence>
@type
<stage>
@type
@who
<sp>
<sequence preserveOrder="false"> <elementRef key="speakerminOccurs="0"  maxOccurs="1"/> <elementRef key="stageminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="pminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="lminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="noteminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="lgminOccurs="0"  maxOccurs="unbounded"/> </sequence>
<hi>
@rend
dropCapital
bold
italic
<respStmt>
<sequence preserveOrder="false"> <elementRef key="respminOccurs="1"/> <elementRef key="persNameminOccurs="1"/> </sequence>
<measure>
@unit
words
pages
sentences
token
token_colaf
<term>
@type
supergenre
genre
motclef
@rend
fiction
nonfiction
web
spoken
fiction-prose
fiction-poetry
fiction-drama
fiction-bible
nonfiction-press
nonfiction-academic
nonfiction-administrative
nonfiction-legal
nonfiction-reference
nonfiction-interractive
nonfiction-learningmaterials
nonfiction-instructional
web-blog
web-social
web-wiki
spoken-interview
spoken-transcript
spoken-script
spoken-lyrics
spoken-other
fiction-prose-short-stories
fiction-prose-novels
nonfiction-press-local
nonfiction-press-national
nonfiction-press-finance-commerce
nonfiction-press-science
nonfiction-press-sports
nonfiction-press-news
nonfiction-press-tabloid
nonfiction-academic-thesis
nonfiction-academic-article
nonfiction-academic-abstract
nonfiction-academic-medecine
nonfiction-academic-humanities
nonfiction-academic-sciences
nonfiction-academic-technology-engineering
nonfiction-administrative-report
nonfiction-administrative-parliamentary-debates
nonfiction-reference-dictionary
nonfiction-reference-encyclopedia
nonfiction-reference-catalog
nonfiction-interractive-letter
nonfiction-interractive-comments
nonfiction-interractive-email
nonfiction-learningmaterials-learners-essays
nonfiction-learningmaterials-grammar-examples
nonfiction-instructional-recipe
nonfiction-instructional-how-to
nonfiction-instructional-instructions
--spoken-intended
<figure>
<sequence preserveOrder="false"> <elementRef key="headminOccurs="0"/> <elementRef key="figDescminOccurs="0"/> <elementRef key="graphicminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="pminOccurs="0"  maxOccurs="unbounded"/> </sequence>
@type
maths
decoration
stamp
sticker
table
emoji
<bibl>
<sequence preserveOrder="false"> <elementRef key="ptrminOccurs="0"/> <elementRef key="titleminOccurs="1"/> <elementRef key="authorminOccurs="1"  maxOccurs="unbounded"/> <elementRef key="pubPlaceminOccurs="0"/> <elementRef key="publisherminOccurs="0"/> <elementRef key="dateminOccurs="1"/> </sequence>
@type
printSource
digitalSource
<teiHeader>
<sequence preserveOrder="true"> <elementRef key="fileDesc"/> <elementRef key="profileDesc"/> <elementRef key="encodingDescminOccurs="0"  maxOccurs="1"/> <elementRef key="revisionDesc"/> </sequence>
<fileDesc>
<sequence preserveOrder="true"> <elementRef key="titleStmt"/> <elementRef key="publicationStmt"/> <elementRef key="sourceDesc"/> <elementRef key="extent"/> </sequence>
<titleStmt>
<sequence preserveOrder="true"> <elementRef key="idnominOccurs="1"/> <elementRef key="titleminOccurs="1"  maxOccurs="2"/> <elementRef key="authorminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="respStmtminOccurs="1"  maxOccurs="unbounded"/> <elementRef key="principalminOccurs="1"  maxOccurs="1"/> <elementRef key="funderminOccurs="1"  maxOccurs="1"/> </sequence>
<publicationStmt>
<sequence preserveOrder="true"> <elementRef key="publisherminOccurs="1"/> <elementRef key="dateminOccurs="1"/> <elementRef key="availabilityminOccurs="1"/> </sequence>
<sourceDesc>
<elementRef key="biblminOccurs="1"  maxOccurs="unbounded"/>
<idno>
@type
orcid
langue
script
@xml:id
<funder>
@when
<principal>
@when
<availability>
<elementRef key="licence"/>
@status
<licence>
@when
<language>
<sequence> <elementRef key="idnominOccurs="1"  maxOccurs="unbounded"/> <elementRef key="nameminOccurs="0"  maxOccurs="2"/> <elementRef key="dateminOccurs="0"  maxOccurs="1"/> <elementRef key="locationminOccurs="0"  maxOccurs="1"/> </sequence>
@usage
<change>
@target
@who
@when
@type
<profileDesc>
<sequence> <elementRef key="langUsageminOccurs="1"  maxOccurs="1"/> <elementRef key="textClassminOccurs="1"  maxOccurs="1"/> <elementRef key="particDescminOccurs="0"  maxOccurs="1"/> </sequence>
<fw>
@type
numbering
quiremarks
runningTitle
<ab>
@type
<s>
@type
<w>
@type
<pc>
@force
@unit
@pre
@type
att.linguistic
@lemmaRef
@join
<TEI>
@version
@type
<text>
@type
<div>
<sequence preserveOrder="false"> <elementRef key="headminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="pminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="lgminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="listminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="spminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="stageminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="divminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="fwminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="datelineminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="signedminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="noteminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="figureminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="abminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="entryminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="postminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="pbminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="quoteminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="sminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="certaintyminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="tableminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="otherminOccurs="0"  maxOccurs="unbounded"/> <elementRef key="codeminOccurs="0"  maxOccurs="unbounded"/> </sequence>
@type
chapter
entry
titlepage
act
scene
liminal
part
forum
topic
letter
<certainty>
Balise qui permet d'indiquer les résultats incertains - utilisé notamment pour les langues prédites par des modèles types fasttext
@match
Pointe vers l'attribut langue prédit (XPATH)
@source
Indique le modèle qui a permis d'obtenir ce résultat (fichier)
@locus
value
@degree
valeur de certainty du modèle
@assertedValue
Si il ne s'agit pas de la valeur choisie finalement, indique les autres valeurs prédites par le modèle (ici les autres langues)
@type
ignorance
Juliette Janès . Date: 2025-02-10